:root{--ink:#17221e;
--green:#20362f;
--green-2:#29483e;
--paper:#f4efe6;
--cream:#fffaf2;
--terracotta:#ad5639;
--gold:#d79a5b;
--line:rgba(23,34,30,.16);
--white:#fff;
--shadow:0 18px 60px rgba(20,34,29,.12);
--radius:1.35rem;
--container:min(1160px,calc(100% - 2rem))}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;
color:var(--ink);
background:var(--paper);
font-family:Arial,Helvetica,sans-serif;
line-height:1.6;
-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
img{display:block;
max-width:100%}
a{color:inherit;
text-decoration:none}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
.container{width:var(--container);
margin-inline:auto}
.sr-only{position:absolute;
width:1px;
height:1px;
padding:0;
margin:-1px;
overflow:hidden;
clip:rect(0,0,0,0);
white-space:nowrap;
border:0}
.skip-link{position:fixed;
z-index:1000;
left:1rem;
top:1rem;
padding:.8rem 1rem;
background:var(--white);
color:var(--ink);
transform:translateY(-150%);
transition:transform .2s}
.skip-link:focus{transform:none}
.notice{min-height:34px;
padding:.35rem max(1rem,calc((100vw - 1160px)/2));
display:flex;
justify-content:space-between;
align-items:center;
gap:1rem;
background:var(--ink);
color:#f5efe7;
font-size:.71rem;
letter-spacing:.12em;
text-transform:uppercase}
.notice p{margin:0}
.notice a{border-bottom:1px solid rgba(255,255,255,.5)}
.site-header{position:absolute;
z-index:20;
left:0;
right:0;
top:34px;
color:var(--white);
border-bottom:1px solid rgba(255,255,255,.18)}
.site-header.is-scrolled{position:fixed;
top:0;
background:rgba(23,34,30,.96);
backdrop-filter:blur(12px);
box-shadow:0 10px 30px rgba(0,0,0,.12)}
.header-inner{min-height:86px;
display:flex;
align-items:center;
justify-content:space-between;
gap:2rem}
.brand{display:inline-flex;
align-items:center;
gap:.75rem}
.brand-mark{width:2.65rem;
aspect-ratio:1;
display:grid;
place-items:center;
border:1px solid var(--gold);
border-radius:50%;
color:var(--gold);
font:700 1.55rem Georgia,serif}
.brand-copy{display:flex;
flex-direction:column;
line-height:1.15}
.brand-copy strong{font:700 1.05rem Georgia,serif;
letter-spacing:.02em}
.brand-copy small{margin-top:.22rem;
font-size:.58rem;
letter-spacing:.16em;
text-transform:uppercase;
opacity:.76}
.main-nav{display:flex;
align-items:center;
gap:2rem;
font-size:.82rem;
font-weight:700;
letter-spacing:.04em}
.main-nav>a:not(.nav-cta){position:relative}
.main-nav>a:not(.nav-cta)::after{content:"";
position:absolute;
left:0;
right:100%;
bottom:-.4rem;
height:1px;
background:var(--gold);
transition:right .25s}
.main-nav>a:hover::after,.main-nav>a:focus-visible::after{right:0}
.nav-cta{padding:.8rem 1.15rem;
border:1px solid rgba(255,255,255,.55);
border-radius:999px;
transition:background .2s,color .2s}
.nav-cta:hover,.nav-cta:focus-visible{background:var(--white);
color:var(--ink)}
.menu-toggle{display:none}
.hero{position:relative;
min-height:clamp(700px,88vh,900px);
display:flex;
align-items:center;
color:var(--white);
overflow:hidden}
.hero-image,.hero-shade{position:absolute;
inset:0;
width:100%;
height:100%}
.hero-image{object-fit:cover;
object-position:center 52%}
.hero-shade{background:linear-gradient(90deg,rgba(11,21,17,.88) 0%,rgba(16,29,24,.62) 45%,rgba(14,25,21,.12) 78%),linear-gradient(0deg,rgba(12,22,18,.45),transparent 45%)}
.hero-content{position:relative;
z-index:1;
padding-top:8rem}
.eyebrow{margin:0 0 1.2rem;
color:var(--terracotta);
font-size:.72rem;
font-weight:800;
letter-spacing:.2em;
text-transform:uppercase}
.eyebrow.light{color:#f0b276}
.hero h1,.section h2,.booking-section h2,.faq-section h2{font-family:Georgia,"Times New Roman",serif;
font-weight:400;
letter-spacing:-.045em;
line-height:.96}
.hero h1{max-width:850px;
margin:0;
font-size:clamp(3.7rem,8.5vw,7.6rem)}
.hero h1 em{color:#f0b276;
font-weight:400}
.hero-lead{max-width:650px;
margin:1.8rem 0 0;
font-size:clamp(1rem,1.5vw,1.22rem);
color:rgba(255,255,255,.83)}
.hero-actions{display:flex;
flex-wrap:wrap;
gap:.8rem;
margin-top:2.2rem}
.button{min-height:50px;
padding:.82rem 1.25rem;
display:inline-flex;
align-items:center;
justify-content:center;
gap:.9rem;
border:1px solid transparent;
border-radius:999px;
font-size:.78rem;
font-weight:800;
letter-spacing:.06em;
cursor:pointer;
transition:transform .2s,background .2s,color .2s,border-color .2s}
.button:hover,.button:focus-visible{transform:translateY(-2px)}
.button-primary{background:var(--terracotta);
color:var(--white)}
.button-primary:hover,.button-primary:focus-visible{background:#9e4930}
.button-ghost{border-color:rgba(255,255,255,.52);
color:var(--white)}
.button-ghost:hover,.button-ghost:focus-visible{background:var(--white);
color:var(--ink)}
.hero-foot{position:absolute;
z-index:2;
bottom:2.2rem;
left:50%;
transform:translateX(-50%);
display:flex;
gap:2.2rem;
padding-top:1rem;
border-top:1px solid rgba(255,255,255,.24);
font-size:.7rem;
letter-spacing:.13em;
text-transform:uppercase}
.hero-foot span{display:flex;
align-items:center;
gap:.55rem}
.hero-foot span::before{content:"";
width:.32rem;
aspect-ratio:1;
border-radius:50%;
background:var(--gold)}
.section{padding:clamp(5rem,10vw,9rem) 0}
.intro-section{background:var(--cream)}
.intro-grid{display:grid;
grid-template-columns:.88fr 1.12fr;
gap:clamp(3rem,8vw,8rem);
align-items:center}
.section h2,.faq-section h2{margin:0;
font-size:clamp(2.7rem,5.4vw,5.2rem)}
.intro-copy .lead,.collection-copy .lead{margin:2rem 0 1.3rem;
font-size:1.13rem;
color:#31443d}
.intro-copy>p:not(.eyebrow){max-width:590px}
.text-link{display:inline-flex;
gap:.5rem;
margin-top:1.2rem;
padding-bottom:.28rem;
border-bottom:1px solid var(--ink);
font-size:.78rem;
font-weight:800;
letter-spacing:.07em;
text-transform:uppercase}
.feature-figure{position:relative;
margin:0}
.feature-figure::before{content:"";
position:absolute;
z-index:0;
inset:-1.2rem 2rem 2rem -1.2rem;
background:#d8ded0}
.feature-figure img{position:relative;
z-index:1;
width:100%;
aspect-ratio:4/5;
object-fit:cover;
border-radius:var(--radius);
box-shadow:var(--shadow)}
.feature-figure figcaption{position:relative;
z-index:2;
display:flex;
gap:.9rem;
margin-top:1rem;
font-size:.74rem;
letter-spacing:.09em;
text-transform:uppercase}
.feature-figure figcaption span{color:var(--terracotta);
font-weight:800}
.fact-row{margin-top:clamp(4rem,8vw,7rem);
padding-top:2rem;
border-top:1px solid var(--line);
display:grid;
grid-template-columns:repeat(3,1fr);
gap:1rem}
.fact-row>div{display:flex;
flex-direction:column;
gap:.25rem}
.fact-row strong{font:400 clamp(1.8rem,3vw,2.9rem) Georgia,serif}
.fact-row span{font-size:.75rem;
color:#5b6964}
.experiences-section{background:var(--paper)}
.section-heading{display:grid;
grid-template-columns:1fr 1fr;
align-items:end;
margin-bottom:3rem}
.section-heading .eyebrow{grid-column:1/-1}
.section-heading p:last-child{max-width:450px;
justify-self:end;
margin:0;
color:#596760}
.section-heading.centered{display:block;
max-width:760px;
text-align:center}
.section-heading.centered p:last-child{margin:1.2rem auto 0}
.experience-grid{display:grid;
grid-template-columns:1.15fr .85fr .85fr;
gap:1rem}
.experience-card{position:relative;
min-height:520px;
border-radius:var(--radius);
overflow:hidden}
.image-card img,.card-overlay{position:absolute;
inset:0;
width:100%;
height:100%}
.image-card img{object-fit:cover}
.card-overlay{background:linear-gradient(0deg,rgba(12,22,18,.9),transparent 65%)}
.card-content{position:absolute;
z-index:2;
left:1.5rem;
right:1.5rem;
bottom:1.5rem;
color:var(--white)}
.card-content span,.card-number{font-size:.68rem;
letter-spacing:.14em;
opacity:.72}
.experience-card h3{margin:.45rem 0;
font:400 2rem/1.05 Georgia,serif}
.experience-card p{margin:.6rem 0 0}
.color-card{padding:1.6rem;
display:flex;
flex-direction:column;
justify-content:space-between}
.color-card.terracotta{background:var(--terracotta);
color:var(--white)}
.color-card.green{background:var(--green);
color:var(--white)}
.color-card h3{font-size:clamp(2.1rem,3.5vw,3.2rem)}
.card-kicker{font-size:.7rem;
letter-spacing:.16em;
text-transform:uppercase;
opacity:.8}
.color-card>a{display:flex;
justify-content:space-between;
align-items:center;
padding-top:1rem;
border-top:1px solid rgba(255,255,255,.28);
font-size:.78rem;
font-weight:800;
text-transform:uppercase;
letter-spacing:.06em}
.collection-section{background:#dfe4dc}
.collection-grid{display:grid;
grid-template-columns:1.12fr .88fr;
gap:clamp(3rem,7vw,7rem);
align-items:center}
.collection-image{margin:0}
.collection-image img{width:100%;
min-height:480px;
object-fit:cover;
object-position:center;
border-radius:var(--radius);
box-shadow:var(--shadow)}
.collection-image figcaption{margin-top:.8rem;
font-size:.7rem;
letter-spacing:.08em;
text-transform:uppercase;
color:#5a685f}
.clean-list{list-style:none;
margin:2.2rem 0 0;
padding:0;
border-top:1px solid var(--line)}
.clean-list li{padding:1rem 0;
border-bottom:1px solid var(--line);
display:flex;
justify-content:space-between;
gap:1rem}
.clean-list span{font-family:Georgia,serif;
font-size:1.15rem}
.clean-list small{color:#66736d}
.visit-section{background:var(--cream)}
.visit-grid{display:grid;
grid-template-columns:repeat(3,1fr);
gap:1rem}
.info-card{padding:2rem;
background:var(--white);
border:1px solid rgba(23,34,30,.08);
border-radius:var(--radius);
box-shadow:0 12px 32px rgba(26,41,34,.07)}
.info-icon{width:2.6rem;
aspect-ratio:1;
display:grid;
place-items:center;
border-radius:50%;
background:var(--paper);
color:var(--terracotta);
font-size:1.2rem}
.info-card h3{margin:2.2rem 0 .9rem;
font:400 1.6rem Georgia,serif}
.info-card p{margin:0 0 1rem}
.info-card small{display:block;
color:#66736d}
.info-card a{display:inline-block;
margin-top:.55rem;
border-bottom:1px solid var(--ink);
font-size:.75rem;
font-weight:800;
text-transform:uppercase;
letter-spacing:.05em}
.visit-note{margin-top:1rem;
padding:1rem 1.25rem;
display:flex;
justify-content:space-between;
align-items:center;
gap:1rem;
background:#ece5d8;
border-radius:.8rem;
font-size:.8rem}
.visit-note p{margin:0}
.visit-note a{font-weight:800}
.booking-section{padding:clamp(5rem,10vw,9rem) 0;
background:var(--green);
color:var(--white)}
.booking-grid{display:grid;
grid-template-columns:.9fr 1.1fr;
gap:clamp(3rem,8vw,7rem);
align-items:start}
.booking-section h2{margin:0;
font-size:clamp(3rem,5.5vw,5.3rem)}
.booking-copy>p:not(.eyebrow){max-width:560px;
color:rgba(255,255,255,.72)}
.contact-list{display:grid;
gap:.7rem;
margin-top:2rem}
.contact-list a{display:flex;
align-items:center;
gap:.8rem}
.contact-list a span{width:2rem;
aspect-ratio:1;
display:grid;
place-items:center;
border:1px solid rgba(255,255,255,.3);
border-radius:50%;
color:var(--gold);
font-size:.72rem}
.contact-list strong{font-size:.88rem}
.director-note{margin-top:2.5rem;
padding-top:1rem;
border-top:1px solid rgba(255,255,255,.18);
display:flex;
flex-direction:column}
.director-note span{font-size:.65rem;
text-transform:uppercase;
letter-spacing:.15em;
color:rgba(255,255,255,.58)}
.director-note strong{font:400 1.15rem Georgia,serif}
.booking-form{padding:clamp(1.4rem,4vw,2.6rem);
background:var(--cream);
color:var(--ink);
border-radius:var(--radius)}
.form-row{display:grid;
grid-template-columns:1fr 1fr;
gap:1rem}
.booking-form label{display:grid;
gap:.4rem;
margin-bottom:1rem;
font-size:.72rem;
font-weight:800;
letter-spacing:.04em}
.booking-form input,.booking-form select,.booking-form textarea{width:100%;
padding:.78rem .85rem;
border:1px solid #c7c7bd;
border-radius:.55rem;
background:var(--white);
color:var(--ink);
outline:none}
.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:var(--terracotta);
box-shadow:0 0 0 3px rgba(184,94,63,.14)}
.booking-form [aria-invalid=true]{border-color:#a72f20}
.check-label{grid-template-columns:auto 1fr!important;
align-items:start;
font-weight:400!important;
line-height:1.4}
.check-label input{width:1rem;
height:1rem;
margin-top:.2rem;
accent-color:var(--terracotta)}
.form-submit{width:100%;
border:0}
.booking-form>small{display:block;
margin-top:.8rem;
color:#66736d;
text-align:center}
.form-status{min-height:1.4rem;
margin:.65rem 0 0;
font-size:.78rem;
font-weight:700;
color:#8e2e20}
.faq-section{background:var(--paper)}
.faq-grid{display:grid;
grid-template-columns:.75fr 1.25fr;
gap:clamp(3rem,8vw,8rem)}
.accordion details{border-top:1px solid var(--line)}
.accordion details:last-child{border-bottom:1px solid var(--line)}
.accordion summary{list-style:none;
padding:1.35rem 0;
display:flex;
justify-content:space-between;
align-items:center;
gap:1rem;
cursor:pointer;
font:400 1.15rem Georgia,serif}
.accordion summary::-webkit-details-marker{display:none}
.accordion summary span{font-family:Arial,sans-serif;
color:var(--terracotta);
font-size:1.35rem;
transition:transform .2s}
.accordion details[open] summary span{transform:rotate(45deg)}
.accordion details p{margin:-.4rem 0 1.4rem;
max-width:670px;
color:#5d6a65}
.site-footer{padding-top:4rem;
background:var(--ink);
color:var(--white)}
.footer-top{padding-bottom:3rem;
display:grid;
grid-template-columns:1fr 1fr auto;
align-items:center;
gap:2rem;
border-bottom:1px solid rgba(255,255,255,.14)}
.footer-top>p{margin:0;
max-width:430px;
color:rgba(255,255,255,.62)}
.footer-grid{padding:3rem 0;
display:grid;
grid-template-columns:repeat(3,1fr);
gap:2rem}
.footer-grid div{display:flex;
flex-direction:column;
gap:.5rem}
.footer-grid h2{margin:0 0 .7rem;
font:400 1rem Georgia,serif;
color:var(--gold)}
.footer-grid a{width:max-content;
max-width:100%;
font-size:.78rem;
color:rgba(255,255,255,.72)}
.footer-grid a:hover,.footer-grid a:focus-visible{color:var(--white)}
.footer-bottom{padding:1.15rem 0;
display:flex;
justify-content:space-between;
gap:1rem;
border-top:1px solid rgba(255,255,255,.14);
font-size:.65rem;
color:rgba(255,255,255,.46)}
.footer-bottom p{margin:0}
.reveal{opacity:0;
transform:translateY(24px);
transition:opacity .7s ease,transform .7s ease}
.reveal.is-visible{opacity:1;
transform:none}
:focus-visible{outline:3px solid var(--gold);
outline-offset:3px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{animation-duration:.01ms!important;
transition-duration:.01ms!important}
.reveal{opacity:1;
transform:none}
}
@media (max-width:900px){.site-header{top:34px}
.main-nav{position:fixed;
inset:0;
z-index:1;
padding:7.5rem 1.5rem 2rem;
display:flex;
flex-direction:column;
align-items:flex-start;
background:var(--ink);
transform:translateX(100%);
visibility:hidden;
pointer-events:none;
transition:transform .28s}
.header-inner>.brand{position:relative;
z-index:2}
.main-nav.is-open{transform:none;
visibility:visible;
pointer-events:auto}
.main-nav a{font:400 2rem Georgia,serif}
.nav-cta{margin-top:auto;
font:700 .9rem Arial,sans-serif!important}
.menu-toggle{position:relative;
z-index:2;
width:2.8rem;
height:2.8rem;
padding:.65rem;
display:grid;
align-content:center;
gap:.3rem;
border:1px solid rgba(255,255,255,.4);
border-radius:50%;
background:transparent}
.menu-toggle span:not(.sr-only){display:block;
height:1px;
background:var(--white)}
.hero-content{padding-top:7rem}
.intro-grid,.collection-grid,.booking-grid,.faq-grid{grid-template-columns:1fr}
.feature-figure{max-width:680px;
margin-left:auto}
.feature-figure img{aspect-ratio:4/3}
.section-heading{grid-template-columns:1fr}
.section-heading p:last-child{justify-self:start;
margin-top:1.2rem}
.experience-grid{grid-template-columns:1fr 1fr}
.image-card{grid-column:1/-1}
.experience-card{min-height:430px}
.visit-grid{grid-template-columns:1fr 1fr}
.visit-grid article:last-child{grid-column:1/-1}
.booking-copy{max-width:700px}
.footer-top{grid-template-columns:1fr auto}
.footer-top>p{grid-column:1/-1;
grid-row:2}
.footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){:root{--container:min(100% - 1.2rem,1160px)}
.notice{font-size:.58rem}
.notice p span,.notice p{white-space:nowrap}
.header-inner{min-height:72px}
.brand-copy small{font-size:.5rem}
.hero{min-height:760px}
.hero-content{padding-top:4rem}
.hero h1{font-size:clamp(3.35rem,17vw,5rem)}
.hero-lead{font-size:.96rem}
.hero-actions{align-items:stretch;
flex-direction:column}
.hero-foot{bottom:1.2rem;
gap:.65rem;
justify-content:space-between;
font-size:.52rem}
.hero-foot span{gap:.3rem}
.intro-grid{gap:4rem}
.fact-row{grid-template-columns:1fr;
gap:1.8rem}
.experience-grid,.visit-grid{grid-template-columns:1fr}
.visit-grid article:last-child{grid-column:auto}
.experience-card{min-height:400px}
.image-card{grid-column:auto}
.collection-image img{min-height:320px}
.form-row{grid-template-columns:1fr}
.visit-note{align-items:flex-start;
flex-direction:column}
.footer-top{grid-template-columns:1fr}
.footer-top .button{justify-self:start}
.footer-top>p{grid-column:auto;
grid-row:auto}
.footer-grid{grid-template-columns:1fr}
.footer-bottom{flex-direction:column}
.section{padding-block:5rem}
.section h2,.faq-section h2{font-size:clamp(2.65rem,13vw,4rem)}
}
