
:root{
  --cream:#efe9df; --paper:#f8f4ed; --ink:#171816; --muted:#6d6a64;
  --line:rgba(23,24,22,.13); --accent:#a56d4b; --dark:#1a1b19;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--paper);line-height:1.65}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin-top:0}
h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.035em;line-height:1.02}
h1{font-size:clamp(3.4rem,8vw,8.4rem);max-width:1050px}
h2{font-size:clamp(2.6rem,5.5vw,5.7rem);margin-bottom:1.4rem}
.site-header{position:fixed;z-index:20;top:0;left:0;right:0;height:96px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;background:linear-gradient(to bottom,rgba(248,244,237,.96),rgba(248,244,237,.78));backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,0,0,.05)}
.brand img{width:230px;height:74px;object-fit:contain;object-position:left center}
.nav{display:flex;align-items:center;gap:1.6rem;font-size:.95rem}
.nav a{position:relative}
.nav-cta{border:1px solid var(--ink);border-radius:999px;padding:.7rem 1rem}
.menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:999px;padding:.55rem .85rem}
.hero{height:100svh;min-height:720px;position:relative;color:white;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.69) 0%,rgba(0,0,0,.28) 56%,rgba(0,0,0,.06) 100%)}
.hero-content{position:absolute;z-index:2;left:6vw;bottom:9vh;max-width:1120px}
.hero-content h1{margin:.35rem 0 1.2rem}
.hero-content>p:not(.eyebrow){max-width:720px;font-size:clamp(1.04rem,1.5vw,1.28rem);color:rgba(255,255,255,.9)}
.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;font-weight:700}
.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:50px;padding:.78rem 1.2rem;border-radius:999px;font-weight:700;transition:.2s transform,.2s background}
.button:hover{transform:translateY(-2px)}
.button.light{background:#fff;color:#111}
.button.glass{border:1px solid rgba(255,255,255,.6);background:rgba(255,255,255,.08);backdrop-filter:blur(8px)}
.button.dark{background:var(--dark);color:#fff;border:1px solid var(--dark)}
.hero-scroll{position:absolute;right:4vw;bottom:4vh;z-index:2;font-size:2rem}
.section{padding:10rem 7vw}
.section-tight{padding:4rem 7vw 10rem}
.intro{background:var(--cream)}
.intro-grid{display:grid;grid-template-columns:1.1fr .75fr;gap:7vw;align-items:start}
.intro-copy{font-size:1.08rem;max-width:620px}
.text-link{display:inline-block;margin-top:1rem;border-bottom:1px solid}
.story-grid{display:grid;grid-template-columns:1.05fr .85fr .65fr;gap:2.5vw;align-items:center}
.story-image{height:520px;overflow:hidden}
.story-image.tall{height:760px}
.story-copy{padding:2rem}
.story-copy p{font-size:1.05rem}
.photo-ribbon{display:grid;grid-template-columns:1fr 1.2fr 1fr;height:520px}

.wow-frame{position:relative;background:#0d0d0c;padding:7vw 7vw 5vw;color:#fff}
.wow-frame>img{width:100%;height:auto;max-height:82vh;object-fit:contain;background:#0d0d0c}
.wow-caption{display:flex;justify-content:space-between;align-items:baseline;gap:2rem;padding-top:1.5rem}
.wow-caption span{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;opacity:.6}
.wow-caption p{max-width:560px;font-family:Georgia,serif;font-size:clamp(1.25rem,2vw,2rem);line-height:1.25;margin:0}
.action-shot img{transition:transform .45s ease}
.action-shot:hover img{transform:scale(1.025)}

.family-feature{display:grid;grid-template-columns:1.1fr .8fr;gap:7vw;align-items:center;background:var(--cream)}
.family-collage{height:760px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1.2fr .8fr;gap:14px}
.family-collage .f1{grid-row:1/3}
.family-copy p{font-size:1.06rem}
.section-head{display:grid;grid-template-columns:1fr .62fr;gap:5vw;align-items:end;margin-bottom:3.4rem}
.section-head h2{margin-bottom:0}
.section-head>p{color:var(--muted);font-size:1rem}
.masonry{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:280px;gap:14px}
.masonry figure{margin:0;overflow:hidden}
.masonry .wide{grid-column:span 2}
.masonry .tall{grid-row:span 2}
.quote-band{background:var(--dark);color:#fff;padding:8rem 10vw;text-align:center}
.quote-mark{font-family:Georgia,serif;font-size:7rem;line-height:.4;margin-bottom:2rem;opacity:.4}
blockquote{max-width:1000px;margin:0 auto;font-family:Georgia,serif;font-size:clamp(2rem,4vw,4.2rem);line-height:1.18}
.prices{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.prices article{position:relative;border:1px solid var(--line);padding:2rem;min-height:330px;display:flex;flex-direction:column;background:#fff}
.prices article span{font-size:.78rem;text-transform:uppercase;letter-spacing:.16em}
.prices article h3{font-family:Georgia,serif;font-size:2.2rem;margin:.9rem 0}
.prices article p{color:var(--muted)}
.prices article strong{margin-top:auto;font-size:1.6rem}
.prices .featured{background:var(--dark);color:white}
.prices .featured p{color:rgba(255,255,255,.72)}
.prices em{position:absolute;right:1rem;top:1rem;font-size:.72rem;font-style:normal;background:var(--cream);color:#111;padding:.35rem .6rem;border-radius:999px}
.center{text-align:center;margin-top:2.4rem}
.family-price{display:grid;grid-template-columns:1.1fr .9fr;padding:0;background:var(--cream)}
.family-price-image{min-height:700px}
.family-price-copy{padding:7vw;align-self:center}
.family-price-copy ul{padding-left:1.2rem}
.big-price{font-family:Georgia,serif;font-size:3rem;margin:2rem 0}
.about{display:grid;grid-template-columns:.9fr 1fr;gap:7vw;align-items:center}
.about-image{height:760px;overflow:hidden}
.about-copy p{font-size:1.07rem}
.signature{font-family:Georgia,serif;font-style:italic;font-size:2rem!important;margin-top:2rem}
.reviews{background:#e9e2d8}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.reviews-grid article{background:var(--paper);padding:2rem;min-height:260px;display:flex;flex-direction:column}
.reviews-grid article p{font-family:Georgia,serif;font-size:1.55rem;line-height:1.35}
.reviews-grid article span{margin-top:auto;color:var(--muted);font-size:.9rem}
.contact{display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw;background:var(--dark);color:#fff}
.contact-copy p{color:rgba(255,255,255,.72)}
.contact-direct{display:flex;flex-direction:column;margin-top:2rem;font-size:1.2rem}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.contact-form label{display:flex;flex-direction:column;gap:.4rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;padding:.9rem;border-radius:8px;font:inherit;text-transform:none;letter-spacing:normal}
.contact-form select option{color:#111}
.contact-form textarea{resize:vertical}
.contact-form .button{background:#fff;color:#111}
.full{grid-column:1/-1}
.form-note{font-size:.78rem;color:rgba(255,255,255,.55)!important}
.hidden{display:none!important}
footer{min-height:190px;padding:3rem 5vw;display:flex;align-items:center;justify-content:space-between;gap:2rem;background:var(--paper);border-top:1px solid var(--line)}
footer img{width:210px;height:90px;object-fit:contain}
.reveal{animation:rise .8s ease-out both}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media (max-width:980px){
  .site-header{height:78px}
  .brand img{width:175px;height:60px}
  .menu-toggle{display:block}
  .nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--paper);padding:1.5rem 5vw;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}
  .nav.open{display:flex}
  .hero{min-height:700px}
  .hero-content{left:5vw;right:5vw}
  .section{padding:7rem 5vw}.section-tight{padding:4rem 5vw 7rem}
  .intro-grid,.section-head,.family-feature,.about,.contact{grid-template-columns:1fr}
  .story-grid{grid-template-columns:1fr 1fr}
  .story-copy{grid-column:1/-1;grid-row:1}
  .story-image.tall,.story-image{height:520px}
  .photo-ribbon{height:360px}
  .prices{grid-template-columns:1fr 1fr}
  .masonry{grid-template-columns:1fr 1fr}
  .family-price{grid-template-columns:1fr}
  .family-price-image{min-height:540px}
  .about-image{height:580px}
  .reviews-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  h1{font-size:clamp(3rem,15vw,5.2rem)}
  h2{font-size:clamp(2.5rem,12vw,4rem)}
  .hero-shade{background:linear-gradient(0deg,rgba(0,0,0,.72),rgba(0,0,0,.15))}
  .hero-actions{flex-direction:column;align-items:stretch}
  .hero-actions .button{width:100%}
  .intro-grid,.story-grid{display:block}
  .story-image,.story-image.tall{height:520px;margin-bottom:14px}
  .story-copy{padding:2rem 0 4rem}
  .photo-ribbon{height:auto;grid-template-columns:1fr}
  .photo-ribbon img{height:420px}
  .family-collage{height:620px}
  .masonry{grid-template-columns:1fr;grid-auto-rows:420px}
  .masonry .wide,.masonry .tall{grid-column:auto;grid-row:auto}
  .prices{grid-template-columns:1fr}
  .contact-form{grid-template-columns:1fr}
  footer{flex-direction:column;text-align:center}
}

@media(max-width:640px){
 .wow-frame{padding:4rem 0 2rem}
 .wow-caption{padding:1.2rem 5vw 0;display:block}
 .wow-caption span{display:block;margin-bottom:.6rem}
}
.review-photo{padding:0!important;overflow:hidden}.review-photo img{width:100%;height:190px;object-fit:cover}.review-photo div{padding:1.4rem 2rem 2rem;display:flex;flex:1;flex-direction:column}.review-photo div p{margin-top:0}.review-photo div span{margin-top:auto}
/* Reference stories */
.review-stories{display:flex;flex-direction:column;gap:18px;margin-top:2rem}.review-story{display:grid;grid-template-columns:1fr 1fr;min-height:500px;background:var(--paper);overflow:hidden}.review-story.reverse .review-image{order:2}.review-story.reverse .review-copy{order:1}.review-image{min-height:500px}.review-image img{width:100%;height:100%;object-fit:cover}.review-copy{padding:clamp(2.2rem,5vw,5rem);display:flex;flex-direction:column;justify-content:center}.review-copy p{font-family:Georgia,serif;font-size:clamp(1.35rem,2vw,2rem);line-height:1.45;margin:0 0 2rem}.review-copy strong{font-size:1.05rem}.review-copy span{margin-top:.3rem;color:var(--muted);font-size:.86rem;text-transform:uppercase;letter-spacing:.08em}.review-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}.review-notes article{background:var(--paper);padding:2rem;display:flex;flex-direction:column;min-height:280px}.review-notes p{font-family:Georgia,serif;font-size:1.25rem;line-height:1.45}.review-notes strong{margin-top:auto}
@media(max-width:980px){.review-story{grid-template-columns:1fr;min-height:0}.review-story.reverse .review-image,.review-story.reverse .review-copy{order:initial}.review-image{min-height:420px}.review-notes{grid-template-columns:1fr}}
@media(max-width:640px){.review-image{min-height:340px}.review-copy{padding:2rem}.review-notes article{min-height:0}}

/* Production polish v3.0 */
html{scroll-padding-top:96px}
.skip-link{position:fixed;left:1rem;top:1rem;z-index:9999;padding:.75rem 1rem;background:#111;color:#fff;border-radius:6px;transform:translateY(-180%);transition:transform .2s}
.skip-link:focus{transform:translateY(0)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid currentColor;outline-offset:4px}
img{max-width:100%;height:auto}
.hero-bg,.story-image img,.photo-ribbon img,.family-collage img,.family-price-image img,.about-image img,.masonry img,.review-image img{height:100%}
.form-note a{text-decoration:underline;text-underline-offset:3px}
.footer-links{display:flex;gap:1.2rem;flex-wrap:wrap;justify-content:center}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(max-width:640px){html{scroll-padding-top:82px}.footer-links{flex-direction:column;gap:.6rem}}


/* Analytics consent */
.cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:1000;max-width:920px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.15rem 1.25rem;background:#fff;border:1px solid rgba(0,0,0,.12);box-shadow:0 12px 40px rgba(0,0,0,.18);font-size:.95rem}
.cookie-banner strong{display:block;font-size:1.05rem;margin-bottom:.25rem}.cookie-banner p{margin:0;color:var(--muted);line-height:1.45}.cookie-banner a{text-decoration:underline}.cookie-actions{display:flex;gap:.6rem;flex:0 0 auto}.cookie-actions button{border:0;padding:.75rem 1rem;cursor:pointer;font:inherit}.cookie-primary{background:#1d2725;color:#fff}.cookie-secondary{background:#eee9e1;color:#1d2725}
@media(max-width:700px){.cookie-banner{align-items:stretch;flex-direction:column}.cookie-actions{width:100%}.cookie-actions button{flex:1}}

/* Local SEO landing v3.3 */
.local-hero .hero-content{max-width:900px}.local-area{background:var(--paper)}.area-chips{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2rem}.area-chips span{border:1px solid var(--line);border-radius:999px;padding:.7rem 1rem;background:#fff}.local-faq{background:#fff}.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin-top:2.5rem}.faq-grid article{background:var(--paper);padding:2rem}.faq-grid h3{font-family:Georgia,serif;font-size:1.5rem;margin:0 0 .8rem}.faq-grid p{color:var(--muted);line-height:1.6}.local-contact-photo{min-height:520px}.local-contact-photo img{width:100%;height:100%;object-fit:cover}@media(max-width:980px){.faq-grid{grid-template-columns:1fr}.local-contact-photo{min-height:480px}}

.footer-meta{max-width:520px}
.footer-meta>p:first-child{margin:0 0 .55rem}
.footer-local{margin:0;font-size:.82rem;line-height:1.55;color:rgba(20,20,20,.55)}
.footer-local a{text-decoration:underline;text-underline-offset:3px}
