/* ==========================================================================
   MONDE TEPEÖREN — landing page
   Official brand palette (Pantone-matched): Gece/Monde Laciverti, Çelik
   Mavi, Sis Mavisi, Monde Zemini, Duman, Bakır. Supersedes the earlier
   values sampled by eye from the brochure PDF.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,300;0,6..72,400;0,6..72,500;0,6..72,600;0,6..72,700;1,6..72,400;1,6..72,500&family=Archivo:wght@400;500;600;700;800;900&display=swap');

:root{
  --navy: #0C2340;        /* Monde Laciverti — ANA · P 289 C — logo, tabela, kurumsal zemin */
  --navy-deep: #041E42;   /* Gece Laciverti · P 282 C — en koyu zemin */
  --navy-soft: #3E5C76;   /* Çelik Mavi · P 5405 C — ikon, çizgi, ara başlık */
  --terracotta: #A9714B;      /* Bakır — Derin · P 7592 C */
  --terracotta-light: #C47E4F;/* Bakır — Işık */
  --terracotta-dim: #855C3E;  /* Bakır'ın koyulaştırılmış hover tonu */
  --cream: #FAF8F3;       /* Monde Zemini — marka zemini, kâğıt beyazı */
  --cream-dim: #DFE5EC;   /* Sis Mavisi · P 649 C — açık zemin, doküman arka planı */
  --cream-line: #E4E0D7;  /* Duman'dan türetilmiş yumuşak ayraç tonu */
  --ink: #041E42;         /* Gece Laciverti — birincil metin */
  --ink-soft: #5B6472;    /* Duman ailesinden, okunabilir ikincil metin tonu */
  --smoke: #A8A29A;       /* Duman · P 415 C — ikincil/teknik etiketler için */
  --white: #FFFFFF;

  --serif: 'Newsreader', 'Iowan Old Style', Georgia, serif; /* stand-in for Freight Big Pro Book until licensed files/kit are provided */
  --sans: 'Archivo', 'Helvetica Neue', Arial, sans-serif;

  --container: 1280px;
  --gutter: clamp(1.5rem, 4vw, 4rem);
  --radius: 2px;

  --ease: cubic-bezier(.4,0,.2,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--sans);
  background: var(--cream);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p{ margin:0; }
button{ font-family:inherit; cursor:pointer; }
input, textarea{ font-family:inherit; font-size:1rem; }

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

/* ---------- typography helpers ---------- */
.eyebrow{
  font-family: var(--sans);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .28em;
  text-transform: uppercase;
}
.eyebrow.on-dark{ color: var(--terracotta-light); }
.eyebrow.on-light{ color: var(--terracotta-dim); }

.section-index{
  font-family: var(--serif);
  font-style: italic;
  font-size: 1rem;
  color: var(--terracotta);
  opacity:.9;
}

h1, .h1{
  font-family: var(--serif);
  font-weight: 500;
  line-height: 1.04;
  letter-spacing: -.01em;
}
h2, .h2{
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1.08;
  letter-spacing: -.01em;
}
h3, .h3{
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(1.3rem, 2vw, 1.7rem);
  line-height: 1.2;
}
.lede{
  font-size: clamp(1.05rem, 1.4vw, 1.25rem);
  color: var(--ink-soft);
  line-height: 1.7;
  max-width: 46ch;
}
.pull-quote{
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.5rem, 3vw, 2.4rem);
  line-height: 1.35;
  letter-spacing: -.005em;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.6em;
  font-family: var(--sans);
  font-weight: 600;
  font-size: .82rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 1.05em 2em;
  border-radius: var(--radius);
  border: 1px solid transparent;
  transition: transform .45s var(--ease-out), background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease);
  white-space: nowrap;
}
.btn svg{ width:14px; height:14px; transition: transform .35s var(--ease-out); flex:none; }
.btn:hover svg{ transform: translateX(4px); }
.btn:hover{ transform: translateY(-2px); }

.btn-primary{ background: var(--terracotta); color: var(--cream); }
.btn-primary:hover{ background: var(--terracotta-dim); }

.btn-ghost-dark{ border-color: rgba(253,248,235,.4); color: var(--cream); }
.btn-ghost-dark:hover{ border-color: var(--cream); background: rgba(253,248,235,.08); }

.btn-ghost-light{ border-color: rgba(23,36,58,.25); color: var(--navy); }
.btn-ghost-light:hover{ border-color: var(--navy); background: rgba(23,36,58,.05); }

.btn-line{
  font-weight:600; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  padding-bottom: .3em;
  position: relative;
  display:inline-block;
}
.btn-line::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:1px;
  background: currentColor; transform-origin: left;
  transition: transform .45s var(--ease-out);
}
.btn-line:hover::after{ transform: scaleX(1.08); }

/* ---------- header ---------- */
.site-header{
  position: fixed; top:0; left:0; right:0; z-index: 200;
  padding: 1.6rem 0;
  transition: background .5s var(--ease), padding .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
  border-bottom: 1px solid transparent;
}
.site-header.solid{
  background: rgba(253,248,235,.92);
  backdrop-filter: blur(10px);
  padding: 1.05rem 0;
  border-color: var(--cream-line);
}
.site-header .container{ display:flex; align-items:center; justify-content:space-between; gap:2rem; }

.logo{ display:flex; align-items:center; }
.logo-mark{
  display:block; height: 22px; width:auto;
  color: var(--cream); transition: color .5s var(--ease);
}
.logo-mark .lm-primary{ fill: currentColor; }
.logo-mark .lm-accent{ fill: var(--terracotta-light); transition: fill .5s var(--ease); }
.site-header.solid .logo-mark{ color: var(--navy); }
.site-header.solid .logo-mark .lm-accent{ fill: var(--terracotta); }

.main-nav{ display:flex; align-items:center; gap:2.4rem; }
.main-nav a{
  font-size: .8rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color: rgba(253,248,235,.85);
  position:relative; padding-bottom:.35em;
  transition: color .5s var(--ease);
}
.site-header.solid .main-nav a{ color: var(--navy); }
.main-nav a::after{
  content:''; position:absolute; left:0; right:100%; bottom:0; height:1px;
  background: currentColor; transition: right .35s var(--ease-out);
}
.main-nav a:hover::after{ right:0; }

.header-cta{ display:flex; align-items:center; gap:1.6rem; }
.header-phone{
  display:flex; align-items:center; justify-content:center;
  width: 2.4rem; height: 2.4rem; border-radius:50%;
  color: var(--cream); transition: color .5s var(--ease), background .3s var(--ease);
}
.header-phone:hover{ background: rgba(253,248,235,.1); }
.site-header.solid .header-phone{ color: var(--navy); }
.site-header.solid .header-phone:hover{ background: rgba(23,36,58,.06); }
.header-phone svg{ width:19px; height:19px; stroke: var(--terracotta-light); }
.site-header.solid .header-phone svg{ stroke: var(--terracotta); }

.nav-toggle{
  display:none; flex-direction:column; gap:5px; background:none; border:none; padding:.4rem; z-index:210;
}
.nav-toggle span{ width:24px; height:2px; background: var(--cream); transition: all .35s var(--ease); }
.site-header.solid .nav-toggle span{ background: var(--navy); }
.nav-toggle.open span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

/* ---------- hero ---------- */
.hero{
  position:relative; height:100vh; min-height:640px;
  display:flex; align-items:flex-end;
  color: var(--cream);
  overflow:hidden;
}
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media img{
  width:100%; height:100%; object-fit:cover; object-position:center 62%;
  transform: scale(1.08);
  animation: hero-settle 2.4s var(--ease-out) forwards;
}
@keyframes hero-settle{ to{ transform: scale(1); } }
.hero-media::after{
  content:'';
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(13,20,32,.55) 0%, rgba(13,20,32,.12) 32%, rgba(13,20,32,.35) 66%, rgba(13,20,32,.92) 100%),
    linear-gradient(90deg, rgba(13,20,32,.5) 0%, rgba(13,20,32,0) 40%);
}
.hero-content{
  position:relative; z-index:2; width:100%;
  padding-top: 6.5rem;
  padding-bottom: 8rem;
}
.hero-eyebrow{ margin-bottom:1.4rem; }
.hero h1{ font-size: clamp(2.5rem, 5.6vw, 4.75rem); max-width: 20ch; line-height:1.08; }
.hero h1 em{ color: var(--terracotta-light); font-style:italic; }
.hero-sub{
  margin-top: 1.4rem; max-width: 34ch;
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  color: rgba(253,248,235,.86);
  font-weight:400;
}
.hero-actions{ display:flex; gap:1.1rem; flex-wrap:wrap; margin-top: 2.1rem; }

.hero-scroll{
  position:absolute; right: var(--gutter); bottom: 2.4rem; z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:.7rem;
  color: rgba(253,248,235,.7);
}
.hero-scroll span{ font-size:.68rem; letter-spacing:.3em; text-transform:uppercase; writing-mode: vertical-rl; }
.hero-scroll .dot{ width:1px; height:2.6rem; background: rgba(253,248,235,.5); position:relative; overflow:hidden; }
.hero-scroll .dot::after{
  content:''; position:absolute; top:-100%; left:0; width:100%; height:100%; background: var(--terracotta-light);
  animation: scrollline 2.2s ease-in-out infinite;
}
@keyframes scrollline{ 0%{ top:-100%; } 60%{ top:100%; } 100%{ top:100%; } }

/* stat strip overlapping hero/next section boundary */
.hero-stats{
  position:relative; z-index: 5;
  margin: -4rem var(--gutter) 0;
}
.hero-stats-inner{
  max-width: calc(var(--container) - 2 * var(--gutter));
  margin:0 auto;
  background: var(--navy);
  border: 1px solid rgba(253,248,235,.1);
  display:grid; grid-template-columns: repeat(4, 1fr);
  box-shadow: 0 30px 60px -20px rgba(13,20,32,.45);
}
.stat{
  padding: 1.9rem 1.6rem;
  border-right: 1px solid rgba(253,248,235,.12);
  text-align:center;
}
.stat:last-child{ border-right:none; }
.stat .num{ font-family: var(--serif); font-size: clamp(1.5rem, 2.4vw, 2.1rem); color: var(--cream); font-style:italic; }
.stat .label{ margin-top:.4rem; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color: rgba(253,248,235,.6); }

/* ---------- generic section rhythm ---------- */
section{ position:relative; }
.section-pad{ padding: 11rem 0 7rem; }
.section-pad-tight{ padding: 7rem 0; }
.section-head{
  display:flex; justify-content:space-between; align-items:flex-end; gap:3rem;
  margin-bottom: 4rem; flex-wrap:wrap;
}
.section-head .heading-block{ max-width: 640px; }
.section-head .eyebrow{ margin-bottom: 1.1rem; display:block; }

.bg-cream{ background: var(--cream); }
.bg-cream-dim{ background: var(--cream-dim); }
.bg-navy{ background: var(--navy); color: var(--cream); }
.bg-navy .ink-soft-on-navy{ color: rgba(253,248,235,.7); }

/* ---------- intro / manifesto ---------- */
.intro-grid{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  max-width: 1040px; margin: 0 auto; gap: 3.5rem;
}
.intro-quote-mark{ font-family: var(--serif); font-size:4rem; color: var(--terracotta); line-height:1; font-style:italic; }
.intro-media{ position:relative; width:100%; max-width: 680px; }
.intro-media img{ width:100%; border-radius: var(--radius); }
.intro-text{ display:flex; flex-direction:column; align-items:center; }
.intro-text > * + *{ margin-top:1.8rem; }
.intro-text .lede{ max-width: 680px; margin-left:auto; margin-right:auto; }

/* ---------- alternating feature rows (mimari) ---------- */
.feature-row{
  display:grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,6rem);
  align-items:center;
  padding: 5rem 0;
}
.feature-row:not(:last-child){ border-bottom: 1px solid var(--cream-line); }
.feature-row.reverse .fr-media{ order:2; }
.feature-row.reverse .fr-text{ order:1; }
.fr-media{ position:relative; overflow:hidden; border-radius: var(--radius); aspect-ratio: 4/3.1; }
.fr-media img{ width:100%; height:100%; object-fit:cover; transition: transform 1.2s var(--ease-out); }
.fr-media:hover img{ transform: scale(1.06); }
.fr-index{ font-family:var(--serif); font-style:italic; color:var(--terracotta); font-size:1.05rem; margin-bottom:1rem; display:block; }
.fr-text .lede{ margin-top:1.2rem; max-width:42ch; }
.fr-taglist{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:1.6rem; }
.fr-taglist span{
  font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; font-weight:600;
  padding:.5em .9em; border:1px solid var(--cream-line); color: var(--ink-soft); border-radius: var(--radius);
}

/* ---------- lifestyle section ---------- */
.lifestyle-wrap{ display:grid; grid-template-columns: 1.3fr 1fr; gap: 1rem; }
.lifestyle-hero{ position:relative; overflow:hidden; border-radius: var(--radius); min-height: 460px; }
.lifestyle-hero img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.lifestyle-hero .overlay{
  position:relative; z-index:1; height:100%; display:flex; align-items:flex-end; padding: 2.4rem;
  background: linear-gradient(0deg, rgba(13,20,32,.75) 0%, rgba(13,20,32,0) 55%);
}
.lifestyle-hero .overlay p{ color: var(--cream); max-width: 30ch; }
.lifestyle-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.lifestyle-grid figure{ position:relative; overflow:hidden; border-radius: var(--radius); margin:0; aspect-ratio: 1/1; }
.lifestyle-grid img{ width:100%; height:100%; object-fit:cover; transition: transform .8s var(--ease-out); }
.lifestyle-grid figure:hover img{ transform: scale(1.08); }
.lifestyle-grid figcaption{
  position:absolute; left:0; right:0; bottom:0; padding: .9rem 1.1rem;
  font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700; color:#fff;
  background: linear-gradient(0deg, rgba(13,20,32,.75), rgba(13,20,32,0));
}

/* ---------- interiors gallery ---------- */
.gallery{
  display:grid; grid-template-columns: repeat(6,1fr); grid-auto-rows: 12vw; gap: .9rem;
}
.gallery figure{ position:relative; margin:0; overflow:hidden; border-radius: var(--radius); }
.gallery img{ width:100%; height:100%; object-fit:cover; transition: transform .9s var(--ease-out); }
.gallery figure:hover img{ transform: scale(1.06); }
.gallery .g1{ grid-column: span 4; grid-row: span 2; }
.gallery .g2{ grid-column: span 2; grid-row: span 2; }
.gallery .g3{ grid-column: span 2; grid-row: span 2; }
.gallery .g4{ grid-column: span 2; grid-row: span 2; }
.gallery .g5{ grid-column: span 2; grid-row: span 2; }

/* ---------- villa plans ---------- */
.plans-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.plan-card{
  background: var(--navy-soft); border: 1px solid rgba(253,248,235,.12);
  padding: 2.6rem; border-radius: var(--radius);
  display:flex; flex-direction:column; height:100%;
}
.plan-card .type{ font-family:var(--serif); font-size:2.2rem; font-style:italic; color:var(--cream); }
.plan-card .type small{ display:block; font-family:var(--sans); font-style:normal; font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color: var(--terracotta-light); margin-top:.6rem; }
.plan-meta{ display:flex; gap:2.4rem; margin: 1.8rem 0; padding: 1.6rem 0; border-top:1px solid rgba(253,248,235,.14); border-bottom:1px solid rgba(253,248,235,.14); }
.plan-meta div .n{ font-family:var(--serif); font-size:1.5rem; color:var(--cream); }
.plan-meta div .l{ font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color: rgba(253,248,235,.55); margin-top:.3rem; }
.plan-card img{
  border-radius: var(--radius); margin: .4rem 0 1.8rem;
  width:100%; height: 260px; object-fit: cover; object-position: center;
}
.plan-features{ display:grid; grid-template-columns: 1fr 1fr; gap: .7rem 1.2rem; margin-bottom: 2rem; }
.plan-features li{ font-size:.86rem; color: rgba(253,248,235,.82); display:flex; align-items:baseline; gap:.6em; }
.plan-features li::before{ content:'—'; color: var(--terracotta-light); }
.plan-card .btn{ margin-top:auto; align-self:flex-start; }

/* ---------- site plan / master plan ---------- */
.masterplan{ position:relative; }
.masterplan img{ width:100%; }
.masterplan-caption{
  position:absolute; bottom: 2.6rem; z-index:2;
  left: max(var(--gutter), calc((100% - var(--container)) / 2 + var(--gutter)));
  max-width: 30rem; color:#fff;
}
.masterplan::before{
  content:''; position:absolute; inset:0; z-index:1;
  background: linear-gradient(0deg, rgba(13,20,32,.85) 0%, rgba(13,20,32,.05) 45%);
}

/* ---------- location ---------- */
.location-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,5rem); align-items:center; }
.location-media{ position:relative; border-radius: var(--radius); overflow:hidden; aspect-ratio: 4/3.4; }
.location-media img{ width:100%; height:100%; object-fit:cover; }
.landmark-list{ margin-top: 2.2rem; display:flex; flex-direction:column; gap: 1.1rem; }
.landmark-list li{
  display:flex; align-items:flex-start; gap:1rem; padding-bottom:1.1rem; border-bottom: 1px solid var(--cream-line);
  font-size:.98rem;
}
.landmark-list li:last-child{ border-bottom:none; padding-bottom:0; }
.landmark-list .ico{ flex:none; width:1.9rem; height:1.9rem; border-radius:50%; background: var(--navy); display:flex; align-items:center; justify-content:center; }
.landmark-list .ico svg{ width:.95rem; height:.95rem; stroke: var(--terracotta-light); }
.landmark-list strong{ display:block; font-family:var(--serif); font-size:1.02rem; font-weight:500; }
.landmark-list span{ color: var(--ink-soft); font-size:.88rem; }

/* ---------- partners ---------- */
.partners-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 3rem; margin-top: 3rem; }
.partner-card{ padding-top: 2rem; border-top: 2px solid var(--navy); }
.partner-card .pname{ font-family: var(--serif); font-size:1.5rem; margin-bottom:1rem; }
.partner-card p{ color: var(--ink-soft); font-size:.96rem; }

/* ---------- etiler teaser ---------- */
.teaser{ background: var(--navy-deep); color: var(--cream); border-bottom: 1px solid rgba(253,248,235,.12); }
.teaser .container{ padding-top:3.2rem; padding-bottom:3.2rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.teaser-left{ display:flex; align-items:center; gap:1.4rem; }
.teaser-badge{
  font-family:var(--serif); font-style:italic; color: var(--terracotta-light); font-size:.72rem;
  border:1px solid rgba(253,248,235,.25); padding:.3em .8em; border-radius:2em;
  display:inline-block; vertical-align:middle; margin-left:.8em;
}
.teaser h4{ font-family:var(--serif); font-size:1.4rem; font-weight:500; }
.teaser p{ color: rgba(253,248,235,.6); font-size:.88rem; margin-top:.2rem; }

/* ---------- contact ---------- */
.contact{ position:relative; color:#fff; overflow:hidden; }
.contact-bg{ position:absolute; inset:0; z-index:0; }
.contact-bg img{ width:100%; height:100%; object-fit:cover; }
.contact-bg::after{ content:''; position:absolute; inset:0; background: linear-gradient(100deg, rgba(13,20,32,.95) 0%, rgba(13,20,32,.88) 42%, rgba(13,20,32,.5) 100%); }
.contact-grid{ position:relative; z-index:2; display:grid; grid-template-columns: 1fr 1.1fr; gap: clamp(2rem,6vw,6rem); align-items:start; }
.contact-info > * + *{ margin-top: 1.6rem; }
.contact-direct{ margin-top: 2.6rem; display:flex; flex-direction:column; gap:1.1rem; }
.contact-direct a{ display:flex; align-items:center; gap:.9rem; font-family:var(--serif); font-size:1.15rem; font-style:italic; }
.contact-direct a svg{ width:1.1rem; height:1.1rem; stroke: var(--terracotta-light); flex:none; }
.contact-direct a:hover{ color: var(--terracotta-light); }

.form-card{ background: rgba(253,248,235,.06); border:1px solid rgba(253,248,235,.18); backdrop-filter: blur(6px); padding: clamp(1.6rem,3vw,2.6rem); border-radius: var(--radius); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.field{ margin-bottom:1.1rem; }
.field label{ display:block; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color: rgba(253,248,235,.6); margin-bottom:.55rem; }
.field input, .field textarea{
  width:100%; background: rgba(253,248,235,.04); border:1px solid rgba(253,248,235,.22); color:#fff;
  padding:.85em 1em; border-radius: var(--radius); transition: border-color .3s var(--ease), background .3s var(--ease);
}
.field input::placeholder, .field textarea::placeholder{ color: rgba(253,248,235,.35); }
.field input:focus, .field textarea:focus{ outline:none; border-color: var(--terracotta-light); background: rgba(253,248,235,.08); }
.field textarea{ resize: vertical; min-height:90px; }
.consent{ display:flex; align-items:flex-start; gap:.7rem; margin-bottom:1.5rem; }
.consent input{ margin-top:.3rem; accent-color: var(--terracotta); flex:none; }
.consent label{ font-size:.8rem; color: rgba(253,248,235,.65); line-height:1.5; }
.form-status{ margin-top:1rem; font-size:.85rem; color: var(--terracotta-light); min-height:1.2em; }

/* ---------- footer ---------- */
.site-footer{ background: var(--navy-deep); color: rgba(253,248,235,.55); padding: 4.5rem 0 2rem; }
.footer-top{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap:3rem; padding-bottom:3.5rem; border-bottom:1px solid rgba(253,248,235,.1); }
.footer-brand .logo-mark{ height: 28px; color:#fff; }
.footer-brand p{ margin-top:1.4rem; font-size:.88rem; max-width:28ch; line-height:1.7; }
.footer-col h5{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color: rgba(253,248,235,.4); margin-bottom:1.3rem; }
.footer-col ul{ display:flex; flex-direction:column; gap:.85rem; }
.footer-col a{ font-size:.9rem; transition: color .3s var(--ease); }
.footer-col a:hover{ color:#fff; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:2rem; font-size:.78rem; flex-wrap:wrap; gap:1rem; }

/* ---------- scroll reveal ---------- */
.reveal{ opacity:0; transform: translateY(28px); transition: opacity .9s var(--ease-out), transform .9s var(--ease-out); }
.reveal.in{ opacity:1; transform: translateY(0); }
.reveal-stagger.in > *{ transition-delay: calc(var(--i, 0) * 90ms); }

/* ---------- whatsapp float ---------- */
.wa-float{
  position: fixed; right: 1.6rem; bottom: 1.6rem; z-index: 150;
  width: 3.4rem; height:3.4rem; border-radius:50%; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center; box-shadow: 0 10px 30px -8px rgba(0,0,0,.5);
  transition: transform .35s var(--ease-out);
}
.wa-float:hover{ transform: scale(1.08); }
.wa-float svg{ width:1.6rem; height:1.6rem; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 980px){
  .main-nav{ display:none; }
  .header-phone{ display:none; }
  .nav-toggle{ display:flex; }

  .location-grid{ grid-template-columns: 1fr; gap: 2.5rem; }
  .feature-row, .feature-row.reverse{ grid-template-columns: 1fr; }
  .feature-row.reverse .fr-media, .feature-row.reverse .fr-text{ order:initial; }
  .lifestyle-wrap{ grid-template-columns: 1fr; }
  .lifestyle-grid{ grid-template-columns: 1fr 1fr; }
  .gallery{ grid-template-columns: repeat(2,1fr); grid-auto-rows: 34vw; }
  .gallery .g1,.gallery .g2,.gallery .g3,.gallery .g4,.gallery .g5{ grid-column: span 1; grid-row: span 1; }
  .gallery .g1{ grid-column: span 2; grid-row: span 2; }
  .plans-grid{ grid-template-columns: 1fr; }
  .partners-grid{ grid-template-columns: 1fr; }
  .contact-grid{ grid-template-columns: 1fr; }
  .footer-top{ grid-template-columns: 1fr 1fr; gap: 2.5rem; }
  .hero-stats-inner{ grid-template-columns: 1fr 1fr; }
  .stat:nth-child(2){ border-right:none; }
}

@media (max-width: 640px){
  .section-pad{ padding: 7rem 0 4rem; }
  .form-row{ grid-template-columns: 1fr; }
  .footer-top{ grid-template-columns: 1fr; gap:2.2rem; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
  .hero-stats-inner{ grid-template-columns: 1fr 1fr; }
  .plan-meta{ gap:1.4rem; flex-wrap:wrap; }
  .plan-features{ grid-template-columns: 1fr; }
  .teaser .container{ flex-direction:column; align-items:flex-start; }
}

/* mobile nav drawer */
.mobile-nav{
  position: fixed; inset:0; z-index:190; background: var(--navy);
  display:flex; flex-direction:column; justify-content:center; padding: 2rem var(--gutter);
  transform: translateY(-100%); transition: transform .5s var(--ease-out);
}
.mobile-nav.open{ transform: translateY(0); }
.mobile-nav a{
  font-family: var(--sans); font-weight:700; font-size:1.6rem; letter-spacing:.04em; text-transform:uppercase;
  color: var(--cream); padding: .6rem 0;
}
.mobile-nav .mn-phone{ margin-top:2rem; color: var(--terracotta-light); font-weight:600; letter-spacing:.05em; }
