@font-face{font-family:Cormorant;src:url('assets/cormorant-medium.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/cormorant-italic.woff2') format('woff2');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope.woff2') format('woff2');font-weight:400 700;font-display:swap}

:root{
  --color-background:#F6F1E8;--color-primary:#352820;--color-text:#352820;
  --color-secondary:#DCCDBD;--color-accent:#9C523D;--color-surface:#EAE2D7;
  --color-sage:#DDE2D3;--color-muted:#6C6257;
  --font-display:Cormorant,Georgia,'Times New Roman',serif;
  --font-body:Manrope,Arial,sans-serif;--font-label:'Courier New',monospace;
  --space-xs:.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2.5rem;--space-xl:4rem;--space-2xl:6rem;
  --container:1280px;--gutter:24px;--radius-sm:2px;--radius-image:90px 2px 2px 2px;
  --duration:180ms;--ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--color-background);color:var(--color-text);font-family:var(--font-body);font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased}
::selection{background:var(--color-secondary);color:var(--color-primary)}
a{color:inherit;text-underline-offset:5px}
button{font:inherit;color:inherit}
img{display:block;max-width:100%;height:auto}
figure,p,h1,h2,h3{margin:0}
h1,h2,h3{font-weight:500}
h1,h2{font-family:var(--font-display);line-height:.97;letter-spacing:-.045em;text-wrap:balance}
h2{font-size:clamp(3.2rem,7vw,6rem)}
em{font-family:var(--font-display);font-weight:400;color:var(--color-accent)}
strong{font-weight:600}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--color-accent);outline-offset:5px}
.wrap{width:calc(100% - var(--gutter)*2);max-width:var(--container);margin-inline:auto}
.section-space{padding-block:76px}
.preview-notice{padding:7px 16px;text-align:center;background:var(--color-surface);color:var(--color-muted);font-size:10px;line-height:1.5;letter-spacing:.02em}
.skip-link{position:fixed;left:16px;top:16px;transform:translateY(-200%);clip-path:inset(50%);z-index:50;padding:10px 18px;background:var(--color-primary);color:var(--color-background)}
.skip-link:focus{transform:none;clip-path:none}
.header{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:92px;gap:24px;border-bottom:1px solid var(--color-secondary);z-index:5}
.brand-name{display:inline-flex;align-items:baseline;gap:8px;font-family:var(--font-display);font-size:33px;line-height:1;text-decoration:none;letter-spacing:-.04em;white-space:nowrap}
.brand-name span{font-size:21px;font-style:italic;color:var(--color-accent)}
.navigation{display:flex;align-items:center;gap:26px}
.navigation a,.header-book{font-size:12px;font-weight:600;text-decoration:none}
.navigation a{position:relative;padding-block:12px;min-height:44px}
.navigation a::after{content:'';position:absolute;left:0;right:0;bottom:7px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform var(--duration) var(--ease)}
.navigation a:hover::after{transform:scaleX(1)}
.header-book{display:none;align-items:center;gap:20px;padding:11px 0;border-bottom:1px solid;min-height:44px}
.menu-toggle{display:none;align-items:center;gap:12px;min-height:44px;border:0;padding:8px 0 8px 12px;background:transparent;cursor:pointer;font-size:12px;font-weight:600}
.menu-lines{display:block;width:21px;height:10px;border-top:1px solid;border-bottom:1px solid;transition:transform var(--duration)}
.menu-toggle[aria-expanded=true] .menu-lines{transform:rotate(-20deg)}
.eyebrow,.section-label{font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;line-height:1.7}
.section-label{display:flex;gap:16px;align-items:center;margin-bottom:26px}
.section-number{font-family:var(--font-label);color:var(--color-accent);letter-spacing:0;font-weight:400}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;min-height:54px;padding:15px 22px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-background);font-size:12px;font-weight:600;line-height:1.5;text-decoration:none;transition:background var(--duration),transform var(--duration)}
.button:hover{background:var(--color-primary);transform:translateY(-2px)}
.button:active{transform:translateY(0)}
.arrow{display:inline-block;font-family:Arial,sans-serif;font-size:20px;font-weight:400;line-height:1;transition:transform var(--duration)}
a:hover .arrow{transform:translate(2px,-2px)}
.booking-note{font-size:10px;line-height:1.8;color:var(--color-muted);margin-top:12px}
.text-link{display:inline-flex;align-items:center;gap:18px;font-size:12px;font-weight:600;line-height:1.7;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px;min-height:44px}
.hero{display:grid;gap:34px;padding-top:29px}
.hero .eyebrow{font-size:9px;max-width:280px;letter-spacing:.085em}
.hero .eyebrow>span{display:inline-block;margin-inline:6px;color:var(--color-accent)}
.hero h1{font-size:clamp(4.5rem,22vw,7rem);line-height:.87;margin-top:23px;letter-spacing:-.055em}
.hero h1 em{display:inline-block;padding-bottom:.08em}
.hero-intro{color:var(--color-muted);font-size:13px;line-height:1.85;margin:22px 0}
.hero-actions{display:flex;align-items:center;gap:12px 24px;flex-wrap:wrap}
.hero-actions .text-link{font-size:11px;gap:10px}
.hero-copy .booking-note{max-width:290px}
.hero-composition{position:relative;padding-bottom:27px;margin-top:5px}
.photo-kicker{display:flex;justify-content:space-between;font:10px/1.5 var(--font-label);text-transform:uppercase;color:var(--color-muted);letter-spacing:.04em;margin-left:16%;padding-bottom:12px;gap:12px}
.hero-photo{width:84%;margin-left:auto}
.hero-photo-frame{aspect-ratio:1/1.14;overflow:hidden;border-radius:var(--radius-image);background:var(--color-secondary)}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;transition:transform 500ms var(--ease)}
.hero-photo:hover img{transform:scale(1.025)}
.hero-photo figcaption{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;text-align:right;padding-top:12px;line-height:1.4}
.hero-photo figcaption>span:first-child{font-family:var(--font-display);font-size:19px}
.hero-photo figcaption>span:last-child{font-size:9px;color:var(--color-muted);width:100%}
.hero-detail{position:absolute;left:0;bottom:34%;width:34%;max-width:180px;border:6px solid var(--color-background);background:var(--color-background);padding-bottom:7px;transform:rotate(-5deg)}
.hero-detail>div{aspect-ratio:1/1.03;overflow:hidden;background:var(--color-secondary)}
.hero-detail img{width:100%;height:100%;object-fit:cover}
.hero-detail figcaption{font:italic 16px/1.1 var(--font-display);text-align:center;padding-top:9px}
.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--color-secondary);font-size:10px;line-height:1.5;padding-block:12px 24px}
.hero-bottom a{display:inline-flex;align-items:center;gap:12px;text-decoration:none;min-height:44px}
.hero-bottom>span{display:none}
.about{background:var(--color-sage);padding-block:49px}
.about-layout{display:grid;gap:28px}
.about h2{font-size:clamp(2.8rem,6vw,4.4rem);max-width:780px;line-height:1.05}
.about-copy{font-size:13px;max-width:420px}
.about-copy>p+p{margin-top:14px}
.about-copy .text-link{margin-top:16px}
.section-heading,.gallery-heading{display:grid;gap:0}
.section-heading>p:last-child,.gallery-heading>p:last-child{color:var(--color-muted);font-size:13px;line-height:1.85;margin-top:23px;max-width:330px}
.services-layout{display:grid;gap:32px;margin-top:34px}
.service-intro{border-left:1px solid var(--color-accent);padding-left:22px;max-width:380px}
.service-intro-title{font-family:var(--font-display);font-size:31px;line-height:1.05;letter-spacing:-.02em;margin-top:15px}
.service-scope{font-size:11px;color:var(--color-muted);line-height:1.9;margin-top:18px;max-width:310px}
.service-intro .text-link{margin-top:13px;font-size:11px}
.service-list{border-top:1px solid var(--color-secondary)}
.service-item{border-bottom:1px solid var(--color-secondary)}
.service-item summary,.question summary{display:flex;align-items:center;gap:15px;list-style:none;cursor:pointer;min-height:86px;padding-block:24px}
.service-item summary::-webkit-details-marker,.question summary::-webkit-details-marker{display:none}
.service-number{font-size:10px;font-family:var(--font-label);color:var(--color-accent)}
.service-item h3{flex:1;font-family:var(--font-display);font-size:30px;letter-spacing:-.025em;line-height:1.1}
.detail-plus{position:relative;width:16px;height:16px;flex-shrink:0;margin-right:2px}
.detail-plus::before,.detail-plus::after{content:'';position:absolute;top:7px;left:0;width:16px;height:1px;background:currentColor;transition:transform var(--duration)}
.detail-plus::after{transform:rotate(90deg)}
details[open] .detail-plus::after{transform:rotate(0)}
.service-item summary:hover h3,.question summary:hover h3{color:var(--color-accent)}
.service-details{padding:0 16px 22px 30px;color:var(--color-muted);font-size:13px;max-width:650px}
.service-options{font-size:11px;margin:15px 0;line-height:2}
.service-details .text-link{color:var(--color-primary);font-size:11px}
.gallery{background:var(--color-surface)}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px 18px;margin-top:34px;align-items:start}
.gallery-image{overflow:hidden;background:var(--color-secondary)}
.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform 450ms var(--ease)}
.gallery-photo:hover img{transform:scale(1.025)}
.gallery-tall{grid-column:1/-1;width:78%}
.gallery-tall .gallery-image{aspect-ratio:3/4;border-radius:2px 2px 80px 2px}
.gallery-offset{grid-column:2;margin-top:28px}
.gallery-offset .gallery-image{aspect-ratio:4/5}
.gallery-wide{grid-column:1;grid-row:2}
.gallery-wide .gallery-image{aspect-ratio:3/4}
.gallery-photo figcaption{display:flex;gap:9px;margin-top:12px;font-size:11px;line-height:1.5}
.photo-number{font-family:var(--font-label);color:var(--color-muted);font-size:10px}
.gallery-end{display:grid;gap:16px;margin-top:32px}
.image-source-note{max-width:470px;font-size:10px;color:var(--color-muted);line-height:1.85}
.hailey{background:var(--color-primary);color:var(--color-background)}
.hailey-top{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:35px;padding-bottom:20px;border-bottom:1px solid #746356}
.hailey-top .section-label{margin-bottom:0}
.hailey-top>.eyebrow{display:none}
.hailey .section-number,.hailey em{color:var(--color-secondary)}
.hailey-layout{display:grid;gap:35px}
.hailey h2{font-size:clamp(3rem,7vw,5.8rem);line-height:1.01}
.hailey-title>.text-link{margin-top:22px;color:var(--color-secondary);font-size:11px}
.hailey-copy{max-width:430px}
.hailey-copy .eyebrow{color:var(--color-secondary)}
.hailey-copy h3{font-family:var(--font-display);font-size:43px;line-height:1;margin:17px 0 24px;letter-spacing:-.03em}
.hailey-copy>p:not(.eyebrow){font-size:13px;color:var(--color-secondary);line-height:1.9}
.hailey-copy>p+p{margin-top:16px}
.hailey-actions{margin-top:25px}
.button-light{background:var(--color-background);color:var(--color-primary)}
.button-light:hover{background:var(--color-secondary);color:var(--color-primary)}
.hailey-copy p.hailey-note{font-size:11px;margin-top:24px}
.hailey-copy>.text-link{font-size:11px;gap:12px;flex-wrap:wrap;margin-top:5px}
.phone-number{font-weight:400;color:var(--color-secondary)}
.hailey :focus-visible{outline-color:var(--color-background)}
.booking-guide{display:grid;gap:30px}
.guide-heading>p:last-child{font-size:13px;color:var(--color-muted);margin-top:23px}
.question-list{border-top:1px solid var(--color-secondary)}
.question{border-bottom:1px solid var(--color-secondary)}
.question summary{padding:20px 2px;min-height:78px;justify-content:space-between;gap:24px}
.question h3{font-family:var(--font-body);font-size:13px;font-weight:600;line-height:1.8}
.question>div{padding:0 25px 24px 2px;font-size:13px;color:var(--color-muted);max-width:590px}
.question .text-link{margin-top:12px;color:var(--color-primary)}
.visit{padding-block:60px;background:var(--color-sage);border-radius:80px 0 0 0}
.visit-layout{display:grid;gap:38px}
.visit h2{font-size:clamp(3.7rem,8vw,6.9rem)}
.visit-heading>p:not(.section-label):not(.booking-note){font-size:13px;margin:22px 0}
.visit-heading .booking-note{color:var(--color-primary);font-size:10px;max-width:310px}
.visit-info{border-top:1px solid #AAB4A0;padding-top:27px}
.visit-info>.eyebrow{font-size:9px}
address{font-family:var(--font-display);font-style:normal;font-size:30px;line-height:1.2;letter-spacing:-.02em;margin:17px 0}
address span{font-size:1.12em}
.visit-note{font-size:11px;line-height:1.9;margin-top:23px}
.visit-note a{display:inline-flex;align-items:center;gap:15px;min-height:44px}
.footer{display:grid;gap:25px;padding-block:40px 120px}
.footer>p:not(.footer-note){font-size:11px;line-height:1.9;color:var(--color-muted)}
.footer>.text-link{font-size:11px}
.footer-links{display:flex;flex-wrap:wrap;gap:10px 25px;padding-top:23px;border-top:1px solid var(--color-secondary)}
.footer-links a{display:inline-flex;gap:12px;align-items:center;min-height:44px;font-size:11px}
.footer-links .arrow{font-size:15px}
.footer-note{font-size:10px;color:var(--color-muted);max-width:570px}
.mobile-booking{position:fixed;left:0;bottom:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px var(--gutter);padding-bottom:max(12px,env(safe-area-inset-bottom));background:var(--color-background);border-top:1px solid var(--color-secondary)}
.mobile-booking>span{font-family:var(--font-display);font-size:21px;line-height:1.2;min-width:0}
.mobile-booking small{display:block;font-family:var(--font-body);color:var(--color-muted);font-size:8px;line-height:1.7;margin-top:5px}
.mobile-booking .button{font-size:11px;padding:13px 16px;gap:14px;min-height:47px;white-space:nowrap;flex-shrink:0}

@media(max-width:799px){
  .header{flex-wrap:wrap;gap:0;min-height:84px;padding-block:20px}
  .has-menu .menu-toggle{display:inline-flex}
  .navigation{width:100%;padding-top:18px;gap:12px 22px;flex-wrap:wrap}
  .has-menu .navigation{display:none}
  .has-menu .navigation.is-open{display:flex}
  .brand-name{font-size:30px}.brand-name span{font-size:19px}
}
@media(max-width:360px){.mobile-booking>span{font-size:18px}}
@media(min-width:480px) and (max-width:799px){
  :root{--gutter:36px}
  .hero-composition{max-width:480px;width:85%;margin-left:auto}
  .hero h1{font-size:7.8rem}
  .hero-copy>.eyebrow{max-width:none}
  .hero-copy .booking-note{max-width:none}
  .about-copy{margin-left:18%}
  .gallery-grid{max-width:560px}
}
@media(min-width:800px){
  :root{--gutter:40px}
  .section-space{padding-block:100px}
  .header{min-height:106px}
  .brand-name{display:block;font-size:38px;line-height:.9}
  .brand-name span{display:block;text-align:center;margin-top:7px;font-size:21px;letter-spacing:0}
  .navigation{gap:22px}.navigation a{font-size:11px}
  .hero{grid-template-columns:1.04fr 1fr;gap:0 24px;padding-top:42px}
  .hero-copy{padding-top:17px}
  .hero .eyebrow{max-width:240px}
  .hero h1{font-size:clamp(5.8rem,11vw,9.6rem);margin-top:24px}
  .hero-intro{font-size:13px;margin:25px 0}
  .hero-actions{gap:8px 20px}
  .hero-actions .text-link{font-size:10px}
  .hero-composition{padding:0 0 35px 0;align-self:center;margin-top:0}
  .photo-kicker{margin-left:9%;font-size:9px}
  .hero-photo{width:91%}
  .hero-photo-frame{aspect-ratio:3/4;border-top-left-radius:120px}
  .hero-photo figcaption{padding-top:14px}
  .hero-photo figcaption>span:first-child{font-size:20px}
  .hero-detail{bottom:12%;left:-5%;width:34%;border-width:7px}
  .hero-detail figcaption{font-size:18px}
  .hero-bottom{grid-column:1/-1;margin-top:30px;padding-bottom:24px}
  .hero-bottom>span{display:block;color:var(--color-muted);font-size:9px}
  .about{padding-block:65px}
  .about-layout{grid-template-columns:1.55fr 1fr;gap:55px;align-items:center}
  .about h2{font-size:3.6rem}
  .section-heading,.gallery-heading{grid-template-columns:1.8fr 1fr;align-items:end;column-gap:40px}
  .section-heading .section-label,.gallery-heading .section-label{grid-column:1/-1}
  .section-heading>p:last-child,.gallery-heading>p:last-child{justify-self:end;margin-bottom:5px;font-size:12px}
  .services-layout{grid-template-columns:1fr 1.7fr;gap:60px;margin-top:55px}
  .service-intro{align-self:start;margin-top:14px}
  .service-intro-title{font-size:37px}
  .service-item summary{min-height:96px;padding-block:28px;gap:23px}
  .service-item h3{font-size:35px}
  .service-details{padding-left:36px}
  .gallery-heading h2{font-size:clamp(3.4rem,6vw,5.7rem)}
  .gallery-grid{grid-template-columns:1.15fr .83fr 1fr;gap:30px;margin-top:48px}
  .gallery-tall{grid-column:auto;width:auto}
  .gallery-offset{grid-column:auto;margin-top:92px}
  .gallery-wide{grid-column:auto;grid-row:auto;margin-top:34px}
  .gallery-photo figcaption{font-size:12px;gap:15px}
  .gallery-end{display:flex;justify-content:space-between;align-items:center;gap:35px;margin-top:33px}
  .gallery-end .text-link{flex-shrink:0}
  .hailey-top{margin-bottom:45px}
  .hailey-top>.eyebrow{display:block;color:var(--color-secondary);font-size:9px}
  .hailey-layout{grid-template-columns:1.35fr 1fr;gap:55px;align-items:center}
  .hailey h2{font-size:clamp(3.2rem,6.5vw,6rem)}
  .hailey-copy h3{font-size:48px}
  .booking-guide{grid-template-columns:1fr 1.25fr;gap:60px;align-items:start}
  .guide-heading h2{font-size:clamp(3.4rem,6vw,5.3rem)}
  .question-list{margin-top:48px}
  .visit{padding-block:80px;border-top-left-radius:120px}
  .visit-layout{grid-template-columns:1.3fr 1fr;gap:70px;align-items:center}
  .visit-info{padding-top:0;padding-left:35px;border-top:0;border-left:1px solid #AAB4A0}
  address{font-size:32px}
  .footer{grid-template-columns:1fr 1fr auto;align-items:center;gap:28px;padding-block:40px 28px}
  .footer .brand-name{justify-self:start}
  .footer>.text-link{justify-self:end}
  .footer-links{grid-column:1/-1}
  .footer-note{grid-column:1/-1;max-width:none}
  .mobile-booking{display:none}
}
@media(min-width:1100px){
  :root{--gutter:64px}
  .header-book{display:inline-flex}
  .brand-name{display:inline-flex;font-size:40px;gap:9px}
  .brand-name span{display:inline;font-size:24px;letter-spacing:-.03em;margin-top:0}
  .navigation{gap:30px}.navigation a{font-size:12px}
  .hero{grid-template-columns:1.08fr 1fr;column-gap:70px;padding-top:42px}
  .hero-copy{padding-top:10px}
  .hero .eyebrow{max-width:none;font-size:9px}
  .hero h1{font-size:clamp(8rem,10.7vw,9.6rem);line-height:.85;margin-top:26px}
  .hero-intro{margin:26px 0 23px}
  .hero-actions{gap:24px}
  .hero-copy .booking-note{max-width:none}
  .hero-photo-frame{max-height:552px}
  .hero-photo figcaption>span:first-child{font-size:22px}
  .photo-kicker{font-size:10px}
  .hero-detail{left:-7%;bottom:8%;max-width:174px}
  .hero-detail figcaption{font-size:19px}
  .hero-bottom{margin-top:27px}
  .hero-bottom>span{font-size:10px}
  .about-layout{gap:110px}.about h2{font-size:4.2rem}
  .section-space{padding-block:112px}
  .section-heading{grid-template-columns:2fr 1fr}
  .services-layout{grid-template-columns:1fr 1.55fr;gap:115px}
  .service-intro{padding-left:29px;margin-top:18px}
  .service-intro-title{font-size:43px}
  .service-item summary{min-height:109px;padding-block:31px}
  .service-item h3{font-size:43px}
  .service-details{padding-left:37px;font-size:14px}
  .gallery-grid{gap:45px}
  .gallery-offset{margin-top:120px}.gallery-wide{margin-top:45px}
  .gallery-tall .gallery-image{border-bottom-right-radius:120px}
  .gallery-heading{grid-template-columns:2fr 1fr}
  .gallery-heading h2{font-size:5.8rem}
  .hailey-layout{gap:110px;grid-template-columns:1.45fr 1fr}
  .hailey h2{font-size:6.2rem}
  .hailey-copy>p:not(.eyebrow){font-size:14px}
  .hailey-copy p.hailey-note{font-size:11px}
  .booking-guide{gap:100px}
  .visit{padding-block:92px}
  .visit-layout{gap:100px}
  .visit-info{padding-left:55px}
  address{font-size:39px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .hero-photo:hover img,.gallery-photo:hover img,.button:hover,a:hover .arrow{transform:none}
}
