*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --ink:#1a1620;
  --paper:#f8f5f3;
  --rose:#c98aa0;
  --rose-soft:#e7c9d4;
  --muted:#8a8088;
  --line:#e6e0e2;
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Jost',system-ui,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;line-height:1.7;font-weight:300;overflow-x:hidden}
.serif{font-family:'Cormorant Garamond',serif}
img{display:block;max-width:100%}
.wrap{max-width:1200px;margin:0 auto;padding:0 28px}

/* ── Header ── */
header{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .4s,box-shadow .4s}
header.solid{background:rgba(248,245,243,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
nav{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:16px 28px}
.logo{display:flex;align-items:center;flex:0 0 auto;line-height:0;text-decoration:none}
.logo-mark{display:block;line-height:0}
.logo-mark img{display:block;height:clamp(34px,7.4vw,46px);width:auto}
.logo-dark{display:none}
header.solid .logo-light{display:none}
header.solid .logo-dark{display:block}
.nav-links{display:flex;align-items:center;gap:34px;list-style:none}
.nav-links a,.nav-parent{font-family:inherit;font-size:.72rem;text-transform:uppercase;letter-spacing:.22em;color:rgba(255,255,255,.85);text-decoration:none;transition:color .3s;background:none;border:none;cursor:pointer;padding:0}
header.solid .nav-links a,header.solid .nav-parent{color:var(--muted)}
.nav-links a:hover,.nav-parent:hover,.nav-parent[aria-expanded="true"]{color:var(--rose)}
header.solid .nav-links a:hover,header.solid .nav-parent:hover,header.solid .nav-parent[aria-expanded="true"]{color:var(--ink)}
.nav-parent::after{content:"";display:inline-block;width:5px;height:5px;margin:0 0 2px 7px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);opacity:.7}
.has-dropdown{position:relative}
.nav-dropdown{position:absolute;top:calc(100% + 18px);left:50%;transform:translateX(-50%) translateY(6px);min-width:268px;padding:12px 0;list-style:none;background:rgba(248,245,243,.98);border:1px solid var(--line);box-shadow:0 10px 28px rgba(26,22,32,.08);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,transform .25s ease,visibility .25s}
.nav-dropdown::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:22px}
.has-dropdown:hover .nav-dropdown,.has-dropdown.open .nav-dropdown{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.nav-links .nav-dropdown a{display:block;padding:11px 22px;color:var(--ink);letter-spacing:.16em;white-space:nowrap}
.nav-links .nav-dropdown a:hover,.nav-links .nav-dropdown a:focus-visible,header.solid .nav-links .nav-dropdown a:hover,header.solid .nav-links .nav-dropdown a:focus-visible{color:var(--rose)}
header.solid .nav-links .nav-dropdown a{color:var(--ink)}
.nav-dropdown li:last-child{margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}
.nav-parent:focus-visible,.nav-links a:focus-visible,.mobile-accordion-toggle:focus-visible,.mobile-menu a:focus-visible{outline:1px solid var(--rose);outline-offset:3px}
.nav-cta{border:1px solid rgba(255,255,255,.7);padding:10px 22px !important;color:#fff !important}
header.solid .nav-cta{border-color:var(--ink);color:var(--ink) !important}
.nav-cta:hover{background:#fff;color:var(--ink) !important}
header.solid .nav-cta:hover{background:var(--ink);color:#fff !important}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}
.hamburger span{display:block;width:24px;height:1.5px;background:#fff;transition:.3s}
header.solid .hamburger span{background:var(--ink)}
.mobile-menu{display:none;flex-direction:column;gap:18px;padding:8px 28px 24px;background:rgba(248,245,243,.98);backdrop-filter:blur(14px);list-style:none}
.mobile-menu.active{display:flex}
.mobile-menu a,.mobile-accordion-toggle{font-family:inherit;font-size:.78rem;text-transform:uppercase;letter-spacing:.22em;color:var(--ink);text-decoration:none;background:none;border:none;cursor:pointer;padding:0;text-align:left}
.mobile-accordion-toggle{display:flex;align-items:center}
.mobile-accordion-toggle::after{content:"";display:inline-block;width:6px;height:6px;margin:0 0 2px 8px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);opacity:.65;transition:transform .25s ease}
.mobile-accordion.open .mobile-accordion-toggle::after{transform:rotate(-135deg);margin-bottom:-2px}
.mobile-sub{display:none;flex-direction:column;gap:14px;list-style:none;padding:12px 0 2px 16px}
.mobile-accordion.open .mobile-sub{display:flex}
.mobile-sub a{font-size:.72rem;letter-spacing:.18em;color:var(--muted)}
.mobile-sub a:hover,.mobile-menu a:hover,.mobile-accordion-toggle:hover{color:var(--rose)}

/* ── Hero ── */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;background-color:var(--ink);background-image:url('/assets/hero.jpg');background-image:image-set(url('/assets/hero.webp') type('image/webp'),url('/assets/hero.jpg') type('image/jpeg'));background-size:cover;background-position:center 22%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,16,22,.32) 0%,rgba(20,16,22,.30) 40%,rgba(20,16,22,.58) 100%)}
.hero-inner{position:relative;z-index:2;color:#fff;padding:24px;max-width:760px}
.hero-eyebrow{font-size:.74rem;letter-spacing:.42em;text-transform:uppercase;color:var(--rose-soft);margin-bottom:30px}
.hero h1{font-weight:300;font-size:clamp(2.6rem,8vw,5rem);line-height:1.02;letter-spacing:.04em;text-transform:uppercase;margin-bottom:26px}
.hero h1 strong{font-weight:500}
.hero-sub{font-size:clamp(1rem,2.4vw,1.2rem);font-weight:300;letter-spacing:.08em;opacity:.94;margin-bottom:14px}
.hero-local{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rose-soft);margin-bottom:42px;max-width:640px;margin-left:auto;margin-right:auto}
.hero-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hero-home .hero-sub{margin-bottom:32px}
.hero-home .hero-btns{margin-bottom:22px}
.hero-home .hero-local{font-size:.68rem;font-weight:300;letter-spacing:.1em;line-height:1.5;opacity:.7;margin-bottom:0;max-width:560px}
.btn-light{background:#fff;color:var(--ink);padding:15px 38px;font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;transition:.3s}
.btn-light:hover{background:var(--rose);color:#fff}
.btn-ghost{border:1px solid rgba(255,255,255,.75);color:#fff;padding:15px 38px;font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;transition:.3s}
.btn-ghost:hover{background:#fff;color:var(--ink)}
.scroll-hint{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);z-index:2;color:rgba(255,255,255,.8);animation:bounce 2.2s infinite}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}

/* ── Section shared ── */
section{padding:110px 0}
.sec-head{text-align:center;max-width:620px;margin:0 auto 70px}
.sec-label{font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--rose);margin-bottom:18px}
.sec-title{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.08}
.sec-lead{color:#5f5763;font-size:1rem;margin-top:22px}

/* ── Services ── */
.services{background:#fff}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:56px}
.svc-col h3{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.5rem;text-align:center;padding-bottom:18px;margin-bottom:26px;border-bottom:1px solid var(--line)}
.svc-item{margin-bottom:26px}
.svc-item:last-child{margin-bottom:0}
.svc-name{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;font-weight:400;margin-bottom:8px}
.svc-name a{color:inherit;text-decoration:none;transition:color .3s}
.svc-name a:hover{color:var(--rose)}
.svc-desc{color:var(--muted);font-size:.92rem;line-height:1.7}
.svc-cta{text-align:center;margin-top:64px}
.btn-dark{display:inline-block;background:var(--ink);color:#fff;padding:15px 40px;font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;transition:.3s}
.btn-dark:hover{background:var(--rose)}
.svc-cta .btn-dark{margin:12px 7px 0}
.svc-cta p{color:var(--muted);font-size:.84rem;margin-top:16px}
.svc-pages{text-align:center;margin-top:36px}
.svc-pages a{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--rose);text-decoration:none;margin:0 14px;display:inline-block}
.svc-pages a:hover{color:var(--ink)}

/* ── How it works ── */
.process{background:var(--paper)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.step{background:#fff;padding:34px 30px;border:1px solid var(--line)}
.step-num{font-family:'Cormorant Garamond',serif;font-size:2.2rem;line-height:1;color:var(--rose);margin-bottom:18px}
.step h3{font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;font-weight:400;margin-bottom:10px}
.step p{color:var(--muted);font-size:.95rem}

/* ── Quick facts ── */
.facts{background:var(--paper)}
.facts .sec-head{margin-bottom:40px}
.facts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.fact{background:#fff;padding:26px 22px;border:1px solid var(--line)}
.fact h3{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:400;color:var(--rose);margin-bottom:10px}
.fact p{color:var(--muted);font-size:.92rem;line-height:1.65}

/* ── FAQ ── */
.faq{background:#fff}
.faq-list{max-width:900px;margin:0 auto;border-top:1px solid var(--line)}
.faq-item{padding:28px 0;border-bottom:1px solid var(--line)}
.faq-item h3{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.45rem;margin-bottom:8px}
.faq-item p{color:#5f5763;font-size:1rem}
.faq-item a,.inline{color:var(--rose);text-decoration:none;border-bottom:1px solid var(--rose-soft)}

/* ── About ── */
.about-grid{display:grid;grid-template-columns:0.85fr 1fr;gap:72px;align-items:center}
.about-photo{position:relative}
.about-photo picture{display:block}
.about-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;height:auto}
.about-photo::before{content:"";position:absolute;top:18px;left:-18px;width:100%;height:100%;border:1px solid var(--rose-soft);z-index:-1}
.about-text .sec-label{text-align:left}
.about-text h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(2rem,4.5vw,3rem);margin-bottom:24px;line-height:1.1}
.about-text p{color:#5f5763;margin-bottom:18px;font-size:1rem}
.about-text a.inline{color:var(--rose);text-decoration:none;border-bottom:1px solid var(--rose-soft)}
.about-text .btn-outline{display:inline-block;margin-top:14px;border:1px solid var(--ink);color:var(--ink);padding:13px 32px;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;transition:.3s}
.about-text .btn-outline:hover{background:var(--ink);color:#fff}

/* ── Gallery ── */
.gallery{background:#fff}
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gal-item{aspect-ratio:3/4;overflow:hidden}
.gal-item picture{display:block;width:100%;height:100%}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.gal-item:hover img{transform:scale(1.06)}
.gal-cta{text-align:center;margin-top:48px}
.gal-cta a{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--rose);text-decoration:none}
.gal-cta a:hover{color:var(--ink)}

/* ── Contact ── */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px}
#contact .contact-grid{max-width:760px;margin:0 auto;grid-template-columns:1fr}
.contact-info h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(2rem,4.5vw,3rem);margin-bottom:34px}
.c-block{margin-bottom:26px}
.c-block h3{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rose);margin-bottom:8px;font-weight:400}
.c-block p{color:#5f5763}
.c-block a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.c-block a:hover{color:var(--rose)}
.contact-info .btn-dark{margin-top:10px;margin-right:8px}
.map{min-height:460px;overflow:hidden}
.map iframe{width:100%;height:100%;min-height:460px;border:0;filter:grayscale(.2)}

/* ── Footer ── */
footer{background:var(--ink);color:rgba(248,245,243,.65);padding:56px 0}
.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:22px}
.footer-logo{font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:#fff;text-decoration:none;font-weight:500}
.footer-links{display:flex;gap:26px;flex-wrap:wrap}
.footer-links a{font-size:.78rem;letter-spacing:.14em;color:rgba(248,245,243,.65);text-decoration:none}
.footer-links a:hover{color:#fff}
.footer-copy{font-size:.7rem;letter-spacing:.08em;color:rgba(248,245,243,.4);margin-top:24px;text-align:center}

@media(max-width:860px){
  .svc-grid{grid-template-columns:1fr;gap:48px}
  .steps{grid-template-columns:1fr;gap:18px}
  .facts-grid{grid-template-columns:1fr 1fr;gap:18px}
  .about-grid,.contact-grid{grid-template-columns:1fr;gap:44px}
  .about-photo{max-width:420px;margin:0 auto}
  section{padding:72px 0}
  .map iframe{min-height:340px}
}
@media(max-width:680px){
  .nav-links{display:none}
  .hamburger{display:flex}
  .gal-grid{grid-template-columns:repeat(2,1fr)}
  .hero{background-position:center 18%}
  .hero-inner{padding:28px 20px}
  .hero-eyebrow{font-size:.76rem;letter-spacing:.32em;margin-bottom:20px}
  .hero h1{font-size:clamp(2.15rem,9.2vw,3.2rem);letter-spacing:.02em;line-height:1.06}
  .hero-sub{font-size:1.12rem;line-height:1.6;letter-spacing:.03em;font-weight:400;opacity:1}
  .hero-home .hero-sub{margin-bottom:28px}
  .hero-home .hero-btns{margin-bottom:24px}
  .hero-home .hero-local{font-size:.7rem;letter-spacing:.08em;line-height:1.5;font-weight:300;opacity:.68}
  .footer-links{flex-wrap:wrap}
}
@media(max-width:480px){
  .facts-grid{grid-template-columns:1fr}
  .wrap,nav,.mobile-menu{padding-left:20px;padding-right:20px}
  section{padding:60px 0}
  .sec-head{margin-bottom:48px}
  .hero-inner{padding:22px 16px}
  .hero-eyebrow{font-size:.78rem;letter-spacing:.26em;margin-bottom:16px}
  .hero h1{font-size:clamp(2.2rem,10vw,2.65rem);letter-spacing:.02em;line-height:1.08;margin-bottom:20px}
  .hero-sub{font-size:1.15rem;line-height:1.62;letter-spacing:.02em;font-weight:400;opacity:1;margin-bottom:16px}
  .hero-home .hero-sub{margin-bottom:26px}
  .hero-home .hero-btns{margin-bottom:22px}
  .hero-home .hero-local{font-size:.68rem;letter-spacing:.07em;line-height:1.5;font-weight:300;opacity:.66;margin-bottom:0}
  .hero-btns{flex-direction:column;align-items:stretch;gap:12px}
  .hero-btns a{text-align:center}
  .btn-dark,.btn-light,.btn-ghost{letter-spacing:.16em;padding-left:22px;padding-right:22px}
  .about-photo::before{left:-10px;top:10px}
  .svc-pages a{display:block;margin:10px 0}
  .footer-links{gap:16px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .scroll-hint{animation:none}
  .gal-item img{transition:none}
  *{transition-duration:.01ms !important}
}
