:root{
  --cream:#FBF1EA; --cream-2:#F5E7DD; --white:#FFFDFB;
  --blush:#E7B8B5; --blush-soft:#F1D3CF;
  --rose:#A24B5A; --rose-dark:#7E3444;
  --gold:#B98D42; --gold-light:#E4C58C; --gold-pale:#F1DFB8;
  --ink:#201417; --ink-soft:#5B454A;
  --shadow: 0 20px 60px -20px rgba(32,20,23,0.28);
  --ease: cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{background:var(--cream);}
@media (prefers-reduced-motion: reduce){ *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;} }
body{ background:var(--cream); color:var(--ink); font-family:'Manrope',sans-serif; overflow-x:clip; line-height:1.6; cursor:none; }
@media (pointer:coarse){ body{cursor:auto;} }
h1,h2,h3,h4{ font-family:'Fraunces',serif; font-weight:450; letter-spacing:-0.01em; color:var(--ink); }
.eyebrow{ font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:600; font-size:1.15rem; color:var(--rose); letter-spacing:0.04em; display:inline-flex; align-items:center; gap:0.6em; }
.eyebrow::before{ content:''; width:28px;height:1px; background:var(--gold); display:inline-block; }
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
section{position:relative;}
.wrap{ max-width:1200px; margin:0 auto; padding:0 6vw; }
::selection{background:var(--gold-light); color:var(--ink);}

/* ---------- photo tile (tinted stock photo placeholder) ---------- */
.photo{ position:relative; overflow:hidden; background:var(--cream-2); }
.photo img{ width:100%; height:100%; object-fit:cover; display:block; filter:saturate(0.92) contrast(1.02); transition:transform 1.2s var(--ease); }
.photo::after{ content:''; position:absolute; inset:0; background:linear-gradient(160deg, rgba(162,75,90,0.28), rgba(185,141,66,0.16)); mix-blend-mode:multiply; pointer-events:none; }
.photo .cap{ position:absolute; bottom:12px; left:12px; font-size:0.68rem; background:rgba(255,255,255,0.88); padding:4px 10px; border-radius:100px; color:var(--ink-soft); z-index:2; }
.photo:hover img{ transform:scale(1.06); }

/* ---------- cursor ---------- */
.cursor-dot, .cursor-ring{ position:fixed; top:0; left:0; pointer-events:none; z-index:9998; border-radius:50%; transform:translate(-50%,-50%); }
.cursor-dot{ width:6px; height:6px; background:var(--rose); }
.cursor-ring{ width:38px; height:38px; border:1px solid var(--gold); transition:width .3s var(--ease), height .3s var(--ease), border-color .3s var(--ease), background .3s var(--ease); }
.cursor-ring.big{ width:84px; height:84px; background:rgba(185,141,66,0.1); border-color:transparent; }
@media (pointer:coarse){ .cursor-dot,.cursor-ring{display:none;} }

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform:translateY(0); }
.split-line{ overflow:hidden; display:block; }
.split-line > span{ display:inline-block; transform:translateY(105%); transition:transform 1s var(--ease); }
body.loaded .split-line > span{ transform:translateY(0); }

/* ---------- preloader ---------- */
#preloader{ position:fixed; inset:0; z-index:9999; background:var(--ink); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.4rem; transition:opacity .5s ease, visibility .5s ease; }
#preloader.hide{ opacity:0; visibility:hidden; }
#preloader .count{ font-family:'Fraunces',serif; font-style:italic; font-size:clamp(3rem,10vw,7rem); color:var(--cream); }
#preloader .label{ font-size:0.75rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold-light); }
#preloader .bar{ width:220px; height:1px; background:rgba(251,241,234,0.2); position:relative; overflow:hidden; }
#preloader .bar i{ position:absolute; left:0; top:0; bottom:0; width:0%; background:var(--gold); transition:width .1s linear; }

/* ---------- nav ---------- */
header{ position:fixed; top:0; left:0; right:0; z-index:500; padding:26px 0; transition:background .5s var(--ease), padding .5s var(--ease), box-shadow .5s var(--ease); }
header.solid{ background:rgba(251,241,234,0.9); backdrop-filter:blur(14px); padding:16px 0; box-shadow:0 1px 0 rgba(32,20,23,0.08); }
nav.wrap{display:flex; align-items:center; justify-content:space-between;}
.logo{ font-family:'Fraunces',serif; font-size:1.55rem; letter-spacing:0.02em; font-weight:500; display:flex; align-items:baseline; gap:6px; }
.logo .dot{color:var(--gold); font-style:italic; font-family:'Cormorant Garamond',serif;}
.nav-links{display:flex; align-items:center; gap:2.2rem;}
.nav-links a:not(.btn){ font-size:0.9rem; letter-spacing:0.02em; font-weight:500; position:relative; padding:4px 0; }
.nav-links a:not(.btn)::after{ content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold); transition:width .35s var(--ease); }
.nav-links a:not(.btn):hover::after, .nav-links a.active:not(.btn)::after{width:100%;}
.nav-links a.active:not(.btn){color:var(--rose);}

.btn{ display:inline-flex; align-items:center; gap:8px; padding:12px 26px; border-radius:100px; font-size:0.86rem; font-weight:600; letter-spacing:0.03em; border:1px solid var(--ink); background:var(--ink); color:var(--white); cursor:none; position:relative; overflow:hidden; transition:transform .4s var(--ease), background .4s var(--ease), color .4s var(--ease); }
@media (pointer:coarse){ .btn{cursor:pointer;} }
.btn:hover{ background:var(--rose-dark); border-color:var(--rose-dark); }
.btn span{position:relative; z-index:1;}
.btn-outline{background:transparent; color:var(--ink); border:1px solid var(--ink);}
.btn-outline:hover{background:var(--ink); color:var(--white);}
.btn-gold{background:var(--gold); border-color:var(--gold); color:var(--white);}
.btn-gold:hover{background:var(--rose-dark); border-color:var(--rose-dark);}

.hamburger{display:none; flex-direction:column; gap:5px; cursor:pointer; z-index:600;}
.hamburger span{width:24px; height:1.5px; background:var(--ink); transition:transform .3s var(--ease), opacity .3s var(--ease);}

/* ---------- page hero (inner pages) ---------- */
.page-hero{ min-height:64vh; display:flex; flex-direction:column; justify-content:flex-end; padding-top:150px; padding-bottom:70px;
  background: radial-gradient(ellipse 60% 50% at 88% 10%, rgba(185,141,66,0.18), transparent 60%), radial-gradient(ellipse 70% 60% at 6% 95%, rgba(162,75,90,0.14), transparent 60%), var(--cream); }
.page-hero h1{ font-size:clamp(2.8rem,6.4vw,5.4rem); line-height:0.98; margin-top:0.6rem; }
.page-hero h1 em{ font-style:italic; font-weight:400; color:var(--rose); }
.page-hero p.lede{ margin-top:1.2rem; font-size:1.05rem; color:var(--ink-soft); max-width:34em; }
.crumb{ font-size:0.78rem; color:var(--ink-soft); margin-top:1.6rem; display:flex; gap:8px; align-items:center; }
.crumb a:hover{ color:var(--rose); }

/* ---------- marquee ---------- */
.marquee{ background:var(--ink); color:var(--gold-pale); padding:20px 0; overflow:hidden; white-space:nowrap; }
.marquee-track{ display:inline-flex; gap:2.5rem; animation:scroll-left 30s linear infinite; }
.marquee-track span{ font-family:'Fraunces',serif; font-style:italic; font-size:1.4rem; display:inline-flex; align-items:center; gap:2.5rem; color:var(--cream); }
.marquee-track span::after{content:'✦'; color:var(--gold); font-style:normal; font-size:0.9rem;}
@keyframes scroll-left{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ---------- section head ---------- */
.section-head{ max-width:640px; margin-bottom:3rem; }
.section-head h2{ font-size:clamp(2.1rem,3.8vw,3.1rem); margin-top:0.6rem; }
.section-head p{ margin-top:1rem; color:var(--ink-soft); }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head.center .eyebrow{ justify-content:center; }

/* ---------- feature grid (why us / values) ---------- */
.dark-band{ padding:110px 0; background:var(--ink); color:var(--cream); }
.dark-band .wrap.split{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:5vw; align-items:start; }
.dark-band h2{ color:var(--cream); }
.dark-band .eyebrow{ color:var(--gold-light); }
.dark-band .eyebrow::before{ background:var(--gold-light); }
.feature-list{ display:grid; grid-template-columns:1fr 1fr; gap:2.4rem; }
.feature-item{ border-top:1px solid rgba(251,241,234,0.18); padding-top:1.3rem; }
.feature-item h4{ color:var(--cream); font-size:1.08rem; font-weight:500; margin-bottom:0.5rem; }
.feature-item p{ font-size:0.86rem; color:rgba(251,241,234,0.65); }

/* ---------- CTA banner ---------- */
.cta-banner{ background:linear-gradient(120deg, var(--rose) 0%, var(--rose-dark) 100%); color:var(--white); padding:130px 0; text-align:center; overflow:hidden; }
.cta-banner h2{ color:var(--white); font-size:clamp(2.4rem,6vw,5rem); line-height:1; }
.cta-banner p{ max-width:34em; margin:1.3rem auto 2.2rem; color:rgba(255,253,251,0.85); }
.cta-actions{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.cta-banner .btn{ border-color:var(--white); }
.cta-banner .btn:not(.btn-gold){ background:var(--white); color:var(--rose-dark); }

/* ---------- footer ---------- */
footer{ background:var(--ink); color:rgba(251,241,234,0.6); padding:80px 0 30px; overflow:hidden; }
.footer-word{ text-align:center; margin-bottom:3rem; opacity:0; transform:translateY(30px); transition:opacity 1s var(--ease), transform 1s var(--ease); }
.footer-word.in{ opacity:1; transform:translateY(0); }
.footer-word span{ font-family:'Fraunces',serif; font-weight:600; font-size:clamp(2.6rem,12vw,9rem); color:transparent; -webkit-text-stroke:1px rgba(251,241,234,0.5); line-height:1; display:inline-block; }
.footer-top{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:2rem; padding-bottom:2.6rem; border-bottom:1px solid rgba(251,241,234,0.14); }
.footer-links{ display:flex; gap:3.4rem; flex-wrap:wrap; }
.footer-col h5{ color:var(--cream); font-size:0.82rem; letter-spacing:0.04em; margin-bottom:1rem; text-transform:uppercase; }
.footer-col a{ display:block; font-size:0.85rem; margin-bottom:0.6rem; color:rgba(251,241,234,0.6); transition:color .3s; }
.footer-col a:hover{ color:var(--gold-light); }
.footer-bottom{ display:flex; justify-content:space-between; padding-top:1.6rem; font-size:0.76rem; flex-wrap:wrap; gap:0.6rem; }

/* ---------- float whatsapp ---------- */
.float-btn{ position:fixed; bottom:26px; right:26px; z-index:400; width:58px; height:58px; border-radius:50%; background:var(--rose); display:flex; align-items:center; justify-content:center; color:var(--white); box-shadow:var(--shadow); animation:float-bob 3.2s ease-in-out infinite; }
.float-btn svg{ width:26px; height:26px; }
@keyframes float-bob{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-6px);} }

/* ---------- responsive shared ---------- */
@media (max-width:980px){
  .nav-links{ position:fixed; inset:0 0 0 auto; width:min(78vw,340px); height:100vh; background:var(--cream); flex-direction:column; justify-content:center; align-items:flex-start; padding:0 3rem; gap:1.5rem; transform:translateX(100%); transition:transform .5s var(--ease); box-shadow:-20px 0 60px rgba(0,0,0,0.12); }
  .nav-links.open{ transform:translateX(0); }
  .nav-links a:not(.btn){ font-size:1.1rem; }
  .hamburger{ display:flex; }
  .hamburger.open span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
  .hamburger.open span:nth-child(2){ opacity:0; }
  .hamburger.open span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }
  .dark-band .wrap.split{ grid-template-columns:1fr; }
  .feature-list{ grid-template-columns:1fr; }
  .footer-top{ flex-direction:column; }
}

/* ================= HOME: HERO ================= */
.hero{ min-height:100vh; display:flex; flex-direction:column; justify-content:center; padding-top:140px; padding-bottom:40px;
  background: radial-gradient(ellipse 60% 50% at 88% 12%, rgba(185,141,66,0.18), transparent 60%), radial-gradient(ellipse 70% 60% at 6% 92%, rgba(162,75,90,0.14), transparent 60%), var(--cream); }
.hero-top{ display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; flex-wrap:wrap; }
.hero-kicker{ display:flex; align-items:center; gap:14px; }
.hero-kicker .ring{ width:64px; height:64px; border-radius:50%; flex-shrink:0; background:conic-gradient(from 0deg, var(--gold), var(--blush), var(--gold)); display:flex; align-items:center; justify-content:center; animation:spin 16s linear infinite; }
.hero-kicker .ring i{ width:52px; height:52px; border-radius:50%; background:var(--cream); }
@keyframes spin{ to{transform:rotate(360deg);} }
h1.mega{ font-size:clamp(3.2rem, 9vw, 8rem); line-height:0.92; font-weight:450; margin-top:0.6rem; }
h1.mega em{ font-style:italic; font-weight:400; color:var(--rose); }
.hero-bottom{ display:grid; grid-template-columns:1.5fr 1fr; gap:4vw; align-items:end; margin-top:3rem; }
.hero-bottom p.lede{ font-size:1.08rem; color:var(--ink-soft); max-width:34em; }
.hero-actions{ display:flex; gap:1rem; margin-top:1.8rem; flex-wrap:wrap; }
.hero-stats{ display:flex; gap:2.2rem; justify-content:flex-end; flex-wrap:wrap; }
.hero-stats div{ text-align:right; }
.hero-stats strong{ font-family:'Fraunces',serif; font-size:1.9rem; color:var(--rose); display:block; }
.hero-stats span{ font-size:0.76rem; color:var(--ink-soft); }
.scroll-cue{ position:absolute; bottom:24px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px; font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-soft); }
.scroll-cue .line{ width:1px; height:34px; background:linear-gradient(var(--gold), transparent); animation:pulse-line 2s ease-in-out infinite; }
@keyframes pulse-line{ 0%,100%{opacity:.3;} 50%{opacity:1;} }

/* ================= ABOUT TEASER / SPLIT ================= */
.split-section{ padding:150px 0; }
.split-section .wrap{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:6vw; align-items:center; }
.split-section.reverse .wrap{ grid-template-columns:1.15fr 0.85fr; }
.split-section.reverse .photo{ order:2; }
.split-visual{ aspect-ratio:1/1.1; border-radius:6px; box-shadow:var(--shadow); }
.split-copy h2{ font-size:clamp(2.2rem,4vw,3.4rem); line-height:1.12; }
.split-copy .para{ margin-top:1.4rem; color:var(--ink-soft); max-width:34em; font-size:1.02rem; }
.stat-row{ display:flex; gap:2.6rem; margin-top:2.6rem; flex-wrap:wrap; }
.stat-row div strong{ display:block; font-family:'Fraunces',serif; font-size:2rem; color:var(--rose); }
.stat-row div span{ font-size:0.8rem; color:var(--ink-soft); }

/* ================= SERVICES INDEX LIST ================= */
.services{ padding:60px 0 60px; }
.service-row{ display:grid; grid-template-columns:100px 1fr 200px 40px; align-items:center; gap:2rem; padding:2.1rem 0; border-top:1px solid rgba(32,20,23,0.12); position:relative; overflow:visible; }
.service-row:last-child{ border-bottom:1px solid rgba(32,20,23,0.12); }
.service-row .num{ font-family:'Fraunces',serif; font-style:italic; font-size:1.1rem; color:var(--gold); }
.service-row .title-wrap h3{ font-size:clamp(1.5rem,2.8vw,2.2rem); font-weight:450; transition:transform .5s var(--ease), color .5s var(--ease); }
.service-row .title-wrap p{ font-size:0.85rem; color:var(--ink-soft); margin-top:0.4rem; max-width:34em; }
.service-row .price{ font-size:0.85rem; color:var(--rose); font-weight:600; text-align:right; letter-spacing:0.02em; }
.service-row .arrow{ width:38px; height:38px; border-radius:50%; border:1px solid var(--ink); display:flex; align-items:center; justify-content:center; transition:background .4s var(--ease), transform .5s var(--ease); flex-shrink:0; }
.service-row .arrow svg{ width:15px; height:15px; transition:stroke .4s; }
.service-row .thumb{ position:absolute; right:210px; top:50%; width:120px; height:150px; border-radius:6px; transform:translateY(-50%) scale(0.85) rotate(-4deg); opacity:0; pointer-events:none; box-shadow:var(--shadow); transition:opacity .45s var(--ease), transform .45s var(--ease); z-index:3; }
.service-row:hover .thumb{ opacity:1; transform:translateY(-50%) scale(1) rotate(-2deg); }
.service-row:hover .title-wrap h3{ color:var(--rose); transform:translateX(14px); }
.service-row:hover .arrow{ background:var(--ink); transform:rotate(45deg); }
.service-row:hover .arrow svg{ stroke:var(--cream); }
@media (max-width:760px){
  .service-row{ grid-template-columns:36px 1fr 34px; gap:0.8rem; }
  .service-row .price{ display:none; }
  .service-row .thumb{ display:none; }
}

/* ================= GALLERY — scroll-pinned horizontal reveal ================= */
.gallery-pin{ position:relative; } /* JS sets height so the pin lasts long enough to scroll through every card */
.gallery-sticky{ position:sticky; top:0; height:100vh; overflow:hidden; display:flex; flex-direction:column; justify-content:center; }
.gallery-head{ margin-bottom:2.4rem; }
.gallery-track{ display:flex; gap:1.6rem; padding:0 6vw 1rem; width:max-content; will-change:transform; }
.g-card{ flex:0 0 auto; width:min(70vw,340px); aspect-ratio:3/4; border-radius:8px; position:relative; }
.g-card:nth-child(even){ margin-top:3rem; }
.g-card .idx{ position:absolute; top:14px; right:16px; font-family:'Fraunces',serif; font-style:italic; color:rgba(255,255,255,0.85); font-size:1rem; z-index:2; }
.gallery-hint{ padding:0 6vw; margin-top:1.4rem; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); display:flex; gap:0.6rem; align-items:center; }

@media (max-width:760px){
  .gallery-pin{ height:auto !important; }
  .gallery-sticky{ position:static; height:auto; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .gallery-track{ transform:none !important; }
}

/* ================= TESTIMONIALS drag slider ================= */
.testimonials{ padding:140px 0; }
.t-top{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:3rem; flex-wrap:wrap; gap:1rem; }
.t-hint{ font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); display:flex; gap:1.4rem; }
.t-slider-wrap{ overflow:hidden; cursor:grab; }
.t-slider-wrap:active{ cursor:grabbing; }
.t-track{ display:flex; gap:2.4rem; will-change:transform; }
.t-card{ flex:0 0 auto; width:min(80vw,520px); background:var(--white); border-radius:10px; padding:2.6rem; box-shadow:0 10px 30px -18px rgba(32,20,23,0.18); user-select:none; }
.t-card p.quote{ font-family:'Fraunces',serif; font-style:italic; font-size:1.26rem; line-height:1.55; }
.t-card .who{ margin-top:1.4rem; font-size:0.82rem; color:var(--rose); font-weight:600; }

/* ================= TEAM CARDS (about) ================= */
.team-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.team-card .photo{ aspect-ratio:4/5; border-radius:8px; box-shadow:var(--shadow); margin-bottom:1.1rem; }
.team-card h4{ font-size:1.1rem; font-weight:500; }
.team-card span{ font-size:0.8rem; color:var(--rose); }
.team-card p{ font-size:0.82rem; color:var(--ink-soft); margin-top:0.5rem; }
@media (max-width:760px){ .team-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .team-grid{ grid-template-columns:1fr; } }

/* ================= PROCESS STEPS (about) ================= */
.process-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.process-card{ background:var(--white); border-radius:8px; padding:2.2rem 1.8rem; box-shadow:0 10px 30px -18px rgba(32,20,23,0.16); }
.process-card .num{ font-family:'Fraunces',serif; font-style:italic; font-size:1.6rem; color:var(--gold); }
.process-card h4{ margin-top:0.8rem; font-size:1.15rem; font-weight:500; }
.process-card p{ margin-top:0.6rem; font-size:0.85rem; color:var(--ink-soft); }
@media (max-width:760px){ .process-grid{ grid-template-columns:1fr; } }

/* ================= VALUES GRID (about) ================= */
.values-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
.value-card{ padding:1.8rem 0; border-top:1px solid rgba(32,20,23,0.12); }
.value-card h4{ font-size:1.02rem; font-weight:600; margin-bottom:0.5rem; }
.value-card p{ font-size:0.82rem; color:var(--ink-soft); }
@media (max-width:900px){ .values-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .values-grid{ grid-template-columns:1fr; } }

/* ================= SPACE GALLERY GRID (about) ================= */
.space-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:170px; gap:1rem; }
.space-grid .photo{ border-radius:6px; }
.space-grid .photo:nth-child(1){ grid-column:span 2; grid-row:span 2; }
.space-grid .photo:nth-child(4){ grid-column:span 2; }
@media (max-width:760px){
  .space-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:140px; }
  .space-grid .photo:nth-child(1){ grid-column:span 2; grid-row:span 1; }
}

/* ================= CONTACT PAGE ================= */
.contact-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:5vw; }
.info-list{ margin-top:2rem; display:flex; flex-direction:column; gap:1.5rem; }
.info-item{ display:flex; gap:1rem; align-items:flex-start; }
.info-item .ic{ width:38px; height:38px; border-radius:50%; background:var(--blush-soft); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--rose); }
.info-item .ic svg{ width:18px; height:18px; }
.info-item h4{ font-size:0.95rem; font-weight:600; }
.info-item p, .info-item a{ font-size:0.88rem; color:var(--ink-soft); }
.social-row{ display:flex; gap:0.8rem; margin-top:2rem; }
.social-row a{ width:42px; height:42px; border-radius:50%; border:1px solid var(--ink); display:flex; align-items:center; justify-content:center; transition:all .35s var(--ease); }
.social-row a:hover{ background:var(--ink); color:var(--cream); }
.social-row svg{ width:17px; height:17px; }

.form-card{ background:var(--white); border-radius:10px; padding:2.6rem; box-shadow:var(--shadow); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.field{ margin-bottom:1.3rem; }
.field label{ display:block; font-size:0.76rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:0.5rem; }
.field input, .field select, .field textarea{ width:100%; border:none; border-bottom:1px solid var(--blush); background:transparent; padding:0.6rem 0.1rem; font-family:'Manrope'; font-size:0.95rem; color:var(--ink); transition:border-color .3s; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--rose); }
.field textarea{ resize:vertical; min-height:70px; }
.form-card .btn{ width:100%; justify-content:center; margin-top:0.6rem; }
.form-note{ font-size:0.75rem; color:var(--ink-soft); margin-top:1rem; text-align:center; }

.map-block{ position:relative; border-radius:10px; overflow:hidden; aspect-ratio:16/9; background:linear-gradient(150deg, var(--cream-2), var(--blush-soft)); box-shadow:var(--shadow); margin-top:3rem; display:flex; align-items:center; justify-content:center; text-align:center; padding:2rem; }
.map-block .pin{ position:absolute; top:50%; left:50%; transform:translate(-50%,-120%); width:34px; height:34px; color:var(--rose); }
.map-block span.note{ font-size:0.8rem; color:var(--ink-soft); max-width:24em; }

.hours-table{ width:100%; margin-top:1.6rem; border-collapse:collapse; }
.hours-table tr{ border-top:1px solid rgba(32,20,23,0.12); }
.hours-table tr:last-child{ border-bottom:1px solid rgba(32,20,23,0.12); }
.hours-table td{ padding:0.9rem 0; font-size:0.9rem; }
.hours-table td:first-child{ color:var(--ink-soft); }
.hours-table td:last-child{ text-align:right; font-weight:600; }

/* ================= FAQ ACCORDION ================= */
.faq-list{ margin-top:1rem; }
.faq-item{ border-top:1px solid rgba(32,20,23,0.12); }
.faq-item:last-child{ border-bottom:1px solid rgba(32,20,23,0.12); }
.faq-q{ width:100%; text-align:left; background:none; border:none; padding:1.5rem 0; display:flex; justify-content:space-between; align-items:center; gap:1rem; font-family:'Fraunces',serif; font-size:1.1rem; color:var(--ink); cursor:none; }
@media (pointer:coarse){ .faq-q{cursor:pointer;} }
.faq-q .plus{ width:26px; height:26px; border-radius:50%; border:1px solid var(--ink); flex-shrink:0; position:relative; transition:transform .4s var(--ease); }
.faq-q .plus::before, .faq-q .plus::after{ content:''; position:absolute; background:var(--ink); top:50%; left:50%; transform:translate(-50%,-50%); }
.faq-q .plus::before{ width:10px; height:1.4px; }
.faq-q .plus::after{ width:1.4px; height:10px; transition:opacity .3s; }
.faq-item.open .faq-q .plus{ transform:rotate(180deg); border-color:var(--rose); }
.faq-item.open .faq-q .plus::after{ opacity:0; }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .5s var(--ease); }
.faq-a p{ padding-bottom:1.5rem; color:var(--ink-soft); font-size:0.92rem; max-width:42em; }

/* ================= BLOG ================= */
.blog-featured{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:3rem; align-items:center; background:var(--white); border-radius:12px; overflow:hidden; box-shadow:var(--shadow); }
.blog-featured .photo{ aspect-ratio:4/3; }
.blog-featured .content{ padding:2.6rem 2.6rem 2.6rem 0; }
.tag{ display:inline-block; font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--rose); background:var(--blush-soft); padding:5px 12px; border-radius:100px; }
.blog-featured h3{ font-size:clamp(1.6rem,3vw,2.2rem); margin-top:1rem; }
.blog-featured p{ margin-top:0.9rem; color:var(--ink-soft); font-size:0.92rem; }
.post-meta{ margin-top:1.3rem; font-size:0.78rem; color:var(--ink-soft); display:flex; gap:1rem; }
@media (max-width:860px){ .blog-featured{ grid-template-columns:1fr; } .blog-featured .content{ padding:0 1.8rem 1.8rem; } }

.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; margin-top:3rem; }
.blog-card .photo{ aspect-ratio:4/3; border-radius:8px; margin-bottom:1.1rem; }
.blog-card h4{ font-size:1.15rem; font-weight:500; line-height:1.3; }
.blog-card p{ font-size:0.85rem; color:var(--ink-soft); margin-top:0.6rem; }
@media (max-width:900px){ .blog-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .blog-grid{ grid-template-columns:1fr; } }

.newsletter{ margin-top:5rem; background:var(--ink); color:var(--cream); border-radius:12px; padding:3.2rem; display:flex; justify-content:space-between; align-items:center; gap:2rem; flex-wrap:wrap; }
.newsletter h3{ color:var(--cream); font-size:1.6rem; }
.newsletter p{ color:rgba(251,241,234,0.65); font-size:0.88rem; margin-top:0.5rem; }
.newsletter-form{ display:flex; gap:0.6rem; flex-wrap:wrap; }
.newsletter-form input{ padding:0.9rem 1.2rem; border-radius:100px; border:1px solid rgba(251,241,234,0.3); background:transparent; color:var(--cream); font-family:'Manrope'; min-width:220px; }
.newsletter-form input::placeholder{ color:rgba(251,241,234,0.5); }
.newsletter-form input:focus{ outline:none; border-color:var(--gold); }

.pagination{ display:flex; justify-content:center; align-items:center; gap:1rem; margin-top:4rem; font-size:0.85rem; }
.pagination button{ width:38px; height:38px; border-radius:50%; border:1px solid var(--ink); background:none; font-family:'Manrope'; cursor:none; }
@media (pointer:coarse){ .pagination button{cursor:pointer;} }
.pagination button.active{ background:var(--ink); color:var(--cream); }

/* ================= SINGLE BLOG POST ================= */
.post-hero{ padding-top:150px; }
.post-cover{ aspect-ratio:16/8; border-radius:10px; margin-top:2.4rem; box-shadow:var(--shadow); }
.post-body{ max-width:720px; margin:0 auto; padding:80px 6vw 40px; }
.post-body p{ margin-bottom:1.4rem; font-size:1.02rem; color:var(--ink-soft); }
.post-body h3{ font-size:1.5rem; margin:2.2rem 0 1rem; }
.pull-quote{ font-family:'Fraunces',serif; font-style:italic; font-size:1.5rem; color:var(--rose); border-left:3px solid var(--gold); padding-left:1.6rem; margin:2.4rem 0; line-height:1.5; }
.post-inline-photo{ aspect-ratio:16/9; border-radius:8px; margin:2.4rem 0; }
.author-box{ max-width:720px; margin:2rem auto 0; padding:1.8rem; background:var(--white); border-radius:10px; box-shadow:0 10px 30px -18px rgba(32,20,23,0.16); display:flex; gap:1.2rem; align-items:center; }
.author-box .photo{ width:60px; height:60px; border-radius:50%; flex-shrink:0; }
.author-box h5{ font-size:0.95rem; }
.author-box p{ font-size:0.8rem; color:var(--ink-soft); margin-top:0.2rem; }
.related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
@media (max-width:760px){ .related-grid{ grid-template-columns:1fr; } .author-box{ margin-left:6vw; margin-right:6vw; } }
