/* styles.css */

/* =========================================
   THEME (variables + typography)
   -----------------------------------------
   Tipografías:
   - Serif (títulos): Cormorant Garamond (opcional) / Georgia / Times
   - Sans (cuerpo): Inter (opcional) / system-ui
   Paleta:
   - Base: crema/blanco
   - Texto: grafito
   - Acento: dorado suave #C8A96A
   ========================================= */
:root{
  --bg:#FBFAF7;
  --surface:#FFFFFF;
  --text:#101418;
  --muted:#5B6570;
  --border:rgba(16,20,24,.12);

  --accent:#C8A96A;
  --accent-2:rgba(200,169,106,.16);

  --shadow:0 18px 50px rgba(16,20,24,.10);
  --shadow-soft:0 10px 30px rgba(16,20,24,.08);

  --radius:18px;
  --radius-sm:14px;

  --container:1120px;

  --serif:"Cormorant Garamond", Georgia, "Times New Roman", Times, serif;
  --sans:"Inter", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;

  --step--1:clamp(.90rem,.88rem + .15vw,1.00rem);
  --step-0:clamp(1.00rem,.98rem + .25vw,1.10rem);
  --step-1:clamp(1.10rem,1.05rem + .55vw,1.35rem);
  --step-2:clamp(1.35rem,1.20rem + 1.25vw,2.00rem);
  --step-3:clamp(1.80rem,1.45rem + 2.40vw,3.00rem);

  --header-h:76px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  font-size:var(--step-0);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:hover{opacity:.92}

.container{width:min(100% - 2rem,var(--container));margin-inline:auto}

.skip-link{
  position:absolute;left:1rem;top:-100px;
  padding:.75rem 1rem;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:999px;
  box-shadow:var(--shadow-soft);
  z-index:9999;
}
.skip-link:focus{top:1rem}

/* Header / Nav */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(251,250,247,.72);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
.nav-wrap{
  height:var(--header-h);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.brand{
  display:flex;align-items:center;gap:.9rem;
  min-width: 220px;
}
.brand__logo svg{
  width: 210px;
  height: auto;
  display:block;
  color: var(--text);
}
.logo-serif{font-family:var(--serif)}
.logo-sans{font-family:var(--sans)}
.brand__text{display:grid;gap:.1rem}
.brand__name{
  font-family:var(--serif);
  letter-spacing:.10em;
  font-size:1.02rem;
}
.brand__sub{color:var(--muted);font-size:.92rem}

.nav{display:flex;align-items:center;gap:1.25rem}
.nav a{
  position:relative;
  font-size:.98rem;
  padding:.4rem .2rem;
}
.nav a::after{
  content:"";
  position:absolute;left:0;bottom:.15rem;
  width:0;height:2px;background:var(--accent);
  transition:width 220ms ease;
}
.nav a:hover::after,.nav a:focus-visible::after{width:100%}

.nav-toggle{
  display:none;
  border:1px solid var(--border);
  background:var(--surface);
  border-radius:12px;
  padding:.55rem .6rem;
}
.nav-toggle__line{display:block;width:22px;height:2px;background:var(--text);margin:5px 0}

/* Hero */
.hero{
  position:relative;
  min-height:calc(100vh - var(--header-h));
  display:grid;align-items:center;
  overflow:hidden;
}
.hero__bg{
  position:absolute;
  inset:0;
  overflow:hidden;
}

.hero__bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.95) contrast(1.02);
  transform:scale(1.02);
  display:block;
}

.hero__overlay{
  position:absolute;inset:0;
  background:
    radial-gradient(60% 50% at 20% 20%, rgba(16,20,24,.35), rgba(16,20,24,.70)),
    linear-gradient(180deg, rgba(16,20,24,.35), rgba(16,20,24,.72));
}
.hero__content{
  position:relative;
  padding:5.5rem 0 4.5rem;
  color:#fff;
}
.kicker{
  display:inline-flex;gap:.5rem;align-items:center;
  letter-spacing:.12em;text-transform:uppercase;
  font-size:.82rem;opacity:.95;
}
.kicker::before{content:"";width:26px;height:1px;background:rgba(255,255,255,.75)}
.hero__title{
  font-family:var(--serif);
  font-size:var(--step-3);
  line-height:1.05;
  margin:.9rem 0 .75rem;
  letter-spacing:-.01em;
}
.hero__subtitle{margin:0;font-size:var(--step-1);color:rgba(255,255,255,.88)}
.hero__cta{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:2rem}
.pill{
  display:inline-flex;align-items:center;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.10);
  border-radius:999px;
  padding:.55rem .85rem;
  margin-top:2rem;
  color:rgba(255,255,255,.92);
}

/* Sections */
.section{padding:5rem 0}
.section--alt{
  background:linear-gradient(180deg, rgba(200,169,106,.06), rgba(200,169,106,0));
  border-top:1px solid rgba(16,20,24,.06);
  border-bottom:1px solid rgba(16,20,24,.06);
}
.section__header{display:grid;gap:.65rem;margin-bottom:2.2rem}
.section__title{
  font-family:var(--serif);
  font-size:var(--step-2);
  margin:0;
  letter-spacing:-.01em;
}
.section__lead{margin:0;color:var(--muted);max-width:68ch}

/* Grid layouts */
.grid{display:grid;gap:1.25rem}
.grid--cards{grid-template-columns:repeat(12,1fr)}
.grid--cards .card{grid-column:span 4}
.grid--features{grid-template-columns:repeat(12,1fr)}
.grid--features .feature{grid-column:span 4}
.grid--trips{grid-template-columns:repeat(12,1fr)}
.grid--trips .trip-card{grid-column:span 4}
.grid--quotes{grid-template-columns:repeat(12,1fr)}
.grid--quotes .quote{grid-column:span 4}

/* Cards */
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  display:grid;
  grid-template-rows:160px 1fr;
}
.card__media{position:relative;overflow:hidden;}
.card__media img{width:100%;height:100%;object-fit:cover;display:block;}
.card__body{
  padding:1.2rem 1.2rem 1.25rem;
  display:grid;gap:.55rem;align-content:start;
}
.card__title{margin:0;font-family:var(--serif);letter-spacing:-.01em;font-size:1.25rem}
.card__text{margin:0;color:var(--muted)}

/* Background placeholders per destination */

/* Feature blocks */
.feature{
  background:rgba(255,255,255,.65);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.4rem 1.4rem 1.3rem;
  box-shadow:var(--shadow-soft);
}
.feature__title{margin:0 0 .35rem;font-family:var(--serif);font-size:1.35rem}
.feature__text{margin:0 0 .8rem;color:var(--muted)}
.list{margin:0;padding-left:1.15rem;color:var(--text)}
.list li{margin:.35rem 0}

/* Steps */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.step{
  display:grid;grid-template-columns:80px 1fr;gap:1rem;
  padding:1.2rem 1.2rem;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--shadow-soft);
}
.step__num{font-family:var(--serif);font-size:1.4rem;color:var(--accent);letter-spacing:.06em}
.step__title{margin:0;font-size:1.1rem}
.step__text{margin:.25rem 0 0;color:var(--muted)}

/* Trips */
.trip-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.35rem 1.35rem 1.25rem;
  box-shadow:var(--shadow-soft);
  display:grid;gap:1rem;
}
.trip-card__title{margin:0;font-family:var(--serif);font-size:1.35rem}
.trip-card__meta{margin:.35rem 0 0;color:var(--muted)}
.trip-card__price{
  padding:.9rem 1rem;border-radius:14px;
  background:var(--accent-2);
  border:1px solid rgba(200,169,106,.30);
  display:flex;align-items:baseline;justify-content:space-between;
}
.trip-card__from{color:var(--muted);font-size:.95rem}
.trip-card__amount{font-weight:600;letter-spacing:.02em}

/* Nosotros split */
.split{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:start}
.badge-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.3rem}
.badge{
  border:1px solid rgba(16,20,24,.12);
  background:rgba(255,255,255,.7);
  border-radius:999px;
  padding:.45rem .75rem;
  font-size:.92rem;
}
.portrait{
  border-radius:var(--radius);
  border:1px solid var(--border);
  box-shadow:var(--shadow);
  max-height:420px;
  object-fit:cover;
  width:100%;
}
.caption{margin:.8rem 0 0;color:var(--muted);font-size:.95rem}

/* Quotes */
.quote{
  background:rgba(255,255,255,.65);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.35rem 1.35rem 1.25rem;
  box-shadow:var(--shadow-soft);
}
.quote blockquote{
  margin:0;
  font-family:var(--serif);
  font-size:1.18rem;
  line-height:1.35;
}
.quote figcaption{margin-top:.85rem;color:var(--muted)}

/* Contact */
.contact{display:grid;grid-template-columns:1.2fr .8fr;gap:1.5rem;align-items:start}
.form{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.35rem;
  box-shadow:var(--shadow-soft);
}
.form__help{margin:0 0 1rem;color:var(--muted);font-size:.95rem}
.form__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.95rem}
.field{display:grid;gap:.35rem}
.field--full{grid-column:1 / -1}
label{font-weight:500}
input,select,textarea{
  width:100%;
  padding:.75rem .85rem;
  border-radius:14px;
  border:1px solid rgba(16,20,24,.18);
  background:#fff;
  color:var(--text);
  font:inherit;
  outline:none;
}
input:focus,select:focus,textarea:focus{
  border-color:rgba(200,169,106,.65);
  box-shadow:0 0 0 4px rgba(200,169,106,.18);
}
.field__error{min-height:1.1em;color:#8A1F1F;font-size:.92rem}

.form__actions{display:flex;align-items:center;gap:1rem;margin-top:1rem;flex-wrap:wrap}
.form__status{margin:0;color:var(--muted);font-size:.98rem}
.form__status.is-success{color:#1D6B3A}
.form__status.is-error{color:#8A1F1F}

.aside-card{
  background:rgba(255,255,255,.65);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.35rem;
  box-shadow:var(--shadow-soft);
}
.aside-card__title{margin:0 0 .25rem;font-family:var(--serif);font-size:1.35rem}
.aside-card__text{margin:0 0 .9rem;color:var(--muted)}
.aside-card__lines p{margin:.35rem 0}
.aside-card__note{margin:1rem 0 0;color:var(--muted)}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  border-radius:999px;
  padding:.78rem 1.05rem;
  border:1px solid transparent;
  font-weight:600;
  letter-spacing:.01em;
  cursor:pointer;
  transition:transform 160ms ease, box-shadow 200ms ease, background 200ms ease, border-color 200ms ease;
}
.btn:active{transform:translateY(1px)}
.btn--primary{
  background:var(--accent);
  color:#151515;
  box-shadow:0 10px 22px rgba(200,169,106,.30);
}
.btn--primary:hover{box-shadow:0 14px 30px rgba(200,169,106,.34)}
.btn--ghost{
  background:rgba(255,255,255,.10);
  color:#fff;
  border-color:rgba(255,255,255,.22);
}
.btn--ghost:hover{background:rgba(255,255,255,.14)}
.btn--outline{
  background:transparent;
  border-color:rgba(16,20,24,.18);
}
.btn--outline:hover{border-color:rgba(200,169,106,.65)}
.btn--small{padding:.62rem .9rem;font-size:.95rem}
.btn--block{width:100%}

.footer{
  padding:3.2rem 0 2rem;
  border-top:1px solid rgba(16,20,24,.10);
}
.footer__grid{
  display:grid;
  grid-template-columns:1.4fr repeat(3,1fr);
  gap:1.5rem;
}
.footer__name{
  font-family:var(--serif);
  font-size:1.2rem;
  margin:0 0 .35rem;
  letter-spacing:.12em;
}
.footer__tag{margin:0;color:var(--muted)}
.footer__heading{margin:0 0 .65rem;font-weight:600}
.footer__col a{text-decoration:underline;text-decoration-color:rgba(200,169,106,.55);text-underline-offset:3px}
.footer__bottom{
  margin-top:2.2rem;padding-top:1.2rem;
  border-top:1px solid rgba(16,20,24,.08);
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.to-top{text-decoration:underline;text-decoration-color:rgba(200,169,106,.55);text-underline-offset:3px}
.muted{color:var(--muted)}

/* Modal */
.modal{position:fixed;inset:0;display:none;z-index:100}
.modal.is-open{display:block}
.modal__backdrop{position:absolute;inset:0;background:rgba(16,20,24,.60)}
.modal__panel{
  position:relative;
  width:min(520px, calc(100% - 2rem));
  margin:10vh auto;
  background:var(--surface);
  border:1px solid rgba(255,255,255,.10);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:1.35rem;
}
.modal__close{
  position:absolute;right:.8rem;top:.8rem;
  border:1px solid rgba(16,20,24,.14);
  background:rgba(255,255,255,.8);
  border-radius:999px;
  width:38px;height:38px;
  cursor:pointer;
  font-size:1.2rem;
}
.modal__title{
  margin:.35rem 0 .25rem;
  font-family:var(--serif);
  font-size:1.45rem;
}
.modal__lead{margin:0 0 1rem;color:var(--muted)}
.modal__actions{margin-top:1rem}
.modal__fineprint{margin:.85rem 0 0;font-size:.92rem}

/* Reveal animations */
.reveal{
  opacity:0;
  transform:translateY(12px);
  transition:opacity 700ms ease, transform 700ms ease;
  will-change:opacity, transform;
}
.reveal.is-visible{opacity:1;transform:translateY(0)}

/* Responsive */
@media (max-width: 980px){
  .brand__logo svg{width: 180px}
}
@media (max-width:920px){
  .grid--cards .card,
  .grid--features .feature,
  .grid--trips .trip-card,
  .grid--quotes .quote{grid-column:span 6}
  .split, .contact{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr 1fr;row-gap:1.75rem}
}
@media (max-width:720px){
  :root{--header-h:72px}
  .brand__logo svg{width: 155px}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center}
  .nav{
    position:absolute;
    top:var(--header-h);
    right:1rem;left:1rem;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:.2rem;
    background:rgba(251,250,247,.92);
    border:1px solid var(--border);
    border-radius:16px;
    padding:.6rem;
    box-shadow:var(--shadow-soft);
  }
  .nav.is-open{display:flex}
  .nav a{padding:.85rem .8rem;border-radius:12px}
  .nav a:hover{background:rgba(200,169,106,.10);opacity:1}

  .hero__content{padding:4.8rem 0 4rem}
  .hero__cta{flex-direction:column;align-items:stretch}

  .grid--cards .card,
  .grid--features .feature,
  .grid--trips .trip-card,
  .grid--quotes .quote{grid-column:span 12}

  .form__grid{grid-template-columns:1fr}
  .step{grid-template-columns:64px 1fr}
  .footer__grid{grid-template-columns:1fr}
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .reveal{transition:none}
  .btn{transition:none}
}

.brand__logo-img{height:55px;width:auto;display:block}

/* =========================
   Carousel – Experiencias
========================= */

.carousel{
  position: relative;
  margin-top: 3rem;
}

.carousel__track{
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 1fr);
  gap: 1.5rem;
  overflow-x: auto;
  scroll-behavior: smooth;
  padding-bottom: 1rem;
}

.carousel__track::-webkit-scrollbar{
  display: none;
}

.experience{
  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.06);
  padding: 1.8rem;
  border-radius: 12px;
}

.experience p{
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.05rem;
  line-height: 1.6;
  margin-bottom: 1rem;
}

.experience span{
  font-size: .85rem;
  letter-spacing: .08em;
  color: #6b7280;
  text-transform: uppercase;
}

/* Flechas */

.carousel__btn{
  position: absolute;
  top: 40%;
  transform: translateY(-50%);
  background: #ffffff;
  border: 1px solid rgba(0,0,0,.15);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.5rem;
  line-height: 1;
}

.carousel__btn--prev{ left: -20px; }
.carousel__btn--next{ right: -20px; }

@media(max-width:768px){
  .carousel__btn{
    display: none;
  }
}








/* =========================
   THEME (AYRE - calamuchita)
========================= */
:root{
  --bg: #fbfaf7;
  --surface: #ffffff;
  --text: #121316;
  --muted: #5a616b;
  --line: rgba(18,19,22,.10);

  --accent: #C8A96A;
  --accent-ink: #1b1b1d;

  --radius: 16px;
  --shadow: 0 18px 45px rgba(0,0,0,.10);

  --serif: ui-serif, Georgia, "Times New Roman", Times, serif;
  --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;

  --container: 1120px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: var(--sans);
  color: var(--text);
  background: var(--bg);
  line-height: 1.55;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
.container{
  width: min(var(--container), calc(100% - 40px));
  margin: 0 auto;
}

/* Sticky CTA */
.sticky-cta{
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 14px;
  z-index: 999;
  display:flex;
  gap:10px;
  justify-content:center;
  padding: 10px;
  background: rgba(255,255,255,.78);
  border: 1px solid var(--line);
  border-radius: 999px;
  backdrop-filter: blur(10px);
}
@media (min-width: 980px){
  .sticky-cta{ display:none; }
}

/* Header */
.header{
  position: sticky;
  top:0;
  z-index: 50;
  background: rgba(251,250,247,.82);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.header__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 14px 0;
}
.brand__logo{ height: 44px; width:auto; }
.nav{ display:flex; gap:18px; }
.nav a{
  font-size: .95rem;
  color: var(--muted);
  padding: 8px 10px;
  border-radius: 999px;
}
.nav a:hover{ background: rgba(200,169,106,.12); color: var(--text); }
@media (max-width: 860px){
  .nav{ display:none; }
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding: 12px 16px;
  border-radius: 999px;
  border: 1px solid var(--line);
  font-weight: 600;
  letter-spacing: .01em;
}
.btn--primary{
  background: var(--accent);
  color: var(--accent-ink);
  border-color: rgba(200,169,106,.55);
}
.btn--primary:hover{ filter: brightness(.98); }
.btn--ghost{
  background: rgba(255,255,255,.65);
}
.btn--ghost:hover{ background: rgba(255,255,255,.9); }

/* Hero */
.hero{
  position: relative;
  min-height: 78vh;
  display:flex;
  align-items:flex-end;
  padding: 90px 0 42px;
  overflow:hidden;
}
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__bg img{
  width:100%;
  height:100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.02);
  filter: saturate(.92) contrast(1.03);
}
.hero__overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(900px 460px at 18% 75%, rgba(0,0,0,.40), transparent 60%),
    linear-gradient(to top, rgba(0,0,0,.62), rgba(0,0,0,.22));
}
.hero__content{ position: relative; z-index: 2; color: #fff; }

.eyebrow{
  font-size: .9rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.86);
  margin: 0 0 10px;
}
.hero h1{
  font-family: var(--serif);
  font-size: clamp(2.2rem, 4vw, 3.6rem);
  line-height: 1.05;
  margin: 0 0 12px;
  letter-spacing: .01em;
}
.hero__lead{
  max-width: 56ch;
  color: rgba(255,255,255,.85);
  font-size: 1.05rem;
  margin: 0 0 18px;
}
.hero__actions{ display:flex; flex-wrap:wrap; gap:10px; }
.hero__badges{ display:flex; gap:10px; flex-wrap:wrap; margin-top: 18px; }
.badge{
  font-size: .9rem;
  color: rgba(255,255,255,.85);
  border: 1px solid rgba(255,255,255,.22);
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(0,0,0,.10);
}

/* Sections */
.section{ padding: 72px 0; }
.section--soft{ background: rgba(255,255,255,.55); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.section__header{ margin-bottom: 26px; }
.section__header h2{
  font-family: var(--serif);
  font-size: clamp(1.6rem, 2.6vw, 2.2rem);
  margin: 0 0 8px;
}
.section__lead{ color: var(--muted); margin:0; }
.lead{ font-size: 1.05rem; color: var(--text); }
.muted{ color: var(--muted); }
.fineprint{ color: var(--muted); font-size: .95rem; margin-top: 18px; }

/* Layout */
.grid-2{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 28px;
  align-items:center;
}
.grid-3{
  display:grid;
  grid-template-columns: repeat(3,1fr);
  gap: 18px;
}
@media (max-width: 980px){
  .grid-2{ grid-template-columns: 1fr; }
  .grid-3{ grid-template-columns: 1fr; }
}

/* Cards */
.card{
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.card--image{ overflow:hidden; }
.card--image img{
  width:100%;
  height: 360px;
  object-fit:cover;
  /* FIX “solo cielo”: sube el encuadre para ver más paisaje */
  object-position: center 65%;
}
@media (max-width: 980px){
  .card--image img{ height: 280px; object-position: center 60%; }
}

/* Plans */
.plans{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
@media (max-width: 980px){
  .plans{ grid-template-columns: 1fr; }
}
.plan{
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 22px;
  box-shadow: var(--shadow);
}
.plan--featured{
  border-color: rgba(200,169,106,.45);
  box-shadow: 0 22px 60px rgba(200,169,106,.18);
}
.plan__kicker{
  margin:0 0 8px;
  color: var(--muted);
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: .85rem;
}
.plan__title{
  font-family: var(--serif);
  font-size: 1.5rem;
  margin: 0 0 8px;
}
.plan__meta{ margin:0 0 12px; color: var(--muted); }
.plan__text{ margin: 0 0 14px; }
.plan__actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top: 16px; }

.list{ margin: 0; padding-left: 18px; }
.list li{ margin: 8px 0; }
.list--tight li{ margin: 6px 0; }

/* Quotes */
.quotes{
  display:grid;
  grid-template-columns: repeat(3,1fr);
  gap: 14px;
}
@media (max-width: 980px){
  .quotes{ grid-template-columns: 1fr; }
}
.quote{
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
  box-shadow: var(--shadow);
}
.quote blockquote{
  margin:0 0 10px;
  font-family: var(--serif);
  font-size: 1.05rem;
  line-height: 1.55;
}
.quote figcaption{ color: var(--muted); font-size: .95rem; }

/* FAQ */
.faq{ display:grid; gap: 10px; }
.faq__item{
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 14px 16px;
}
.faq__item summary{
  cursor:pointer;
  font-weight: 700;
}
.faq__item p{ color: var(--muted); margin: 10px 0 0; }

/* Contact */
.contact{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 18px;
  align-items:start;
}
@media (max-width: 980px){
  .contact{ grid-template-columns: 1fr; }
}
.form{
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
  box-shadow: var(--shadow);
}
.form__grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 720px){
  .form__grid{ grid-template-columns: 1fr; }
}
.field label{ display:block; font-weight: 700; margin-bottom: 8px; }
.field input, .field select, .field textarea{
  width:100%;
  border: 1px solid rgba(18,19,22,.14);
  border-radius: 12px;
  padding: 12px 12px;
  font: inherit;
  background: #fff;
}
.field textarea{ resize: vertical; }
.field--full{ grid-column: 1 / -1; }
.form__actions{ display:flex; align-items:center; gap: 12px; margin-top: 14px; flex-wrap:wrap; }
.form__status{ color: var(--muted); margin:0; }

.aside-card{
  background: rgba(255,255,255,.75);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
}
.aside-card__lines p{ margin: 10px 0; }
.aside-card__note{ color: var(--muted); margin: 12px 0 0; }

/* Footer */
.footer{
  padding: 28px 0 86px;
  border-top: 1px solid var(--line);
}
.footer__inner{
  display:flex;
  justify-content:space-between;
  gap: 16px;
  flex-wrap:wrap;
}
.footer__brand{ font-weight: 800; margin:0; }
.footer__links{ display:flex; gap: 14px; flex-wrap:wrap; }
.footer__links a{ color: var(--muted); text-decoration: underline; text-underline-offset: 4px; }
.footer__small{ color: var(--muted); margin:0; }
