@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,600;1,600&display=swap');
:root{--ivory:#f4efe7;--ink:#211b17;--clay:#a94f37;--sage:#68715f;--sand:#d8c7ae;--white:#fff;--max:1220px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:'DM Sans',sans-serif;line-height:1.6}img{display:block;width:100%;object-fit:cover}a{color:inherit;text-decoration:none}.wrap{width:min(var(--max),calc(100% - 48px));margin:auto}.nav{position:fixed;z-index:20;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:22px 4vw;color:white;background:linear-gradient(#0008,transparent);transition:.3s}.nav.scrolled{background:#211b17ee;backdrop-filter:blur(14px);padding-block:14px}.brand{display:inline-flex;align-items:center}.nav .brand{background:rgba(244,239,231,.96);padding:8px 10px;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.18)}.brand img{display:block;width:auto;height:56px;object-fit:contain}.footer-brand-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.footer-brand{display:inline-flex;width:fit-content;background:rgba(244,239,231,.96);padding:10px 12px;border-radius:14px;justify-self:start;align-self:start}.footer-brand img{height:48px}.maker-mark{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#b8ada1}.nav nav{display:flex;gap:26px;align-items:center}.nav nav>a:not(.button){font-size:.88rem}.menu{display:none;background:none;color:white;border:0;font:inherit}.button{display:inline-flex;justify-content:center;align-items:center;background:var(--clay);color:white;padding:14px 21px;border:1px solid var(--clay);font-weight:600;letter-spacing:.02em;transition:.25s}.button:hover{transform:translateY(-2px);background:#8d402d}.button.small{padding:10px 16px}.button.outline{background:transparent;color:var(--ink);border-color:var(--ink)}.text-link{font-weight:600;border-bottom:1px solid currentColor;padding-bottom:4px}.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:.73rem;font-weight:600;color:#f0d8c9}.eyebrow.dark{color:var(--clay)}h1,h2,h3{font-family:'Playfair Display',serif;line-height:1.05;margin:0 0 24px}h1{font-size:clamp(3.8rem,8vw,8.5rem);font-weight:600;letter-spacing:-.05em}h1 em{font-weight:600}h2{font-size:clamp(2.7rem,5vw,5.4rem);letter-spacing:-.04em}h3{font-size:1.8rem}.lead{font-size:1.25rem}.hero{height:100svh;min-height:700px;position:relative;color:white;display:flex;align-items:flex-end;padding:0 7vw 9vh}.hero>img,.cta>img{position:absolute;inset:0;height:100%}.overlay{position:absolute;inset:0;background:linear-gradient(90deg,#17100bd9 0%,#17100b65 48%,#0002),linear-gradient(0deg,#0008,transparent 55%)}.hero-copy{position:relative;max-width:850px;z-index:2}.hero-copy>p:not(.eyebrow){font-size:1.2rem;max-width:650px}.actions{display:flex;gap:25px;align-items:center;margin-top:30px}.scroll{position:absolute;right:4vw;bottom:5vh;z-index:2;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase}.statement{padding:150px 0;display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:center}.statement>div:first-child{max-width:590px}.image-stack{position:relative;height:720px}.image-stack img:first-child{height:85%;width:75%;margin-left:auto}.image-stack img:last-child{position:absolute;width:46%;height:42%;left:0;bottom:0;border:12px solid var(--ivory)}.benefits{background:var(--ink);color:white;padding:115px 0}.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4vw;margin-top:60px}.benefit-grid span{color:#d28367;font-size:.8rem;letter-spacing:.2em}.benefit-grid p{color:#d8d0c8}.process{padding:145px 0}.process>h2{max-width:850px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;margin-top:70px}.steps article{border-top:1px solid #a99d8d;padding-top:25px}.steps b{display:block;color:var(--clay);margin-bottom:45px}.steps h3{font-size:1.45rem}.packages{background:#d9c9b3;padding:120px 0 110px}.section-intro{max-width:680px;font-size:1.1rem}.package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:60px;align-items:stretch}.package-grid article{background:#f8f4ed;padding:38px;display:flex;flex-direction:column;min-height:100%}.package-grid article.featured{background:var(--ink);color:white;transform:translateY(-18px)}.package-label{text-transform:uppercase;letter-spacing:.17em;font-size:.72rem;color:var(--clay)}.price{font-family:'Playfair Display',serif;font-size:3rem;margin:5px 0 25px}.package-grid ul{padding-left:18px;margin:18px 0 28px;display:grid;gap:10px}.package-grid .button{margin-top:auto}.featured .button{background:var(--clay)}.location{min-height:760px;position:relative;color:white;display:flex;align-items:center;padding:7vw}.location>img{position:absolute;inset:0;height:100%;filter:brightness(.55)}.location-copy{position:relative;max-width:760px}.location-copy p:not(.eyebrow){max-width:620px;font-size:1.15rem}.gallery{padding:145px 0}.gallery>div:first-child{max-width:780px}.gallery-grid{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:380px 520px;gap:18px;margin-top:60px}.gallery-grid img{height:100%}.gallery-grid img:nth-child(1){grid-row:span 2}.gallery-grid img:nth-child(4){display:none}.about{background:var(--sage);color:white;padding:135px 0}.about .wrap{max-width:950px;margin-left:7vw}.about .lead{max-width:800px}.light{color:white}.faq{padding:140px 0;max-width:950px}.faq details{border-top:1px solid #b4a896;padding:24px 0}.faq details:last-child{border-bottom:1px solid #b4a896}.faq summary{font-family:'Playfair Display',serif;font-size:1.45rem;cursor:pointer}.faq details p{max-width:730px}.cta{position:relative;min-height:720px;color:white;display:flex;align-items:center;justify-content:center;text-align:center;padding:50px}.cta>div:last-child{position:relative;z-index:2;max-width:850px}.cta p:not(.eyebrow){font-size:1.15rem;max-width:680px;margin:0 auto 32px}.email{display:block;margin-top:22px;text-decoration:underline}footer{background:#171310;color:#ddd;padding:65px 5vw 90px;display:grid;grid-template-columns:minmax(220px,1fr) 1fr;gap:24px 36px;align-items:start}footer p{max-width:560px;margin:0}.footer-links{display:flex;gap:25px;justify-content:flex-end;flex-wrap:wrap}.footer-links a{color:#f3eee8}footer small{grid-column:1/-1;border-top:1px solid #423a34;padding-top:25px;margin-top:20px;color:#b8ada1}.mobile-cta{display:none}
@media(max-width:850px){.wrap{width:min(100% - 30px,var(--max))}.nav{padding:18px}.nav .brand{padding:7px 9px;border-radius:12px}.brand img{height:42px}.footer-brand img{height:42px}.menu{display:block}.nav nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--ink);padding:30px;flex-direction:column;align-items:stretch}.nav nav.open{display:flex}.hero{padding:0 22px 12vh;min-height:650px}.hero .overlay{background:linear-gradient(0deg,#170f0bdd 0%,#170f0b55 70%)}h1{font-size:clamp(3.3rem,15vw,5.5rem)}.hero-copy>p:not(.eyebrow){font-size:1rem}.actions{align-items:flex-start;flex-direction:column}.scroll{display:none}.statement{grid-template-columns:1fr;padding:95px 0}.image-stack{height:520px}.benefit-grid,.steps,.package-grid{grid-template-columns:1fr}.benefit-grid{gap:40px}.steps{gap:35px}.steps b{margin-bottom:15px}.package-grid article.featured{transform:none}.process,.packages,.gallery,.faq{padding:95px 0}.location{min-height:650px;padding:25px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:350px 270px}.gallery-grid img:nth-child(1){grid-column:1/-1;grid-row:auto}.gallery-grid img:nth-child(4){display:block}.about .wrap{margin:auto}.cta{min-height:650px;padding:30px 20px}footer{grid-template-columns:1fr;padding-bottom:110px}.footer-links{justify-content:flex-start}.mobile-cta{display:block;position:fixed;z-index:30;left:14px;right:14px;bottom:12px;background:var(--clay);color:white;text-align:center;padding:14px;font-weight:600;box-shadow:0 8px 30px #0005}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.locations-page{background:var(--ivory)}
.locations-page .nav{background:#211b17ee;backdrop-filter:blur(14px)}
.locations-hero{min-height:72vh;position:relative;color:white;display:flex;align-items:flex-end;padding:0 7vw 8vh;margin-top:0}
.locations-hero>img{position:absolute;inset:0;height:100%;object-fit:cover}
.locations-hero-copy{position:relative;z-index:2;max-width:880px}
.locations-hero-copy h1{font-size:clamp(3.5rem,7vw,7.5rem)}
.locations-hero-copy p:not(.eyebrow){font-size:1.2rem;max-width:680px}
.location-list{padding:110px 0;display:grid;gap:72px}
.location-card{display:grid;grid-template-columns:1.05fr .95fr;grid-template-areas:"photo details" "map map";background:#f8f4ed;box-shadow:0 18px 50px rgba(33,27,23,.08)}
.location-card.reverse{grid-template-columns:.95fr 1.05fr;grid-template-areas:"details photo" "map map"}
.location-photo{grid-area:photo;min-height:440px}
.location-photo img{height:100%}
.location-details{grid-area:details;padding:60px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.location-details h2{font-size:clamp(2.5rem,4vw,4.5rem)}
.location-details .button{margin-top:18px}
.location-card iframe{grid-area:map;width:100%;height:360px;border:0;display:block}
.locations-cta{background:var(--ink);color:white;text-align:center;padding:110px 24px}
.locations-cta h2{max-width:900px;margin:0 auto 35px}
@media(max-width:850px){
  .locations-hero{min-height:640px;padding:0 22px 80px}
  .location-list{padding:75px 0;gap:38px}
  .location-card,.location-card.reverse{grid-template-columns:1fr;grid-template-areas:"photo" "details" "map"}
  .location-photo{min-height:320px}
  .location-details{padding:34px 26px}
  .location-card iframe{height:300px}
  .locations-cta{padding:85px 22px}
}

/* Compact clickable location directory */
.compact-locations-hero{min-height:58vh}
.location-directory{padding:90px 0 110px}
.directory-intro{max-width:780px;margin-bottom:46px}
.directory-intro h2{font-size:clamp(2.5rem,4.5vw,4.8rem)}
.directory-intro>p:last-child{max-width:650px;font-size:1.08rem}
.location-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.location-tile{position:relative;min-height:245px;padding:0;border:0;background:#211b17;color:white;overflow:hidden;cursor:pointer;text-align:left;font:inherit}
.location-tile img{position:absolute;inset:0;height:100%;transition:transform .45s ease,filter .45s ease;filter:brightness(.66)}
.location-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,15,12,.9),rgba(20,15,12,.08) 70%)}
.location-tile span{position:absolute;z-index:2;left:24px;right:24px;bottom:21px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.location-tile b{font-family:'Playfair Display',serif;font-size:clamp(1.45rem,2vw,2rem);line-height:1.05}
.location-tile small{text-transform:uppercase;letter-spacing:.13em;font-size:.62rem;white-space:nowrap}
.location-tile:hover img,.location-tile:focus-visible img{transform:scale(1.045);filter:brightness(.78)}
.location-tile:focus-visible{outline:3px solid var(--clay);outline-offset:3px}
.location-dialog{width:min(960px,calc(100% - 30px));max-height:92vh;padding:0;border:0;background:var(--ivory);color:var(--ink);box-shadow:0 30px 100px rgba(0,0,0,.4)}
.location-dialog::backdrop{background:rgba(18,13,10,.78);backdrop-filter:blur(5px)}
.dialog-layout{display:grid;grid-template-columns:.9fr 1.1fr;grid-template-areas:"image content" "map map"}
.dialog-layout>img{grid-area:image;height:330px}
.dialog-content{grid-area:content;padding:42px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.dialog-content h2{font-size:clamp(2.5rem,5vw,4.6rem)}
.dialog-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.dialog-layout iframe{grid-area:map;width:100%;height:260px;border:0}
.dialog-close{position:absolute;z-index:3;right:12px;top:10px;width:42px;height:42px;border:0;border-radius:50%;background:rgba(244,239,231,.95);font-size:1.8rem;line-height:1;cursor:pointer}
body:has(.location-dialog[open]){overflow:hidden}
@media(max-width:850px){.compact-locations-hero{min-height:520px}.location-directory{padding:70px 0 85px}.location-grid{grid-template-columns:1fr 1fr}.location-tile{min-height:210px}.location-tile span{left:18px;right:18px;bottom:17px;display:block}.location-tile small{display:block;margin-top:7px}.dialog-layout{grid-template-columns:1fr;grid-template-areas:"image" "content" "map"}.dialog-layout>img{height:230px}.dialog-content{padding:30px 24px}.dialog-layout iframe{height:240px}}
@media(max-width:540px){.location-grid{grid-template-columns:1fr}.location-tile{min-height:230px}}
/* Verified-content corrections */
.text-location-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.text-location-tile{min-height:150px;background:#211b17;border:1px solid #3b322c}
.text-location-tile::after{display:none}
.text-location-tile span{position:absolute;inset:0;padding:24px;display:flex;align-items:flex-end;justify-content:space-between}
.text-location-tile:hover,.text-location-tile:focus-visible{background:#302722}
.map-only-layout{display:grid;grid-template-columns:1fr;grid-template-areas:"content" "map"}
.map-only-layout .dialog-content{grid-area:content;padding:36px 42px 28px}
.map-only-layout iframe{grid-area:map;width:100%;height:360px;border:0}
@media(max-width:850px){.text-location-grid{grid-template-columns:1fr 1fr}.text-location-tile{min-height:130px}.map-only-layout iframe{height:300px}}
@media(max-width:560px){.text-location-grid{grid-template-columns:1fr}.text-location-tile{min-height:115px}}

.location-photo-strip{padding:70px 0 18px}
.photo-strip-intro{margin-bottom:28px}
.photo-strip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.photo-strip-card{margin:0;background:#f8f4ed;overflow:hidden;box-shadow:0 18px 50px rgba(33,27,23,.08)}
.photo-strip-card img{width:100%;height:320px;object-fit:cover;display:block}
.photo-strip-card figcaption{padding:16px 18px;font-family:'Playfair Display',serif;font-size:1.35rem;line-height:1.1}
@media(max-width:850px){.location-photo-strip{padding:56px 0 12px}.photo-strip-grid{grid-template-columns:1fr;gap:14px}.photo-strip-card img{height:240px}}

/* Unified location grid correction */
.location-photo-strip{display:none!important}
.text-location-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.text-location-tile{min-height:245px}
.location-directory{padding-top:90px}
.dialog-address{margin:-8px 0 18px;color:#5d5148;font-size:1rem}
@media(max-width:850px){.text-location-grid{grid-template-columns:1fr 1fr}.text-location-tile{min-height:210px}}
@media(max-width:540px){.text-location-grid{grid-template-columns:1fr}.text-location-tile{min-height:230px}}
.location-detail-layout{display:grid;grid-template-columns:.95fr 1.05fr;grid-template-areas:"image content" "map map"}
.location-detail-layout>img{grid-area:image;height:100%;min-height:520px;object-fit:cover}
.location-detail-layout .dialog-content{grid-area:content;padding:42px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.location-detail-layout .dialog-content h3{font-family:'DM Sans',sans-serif;font-size:1.08rem;line-height:1.45;margin:-8px 0 18px}
.location-detail-layout .dialog-content ul{padding-left:20px;display:grid;gap:8px;margin:18px 0 6px}
.location-detail-layout iframe{grid-area:map;width:100%;height:300px;border:0}
@media(max-width:850px){.location-detail-layout{grid-template-columns:1fr;grid-template-areas:"image" "content" "map"}.location-detail-layout>img{min-height:0;height:260px}.location-detail-layout .dialog-content{padding:30px 24px}.location-detail-layout iframe{height:260px}}


/* Rebuilt footer hierarchy */
.site-footer{background:#171310;color:#eee;padding:0 5vw 30px;display:block}
.footer-main{width:min(var(--max),100%);margin:0 auto;padding:64px 0 46px;display:grid;grid-template-columns:minmax(280px,1.25fr) minmax(190px,.65fr) auto;gap:48px;align-items:start}
.footer-identity{max-width:500px}
.footer-logo{display:inline-flex;background:transparent;padding:0;margin:0 0 20px;border-radius:0}
.footer-logo img{width:auto;height:78px;object-fit:contain}
.footer-identity p{max-width:460px;margin:0;color:#cfc6be;font-size:.98rem}
.footer-contact{display:flex;flex-direction:column;gap:8px;padding-top:8px}
.footer-contact span{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:#a89d94}
.footer-contact a{font-family:'Playfair Display',serif;font-size:1.45rem;color:#fff}
.site-footer .footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:12px;justify-content:flex-start;padding-top:8px}
.site-footer .footer-links a{color:#f3eee8;font-size:.95rem}
.site-footer .footer-links a:hover,.footer-contact a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-bottom{width:min(var(--max),100%);margin:0 auto;padding-top:24px;border-top:1px solid #403832;display:flex;align-items:center;justify-content:space-between;gap:24px}
.footer-bottom small{border:0;padding:0;margin:0;color:#958a82;grid-column:auto}
.footer-bottom .maker-mark{font-size:.68rem;line-height:1;letter-spacing:.2em;text-transform:uppercase;color:#a89d94;white-space:nowrap}
.footer-bottom .maker-mark:hover{color:#fff}
@media(max-width:850px){.site-footer{padding:0 22px 110px}.footer-main{padding:52px 0 34px;grid-template-columns:1fr;gap:30px}.footer-logo img{height:66px}.footer-contact{padding-top:0}.site-footer .footer-links{padding-top:0;flex-direction:row;flex-wrap:wrap;gap:12px 22px}.footer-bottom{align-items:flex-start}.footer-bottom .maker-mark{margin-left:auto}}
@media(max-width:520px){.footer-bottom{flex-direction:column;gap:14px}.footer-bottom .maker-mark{margin-left:0}}
