:root {
  --cream: #FAF7F2;
  --warm-white: #FFFDF9;
  --charcoal: #2C2620;
  --charcoal-mid: #4A4038;
  --gold: #B8975A;
  --gold-light: #D4B483;
  --text-body: #3C3028;
  --text-muted: #7A6E64;
  --section-gap: 120px;
  --font-display: 'Cormorant Garamond', serif;
  --font-body: 'Jost', sans-serif;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:var(--font-body); background:var(--cream); color:var(--text-body); font-weight:300; line-height:1.7; overflow-x:hidden; }

/* ── NAV ── */
nav { position:fixed; top:0; left:0; right:0; z-index:1000; padding:28px 48px; display:flex; align-items:center; justify-content:space-between; transition:all 0.4s ease; }
nav.scrolled { background:rgba(250,247,242,0.97); backdrop-filter:blur(14px); padding:16px 48px; border-bottom:1px solid rgba(184,151,90,0.15); }
.nav-logo { font-family:var(--font-display); font-size:22px; font-weight:500; color:white; letter-spacing:0.04em; text-decoration:none; transition:color 0.3s; white-space:nowrap; }
nav.scrolled .nav-logo { color:var(--charcoal); }
.nav-links { display:flex; gap:24px; list-style:none; }
.nav-links a { font-size:10px; font-weight:400; letter-spacing:0.16em; text-transform:uppercase; color:rgba(255,255,255,0.85); text-decoration:none; transition:color 0.3s; white-space:nowrap; }
nav.scrolled .nav-links a { color:var(--charcoal-mid); }
.nav-links a:hover { color:var(--gold) !important; }
.nav-book { font-size:10px; font-weight:400; letter-spacing:0.2em; text-transform:uppercase; color:var(--charcoal) !important; background:var(--gold-light); padding:11px 22px; text-decoration:none; transition:all 0.3s; white-space:nowrap; }
.nav-book:hover { background:var(--gold) !important; color:white !important; }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; }
.hamburger span { width:24px; height:1.5px; background:white; display:block; transition:all 0.3s; }
nav.scrolled .hamburger span { background:var(--charcoal); }
.mobile-menu { display:none; position:fixed; inset:0; background:var(--charcoal); z-index:999; flex-direction:column; align-items:center; justify-content:center; gap:40px; }
.mobile-menu.open { display:flex; }
.mobile-menu a { font-family:var(--font-display); font-size:36px; color:var(--warm-white); text-decoration:none; transition:color 0.3s; }
.mobile-menu a:hover { color:var(--gold-light); }
.mobile-close { position:absolute; top:28px; right:28px; background:none; border:none; color:white; font-size:28px; cursor:pointer; }

/* ── HERO ── */
#hero { position:relative; height:100vh; min-height:600px; display:flex; align-items:center; overflow:hidden; }

/* Desktop hero — wide landscape image */
.hero-bg {
  position:absolute; inset:0;
  background-size:cover;
  background-position:center 70%;
}
/* Mobile-specific hero image — swapped via JS on load */
.hero-bg-mobile-src { display:none; }
/* Mobile hero — override background-position to show the baby clearly */
.hero-overlay { position:absolute; inset:0; background:linear-gradient(95deg, rgba(42,24,12,0.58) 0%, rgba(42,24,12,0.32) 50%, rgba(42,24,12,0.08) 100%); }
.hero-content { position:relative; padding:0 64px; max-width:640px; color:white; }
.hero-eyebrow { font-size:10px; font-weight:400; letter-spacing:0.32em; text-transform:uppercase; color:var(--gold-light); margin-bottom:24px; opacity:0; animation:fadeUp 0.9s ease 0.3s forwards; }
.hero-title { font-family:var(--font-display); font-size:clamp(38px,5vw,68px); font-weight:300; line-height:1.1; letter-spacing:-0.01em; margin-bottom:28px; opacity:0; animation:fadeUp 0.9s ease 0.5s forwards; }
.hero-title em { font-style:italic; color:var(--gold-light); }
.hero-sub { font-size:13px; font-weight:300; letter-spacing:0.06em; color:rgba(255,255,255,0.72); margin-bottom:44px; max-width:420px; line-height:1.85; opacity:0; animation:fadeUp 0.9s ease 0.7s forwards; }
.hero-ctas { display:flex; gap:14px; flex-wrap:wrap; opacity:0; animation:fadeUp 0.9s ease 0.9s forwards; }
.btn-primary { display:inline-block; font-size:10px; font-weight:400; letter-spacing:0.22em; text-transform:uppercase; padding:16px 40px; background:var(--gold); color:white; text-decoration:none; transition:all 0.3s; }
.btn-primary:hover { background:var(--gold-light); transform:translateY(-2px); }
.btn-outline { display:inline-block; font-size:10px; font-weight:400; letter-spacing:0.22em; text-transform:uppercase; padding:15px 40px; border:1px solid rgba(255,255,255,0.45); color:white; text-decoration:none; transition:all 0.3s; }
.btn-outline:hover { border-color:white; background:rgba(255,255,255,0.08); }
.hero-scroll { position:absolute; bottom:40px; left:64px; display:flex; align-items:center; gap:12px; color:rgba(255,255,255,0.4); font-size:9px; letter-spacing:0.24em; text-transform:uppercase; opacity:0; animation:fadeUp 0.8s ease 1.2s forwards; }
.scroll-line { width:40px; height:1px; background:rgba(255,255,255,0.25); animation:scrollPulse 2.2s ease infinite; }

/* ── STATS ── */
.stats-strip { background:var(--charcoal); padding:52px 0; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.stat-item { text-align:center; padding:0 28px; border-right:1px solid rgba(255,255,255,0.07); }
.stat-item:last-child { border-right:none; }
.stat-number { font-family:var(--font-display); font-size:52px; font-weight:300; color:var(--gold-light); line-height:1; display:block; margin-bottom:10px; }
.stat-label { font-size:10px; font-weight:400; letter-spacing:0.22em; text-transform:uppercase; color:rgba(255,255,255,0.4); }

/* ── SECTION COMMONS ── */
section { padding:var(--section-gap) 0; }
.container { max-width:1200px; margin:0 auto; padding:0 64px; }
.section-eyebrow { font-size:10px; font-weight:400; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; }
.section-title { font-family:var(--font-display); font-size:clamp(34px,5vw,60px); font-weight:300; line-height:1.1; color:var(--charcoal); margin-bottom:28px; }
.section-title em { font-style:italic; color:var(--gold); }
.divider { width:56px; height:1px; background:var(--gold); margin-bottom:28px; }

/* ── ABOUT ── */
#about { background:var(--warm-white); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.about-image-wrap { position:relative; }
.about-accent-box { position:absolute; bottom:-28px; right:-28px; background:var(--gold); padding:26px 30px; color:white; text-align:center; }
.about-accent-box span { display:block; font-family:var(--font-display); font-size:38px; font-weight:300; line-height:1; }
.about-accent-box small { font-size:9px; letter-spacing:0.2em; text-transform:uppercase; opacity:0.8; }
.about-text p { font-size:15px; line-height:1.9; color:var(--text-body); margin-bottom:18px; }
.signature { font-family:var(--font-display); font-size:30px; font-style:italic; color:var(--gold); margin-top:32px; font-weight:300; }

/* ── SESSIONS & PACKAGES ── */
#services { background:var(--cream); }
/* ── PACKAGE TABS — premium pill design ── */
.packages-tabs {
  display:flex;
  gap:12px;
  margin-bottom:0;
  padding:0 0 0 0;
  position:relative;
}
.pkg-tab {
  flex:1;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:400;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--charcoal);
  padding:22px 20px 20px;
  cursor:pointer;
  border:2px solid rgba(184,151,90,0.35);
  background:var(--warm-white);
  transition:all 0.3s ease;
  text-align:center;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
}
.pkg-tab-num {
  font-family:var(--font-display);
  font-size:11px;
  color:var(--gold);
  letter-spacing:0.2em;
  display:block;
}
.pkg-tab-name {
  display:block;
  font-size:15px;
  letter-spacing:0.1em;
}
.pkg-tab:hover {
  border-color:var(--gold);
  background:rgba(184,151,90,0.06);
}
.pkg-tab.active {
  background:var(--charcoal);
  border-color:var(--charcoal);
  color:white;
  box-shadow:0 4px 20px rgba(44,38,32,0.2);
}
.pkg-tab.active .pkg-tab-num { color:var(--gold-light); }
.pkg-tab.active::after {
  content:'';
  position:absolute;
  bottom:-14px;
  left:50%;
  transform:translateX(-50%);
  width:0; height:0;
  border-left:10px solid transparent;
  border-right:10px solid transparent;
  border-top:10px solid var(--charcoal);
}

/* Banner — full width */
.pkg-banner-wrap { display:none; }
.pkg-banner-wrap.active { display:block; }
.pkg-category-banner { width:100%; height:340px; position:relative; overflow:hidden; }
.pkg-banner-img { width:100%; height:100%; background-size:cover; background-position:center; transition:transform 0.8s ease; }
/* Mobile portrait image — hidden on desktop, shown on mobile */
.pkg-banner-img-mobile { display:none; width:100%; height:100%; background-size:cover; background-position:center 35%; }
.pkg-category-banner:hover .pkg-banner-img { transform:scale(1.03); }
.pkg-banner-overlay { position:absolute; inset:0; background:linear-gradient(to right, rgba(42,24,12,0.6) 0%, rgba(42,24,12,0.25) 55%, rgba(42,24,12,0.05) 100%); }

/* Banner text — eyebrow + title ONLY on the image, NO description text */
.pkg-banner-text { position:absolute; top:50%; left:64px; transform:translateY(-50%); color:white; max-width:420px; }
.pkg-banner-text small { font-size:10px; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold-light); display:block; margin-bottom:10px; }
.pkg-banner-text h3 { font-family:var(--font-display); font-size:clamp(32px,4.5vw,58px); font-weight:300; line-height:1.05; }
.pkg-banner-text p { display:none; } /* Description goes below image, not on it */

/* Description below banner — visible on all screen sizes */
.pkg-banner-desc { background:var(--warm-white); padding:24px 0 36px; border-bottom:1px solid rgba(184,151,90,0.12); margin-bottom:40px; }
.pkg-banner-desc-title { font-family:var(--font-display); font-size:28px; font-weight:300; color:var(--charcoal); margin-bottom:10px; display:none; } /* shown on mobile only */
.pkg-banner-desc p { font-size:14px; color:var(--text-muted); line-height:1.8; max-width:640px; }
.pkg-banner-desc .pkg-highlights { display:flex; gap:28px; margin-top:14px; flex-wrap:wrap; }
.pkg-banner-desc .pkg-highlights span { font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); display:flex; align-items:center; gap:6px; }
.pkg-banner-desc .pkg-highlights span::before { content:'✦'; font-size:8px; }

/* Package cards */
.pkg-panel { display:none; }
.pkg-panel.active { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px; }
.pkg-card { background:var(--cream); border:1px solid rgba(184,151,90,0.15); padding:44px 38px; position:relative; transition:all 0.35s ease; }
.pkg-card.featured { background:var(--charcoal); border-color:transparent; }
.pkg-card:hover { transform:translateY(-6px); box-shadow:0 24px 60px rgba(44,38,32,0.1); }
.pkg-badge { position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:var(--gold); color:white; font-size:9px; font-weight:400; letter-spacing:0.2em; text-transform:uppercase; padding:4px 16px; white-space:nowrap; }
.pkg-number { font-size:13px; font-weight:400; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; display:block; }
.pkg-price { font-family:var(--font-display); font-size:50px; font-weight:300; color:var(--charcoal); line-height:1; margin-bottom:4px; }
.pkg-card.featured .pkg-price { color:var(--gold-light); }
.pkg-vat { font-size:11px; color:var(--text-muted); letter-spacing:0.1em; margin-bottom:28px; display:block; }
.pkg-card.featured .pkg-vat { color:rgba(255,255,255,0.38); }
.pkg-divider { height:1px; background:rgba(184,151,90,0.2); margin-bottom:24px; }
.pkg-features { list-style:none; margin-bottom:36px; }
.pkg-features li { font-size:13px; font-weight:300; line-height:1.6; color:var(--text-body); padding:8px 0; border-bottom:1px solid rgba(184,151,90,0.1); display:flex; align-items:flex-start; gap:12px; }
.pkg-card.featured .pkg-features li { color:rgba(255,255,255,0.72); border-bottom-color:rgba(255,255,255,0.06); }
.pkg-features li::before { content:''; width:4px; height:4px; background:var(--gold); border-radius:50%; margin-top:8px; flex-shrink:0; }
.pkg-book-btn { display:block; text-align:center; font-size:10px; font-weight:400; letter-spacing:0.2em; text-transform:uppercase; padding:15px; cursor:pointer; border:none; width:100%; transition:all 0.3s; text-decoration:none; font-family:var(--font-body); }
.pkg-card:not(.featured) .pkg-book-btn { background:transparent; border:1px solid var(--gold); color:var(--gold); }
.pkg-card:not(.featured) .pkg-book-btn:hover { background:var(--gold); color:white; }
.pkg-card.featured .pkg-book-btn { background:var(--gold); color:white; }
.pkg-card.featured .pkg-book-btn:hover { background:var(--gold-light); }

/* ── GALLERY — NO labels on images ── */
#gallery { background:var(--cream); }
.gallery-header { text-align:center; margin-bottom:56px; }
.gallery-header .divider { margin:0 auto 28px; }
.gallery-grid { display:grid; grid-template-columns:repeat(12,1fr); grid-template-rows:repeat(3,260px); gap:5px; }
.gallery-item { overflow:hidden; position:relative; cursor:pointer; }
.gallery-item:nth-child(1) { grid-column:1/6; grid-row:1/3; }
.gallery-item:nth-child(2) { grid-column:6/9; grid-row:1/2; }
.gallery-item:nth-child(3) { grid-column:9/13; grid-row:1/2; }
.gallery-item:nth-child(4) { grid-column:6/10; grid-row:2/3; }
.gallery-item:nth-child(5) { grid-column:10/13; grid-row:2/3; }
.gallery-item:nth-child(6) { grid-column:1/5; grid-row:3/4; }
.gallery-item:nth-child(7) { grid-column:5/9; grid-row:3/4; }
.gallery-item:nth-child(8) { grid-column:9/13; grid-row:3/4; }
.gallery-ph { width:100%; height:100%; background-size:cover; background-position:center; transition:transform 0.7s ease; }
.gallery-item:hover .gallery-ph { transform:scale(1.06); }
.gallery-overlay { position:absolute; inset:0; background:rgba(20,12,8,0); display:flex; align-items:center; justify-content:center; transition:background 0.4s; }
.gallery-item:hover .gallery-overlay { background:rgba(20,12,8,0.28); }
.gallery-icon { color:white; font-size:24px; opacity:0; transform:scale(0.8); transition:all 0.3s; }
.gallery-item:hover .gallery-icon { opacity:1; transform:scale(1); }
/* Labels REMOVED — no text overlay on gallery images */

/* ── TESTIMONIALS ── */
#testimonials { background:var(--charcoal); padding:var(--section-gap) 0; }
.testimonials-header { text-align:center; margin-bottom:64px; }
.testimonials-header .section-title { color:var(--warm-white); }
.testimonials-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.t-card { background:rgba(255,255,255,0.035); border:1px solid rgba(184,151,90,0.1); padding:40px 36px; display:flex; flex-direction:column; transition:border-color 0.3s, background 0.3s; }
.t-card:hover { background:rgba(255,255,255,0.06); border-color:rgba(184,151,90,0.25); }
.t-stars { display:flex; gap:3px; margin-bottom:22px; }
.t-stars span { color:var(--gold); font-size:14px; }
.t-quote-mark { font-family:var(--font-display); font-size:64px; line-height:0.6; color:var(--gold); opacity:0.4; margin-bottom:16px; font-weight:300; }
.t-text { font-family:var(--font-display); font-size:17px; font-weight:300; font-style:italic; line-height:1.7; color:rgba(255,255,255,0.8); margin-bottom:32px; flex:1; }
.t-author { display:flex; align-items:center; justify-content:space-between; border-top:1px solid rgba(255,255,255,0.06); padding-top:24px; gap:12px; }
.t-meta { flex:1; }
.t-name { font-size:14px; font-weight:400; color:white; margin-bottom:3px; }
.t-detail { font-size:10px; font-weight:300; letter-spacing:0.12em; color:var(--gold-light); }
.t-flag { font-size:20px; flex-shrink:0; }

/* ── INSTAGRAM ── */
#instagram { background:var(--warm-white); }
.instagram-header { text-align:center; margin-bottom:52px; }
.instagram-header .divider { margin:0 auto 24px; }
.instagram-feed { display:grid; grid-template-columns:repeat(6,1fr); gap:4px; margin-bottom:44px; }
.ig-item { aspect-ratio:1; overflow:hidden; position:relative; cursor:pointer; }
.ig-ph { width:100%; height:100%; background-size:cover; background-position:center; transition:transform 0.5s ease; }
.ig-item:hover .ig-ph { transform:scale(1.08); }
.ig-hover { position:absolute; inset:0; background:rgba(20,12,8,0); display:flex; align-items:center; justify-content:center; transition:background 0.3s; }
.ig-item:hover .ig-hover { background:rgba(20,12,8,0.38); }
.ig-hover-icon { color:white; font-size:22px; opacity:0; transition:opacity 0.3s; }
.ig-item:hover .ig-hover-icon { opacity:1; }
.ig-follow-btn { display:inline-flex; align-items:center; gap:12px; font-size:10px; font-weight:400; letter-spacing:0.22em; text-transform:uppercase; color:var(--charcoal); padding:15px 40px; border:1px solid var(--charcoal); text-decoration:none; transition:all 0.3s; }
.ig-follow-btn:hover { background:var(--charcoal); color:white; }

/* ── BOOKING ── */
#booking { background:var(--cream); }
.booking-wrap { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.booking-info p { font-size:15px; line-height:1.9; color:var(--text-body); margin-bottom:18px; }
.contact-details { margin-top:44px; display:flex; flex-direction:column; gap:18px; }
.contact-item { display:flex; align-items:flex-start; gap:18px; }
/* White stroke SVG icons — clean, modern */
.contact-icon {
  width:44px; height:44px;
  background:var(--gold);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.contact-icon svg { width:20px; height:20px; stroke:white; fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.contact-label { font-size:9px; font-weight:400; letter-spacing:0.22em; text-transform:uppercase; color:var(--text-muted); margin-bottom:4px; display:block; }
.contact-value { font-size:14px; color:var(--charcoal); font-weight:300; }
.booking-form { background:var(--warm-white); padding:50px 46px; border:1px solid rgba(184,151,90,0.12); }
.form-title { font-family:var(--font-display); font-size:26px; font-weight:300; color:var(--charcoal); margin-bottom:6px; }
.form-sub { font-size:13px; color:var(--text-muted); margin-bottom:32px; }
.form-group { margin-bottom:20px; }
.form-group label { display:block; font-size:9px; font-weight:400; letter-spacing:0.24em; text-transform:uppercase; color:var(--text-muted); margin-bottom:7px; }
.form-group input, .form-group select, .form-group textarea { width:100%; border:1px solid rgba(184,151,90,0.2); background:transparent; padding:13px 16px; font-family:var(--font-body); font-size:14px; font-weight:300; color:var(--charcoal); outline:none; transition:border-color 0.3s; appearance:none; border-radius:0; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--gold); }
.form-group textarea { resize:vertical; min-height:95px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-submit { width:100%; padding:17px; background:var(--gold); color:white; border:none; font-family:var(--font-body); font-size:10px; font-weight:400; letter-spacing:0.24em; text-transform:uppercase; cursor:pointer; transition:all 0.3s; margin-top:6px; }
.form-submit:hover { background:var(--charcoal); }
.form-note { font-size:11px; color:var(--text-muted); text-align:center; margin-top:14px; line-height:1.6; }
.form-success { display:none; text-align:center; padding:36px 20px; }
.form-success.show { display:block; }
.success-icon { width:60px; height:60px; background:var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 20px; font-size:26px; color:white; }

/* ── FOOTER ── */
footer { background:#1a1208; padding:76px 0 36px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.5fr; gap:56px; margin-bottom:56px; }
.footer-brand { font-family:var(--font-display); font-size:30px; font-weight:300; color:white; margin-bottom:14px; }
.footer-tagline { font-size:13px; font-weight:300; color:rgba(255,255,255,0.38); line-height:1.7; margin-bottom:26px; }
.footer-socials { display:flex; gap:12px; }
.footer-social { width:36px; height:36px; border:1px solid rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.45); text-decoration:none; transition:all 0.3s; }
.footer-social:hover { border-color:var(--gold); color:var(--gold); }
.footer-col h4 { font-size:9px; font-weight:400; letter-spacing:0.28em; text-transform:uppercase; color:var(--gold); margin-bottom:22px; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:11px; }
.footer-col ul a { font-size:13px; font-weight:300; color:rgba(255,255,255,0.42); text-decoration:none; transition:color 0.3s; }
.footer-col ul a:hover { color:rgba(255,255,255,0.75); }
.footer-col p { font-size:13px; font-weight:300; color:rgba(255,255,255,0.38); line-height:1.85; }
.footer-col strong { font-weight:400; color:rgba(255,255,255,0.62); }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.06); padding-top:28px; display:flex; align-items:center; justify-content:space-between; }
.footer-copy { font-size:12px; color:rgba(255,255,255,0.22); font-weight:300; }
.footer-legal { display:flex; gap:22px; }
.footer-legal a { font-size:12px; color:rgba(255,255,255,0.22); text-decoration:none; font-weight:300; transition:color 0.3s; }
.footer-legal a:hover { color:rgba(255,255,255,0.5); }

/* ── WHATSAPP ── */
.whatsapp-float { position:fixed; bottom:32px; right:32px; width:54px; height:54px; background:#25D366; border-radius:50%; display:flex; align-items:center; justify-content:center; color:white; box-shadow:0 6px 22px rgba(37,211,102,0.32); z-index:900; text-decoration:none; transition:all 0.3s; }
.whatsapp-float:hover { transform:scale(1.1); }

/* ── ANIMATIONS ── */
@keyframes fadeUp { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:translateY(0); } }
@keyframes scrollPulse { 0%,100% { opacity:0.3; } 50% { opacity:0.75; } }
.reveal { opacity:0; transform:translateY(26px); transition:opacity 0.8s ease, transform 0.8s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── RESPONSIVE — Tablet 1024px ── */
@media (max-width:1024px) {
  .container { padding:0 40px; }
  nav, nav.scrolled { padding:18px 40px; }
  .nav-links { display:none; }
  .nav-book { display:none; }
  .hamburger { display:flex; }
  .about-grid { gap:60px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:36px; }
  .testimonials-grid { grid-template-columns:1fr 1fr; }
  .stats-grid { grid-template-columns:repeat(2,1fr); gap:32px; }
  .stat-item { border-bottom:1px solid rgba(255,255,255,0.07); padding-bottom:28px; }
  .stat-item:nth-child(2) { border-right:none; }
  .stat-item:nth-child(3), .stat-item:nth-child(4) { border-bottom:none; }
  .pkg-banner-text { left:40px; }
}

/* ── RESPONSIVE — Mobile 768px ── */
@media (max-width:768px) {
  :root { --section-gap:72px; }
  .container { padding:0 20px; }
  nav, nav.scrolled { padding:16px 20px; }

  /* Hero — show baby face, not feet — pull image up so face is in frame */
  #hero { min-height:100svh; align-items:flex-end; padding-bottom:80px; }
  .hero-bg { background-position:center 35%; } /* hero-mobile.jpg — baby at 35% */
  .hero-overlay { background:linear-gradient(to top, rgba(22,12,5,0.92) 0%, rgba(22,12,5,0.55) 45%, rgba(22,12,5,0.05) 100%); }
  .hero-content { padding:0 20px; max-width:100%; }
  .hero-title { font-size:clamp(36px,9vw,52px); }
  .hero-sub { font-size:12px; margin-bottom:32px; }
  .hero-ctas { gap:10px; }
  .btn-primary, .btn-outline { padding:13px 24px; font-size:9px; }
  .hero-scroll { left:20px; bottom:24px; }

  /* About */
  .about-grid { grid-template-columns:1fr; gap:72px; }
  .about-accent-box { right:0; bottom:-20px; }

  /* Packages banner — portrait image on mobile */
  .pkg-category-banner { height:460px; }
  .pkg-banner-text { display:none; }
  .pkg-banner-desc-title { display:block; }
  .pkg-banner-desc { padding:18px 0 24px; }
  .pkg-banner-desc .pkg-highlights { gap:12px; }
  .packages-tabs { flex-wrap:nowrap; gap:6px; }
  .pkg-tab { padding:16px 8px 14px; font-size:11px; }
  .pkg-tab-name { font-size:12px; }
  .pkg-tab.active::after { bottom:-12px; }
  .pkg-panel.active { grid-template-columns:1fr; }

  /* Mobile portrait banner images — show portrait, hide landscape */
  .pkg-banner-img        { display:none; }
  .pkg-banner-img-mobile { display:block !important; }
  /* Per-image precise focal points */
  #banner-newborn .pkg-banner-img-mobile   { background-position:center 35%; }
  #banner-toddler .pkg-banner-img-mobile   { background-position:center 35%; }
  #banner-cakesmash .pkg-banner-img-mobile { background-position:center 30%; }

  /* Gallery — 2 col grid on mobile */
  .gallery-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto;
    gap:4px;
  }
  .gallery-item {
    grid-column:auto !important;
    grid-row:auto !important;
    aspect-ratio:1;
  }

  /* Testimonials */
  .testimonials-grid { grid-template-columns:1fr; }
  .t-text { font-size:15px; }

  /* Instagram */
  .instagram-feed { grid-template-columns:repeat(3,1fr); }

  /* Booking */
  .booking-wrap { grid-template-columns:1fr; gap:48px; }
  .form-row { grid-template-columns:1fr; }
  .booking-form { padding:28px 20px; }

  /* Footer */
  .footer-grid { grid-template-columns:1fr; gap:32px; }
  .footer-bottom { flex-direction:column; gap:14px; text-align:center; }
}

/* ── RESPONSIVE — Small mobile 480px ── */
@media (max-width:480px) {
  .hero-title { font-size:34px; }
  .pkg-category-banner { height:180px; }
  .instagram-feed { grid-template-columns:repeat(2,1fr); }
  .stat-number { font-size:40px; }
}

/* ── TERMS & CONDITIONS + FAQ SECTIONS ── */
#terms { background:var(--warm-white); }
#faq   { background:var(--cream); }

.page-tabs {
  display:flex; gap:0; margin-bottom:52px;
  border-bottom:2px solid rgba(184,151,90,0.2);
}
.page-tab {
  font-size:11px; font-weight:400; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--text-muted); padding:16px 36px; cursor:pointer; border:none;
  background:none; border-bottom:3px solid transparent; margin-bottom:-2px;
  transition:all 0.3s; font-family:var(--font-body);
}
.page-tab.active { color:var(--gold); border-bottom-color:var(--gold); }
.page-tab:hover  { color:var(--charcoal); }
.page-tab-panel  { display:none; }
.page-tab-panel.active { display:block; }

/* T&C document styling */
.legal-doc { max-width:820px; }
.legal-doc h3 {
  font-family:var(--font-display); font-size:22px; font-weight:300;
  color:var(--charcoal); margin:36px 0 12px; padding-bottom:8px;
  border-bottom:1px solid rgba(184,151,90,0.2);
}
.legal-doc h3:first-child { margin-top:0; }
.legal-doc p  { font-size:14px; line-height:1.9; color:var(--text-body); margin-bottom:14px; }
.legal-doc ul { list-style:none; margin:0 0 18px; padding:0; }
.legal-doc ul li {
  font-size:14px; line-height:1.8; color:var(--text-body);
  padding:6px 0 6px 22px; position:relative;
  border-bottom:1px solid rgba(184,151,90,0.07);
}
.legal-doc ul li::before {
  content:''; position:absolute; left:0; top:14px;
  width:6px; height:6px; background:var(--gold); border-radius:50%;
}
.legal-doc .law-ref {
  font-size:11px; color:var(--gold); letter-spacing:0.1em;
  text-transform:uppercase; display:block; margin-bottom:6px; font-weight:400;
}
.legal-doc .highlight-box {
  background:rgba(184,151,90,0.08); border-left:3px solid var(--gold);
  padding:18px 20px; margin:20px 0; border-radius:0 4px 4px 0;
}
.legal-doc .highlight-box p { margin:0; font-size:13px; font-style:italic; }
.legal-doc .last-updated {
  font-size:11px; color:var(--text-muted); letter-spacing:0.1em; margin-bottom:32px;
}

/* FAQ accordion */
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:0; }
.faq-item {
  border-bottom:1px solid rgba(184,151,90,0.15);
  border-right:1px solid rgba(184,151,90,0.15);
}
.faq-item:nth-child(2n) { border-right:none; }
.faq-btn {
  width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:24px 28px; display:flex; align-items:center; justify-content:space-between;
  gap:12px; transition:background 0.3s; font-family:var(--font-body);
}
.faq-btn:hover { background:rgba(184,151,90,0.05); }
.faq-q {
  font-size:14px; font-weight:400; color:var(--charcoal); line-height:1.5; flex:1;
}
.faq-icon {
  width:28px; height:28px; border:1.5px solid rgba(184,151,90,0.4); border-radius:50%;
  flex-shrink:0; display:flex; align-items:center; justify-content:center;
  color:var(--gold); font-size:18px; transition:all 0.3s;
}
.faq-item.open .faq-icon { background:var(--gold); color:white; transform:rotate(45deg); }
.faq-answer {
  max-height:0; overflow:hidden; transition:max-height 0.45s ease, padding 0.3s;
  padding:0 28px;
}
.faq-item.open .faq-answer { max-height:400px; padding:0 28px 24px; }
.faq-answer p { font-size:13px; line-height:1.85; color:var(--text-muted); margin:0; }
.faq-category {
  font-size:9px; letter-spacing:0.28em; text-transform:uppercase;
  color:var(--gold); display:block; margin-bottom:20px; padding-left:28px;
  padding-top:32px; font-weight:400;
}

/* T&C mandatory checkbox */
.tc-checkbox-wrap {
  background:rgba(184,151,90,0.06); border:1.5px solid rgba(184,151,90,0.3);
  padding:18px 20px; margin:20px 0; border-radius:4px;
}
.tc-checkbox-wrap label {
  display:flex !important; align-items:flex-start; gap:12px;
  cursor:pointer; font-size:13px !important; color:var(--text-body) !important;
  text-transform:none !important; letter-spacing:0 !important;
  font-weight:300 !important; line-height:1.6;
}
.tc-checkbox-wrap input[type=checkbox] {
  width:18px !important; height:18px !important; min-width:18px;
  border:1.5px solid rgba(184,151,90,0.5) !important;
  background:white !important; cursor:pointer; margin-top:2px; flex-shrink:0;
  padding:0 !important; accent-color:var(--gold);
}
.tc-checkbox-wrap a {
  color:var(--gold); text-decoration:underline; text-underline-offset:2px;
}
.tc-error {
  display:none; font-size:12px; color:#c0392b; margin-top:10px;
  letter-spacing:0.04em; padding:10px 14px;
  background:rgba(192,57,43,0.08); border-left:3px solid #c0392b;
  font-weight:400;
}
.tc-error.show { display:block; }

@media (max-width:768px) {
  .faq-grid { grid-template-columns:1fr; }
  .faq-item { border-right:none; }
  .page-tab { padding:12px 16px; font-size:9px; }
}

/* ── INNER PAGES (Terms / FAQ) ── */
.inner-page-hero {
  padding:140px 0 60px;
  background:var(--warm-white);
  border-bottom:1px solid rgba(184,151,90,0.12);
}
.form-success { display:none; text-align:center; padding:60px 20px; }
.form-success.show { display:block; }
.success-icon {
  width:56px; height:56px; border-radius:50%; background:var(--gold);
  color:white; font-size:26px; display:flex; align-items:center;
  justify-content:center; margin:0 auto 20px;
}

/* ── SUBMIT BUTTON DISABLED STATE — locked until T&C ticked ── */
.form-submit:disabled {
  background: #C8B89A !important;
  color: rgba(255,255,255,0.6) !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  opacity: 0.65;
}
.form-submit:disabled:hover {
  background: #C8B89A !important;
  transform: none !important;
}

/* ── T&C CONSENT NOTICE (replaces checkbox) ── */
.tc-consent-notice {
  background: rgba(184,151,90,0.08);
  border: 1px solid rgba(184,151,90,0.3);
  border-left: 3px solid var(--gold);
  padding: 16px 18px;
  margin: 20px 0 24px;
  border-radius: 2px;
}
.tc-consent-notice p {
  font-size: 12px;
  line-height: 1.75;
  color: var(--text-muted);
  margin: 0;
}
.tc-consent-notice a {
  color: var(--gold);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ── PACKAGE T&C NOTICE ── */
.pkg-tc-notice {
  background: rgba(184,151,90,0.06);
  border: 1px solid rgba(184,151,90,0.25);
  border-left: 3px solid var(--gold);
  padding: 14px 18px;
  margin-bottom: 28px;
  border-radius: 2px;
}
.pkg-tc-notice p {
  font-size: 11px;
  line-height: 1.75;
  color: var(--text-muted);
  margin: 0;
}
.pkg-tc-notice a {
  color: var(--gold);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ── DESKTOP / MOBILE BOOKING SPLIT ── */

/* Desktop: show message, hide form */
.desktop-booking-msg  { display: block; }
.mobile-booking-form  { display: none; }

/* Mobile: hide message, show form */
@media (max-width: 768px) {
  .desktop-booking-msg { display: none !important; }
  .mobile-booking-form { display: block !important; }
}

/* Desktop message styling */
.desktop-booking-msg {
  text-align: center;
  padding: 40px 20px;
  border: 1px solid rgba(184,151,90,0.2);
  background: rgba(184,151,90,0.03);
}
.desktop-msg-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border: 1.5px solid rgba(184,151,90,0.3);
  border-radius: 50%;
  margin: 0 auto 4px;
}
.desktop-qr-wrap {
  display: inline-block;
  background: white;
  padding: 16px;
  border: 1px solid rgba(184,151,90,0.2);
}

/* ── PRICE ROW — old struck price above new price ── */
.pkg-price-wrap { display:none; }
.pkg-price-old  { display:none; }
.pkg-price-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  margin-bottom: 0;
}
/* Strikethrough styles are applied inline via del tag for universal browser support */
.pkg-card.featured .pkg-price { color: var(--gold-light); }

/* ── SEO IMAGES — visually hidden but crawlable by search engines ──
   These provide proper <img alt=""> tags for background-image divs
   so Google Image Search can index and rank the photography work. */
.bp-seo-img {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.bp-seo-img-inline {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.gallery-item, .pkg-banner-img, #hero {
  position: relative;
}
