@font-face{font-family:"Cabinet Grotesk";src:url("assets/fonts/cabinet-grotesk-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Cabinet Grotesk";src:url("assets/fonts/cabinet-grotesk-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Cabinet Grotesk";src:url("assets/fonts/cabinet-grotesk-800.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:Satoshi;src:url("assets/fonts/satoshi-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Satoshi;src:url("assets/fonts/satoshi-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Satoshi;src:url("assets/fonts/satoshi-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{--paper:#f6f4ef;--ink:#1c1b18;--graphite:#3a3d42;--graphite-dark:#2a2c30;--line:rgba(28,27,24,.12);--content:1152px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Satoshi,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
.container{width:min(calc(100% - 40px),var(--content));margin-inline:auto}
.skip-link{position:absolute;left:12px;top:-48px;z-index:100;padding:10px 14px;background:var(--ink);color:var(--paper);border-radius:8px;font-weight:700}
.skip-link:focus{top:12px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:3px solid #8fb89b;outline-offset:4px}
h1,h2,h3{font-family:"Cabinet Grotesk",system-ui,sans-serif;margin:0;font-weight:700;letter-spacing:-.025em}
h1{font-size:clamp(2.5rem,5vw,3.6rem);line-height:1.05;max-width:12ch}
h2{font-size:clamp(2rem,4vw,2.8rem);line-height:1.08;max-width:18ch}
h3{font-size:1.35rem;line-height:1.15}
p{margin:0}
.lead{font-size:1.15rem;line-height:1.65;color:rgba(28,27,24,.7);max-width:46ch}
.eyebrow{color:var(--graphite);font-size:.9rem;font-weight:700;letter-spacing:.04em;margin-bottom:20px}
.site-header{position:sticky;top:0;z-index:20;background:rgba(246,244,239,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.nav{height:68px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-family:"Cabinet Grotesk",system-ui,sans-serif;font-size:1.15rem;font-weight:700;letter-spacing:-.02em}
.brand-mark{flex:none}
.desktop-nav{display:flex;align-items:center;gap:32px;color:rgba(28,27,24,.7);font-size:.95rem}
.desktop-nav a,.text-link,.footer-meta a,.legal-block a{text-decoration:none}
.desktop-nav a:hover,.text-link:hover,.footer-meta a:hover,.legal-block a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:999px;padding:12px 24px;font-weight:700;text-decoration:none;transition:transform .2s ease,background-color .2s ease,border-color .2s ease}
.button:hover{transform:translateY(-1px)}
.button-dark{background:var(--ink);color:var(--paper)}
.button-dark:hover{background:var(--graphite-dark)}
.button-small{padding:9px 16px;font-size:.95rem}
.button-large{padding:16px 28px;font-size:1.1rem}
.button-outline{border-color:rgba(28,27,24,.22)}
.button-outline:hover{border-color:var(--ink)}
.hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:48px;padding-top:96px;padding-bottom:96px}
.hero .lead{margin-top:24px}
.hero-image{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:18px}
.button-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.section{padding:96px 0}
.section-border{border-top:1px solid var(--line)}
.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:48px 56px;margin-top:56px}
.feature{border-top:1px solid rgba(28,27,24,.22);padding-top:20px}
.feature p{color:rgba(28,27,24,.68);line-height:1.65;max-width:42ch;margin-top:8px}
.section-intro{max-width:52ch}
.section-intro .lead{margin-top:16px}
.gallery{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,280px);gap:16px;margin-top:48px}
.gallery img{width:100%;height:100%;object-fit:cover;border-radius:18px}
.gallery-main{grid-row:span 2}
.prices{background:var(--ink);color:var(--paper)}
.price-intro{color:rgba(246,244,239,.72);line-height:1.65;max-width:48ch;margin-top:16px}
.price-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:768px;margin-top:48px}
.price-card{display:flex;flex-direction:column;min-height:290px;border:1px solid rgba(246,244,239,.2);border-radius:18px;padding:28px}
.price-card-featured{background:var(--graphite)}
.price-card p:not(.price){color:rgba(246,244,239,.75);line-height:1.6;margin-top:12px}
.price{font-family:"Cabinet Grotesk",system-ui,sans-serif;font-size:2rem;font-weight:700;margin-top:auto;padding-top:28px}
.price span{font-family:Satoshi,system-ui,sans-serif;font-size:1rem;font-weight:400;color:rgba(246,244,239,.65)}
.price-card .button{margin-top:24px}
.button-outline-light{border-color:rgba(246,244,239,.32);color:var(--paper)}
.button-outline-light:hover{background:rgba(246,244,239,.1);border-color:var(--paper)}
.button-light{background:var(--paper);color:var(--ink)}
.button-light:hover{background:#fff}
.price-footnote{color:rgba(246,244,239,.62);font-size:.9rem;margin-top:24px}
.location-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:48px}
.location-grid .lead{margin-top:16px}
.address{font-family:"Cabinet Grotesk",system-ui,sans-serif;font-size:1.35rem;font-weight:700;line-height:1.35;margin-top:24px}
.text-link{display:inline-block;color:var(--graphite);font-weight:700;margin-top:24px}
.location-image{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px}
.contact{text-align:center;padding:128px 0}
.contact-copy{width:min(100%,600px);margin-inline:auto}
.contact .lead{margin:20px auto 0}
.contact .button{margin-top:32px}
.site-footer{background:var(--ink);color:rgba(246,244,239,.72);padding-top:64px}
.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.footer-brand{color:var(--paper)}
.footer-copy{max-width:38ch;line-height:1.65;font-size:.95rem;margin-top:14px}
.legal-block{font-size:.9rem;line-height:1.65}
.legal-block h2{font-family:Satoshi,system-ui,sans-serif;font-size:1rem;letter-spacing:0;color:var(--paper);margin-bottom:10px}
.legal-block p+p{margin-top:14px}
.legal-block a{color:var(--paper)}
.footer-meta{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid rgba(246,244,239,.18);padding-top:24px;padding-bottom:24px;margin-top:48px;font-size:.78rem;color:rgba(246,244,239,.55)}
.footer-meta nav{display:flex;gap:20px}
.footer-meta a{color:rgba(246,244,239,.75)}
.js-enabled [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.js-enabled [data-reveal].is-visible{opacity:1;transform:none}
.legal-page{min-height:100vh}
.legal-main{width:min(calc(100% - 40px),800px);margin:0 auto;padding:88px 0 112px}
.legal-main h1{max-width:none;margin-top:12px}
.legal-main h2{font-size:1.55rem;max-width:none;margin-top:48px;margin-bottom:14px}
.legal-main p,.legal-main li{font-size:1rem;line-height:1.75;color:rgba(28,27,24,.78)}
.legal-main p+p{margin-top:14px}
.legal-main a{color:var(--graphite);font-weight:700}
.legal-meta{font-size:.9rem;color:rgba(28,27,24,.58);margin-top:14px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}.js-enabled [data-reveal]{opacity:1;transform:none;transition:none}}
@media (max-width:760px){.container{width:min(calc(100% - 32px),var(--content))}.desktop-nav{display:none}.hero,.location-grid,.footer-grid{grid-template-columns:1fr}.hero{padding-top:64px;padding-bottom:72px;gap:36px}.section{padding:72px 0}.feature-grid,.price-grid{grid-template-columns:1fr;gap:32px}.gallery{grid-template-columns:1fr;grid-template-rows:repeat(3,240px)}.gallery-main{grid-row:auto}.contact{padding:96px 0}.legal-main{width:min(calc(100% - 32px),800px);padding:64px 0 88px}.legal-main h2{margin-top:40px}}
