/* ==========================================================================
   NOVARRA GLOBAL — Design System
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400&family=Inter:wght@300;400;500;600&display=swap');

:root{
  /* --- Color tokens --- */
  --navy:        #0e1b2a;
  --navy-deep:   #08111c;
  --charcoal:    #17191c;
  --ivory:       #f6f2e9;
  --white-soft:  #fbfaf6;
  --champagne:   #cdbb9a;
  --gold:        #a9873f;
  --gold-soft:   #d9c896;
  --blue-mist:   #7d94a5;
  --line:        rgba(246,242,233,0.14);
  --line-dark:   rgba(14,27,42,0.12);
  --text-on-dark: rgba(246,242,233,0.86);
  --text-on-dark-dim: rgba(246,242,233,0.58);
  --text-on-light: #14202c;
  --text-on-light-dim: #57626c;

  /* --- Type --- */
  --serif: 'Fraunces', Georgia, serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* --- Motion --- */
  --ease: cubic-bezier(.22,.61,.16,1);
  --ease-soft: cubic-bezier(.4,0,.2,1);

  /* --- Layout --- */
  --gutter: clamp(24px, 5vw, 72px);
  --max: 1400px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  background:var(--ivory);
  color:var(--text-on-light);
  font-family:var(--sans);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
input,select,textarea{ font-family:inherit; font-size:16px; }
h1,h2,h3,h4,p{ margin:0; }

.wrap{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); }

/* --- Skip link / focus --- */
.skip-link{
  position:absolute; left:-999px; top:0; background:var(--navy); color:var(--ivory);
  padding:14px 20px; z-index:999; font-family:var(--sans); font-size:14px;
}
.skip-link:focus{ left:16px; top:16px; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--gold); outline-offset:3px;
}

/* ==========================================================================
   Type scale
   ========================================================================== */
.eyebrow{
  font-family:var(--sans); font-size:12.5px; letter-spacing:0.14em; font-weight:500;
  color:var(--gold); text-transform:none;
}
h1,.h1{ font-family:var(--serif); font-weight:400; line-height:0.98; letter-spacing:-0.01em;
  font-size:clamp(2.6rem, 6vw, 5.6rem); }
h2,.h2{ font-family:var(--serif); font-weight:400; line-height:1.04; letter-spacing:-0.005em;
  font-size:clamp(2rem, 4vw, 3.4rem); }
h3,.h3{ font-family:var(--serif); font-weight:400; line-height:1.1; font-size:clamp(1.4rem, 2.2vw, 1.9rem); }
p,.body-l{ font-size:1.08rem; line-height:1.65; color:var(--text-on-light-dim); max-width:56ch; }
.body-s{ font-size:0.95rem; line-height:1.6; color:var(--text-on-light-dim); }
.on-dark p, .on-dark .body-s{ color:var(--text-on-dark-dim); }
.on-dark{ color:var(--text-on-dark); }

/* ==========================================================================
   Header / Nav
   ========================================================================== */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:28px var(--gutter);
  transition:padding .5s var(--ease), background .5s var(--ease), box-shadow .5s var(--ease);
  mix-blend-mode:normal;
}
.site-header.on-dark-hero{ color:var(--ivory); }
.site-header.on-dark-hero .nav-link{ color:rgba(246,242,233,0.82); }
.site-header.scrolled{
  padding:14px var(--gutter);
  background:rgba(246,242,233,0.92);
  backdrop-filter:blur(10px);
  box-shadow:0 1px 0 var(--line-dark);
  color:var(--text-on-light);
}
.site-header.scrolled .nav-link{ color:var(--text-on-light-dim); }
.site-header.scrolled .brand{ color:var(--text-on-light); }

.brand{
  font-family:var(--serif); font-size:1.2rem; letter-spacing:0.01em; font-weight:500;
  display:flex; align-items:baseline; gap:8px; transition:color .4s var(--ease);
}
.brand .dot{ color:var(--gold); }

.nav-primary{ display:flex; align-items:center; gap:40px; }
.nav-links{ display:flex; gap:34px; list-style:none; margin:0; padding:0; }
.nav-link{
  position:relative; font-size:0.92rem; letter-spacing:0.01em; padding:4px 0;
  transition:color .3s var(--ease-soft);
}
.nav-link::after{
  content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px;
  background:currentColor; transition:width .35s var(--ease);
}
.nav-link:hover::after, .nav-link.active::after{ width:100%; }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-size:0.86rem; letter-spacing:0.04em; font-weight:500;
  padding:14px 26px; border:1px solid currentColor; border-radius:2px;
  position:relative; overflow:hidden; white-space:nowrap;
}
.btn-primary{
  background:var(--navy); color:var(--ivory); border-color:var(--navy);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.btn-primary:hover{ box-shadow:0 8px 24px rgba(14,27,42,0.28); transform:translateY(-2px); }
.btn-ghost{
  background:transparent; transition:background .4s var(--ease), color .4s var(--ease);
}
.on-dark-hero .btn-ghost{ border-color:rgba(246,242,233,0.5); color:var(--ivory); }
.btn-ghost:hover{ background:var(--navy); color:var(--ivory); border-color:var(--navy); }
.on-dark-hero .btn-ghost:hover{ background:var(--ivory); color:var(--navy); border-color:var(--ivory); }

.menu-toggle{
  display:none; flex-direction:column; gap:5px; background:none; border:0; padding:8px; z-index:210;
}
.menu-toggle span{ width:22px; height:1px; background:currentColor; transition:transform .4s var(--ease), opacity .3s; }

/* Mobile nav overlay */
.mobile-nav{
  position:fixed; inset:0; background:var(--navy); z-index:199;
  display:flex; flex-direction:column; justify-content:center; padding:var(--gutter);
  transform:translateY(-100%); transition:transform .6s var(--ease);
}
.mobile-nav.open{ transform:translateY(0); }
.mobile-nav ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:18px; }
.mobile-nav a{ font-family:var(--serif); font-size:2.2rem; color:var(--ivory); }
.mobile-nav .btn{ margin-top:28px; width:fit-content; }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:flex-end;
  color:var(--ivory); overflow:hidden;
}
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media img{ width:100%; height:100%; object-fit:cover; transform:scale(1.12); }
.hero-media::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(8,17,28,0.35) 0%, rgba(8,17,28,0.25) 40%, rgba(8,17,28,0.86) 100%);
}
.hero-content{ position:relative; z-index:2; padding:0 var(--gutter) 96px; width:100%; }
.hero-eyebrow{ font-size:12.5px; letter-spacing:0.16em; color:var(--gold-soft); margin-bottom:22px; overflow:hidden; }
.hero-title{ font-family:var(--serif); font-weight:400; letter-spacing:-0.01em; line-height:0.98;
  font-size:clamp(2.8rem, 7.4vw, 6.4rem); max-width:16ch; overflow:hidden; }
.hero-title .line{ display:block; overflow:hidden; }
.hero-title .line span{ display:block; transform:translateY(110%); }
.hero-sub{ margin-top:26px; max-width:38ch; font-size:1.12rem; color:rgba(246,242,233,0.82); line-height:1.6; }
.hero-cta{ margin-top:40px; display:flex; gap:16px; flex-wrap:wrap; }
.hero-scroll{
  position:absolute; right:var(--gutter); bottom:40px; z-index:2; display:flex; flex-direction:column;
  align-items:center; gap:10px; color:rgba(246,242,233,0.7); font-size:11px; letter-spacing:0.14em;
}
.hero-scroll .line-v{ width:1px; height:52px; background:rgba(246,242,233,0.35); position:relative; overflow:hidden; }
.hero-scroll .line-v::after{
  content:''; position:absolute; top:-100%; left:0; width:100%; height:100%; background:var(--gold-soft);
  animation:scrollLine 2.2s var(--ease-soft) infinite;
}
@keyframes scrollLine{ 0%{ top:-100%; } 60%{ top:100%; } 100%{ top:100%; } }

/* ==========================================================================
   Section rhythm
   ========================================================================== */
section{ position:relative; }
.section{ padding:clamp(80px,10vw,150px) 0; }
.section-tight{ padding:clamp(56px,7vw,96px) 0; }
.section-dark{ background:var(--navy); color:var(--ivory); }
.section-charcoal{ background:var(--charcoal); color:var(--ivory); }
.divider{ height:1px; background:var(--line-dark); border:0; margin:0; }
.on-dark .divider{ background:var(--line); }

.reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease-soft), transform .9s var(--ease-soft); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.reveal-mask{ overflow:hidden; }
.reveal-mask img, .reveal-mask .mask-inner{ transform:scale(1.15) translateY(3%); transition:transform 1.3s var(--ease); }
.reveal-mask.is-visible img, .reveal-mask.is-visible .mask-inner{ transform:scale(1) translateY(0); }

/* ==========================================================================
   Intro split
   ========================================================================== */
.split{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(32px,6vw,90px); align-items:center; }
.split.reverse{ grid-template-columns:0.9fr 1.1fr; }
.split.reverse .split-media{ order:2; }
.split-media{ aspect-ratio:4/5; overflow:hidden; }
.split-media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease); }
.split-media:hover img{ transform:scale(1.05); }
.split-text .eyebrow{ margin-bottom:18px; display:block; }
.split-text h2{ margin-bottom:26px; }
.split-text .num{ font-family:var(--serif); font-size:0.85rem; color:var(--gold); margin-bottom:14px; }
.detail-list{ margin-top:32px; display:flex; flex-direction:column; gap:14px; }
.detail-list li{ display:flex; gap:14px; align-items:baseline; list-style:none; font-size:0.95rem; color:var(--text-on-light-dim); }
.detail-list .marker{ color:var(--gold); font-family:var(--serif); font-style:italic; }

/* ==========================================================================
   Stats
   ========================================================================== */
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.stat-cell{ background:var(--navy); padding:clamp(28px,4vw,52px) clamp(20px,3vw,36px); }
.stat-num{ font-family:var(--serif); font-size:clamp(2.4rem,4vw,4rem); font-weight:400; color:var(--ivory); display:flex; align-items:baseline; gap:2px; }
.stat-label{ margin-top:10px; font-size:0.82rem; letter-spacing:0.04em; color:var(--text-on-dark-dim); }
.stat-note{ font-size:0.74rem; color:var(--blue-mist); margin-top:8px; font-style:italic; }

/* ==========================================================================
   Service / destination cards
   ========================================================================== */
.grid-services{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-dark); margin-top:56px; }
.service-card{
  position:relative; background:var(--ivory); padding:40px 34px; min-height:340px;
  display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden;
}
.service-card .sc-img{ position:absolute; inset:0; opacity:0; transition:opacity .6s var(--ease); }
.service-card .sc-img img{ width:100%; height:100%; object-fit:cover; }
.service-card .sc-img::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,27,42,0.15), rgba(8,17,28,0.88)); }
.service-card:hover .sc-img{ opacity:1; }
.service-card:hover{ color:var(--ivory); }
.service-card:hover p, .service-card:hover .sc-link{ color:rgba(246,242,233,0.82); }
.sc-index{ font-family:var(--serif); font-size:0.85rem; color:var(--gold); position:relative; z-index:1; }
.service-card h3{ margin-top:18px; position:relative; z-index:1; }
.service-card p{ margin-top:12px; font-size:0.92rem; position:relative; z-index:1; }
.sc-link{ margin-top:22px; font-size:0.82rem; letter-spacing:0.05em; position:relative; z-index:1;
  display:inline-flex; align-items:center; gap:8px; }
.sc-link .arrow{ display:inline-block; transition:transform .35s var(--ease); }
.service-card:hover .sc-link .arrow{ transform:translateX(4px); }

.grid-destinations{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:56px; }
.dest-card{ position:relative; aspect-ratio:3/4; overflow:hidden; }
.dest-card img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.dest-card:hover img{ transform:scale(1.08); }
.dest-card::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,27,42,0) 40%, rgba(8,17,28,0.9) 100%); }
.dest-info{ position:absolute; left:0; right:0; bottom:0; padding:22px; z-index:1; color:var(--ivory); }
.dest-info h3{ color:var(--ivory); }
.dest-info .tags{ font-size:0.78rem; color:rgba(246,242,233,0.7); margin-top:8px; }
.dest-info .explore{ margin-top:14px; font-size:0.78rem; letter-spacing:0.05em; color:var(--gold-soft);
  opacity:0; transform:translateY(6px); transition:opacity .4s var(--ease), transform .4s var(--ease); }
.dest-card:hover .explore{ opacity:1; transform:translateY(0); }

/* ==========================================================================
   Why / values
   ========================================================================== */
.values-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(30px,4vw,60px); margin-top:56px; }
.value-item .value-mark{ font-family:var(--serif); font-style:italic; color:var(--gold); font-size:1.1rem; }
.value-item h3{ margin-top:14px; }
.value-item p{ margin-top:12px; }

/* ==========================================================================
   Process
   ========================================================================== */
.process-list{ margin-top:56px; border-top:1px solid var(--line); }
.process-row{
  display:grid; grid-template-columns:100px 1fr 1.3fr; gap:30px; align-items:start;
  padding:38px 0; border-bottom:1px solid var(--line);
}
.process-num{ font-family:var(--serif); font-size:1.6rem; color:var(--gold); }
.process-row h3{ color:var(--ivory); }

/* ==========================================================================
   Case studies / results
   ========================================================================== */
.case-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-dark); margin-top:50px; }
.case-card{ background:var(--white-soft); padding:36px 30px; display:flex; flex-direction:column; gap:16px; }
.case-tags{ display:flex; gap:8px; flex-wrap:wrap; }
.case-tag{ font-size:0.7rem; letter-spacing:0.04em; padding:5px 10px; border:1px solid var(--line-dark); color:var(--text-on-light-dim); }
.case-card h3{ margin-top:4px; }
.case-row{ display:flex; justify-content:space-between; gap:14px; font-size:0.85rem; padding-top:10px; border-top:1px solid var(--line-dark); }
.case-row .k{ color:var(--text-on-light-dim); }
.case-note{ font-size:0.74rem; font-style:italic; color:var(--blue-mist); }
.filter-row{ display:flex; gap:10px; flex-wrap:wrap; margin-top:34px; }
.filter-chip{
  font-size:0.82rem; padding:9px 18px; border:1px solid var(--line-dark); background:transparent;
  transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.filter-chip.active, .filter-chip:hover{ background:var(--navy); color:var(--ivory); border-color:var(--navy); }

/* ==========================================================================
   Testimonials
   ========================================================================== */
.testi-wrap{ margin-top:50px; position:relative; }
.testi-track{ display:flex; overflow:hidden; }
.testi-slide{ min-width:100%; padding-right:8vw; }
.testi-quote{ font-family:var(--serif); font-size:clamp(1.4rem,2.6vw,2.1rem); line-height:1.35; font-style:italic; color:var(--ivory); }
.testi-meta{ margin-top:24px; font-size:0.85rem; color:var(--text-on-dark-dim); }
.testi-nav{ display:flex; gap:12px; margin-top:36px; }
.testi-dot{ width:8px; height:8px; border-radius:50%; background:rgba(246,242,233,0.25); border:0; padding:0; transition:background .3s; }
.testi-dot.active{ background:var(--gold-soft); }

/* ==========================================================================
   CTA band
   ========================================================================== */
.cta-band{
  position:relative; padding:clamp(90px,12vw,160px) 0; text-align:left; overflow:hidden;
  background:var(--navy); color:var(--ivory);
}
.cta-band h2{ max-width:14ch; }
.cta-band .body-l{ margin-top:20px; }
.cta-band-actions{ margin-top:40px; display:flex; gap:16px; flex-wrap:wrap; }
.magnetic-btn{ position:relative; }

/* ==========================================================================
   Newsletter / Insights
   ========================================================================== */
.insights-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:50px; }
.insight-card .ins-img{ aspect-ratio:16/10; overflow:hidden; }
.insight-card .ins-img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.insight-card:hover .ins-img img{ transform:scale(1.06); }
.insight-card .cat{ font-size:0.75rem; letter-spacing:0.05em; color:var(--gold); margin-top:18px; }
.insight-card h3{ margin-top:10px; }
.insight-card .date{ font-size:0.8rem; color:var(--text-on-light-dim); margin-top:12px; }

.newsletter-band{ display:grid; grid-template-columns:1.1fr 1fr; gap:60px; align-items:center; }
.newsletter-form{ display:flex; gap:0; border-bottom:1px solid var(--line); padding-bottom:14px; }
.newsletter-form input{ flex:1; background:none; border:0; color:var(--ivory); font-size:1rem; padding:8px 0; }
.newsletter-form input::placeholder{ color:var(--text-on-dark-dim); }
.newsletter-form button{ background:none; border:0; color:var(--gold-soft); font-size:0.85rem; letter-spacing:0.05em; }

/* ==========================================================================
   Forms (appointment / contact)
   ========================================================================== */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field.full{ grid-column:1/-1; }
.field label{ font-size:0.8rem; letter-spacing:0.03em; color:var(--text-on-light-dim); }
.field input, .field select, .field textarea{
  background:transparent; border:0; border-bottom:1px solid var(--line-dark); padding:12px 2px;
  color:var(--text-on-light); transition:border-color .3s var(--ease);
}
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--gold); outline:none; }
.field textarea{ resize:vertical; min-height:110px; }
.form-actions{ margin-top:36px; display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.form-note{ font-size:0.8rem; color:var(--text-on-light-dim); }
.form-success{ display:none; padding:20px 0; font-family:var(--serif); font-size:1.3rem; }
.form-success.show{ display:block; }
.form-success.show ~ form{ display:none; }

/* ==========================================================================
   Contact details
   ========================================================================== */
.contact-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(40px,6vw,90px); }
.contact-detail{ padding:26px 0; border-bottom:1px solid var(--line-dark); }
.contact-detail .k{ font-size:0.78rem; letter-spacing:0.05em; color:var(--gold); }
.contact-detail .v{ margin-top:8px; font-family:var(--serif); font-size:1.2rem; }
.map-embed{ width:100%; aspect-ratio:4/3; border:0; filter:grayscale(0.4) contrast(1.05); }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{ background:var(--navy-deep); color:var(--text-on-dark); padding:80px 0 30px; }
.footer-top{ display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:40px; padding-bottom:60px; border-bottom:1px solid var(--line); }
.footer-brand .brand{ color:var(--ivory); }
.footer-brand p{ margin-top:18px; max-width:32ch; }
.footer-col h4{ font-size:0.8rem; letter-spacing:0.05em; color:var(--gold-soft); margin-bottom:18px; font-weight:500; }
.footer-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.footer-col a{ font-size:0.9rem; color:var(--text-on-dark-dim); transition:color .3s; }
.footer-col a:hover{ color:var(--ivory); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:flex-start; gap:20px; padding-top:28px; flex-wrap:wrap; }
.footer-legal{ display:flex; gap:22px; flex-wrap:wrap; }
.footer-legal a{ font-size:0.78rem; color:var(--text-on-dark-dim); }
.footer-disclaimer{ font-size:0.76rem; color:rgba(246,242,233,0.42); max-width:70ch; margin-top:20px; line-height:1.6; }
.footer-copy{ font-size:0.78rem; color:rgba(246,242,233,0.42); }
.footer-social{ display:flex; gap:16px; }
.footer-social a{ font-size:0.82rem; color:var(--text-on-dark-dim); }

/* ==========================================================================
   Page hero (non-home pages)
   ========================================================================== */
.page-hero{ min-height:64vh; display:flex; align-items:flex-end; }
.page-hero .hero-content{ padding-bottom:80px; }

/* ==========================================================================
   Breadcrumb-ish label
   ========================================================================== */
.section-head{ max-width:640px; }
.section-head .eyebrow{ display:block; margin-bottom:16px; }

/* ==========================================================================
   Utility
   ========================================================================== */
.mt-0{ margin-top:0; }
.text-center{ text-align:center; }
.flex-between{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1080px){
  .split{ grid-template-columns:1fr; }
  .split.reverse .split-media{ order:0; }
  .grid-services{ grid-template-columns:1fr 1fr; }
  .grid-destinations{ grid-template-columns:1fr 1fr; }
  .values-grid{ grid-template-columns:1fr 1fr; }
  .case-grid{ grid-template-columns:1fr 1fr; }
  .stats-grid{ grid-template-columns:1fr 1fr; }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .newsletter-band{ grid-template-columns:1fr; }
}
@media (max-width: 760px){
  .nav-links{ display:none; }
  .menu-toggle{ display:flex; }
  .hero-cta{ flex-direction:column; align-items:flex-start; }
  .process-row{ grid-template-columns:1fr; gap:12px; }
  .grid-services{ grid-template-columns:1fr; }
  .grid-destinations{ grid-template-columns:1fr; }
  .values-grid{ grid-template-columns:1fr; }
  .case-grid{ grid-template-columns:1fr; }
  .stats-grid{ grid-template-columns:1fr 1fr; }
  .footer-top{ grid-template-columns:1fr; gap:36px; }
  .form-grid{ grid-template-columns:1fr; }
  .btn{ width:100%; }
  .hero-cta .btn{ width:auto; }
}
