/* ─── RESET ─────────────────────────────── */
*, *::before, *::after {
  margin: 0; padding: 0; box-sizing: border-box;
}

/* ─── VARIABLES ─────────────────────────── */
:root {
  --pink:      #e8196b;
  --pink-d:    #c8004f;
  --pink-lt:   #ffeef5;
  --pink-pale: #fff5f9;
  --org:       #D95318;
  --org-d:     #B8420E;
  --org-pale:  #FFF4EE;
  --green:     #163F26;
  --green-m:   #1E5733;
  --green-l:   #EBF4EF;
  --ink:       #1A1008;
  --mid:       #574030;
  --mute:      #937060;
  --bg:        #F7F3EE;
  --bg2:       #FDFAF6;
  --w:         #FFFFFF;
  --line:      rgba(0,0,0,.07);
  --ff:        'Cormorant Garamond', Georgia, serif;
  --fs:        'Jost', system-ui, sans-serif;
  --r:         1.5rem;
  --rx:        2rem;
  --p1:        var(--pink);
  --t1:        var(--org);
}

html { scroll-behavior: smooth; }

body {
  font-family: var(--fs);
  background: var(--bg);
  color: var(--ink);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

/* ─── SCROLL LOCK (mobile nav open) ─── */
body.nav-active { overflow: hidden; }

/* ─── REVEAL ANIMATIONS ─────────────── */
.rv { opacity:0; transform:translateY(28px); transition:opacity .75s ease, transform .75s ease; }
.rv.on { opacity:1; transform:none; }
.rl { opacity:0; transform:translateX(-28px); transition:opacity .75s ease, transform .75s ease; }
.rl.on { opacity:1; transform:none; }
.rr { opacity:0; transform:translateX(28px); transition:opacity .75s ease, transform .75s ease; }
.rr.on { opacity:1; transform:none; }

/* ─── SHARED TYPOGRAPHY ─────────────── */
.eyebrow {
  display:block; font-size:.68rem; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; margin-bottom:.75rem;
}
.ey-t { color: var(--org); }
.ey-p { color: var(--pink); }
.ey-w { color: rgba(255,255,255,.5); }

.sec-h {
  font-family: var(--ff);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 600; line-height: 1.15; color: var(--ink);
}
.sec-h em { font-style:italic; color: var(--p1); }
.sec-h.wh { color: #fff; }
.sec-h.wh em { color: #FFBE80; }

.sec-p {
  font-size: .9rem; font-weight: 300; line-height: 1.95; color: var(--mute);
}
.sec-p.wh { color: rgba(255,255,255,.58); }
.sec-inner { max-width: 1180px; margin: 0 auto; }

/* ─── BUTTONS ───────────────────────── */
.btn {
  display: inline-flex; align-items: center; gap: .45rem;
  padding: .78rem 1.8rem; border-radius: 3rem;
  font-family: var(--fs); font-size: .84rem; font-weight: 600;
  text-decoration: none; cursor: pointer; border: none;
  transition: all .22s; white-space: nowrap;
}
.b-org  { background:var(--org); color:#fff; box-shadow:0 4px 22px rgba(217,83,24,.32); }
.b-org:hover  { background:var(--org-d); transform:translateY(-2px); box-shadow:0 8px 32px rgba(217,83,24,.4); }
.b-pk   { background:var(--pink); color:#fff; box-shadow:0 4px 22px rgba(232,25,107,.28); }
.b-pk:hover   { background:var(--pink-d); transform:translateY(-2px); }
.b-wa   { background:#22C55E; color:#fff; box-shadow:0 4px 22px rgba(34,197,94,.28); }
.b-wa:hover   { background:#16A34A; transform:translateY(-2px); }
.b-outline { background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.45); }
.b-outline:hover { background:rgba(255,255,255,.12); border-color:#fff; }
.b-whi  { background:#fff; color:var(--org); font-weight:700; }
.b-whi:hover  { background:#FFF4EE; transform:translateY(-2px); }

/* ─── NAVBAR ────────────────────────── */
.site-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 900;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 8.5rem; height: 100px;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 2px 20px rgba(0,0,0,.06);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  transition: box-shadow .3s;
}

/* Logo image */
.nav-logo-wrap { display:flex; align-items:center; text-decoration:none; flex-shrink:0; }
.nav-logo-img  { height:100px; width:auto; max-width:200px; object-fit:contain; display:block; }

/* Text fallback logo */
.nav-logo-text { display:flex; flex-direction:column; line-height:1.2; }
.nlt-1 {
  font-family:'Dancing Script', cursive; font-size:1.2rem; font-weight:700;
  background:linear-gradient(90deg,var(--pink),#c040a0);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
}
.nlt-2 {
  font-family:'Dancing Script', cursive; font-size:.9rem; font-weight:600;
  background:linear-gradient(90deg,#e07010,var(--org));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
}

/* Desktop nav links */
.nav-links {
  display: flex; align-items: center;
  gap: 2rem; list-style: none;
}
.nav-links a {
  font-size: .8rem; font-weight: 500; letter-spacing: .04em;
  color: var(--mid); text-decoration: none;
  position: relative; padding-bottom: 3px;
  transition: color .2s;
}
.nav-links a::after {
  content:''; position:absolute; bottom:0; left:0; right:0;
  height:2px; background:var(--pink); border-radius:2px;
  transform:scaleX(0); transition:transform .3s;
}
.nav-links a:hover,
.nav-links a.active { color:var(--pink); }
.nav-links a:hover::after,
.nav-links a.active::after { transform:scaleX(1); }

/* CTA button in nav */
.nav-cta-btn {
  background:var(--pink) !important;
  color:#fff !important;
  padding:.5rem 1.4rem;
  border-radius:2rem;
  font-weight:600 !important;
  box-shadow:0 4px 16px rgba(232,25,107,.3);
}
.nav-cta-btn::after { display:none !important; }
.nav-cta-btn:hover { background:var(--pink-d) !important; transform:translateY(-1px); }

/* Burger button */
.burger {
  display: none; flex-direction:column; gap:5px;
  background:none; border:none; cursor:pointer;
  padding:6px; border-radius:6px;
}
.burger span {
  display:block; width:22px; height:2px;
  background:var(--ink); border-radius:2px;
  transition:all .3s;
}
.burger-open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.burger-open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.burger-open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ─── FOOTER — LIGHT THEME ──────────── */
.site-footer {
  background: #fff;
  border-top: 1px solid var(--line);
  position: relative;
}

/* Wave */
.foot-wave {
  width:100%; overflow:hidden; line-height:0; margin-bottom:-2px;
  background:var(--bg);
}
.foot-wave svg { display:block; width:100%; height:60px; }

/* ── CTA STRIP ── */
.foot-cta-strip {
  background:linear-gradient(135deg, #fff8f4 0%, #fff5f9 100%);
  border-bottom:1px solid var(--line);
  padding:1.25rem 3.5rem;
}
.foot-cta-inner {
  max-width:1180px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  gap:1.5rem; flex-wrap:wrap;
}
.fcs-left {}
.fcs-title {
  display:block; font-family:var(--ff); font-size:1.1rem;
  font-weight:700; color:var(--ink); margin-bottom:.15rem;
}
.fcs-sub { font-size:.75rem; color:var(--mute); font-weight:300; }
.fcs-btns { display:flex; gap:.65rem; flex-wrap:wrap; }
.fcs-btn {
  display:inline-flex; align-items:center; gap:6px;
  padding:.6rem 1.25rem; border-radius:50px;
  font-size:.78rem; font-weight:600; text-decoration:none;
  transition:all .25s; white-space:nowrap;
}
.fcs-tiffin { background:var(--org-pale); color:var(--org); border:1.5px solid rgba(217,83,24,.2); }
.fcs-tiffin:hover { background:var(--org); color:#fff; transform:translateY(-2px); }
.fcs-pg { background:var(--pink-lt); color:var(--pink); border:1.5px solid rgba(232,25,107,.2); }
.fcs-pg:hover { background:var(--pink); color:#fff; transform:translateY(-2px); }
.fcs-call { background:var(--ink); color:#fff; border:1.5px solid var(--ink); }
.fcs-call:hover { background:#2d1f10; transform:translateY(-2px); }

/* ── MAIN FOOTER BODY ── */
.foot-inner { max-width:1250px; margin:0 auto; padding:0 3.5rem; }

.foot-top {
  display:grid; grid-template-columns:1.9fr 1fr 1fr 1.2fr;
  gap:3rem; padding:3rem 0 2.5rem;
  border-bottom:1px solid var(--line);
}

/* Brand column */
.foot-logo-link { display:inline-flex; align-items:center; margin-bottom:1rem; text-decoration:none; }
.foot-logo { height:100px; width:auto; max-width:200px; object-fit:contain; display:block; }
.foot-logo-text { display:flex; flex-direction:column; line-height:1.2; }
.flt-1 {
  font-family:'Dancing Script',cursive; font-size:1.2rem; font-weight:700;
  background:linear-gradient(90deg,var(--pink),#c040a0);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
}
.flt-2 {
  font-family:'Dancing Script',cursive; font-size:.92rem; font-weight:600;
  background:linear-gradient(90deg,#e07010,var(--org));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
}
.fabout {
  font-size:.9rem; font-weight:300; color:var(--mute);
  line-height:1.85; max-width:260px; margin-bottom:1.2rem;
}

/* Trust badges */
.foot-trust {
  display:grid; grid-template-columns:1fr 1fr;
  gap:.5rem; margin-bottom:1.2rem;
}
.ft-badge {
  display:flex; align-items:center; gap:.5rem;
  background:var(--bg); border:1px solid var(--line);
  border-radius:.6rem; padding:.4rem .7rem;
  font-size:.7rem; font-weight:500; color:var(--mid);
  transition:all .2s;
}
.ft-badge:hover { border-color:var(--pink); background:var(--pink-lt); color:var(--pink); }
.ftb-icon { font-size:.85rem; }

/* Social buttons */
.foot-social { display:flex; gap:.6rem; flex-wrap:wrap; }
.fs-btn {
  display:inline-flex; align-items:center; gap:6px;
  padding:.5rem 1.1rem; border-radius:50px;
  font-size:.75rem; font-weight:600; text-decoration:none;
  border:1.5px solid transparent; transition:all .25s;
}
.fs-wa { background:#25D366; color:#fff; border-color:#25D366; }
.fs-wa:hover { background:#16A34A; border-color:#16A34A; transform:translateY(-2px); }
.fs-call { background:var(--bg); color:var(--mid); border-color:var(--line); }
.fs-call:hover { border-color:var(--org); color:var(--org); background:var(--org-pale); transform:translateY(-2px); }

/* Column titles */
.fcol-title {
  font-size:.72rem; font-weight:700; letter-spacing:.2em;
  text-transform:uppercase; color:var(--mid);
  margin-bottom:1rem; padding-bottom:.55rem;
  border-bottom:2px solid var(--line); display:flex; align-items:center; gap:.4rem;
}
.fcol-orange { color:var(--org); border-bottom-color:rgba(217,83,24,.2); }
.fcol-pink   { color:var(--pink); border-bottom-color:rgba(232,25,107,.2); }

/* Links */
.flinks { list-style:none; display:flex; flex-direction:column; gap:.45rem; margin-bottom:1.1rem; }
.flinks a {
  font-size:.9rem; font-weight:400; color:var(--mute);
  text-decoration:none; transition:all .22s;
  display:flex; align-items:center; gap:5px; padding:.15rem 0;
}
.flinks a:hover { color:var(--pink); padding-left:5px; }

/* Timing mini cards */
.foot-timing {
  background:var(--bg); border:1px solid var(--line);
  border-radius:.85rem; padding:.9rem 1rem; margin-top:.5rem;
}
.ft-timing-title {
  font-size:.6rem; font-weight:700; letter-spacing:.15em;
  text-transform:uppercase; color:var(--mute); margin-bottom:.6rem;
}
.ft-timing-row {
  display:flex; align-items:center; gap:.6rem;
  font-size:.76rem; font-weight:400; color:var(--mid);
  padding:.25rem 0; border-bottom:1px solid var(--line);
}
.ft-timing-row:last-child { border-bottom:none; }

/* Map card */
.foot-map-card {
  background:linear-gradient(135deg, #1E5733, #163F26);
  border-radius:1rem; padding:1.1rem 1.25rem;
  margin-bottom:1rem;
}
.fmc-label { font-size:.6rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:rgba(255,255,255,.45); margin-bottom:.2rem; }
.fmc-title { font-family:var(--ff); font-size:1rem; font-weight:600; color:#fff; margin-bottom:.2rem; }
.fmc-addr  { font-size:.74rem; font-weight:300; color:rgba(255,255,255,.6); line-height:1.55; margin-bottom:.75rem; }
.fmc-btn {
  display:inline-flex; align-items:center; gap:.35rem;
  background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.2);
  padding:.4rem .9rem; border-radius:50px; font-size:.7rem; font-weight:600;
  text-decoration:none; transition:all .25s;
}
.fmc-btn:hover { background:rgba(255,255,255,.22); border-color:rgba(255,255,255,.4); }

/* Contact list */
.foot-contact-list { display:flex; flex-direction:column; gap:.6rem; }
.frow { display:flex; align-items:flex-start; gap:.65rem; }
.fi-ico { font-size:.9rem; flex-shrink:0; margin-top:.15rem; }
.fi-label { font-size:0.6rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--mute); margin-bottom:.1rem; }
.fi-val { font-size:.8rem; font-weight:500; color:var(--ink); text-decoration:none; transition:color .2s; }
a.fi-val:hover { color:var(--org); }

/* Bottom bar */
.foot-bottom {
  display:flex; align-items:center; justify-content:space-between;
  padding:1.1rem 0; flex-wrap:wrap; gap:.5rem;
}
.fcopy { font-size:.8rem; color:var(--mute); }
.flove { font-size:.8rem; color:var(--mute); }

/* ─── SHARED GALLERY ────────────────── */
.g-panel { display:none; }
.g-panel.active {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1rem;
}
.g-item {
  border-radius:var(--r); overflow:hidden;
  position:relative; aspect-ratio:4/3;
  cursor:pointer; transition:transform .3s;
}
.g-item:hover { transform:scale(1.02); z-index:2; }
.g-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.g-item:hover img { transform:scale(1.08); }
.g-item-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 60%);
  opacity:0; transition:opacity .3s;
  display:flex; align-items:flex-end; padding:1.25rem;
}
.g-item:hover .g-item-overlay { opacity:1; }
.g-item-label { font-size:.82rem; font-weight:600; color:#fff; }

/* ─── KEYFRAMES ─────────────────────── */
@keyframes fadeUp {
  from { opacity:0; transform:translateY(20px); }
  to   { opacity:1; transform:none; }
}

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */

/* ── Tablet (≤1100px) ── */
@media (max-width: 1100px) {
  .site-nav  { padding-left:2rem; padding-right:2rem; }
  .foot-inner { padding-left:50px; padding-right:50px; }
  .foot-cta-strip { padding-left:2rem; padding-right:2rem; }

  .foot-top { grid-template-columns:1fr 1fr; gap:2.5rem; }
  .foot-brand { grid-column:0/-1; }
  .fabout { max-width:100%; }
  .foot-trust { grid-template-columns:repeat(4,1fr); }
  
}

/* Tablet */
@media (max-width: 1024px) {
  .nav-logo-img {
    height: 80px;
    max-width: 170px;
  }

  .site-nav { 
    padding:0 1.25rem; 
    height:80px; 
  }
    .foot-brand {
        grid-column: 0/-1;
    }

    .foot-inner { padding-left:50px; padding-right:50px; }
}

/* ── Mobile (≤768px) ── */
@media (max-width: 767px) {
  .site-nav { 
    padding:0 1.25rem; 
    height:80px; 
  }

  .nav-logo-img {
    height: 60px;
    max-width: 140px;
  }
  .burger { display:flex; }

  .nav-links {
    display:none;
    position:fixed; top:64px; left:0; right:0;
    flex-direction:column; align-items:stretch;
    gap:0; background:rgba(255,255,255,.98);
    border-bottom:2px solid rgba(232,25,107,.15);
    box-shadow:0 8px 32px rgba(0,0,0,.1);
    padding:1rem 1.5rem 1.5rem;
    backdrop-filter:blur(20px);
    max-height:calc(100vh - 64px);
    overflow-y:auto; z-index:899;
  }
  .nav-links.nav-open { display:flex; }
  .nav-links li { border-bottom:1px solid rgba(0,0,0,.05); }
  .nav-links li:last-child { border-bottom:none; padding-top:.5rem; }
  .nav-links a { display:block; padding:.9rem .5rem; font-size:.92rem; color:var(--ink); }
  .nav-links a::after { display:none; }
  .nav-cta-btn { display:block; text-align:center; margin-top:.25rem; padding:.8rem 1.4rem; border-radius:.75rem !important; }

  /* Footer */
  .foot-cta-strip { padding:1rem 1.25rem; }
  .foot-cta-inner { flex-direction:column; align-items:flex-start; gap:1rem; }
  .fcs-btns { width:100%; }
  .fcs-btn { flex:1; justify-content:center; }

  .foot-inner { padding-left:30px; padding-right:30px; }
  .foot-top { grid-template-columns:1fr 1fr; gap:2rem; padding:3rem 0 1.5rem; }
  .foot-brand { grid-column:1/-1; }
  .foot-trust { grid-template-columns:1fr 1fr; }
  .foot-bottom { flex-direction:column; gap:.4rem; text-align:center; }
  .foot-wave svg { height:40px; }

  .g-panel.active { grid-template-columns:1fr 1fr; gap:.6rem; }
}

/* ── Small Mobile (≤480px) ── */
@media (max-width: 480px) {
  .g-panel.active { grid-template-columns:1fr; }
  .foot-top { grid-template-columns:1fr; }
  .foot-trust { grid-template-columns:1fr 1fr; }
  .foot-social { flex-direction:column; gap:.5rem; }
  .fs-btn { justify-content:center; }
  .fcs-btns { flex-direction:column; }
}