
:root{--paper:#fff;--ink:#111;--muted:#665d5b;--blush:#efdfdf;--rose:#9a746b;--line:#ddd3d0;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-wrap:break-word}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}h1,h2,h3{font-family:var(--serif)}h1,h2{letter-spacing:-.055em;line-height:1.06}h1 em,h2 em{font-weight:400;color:var(--rose)}h2{font-size:clamp(2.4rem,4.5vw,4.8rem)}p{line-height:1.65}.section-wrap{width:min(1440px,calc(100% - 64px));margin-inline:auto}.section-pad{padding-block:80px}.eyebrow{font-size:.65rem;letter-spacing:.2em;font-weight:600}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:46px;padding:14px 24px;border:1px solid #111;font-size:.69rem;letter-spacing:.12em;text-transform:uppercase}.button-dark{background:#111;color:#fff}.button:hover{background:#604941;border-color:#604941;color:#fff}.button-outline{background:transparent}.text-link{display:inline-flex;gap:24px;border-bottom:1px solid;padding-bottom:6px;font-size:.78rem}.skip-link{position:absolute;top:-100px;z-index:100;background:#111;color:#fff;padding:12px}.skip-link:focus{top:4px}a:focus-visible,button:focus-visible{outline:2px solid #a06d60;outline-offset:5px}
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);transition:transform .3s,box-shadow .3s}.header-hidden{transform:translateY(-110%)}.header-scrolled{box-shadow:0 4px 20px #0000000a}.nav-wrap{position:relative;display:grid;grid-template-columns:1fr 130px 1fr;align-items:center;min-height:104px;width:calc(100% - 64px);max-width:1700px;margin:auto;gap:20px}.brand{grid-column:2;grid-row:1;justify-self:center}.brand img{width:100px;height:94px;object-fit:contain}.desktop-nav{grid-column:1;grid-row:1;display:flex;gap:22px}.desktop-nav a,.header-contact{font-size:.68rem}.header-contact{grid-column:3;justify-self:end}.menu-toggle{display:none;background:none;border:0;width:44px;height:44px}.menu-toggle span{display:block;width:24px;height:1px;background:#111;margin:7px auto}.mobile-menu[hidden]{display:none}.mobile-menu{padding:12px 24px 24px;background:#fff;max-height:70vh;overflow:auto}.mobile-menu a{display:block;padding:13px 0;border-bottom:1px solid var(--line);font-size:.8rem}
.hero.section-wrap{position:relative;isolation:isolate;width:100%;max-width:1920px;aspect-ratio:16/9;min-height:460px;overflow:hidden;background:linear-gradient(120deg,#f5eeee,#ead5d5)}.hero-image-wrap{position:absolute;inset:0 0 0 auto;width:57%;z-index:-1}.hero-image{width:100%;height:100%;object-fit:cover;object-position:50% 28%}.hero-image-wrap:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#efdfdf 0%,#efdfdf80 13%,transparent 39%)}.hero-copy{position:absolute;top:50%;left:6%;transform:translateY(-50%);width:43%;max-width:690px}.hero-copy .eyebrow{margin-bottom:20px;color:#5b4440}.hero-copy h1{font-size:clamp(2.8rem,5.7vw,6.8rem);text-transform:uppercase;line-height:.98}.hero-copy h1 em{text-transform:none;font-style:italic;color:#94776c}.hero-copy .lead{font-size:clamp(.8rem,1.12vw,1.1rem);margin-top:24px;max-width:480px;color:#443a37}.hero-actions{margin-top:24px}.ticker{background:#090909;color:#fff;padding:14px 16px;overflow:hidden;white-space:nowrap;text-align:center;font-size:.58rem;letter-spacing:.12em}
.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-block:26px 32px}.category-photo{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--blush)}.category-photo img{width:100%;height:100%;object-fit:cover}.category-photo:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#0006)}.category-photo>span{position:absolute;z-index:1;left:10px;right:10px;top:68%;color:#fff;text-align:center;font-size:clamp(.9rem,1.6vw,1.65rem);font-weight:400}.category>p{font-size:.77rem;padding-top:12px;display:flex;justify-content:space-between;gap:12px}.category-photo img.result-crop,.editorial-strip img.result-crop{width:200%;max-width:none;transform:translateX(-50%)}.editorial-strip{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:clamp(230px,32vw,540px);overflow:hidden}.editorial-strip>div{overflow:hidden}.editorial-strip img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:grayscale(1)}.editorial-strip:after{content:'';position:absolute;inset:0;background:#0003}.editorial-strip p{position:absolute;z-index:1;left:20px;right:20px;bottom:13%;color:#fff;text-align:center;font-size:clamp(.85rem,2vw,1.8rem);letter-spacing:.04em}
.section-intro{text-align:center;max-width:650px;margin:0 auto 45px}.section-intro h2{margin:16px 0}.section-intro>p:last-child{color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px}.service-card{display:flex;flex-direction:column;border-top:1px solid #111;padding-top:22px;min-height:290px}.service-number{font-size:.6rem;letter-spacing:.1em;color:#78645d}.service-card h3{font-size:2rem;margin:26px 0 12px}.service-card p{font-size:.85rem;color:var(--muted)}.service-card a{margin-top:auto;padding-top:24px;font-size:.75rem;display:flex;justify-content:space-between}.feature{display:grid;grid-template-columns:1fr 1fr;background:var(--blush)}.feature-media{height:500px;overflow:hidden}.feature-media img{width:100%;height:100%;object-fit:cover}.feature-copy{padding:55px 9%;align-self:center}.feature-copy h2{margin:20px 0}.feature-copy>p:not(.eyebrow){color:var(--muted);margin-bottom:28px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:35px}.section-heading h2{margin-top:15px}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.portfolio-grid img{height:350px;width:100%;object-fit:cover}.portfolio-grid figcaption{font-size:.85rem;margin-top:12px}
.education{background:#111;color:#fff}.education-inner{display:grid;grid-template-columns:1fr 1fr;gap:9%}.education-title h2{margin:18px 0 24px}.education-title>p:not(.eyebrow){color:#d3c6c2;margin-bottom:25px}.education h2 em{color:#dcbdb6}.education .button{border-color:#fff}.class-list article{display:grid;grid-template-columns:30px minmax(0,1fr);gap:16px;padding:24px 0;border-top:1px solid #645652}.class-list article>span{font-size:.65rem;color:#dcbdb6}.class-list h3{font-size:1.9rem;margin-bottom:12px}.class-list p{font-size:.85rem;color:#d3c6c2}.class-list strong{color:#fff}
.guide{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.guide-copy h2{margin:18px 0}.guide-copy>p:not(.eyebrow){color:var(--muted);margin-bottom:25px}.guide img{width:100%;height:420px;object-fit:cover}.about{background:var(--blush)}.about-inner{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;padding-block:60px}.about-photo{height:460px;overflow:hidden}.about-photo img{height:100%;width:100%;object-fit:cover}.about-copy h2{margin:18px 0}.about-copy>p:not(.eyebrow){color:var(--muted);margin-bottom:18px}.booking-head{max-width:740px;margin:0 auto 38px;text-align:center}.booking-head h2{margin:20px 0}.booking-head>p:last-child{color:var(--muted)}.booking-choice{display:grid;grid-template-columns:210px 1fr 30px;gap:24px;align-items:center;border-top:1px solid var(--line);padding:28px 16px}.booking-choice:hover{background:var(--blush)}.booking-choice>span:first-child{font-size:.62rem;letter-spacing:.1em}.booking-choice strong{font-family:var(--serif);font-weight:400;font-size:1.8rem}.choice-arrow{text-align:right}.booking-footnote{font-size:.73rem;color:var(--muted);text-align:center;margin-top:24px}.booking-footnote a{text-decoration:underline}
.site-footer{background:#080808;color:#fff}.footer-main{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;padding-block:50px}.footer-brand img{width:105px;height:105px;object-fit:contain;filter:brightness(0) invert(1)}.footer-brand p{font-family:var(--serif);font-style:italic;font-size:1.4rem;margin-top:12px}.footer-main h3{font-family:var(--sans);font-size:.67rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:22px;color:#dec6c0}.footer-main a,.footer-main span{display:block;font-size:.78rem;margin-bottom:13px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-block:22px;border-top:1px solid #433836;font-size:.66rem;color:#c8bdb9}
@media(max-width:1050px){.desktop-nav{gap:12px}.desktop-nav a{font-size:.6rem}.header-contact{font-size:.6rem}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-copy h1{font-size:5.7vw}.hero-copy .eyebrow{font-size:.55rem}.portfolio-grid img{height:280px}}
@media(max-width:760px){.section-wrap{width:calc(100% - 32px)}.section-pad{padding-block:50px}.nav-wrap{width:calc(100% - 32px);grid-template-columns:1fr 80px 1fr;min-height:76px}.brand img{height:72px;width:76px}.desktop-nav,.header-contact{display:none}.menu-toggle{display:block;grid-column:1;grid-row:1}.hero.section-wrap{aspect-ratio:auto;min-height:410px;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;padding:38px 16px}.hero-image-wrap{width:57%;height:100%}.hero-image{object-position:53% 25%}.hero-copy{position:relative;left:auto;top:auto;transform:none;width:100%;max-width:none;grid-column:1}.hero-copy h1{font-size:clamp(1.7rem,6.7vw,3.25rem)}.hero-copy .eyebrow{font-size:.46rem;letter-spacing:.09em;margin-bottom:13px}.hero-copy .lead{font-size:.69rem;line-height:1.5;margin-top:17px}.hero-actions{margin-top:16px}.hero-actions .button{font-size:.52rem;letter-spacing:.025em;padding:11px 10px;gap:8px;min-height:44px}.hero-image-wrap:after{background:linear-gradient(90deg,#efdfdf 0%,#efdfdfb3 17%,transparent 65%)}.ticker{font-size:.5rem;padding-block:11px}.category-grid{grid-template-columns:1fr;gap:26px;padding:22px 0 28px}.category-photo{aspect-ratio:4/4.3}.category-photo>span{font-size:1.5rem}.category>p{font-size:.8rem}.editorial-strip{height:240px}.editorial-strip p{font-size:.8rem}.feature,.education-inner,.guide,.about-inner{grid-template-columns:1fr;gap:30px}.feature-media{height:320px}.feature-copy{padding:10px 24px 45px}.section-heading{align-items:start;flex-direction:column}.portfolio-grid{grid-template-columns:1fr}.portfolio-grid img{height:420px}.guide img{height:auto}.about-inner{padding-block:40px}.about-photo{height:420px}.booking-choice{grid-template-columns:1fr 25px;gap:10px;padding-inline:6px}.booking-choice>span:first-child{grid-column:1/-1}.booking-choice strong{font-size:1.45rem}.footer-main{grid-template-columns:1fr 1fr;gap:26px}.footer-brand{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:8px}}
@media(max-width:380px){.service-grid{grid-template-columns:1fr}.hero.section-wrap{min-height:405px}.hero-copy .lead{font-size:.64rem}.hero-copy h1{font-size:1.75rem}.hero-actions .button{font-size:.49rem;padding-inline:7px}.hero-actions .button span{display:none}.portfolio-grid img{height:350px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Mobile sections occupy a full viewport without clipping longer content. */
.button{font-weight:500;letter-spacing:.11em}
@media(max-width:760px){
:root{--mobile-panel:calc(100svh - 76px)}
html{scroll-padding-top:76px}
main>section{min-height:var(--mobile-panel)}
main>section.section-wrap{width:100%;padding-inline:24px}
.hero.section-wrap{min-height:var(--mobile-panel);padding:42px 24px;grid-template-columns:1.05fr 1fr}
.hero-copy{padding-block:18px;min-width:0}
.hero-copy h1{font-size:clamp(1.95rem,7.3vw,3.4rem);line-height:1.03}
.hero-copy .eyebrow{font-size:.48rem;letter-spacing:.12em;line-height:1.7}
.hero-copy .lead{font-size:clamp(.78rem,2.9vw,1rem);line-height:1.65;margin-top:22px}
.hero-actions{margin-top:26px}
.hero-actions .button{font-size:clamp(.54rem,2vw,.7rem);letter-spacing:.06em;padding:15px 12px;min-height:48px;max-width:100%;white-space:normal;text-align:center}
.hero-image-wrap{width:59%;height:100%}
.hero-image{object-position:53% 25%}
.hero-image-wrap:after{background:linear-gradient(90deg,#efdfdf 0%,#efdfdfb3 23%,transparent 78%)}
.ticker{font-size:.5rem;letter-spacing:.13em;padding-block:13px}
main>.category-grid.section-wrap{display:flex;flex-direction:column;gap:0;padding:0;min-height:0}
.category{min-height:var(--mobile-panel);display:flex;flex-direction:column;background:#fff}
.category-photo{flex:1;aspect-ratio:auto;min-height:calc(var(--mobile-panel) - 66px)}
.category-photo>span{top:auto;bottom:12%;font-size:clamp(1.7rem,7vw,2.6rem);letter-spacing:.08em}
.category>p{min-height:66px;padding:20px 24px;align-items:center;font-size:.77rem;letter-spacing:.05em}
.editorial-strip{height:var(--mobile-panel);min-height:var(--mobile-panel)}
.editorial-strip p{bottom:12%;font-size:.8rem;letter-spacing:.14em}
.section-pad{padding-block:64px}
.services{display:flex;flex-direction:column;justify-content:center}
.service-grid{gap:30px 22px}
.service-card{min-height:240px}
.service-card h3{font-size:1.65rem}
.feature{display:flex;flex-direction:column;gap:0}
.feature-media{height:40svh;min-height:230px;flex:none}
.feature-copy{padding:40px 24px;flex:1;display:flex;flex-direction:column;justify-content:center}
.feature-copy .button{align-self:flex-start}
.portfolio-grid img{height:calc(var(--mobile-panel) - 110px);min-height:330px;max-height:680px}
.portfolio-grid{gap:45px}
.education{display:flex;align-items:center}
.education-inner{gap:40px}
.guide{align-content:center}
.guide img{max-height:42svh;width:100%;object-fit:cover}
.about-inner{min-height:var(--mobile-panel);padding-block:45px}
.about-photo{height:38svh;min-height:240px}
.booking{display:flex;flex-direction:column;justify-content:center}
.booking-choice strong{font-size:1.35rem}
.footer-main{padding-block:50px}
}
@media(max-width:380px){
.hero.section-wrap{padding-inline:16px}
.hero-copy h1{font-size:1.9rem}
.hero-copy .lead{font-size:.76rem}
.hero-actions .button{font-size:.53rem;padding-inline:9px}
.service-grid{grid-template-columns:1fr}
}
@media(max-width:760px) and (max-height:550px){
.hero.section-wrap{min-height:500px}
.category,.editorial-strip{min-height:500px}
}
