:root{--gold:#b59a56;--gold-d:#9c8344;--pink:#f0286a;--teal:#8bd3d0;--peach:#ebc3a6;--rose:#d6a1a9;--ink:#1c1c1c;--txt:#6b6b6b;--bg:#fffefa;--serif:'Playfair Display',Georgia,'Times New Roman',serif;--script:'Playfair Display',Georgia,'Times New Roman',serif;--sans:'Lato',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;--gut:clamp(20px,5vw,72px)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--txt);font:400 16px/1.7 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold-d)}
h1,h2,h3{font-family:var(--serif);color:var(--ink);font-weight:500;line-height:1.2;margin:0 0 .6em}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:8px 14px;z-index:100}.skip:focus{left:8px;top:8px}
p{margin:0 0 1.1em}
.caps{text-transform:uppercase;letter-spacing:.2em}.wide{letter-spacing:.24em}.center{text-align:center}
.disp{font-family:var(--serif);font-weight:500;letter-spacing:0;text-transform:none;font-size:1.9em;line-height:1}
.script,.script-sub,em.script{font-family:var(--script);font-style:italic;color:var(--gold);text-transform:none;letter-spacing:0;font-weight:500}
.lead{font-family:var(--serif);color:var(--ink);font-size:1.15rem}
.small{font-size:.85rem}
/* buttons */
.btn{display:inline-block;font:700 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding:1.15em 2.2em;border:1px solid transparent;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.btn.pink{background:var(--pink);color:#fff}.btn.pink:hover{background:#d41c58}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink);padding:.95em 1.5em;font-size:.65rem}.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.outline{border-color:#fff;color:#fff}.btn.outline:hover{background:#fff;color:var(--gold-d)}
.btn.gold-btn{background:var(--gold);color:#fff;width:50%;min-width:200px}.btn.gold-btn:hover{background:var(--gold-d)}
:focus-visible{outline:3px solid var(--pink);outline-offset:3px}
/* header + menu */
.site-header{position:absolute;inset:0 0 auto 0;z-index:30;display:flex;justify-content:space-between;align-items:flex-start;padding:2.2vw 3vw}
.brand img{width:clamp(150px,14.5vw,300px);height:auto}
.burger{background:none;border:0;cursor:pointer;width:clamp(40px,2.8vw,56px);height:40px;padding:6px;display:flex;flex-direction:column;justify-content:space-between}
.burger span{display:block;height:3px;background:#fff;width:100%}.burger span:nth-child(2){width:70%;margin-left:auto}
.menu{position:fixed;inset:0;z-index:60;background:rgba(20,20,20,.97);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem}
.menu[hidden]{display:none}
.menu ul{list-style:none;margin:0;padding:0;text-align:center}.menu li{margin:.5rem 0}
.menu a{font:500 clamp(1.3rem,3vw,2rem)/1.4 var(--serif);letter-spacing:.2em;text-transform:uppercase;color:#fff;text-decoration:none}.menu a:hover{color:var(--gold)}
.menu-close{position:absolute;top:18px;right:var(--gut);background:none;border:0;color:#fff;font-size:3rem;line-height:1;cursor:pointer}
/* hero */
.hero{position:relative;min-height:clamp(280px,36vw,520px);display:flex;align-items:center;justify-content:center;text-align:center;background:#333 center/cover;color:#fff;padding:110px var(--gut) 40px}
.hero::before{content:"";position:absolute;inset:0;background:rgba(30,25,20,.38)}
.hero h1{position:relative;z-index:2;color:#fff;font-size:clamp(1.8rem,4.2vw,3.4rem);text-transform:uppercase;letter-spacing:.22em;font-weight:700;margin:0}
.hero h1{display:flex;align-items:baseline;justify-content:center;gap:.35em;flex-wrap:wrap}.hero h1 .disp{font-size:1.9em;text-transform:none;letter-spacing:0;font-weight:500;line-height:1}
.hero.tall{min-height:clamp(320px,40vw,560px)}
.hero.rose{background:var(--rose);min-height:clamp(200px,20vw,280px)}.hero.rose::before{display:none}
.hero.rose h1,.hero-t{font-size:clamp(1.4rem,2.6vw,2.2rem);color:#fff;letter-spacing:.24em;text-transform:uppercase;font-weight:700;margin:0;position:relative;font-family:var(--serif)}
.hero.video{min-height:clamp(420px,36vw,720px);padding:0;background:#222}
.hero-video{z-index:0;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero.video::before{z-index:1;background:rgba(12,10,8,.5)}.hero-copy{text-shadow:0 2px 18px rgba(0,0,0,.45)}
.hero-copy{position:relative;z-index:2;padding:0 var(--gut)}
.hero-copy h1{display:flex;align-items:center;justify-content:center;gap:.4em;text-transform:none;letter-spacing:0;flex-wrap:wrap}
.hero-copy .small-h{font-size:clamp(1.5rem,4.2vw,4.6rem);line-height:1.15;text-align:left;text-transform:uppercase;letter-spacing:.28em;font-weight:700}
.hero.video .hero-copy h1 .disp{font-size:clamp(4.5rem,14vw,17rem);font-weight:500;line-height:1}
.hero-copy p{font-family:var(--serif);font-size:clamp(1.05rem,2vw,2.1rem);letter-spacing:.03em;margin-top:.4rem}
/* generic bands */
.band{padding:clamp(48px,7vw,96px) var(--gut)}
.band.gold{background:var(--gold);color:#fff}.band.gold h2,.band.gold h3{color:#fff}
.band.teal{background:var(--teal);color:#fff}.band.teal h2{color:#fff;font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:.3em}
.band.teal p{max-width:760px;margin:0 auto 1.6rem}
.band.teal .script-sub{font-size:1.5rem;color:#fff}
.band.peach{background:var(--peach)}.band.rose{background:var(--rose);color:#fff}.band.rose h2,.band.rose h3{color:#fff}
.band.black{background:#0c0c0c;color:#fff}
.sub{max-width:720px;margin:0 auto 2rem}
/* welcome */
.welcome,.letter,.control{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,72px);align-items:center;padding:clamp(48px,6vw,88px) var(--gut);max-width:1280px;margin:0 auto}
.welcome img,.letter img{width:100%;box-shadow:12px 12px 0 var(--gold)}
.welcome h2,.letter h2{font-size:clamp(1.2rem,2vw,1.6rem)}
.letter h2 .disp.small{font-size:1.5em}
.control{grid-template-columns:7fr 5fr}.control h2{font-size:clamp(1.3rem,2.4vw,2rem);letter-spacing:.18em;text-transform:uppercase}.control h2 em{font-family:var(--script);color:var(--gold);text-transform:none;font-size:1.3em;letter-spacing:0}
/* benefits */
.benefits{background:var(--gold)}
.benefits h2{font-size:clamp(2rem,3.6vw,3.6rem);letter-spacing:.26em;margin-bottom:.5rem;text-align:center}.benefits .sub{font:400 clamp(1.2rem,2vw,2rem)/1.4 var(--serif);color:#fff;max-width:900px;margin:0 auto 3rem;text-align:center}
.benefits ul{list-style:none;margin:2rem auto;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.6rem 5rem;max-width:1100px}
.benefits li{display:grid;grid-template-columns:88px 1fr;gap:0 24px;align-items:center}
.benefits li img{grid-row:span 2;width:88px;height:auto}
.benefits h3{font:700 .95rem/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;margin:0 0 .3rem}
.benefits p{font-size:1rem;margin:0;line-height:1.55}
/* partner */
.partner{display:grid;grid-template-columns:5fr 6fr;gap:clamp(24px,5vw,72px);align-items:center;position:relative}
.partner h2{font-size:1.3rem;margin-bottom:.4rem}.partner h2 .disp{font-size:clamp(3rem,6vw,5rem);color:#fff}
.ticks{list-style:none;padding:0;margin:0 0 1.6rem}.ticks li{padding-left:1.8em;position:relative;margin:.3rem 0}.ticks li::before{content:"\2713";position:absolute;left:0;color:#fff;font-weight:700}
.partner img{width:100%;box-shadow:-14px 14px 0 rgba(0,0,0,.85)}
/* testimonials */
.testimonials{background:#1c1c1c;position:relative;overflow:hidden}
.slide{display:none;grid-template-columns:1fr 1fr;min-height:clamp(440px,36vw,720px)}.slide.on{display:grid}
.slide-text{padding:clamp(32px,5vw,80px) var(--gut);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.eyebrow{color:var(--gold);letter-spacing:.2em;font-size:clamp(.78rem,1.05vw,1rem);text-transform:uppercase}
.slide blockquote{margin:0 0 1.2rem;font:400 clamp(1.3rem,2.2vw,2.3rem)/1.45 var(--serif);color:#fff}.slide .btn{margin-top:1.2rem}
.by{color:#eee;font-size:clamp(.95rem,1.3vw,1.2rem)}
.slide-img{background:center/cover no-repeat;min-height:320px}
.dots{position:absolute;left:var(--gut);bottom:26px;display:flex;gap:10px}.dot{width:10px;height:10px;border-radius:50%;border:1px solid #fff;background:transparent;padding:0;cursor:pointer}.dot.on{background:#fff}
/* cards */
.grid{display:grid;gap:clamp(20px,3vw,40px)}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px;margin:0 auto 2rem}
.news-home{padding:clamp(40px,6vw,80px) var(--gut)}.news-home h2{font-size:clamp(1.2rem,2vw,1.6rem)}
.cards-wrap{max-width:1180px;margin:0 auto;padding:clamp(32px,5vw,64px) var(--gut)}
.card{display:flex;flex-direction:column;align-items:flex-start}
.card-img{display:block;width:100%;aspect-ratio:3/2;overflow:hidden;margin-bottom:.9rem;background:#eee}.card-img img{width:100%;height:100%;object-fit:cover;object-position:top}
.card h3{font:500 .95rem/1.4 var(--serif);margin:0;color:var(--ink)}
.role{font:400 .6rem/1.6 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#999;margin-bottom:.5rem}
.card p{font-size:.85rem;line-height:1.6;margin:.4rem 0 .6rem;flex:1}.ig{font-size:.8rem;color:var(--txt);margin-bottom:1rem}
.filters{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:2.4rem}
.tab{font:700 .78rem/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:.95em 1.15em;background:#fff;border:1px solid var(--ink);color:var(--ink);cursor:pointer}.tab:hover{background:#f1ece0}.tab.on{background:var(--ink);color:#fff}
.card[hidden]{display:none}
.ev-h{margin:3rem 0 1.5rem;font-size:1.5rem}
.event{max-width:520px}.event h3{font-size:1.1rem}.when{text-transform:uppercase;font-size:.8rem;margin:0}
/* services */
.services{padding:clamp(32px,5vw,64px) var(--gut);max-width:1180px;margin:0 auto}
.services ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.4rem clamp(20px,4vw,56px)}
.services img{width:100%;aspect-ratio:3/2;object-fit:cover;margin-bottom:.8rem}
.services h3{font:500 1rem/1.3 var(--serif);text-transform:uppercase;letter-spacing:.18em;margin:0}.sub-i{font-style:italic;color:var(--gold-d);margin:0 0 .4rem}.services p{font-size:.9rem}
/* owning */
.own-list{list-style:none;padding:0;margin:2rem auto 3rem;max-width:1080px;display:grid;gap:2.5rem}
.own-list li{display:grid;grid-template-columns:5fr 6fr;gap:clamp(20px,4vw,56px);align-items:center}.own-list li:nth-child(even){grid-template-columns:6fr 5fr}.own-list li:nth-child(even) img{order:2}
.own-list h3{font-size:.9rem;letter-spacing:.2em}.own-list p{font-size:.92rem}
.gal{list-style:none;padding:0;margin:2rem auto 0;max-width:1080px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.gal img{width:100%;aspect-ratio:4/3;object-fit:cover}
.awards{display:grid;grid-template-columns:1fr 2fr;gap:clamp(24px,5vw,72px);align-items:center;max-width:1100px;margin:0 auto}.awards img{max-width:300px;margin:0 auto;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.awards .script{font-size:clamp(2rem,4.5vw,3.4rem)}.awards ul{padding-left:1.1em}.awards li{margin:.4rem 0;font-size:.9rem}
.band.rose.awards{max-width:none}
.band.split,.split{display:grid;grid-template-columns:3fr 2fr;padding:0;align-items:stretch;min-height:clamp(340px,33vw,640px)}.split-text{padding:clamp(32px,5vw,72px) clamp(24px,8vw,140px);align-self:center}.split-text h2{font-size:clamp(2rem,3.6vw,3.6rem);letter-spacing:.2em;line-height:1.15}.split-text .lead{font-size:clamp(1.1rem,1.6vw,1.6rem)}.split-img{position:relative;overflow:hidden}.split-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* FAQ */
.faq h2{font-size:clamp(1.1rem,2.2vw,1.7rem);margin-bottom:2rem}.faq h2 .script{font-size:1.5em;margin-left:.2em}.faq h2 .caps{color:#fff}
.faq-list{max-width:760px;margin:0 auto;display:grid;gap:10px}
details{background:#fff;color:var(--ink)}summary{cursor:pointer;padding:.9em 1.2em;font:700 .85rem/1.4 var(--sans);list-style:none;display:flex;justify-content:space-between;gap:12px}summary::-webkit-details-marker{display:none}summary::after{content:"\25BE";font-size:.9em}details[open] summary::after{content:"\25B4"}details div{padding:0 1.2em 1em;color:var(--txt);font-size:.92rem}
/* articles */
.page-article .hero.rose{min-height:200px;padding-bottom:140px;align-items:flex-start;padding-top:110px}
.article{max-width:calc(960px + 2*var(--gut));margin:-110px auto 0;padding:0 var(--gut) 3rem;position:relative}
.art-hero img{width:100%;max-height:560px;object-fit:cover;object-position:top}
.label{text-align:center;color:var(--gold);letter-spacing:.3em;font-size:.72rem;text-transform:uppercase;margin:2rem 0 .3rem}
.art-title{font:500 1.15rem/1.4 var(--serif);text-align:center;margin:1.6rem 0 .4rem;color:var(--ink)}
.art-h{font:700 clamp(1.5rem,2.8vw,2.1rem)/1.25 var(--serif);text-align:center;margin:0 0 1.6rem;color:#111}
.art-body{max-width:760px;margin:0 auto}.art-body p{font-size:.9rem;color:#777;line-height:1.85;text-align:center}
.art-body figure{margin:2.2rem 0;width:min(960px,calc(100vw - 40px));position:relative;left:50%;transform:translateX(-50%)}.art-body figure img{width:100%}
.art-body h2,.art-body h3,.art-body h4{font-family:var(--serif);text-align:center;color:var(--ink)}
.art-body blockquote{background:#707070;border-left:4px solid var(--gold);margin:1.8rem 0;padding:1.4rem 1.8rem;color:#fff}.art-body blockquote p{color:#fff;margin:0;text-align:center;font-size:.9rem}
.art-body a{color:var(--gold-d)}
.ig-line{text-align:center;font-size:.85rem;color:#999}
.more{padding:2rem var(--gut) 4rem;max-width:1180px;margin:0 auto}.more h2{font-size:clamp(1.2rem,2vw,1.6rem);margin-bottom:2rem}
/* forms / prose */
.form-wrap{max-width:900px;margin:0 auto;padding:clamp(40px,6vw,80px) var(--gut)}.form-wrap h2.strong{font-weight:700;font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:.04em;margin-bottom:1.6rem}
.contact label{display:block;font-size:.85rem;margin-bottom:1rem;color:var(--txt)}.contact .row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.contact input,.contact textarea{display:block;width:100%;margin-top:.3rem;font:inherit;padding:.8em 1em;border:1px solid #aaa;border-radius:8px;background:#fff;color:var(--ink)}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}.form-error{color:#b00020}
.prose{max-width:900px;margin:0 auto;padding:clamp(40px,6vw,80px) var(--gut);text-align:center;font-size:.92rem}.prose h1,.prose h2,.prose h3,.prose h4{font:500 1rem/1.4 var(--serif);margin:2rem 0 .8rem}.prose ul{display:inline-block;text-align:left;margin:1rem 0}.prose li{margin:.3rem 0}
.legal .prose p{color:#7a7a7a}
/* footer + chrome */
.site-footer{padding:clamp(48px,6vw,80px) var(--gut) 90px;text-align:center}.site-footer img{margin:0 auto 1.2rem;width:170px;height:auto}
.foot-links{list-style:none;display:flex;gap:2rem;justify-content:center;padding:0;margin:0 0 1.2rem;flex-wrap:wrap}.foot-links a{color:var(--ink);text-decoration:none;font-size:.85rem}.foot-links a:hover{color:var(--gold-d)}
.socials{display:flex;gap:10px;justify-content:center;margin-bottom:1.2rem}.soc{width:30px;height:30px;border-radius:50%;background:#000;display:grid;place-items:center}.soc svg{width:18px;height:18px;fill:#fff}.soc[hidden]{display:none}
.copy{font-size:.72rem;color:#999;margin:0}
.cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;box-shadow:0 -6px 20px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;gap:clamp(12px,2vw,28px);padding:12px var(--gut);transform:translateY(110%);transition:transform .3s;flex-wrap:wrap}
.cta-bar.show{transform:none}
.cta-text{font:500 clamp(.7rem,1.1vw,.95rem)/1 var(--serif);letter-spacing:.22em;text-transform:uppercase;color:var(--ink)}.cta-text em{font:italic 500 clamp(1.6rem,3vw,2.6rem)/1 var(--script);color:var(--gold);text-transform:none;letter-spacing:0;display:inline-block;transform:rotate(-3deg);margin-left:.2em}
.totop{position:absolute;right:14px;top:50%;translate:0 -50%;width:40px;height:40px;border-radius:50%;border:1px solid var(--gold);background:#fff;color:var(--gold);cursor:pointer;font-size:1.3rem;line-height:1}
/* register dialog */
dialog#register{border:0;padding:0;width:min(560px,94vw);max-height:92vh;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.5)}dialog::backdrop{background:rgba(0,0,0,.65)}
.reg-head{background:var(--gold);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:.8rem 1.2rem;font:700 .75rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase}
.reg-close{background:none;border:0;color:#fff;font-size:1.8rem;line-height:1;cursor:pointer}
.reg-body{padding:1rem;overflow:auto;max-height:calc(92vh - 50px)}.reg-body iframe{width:100%;height:600px;border:0}.form-missing{padding:1.5rem;text-align:center}
@media (max-width:860px){
.welcome,.letter,.control,.partner,.awards,.own-list li,.own-list li:nth-child(even),.band.split,.split,.slide{grid-template-columns:1fr}
.own-list li:nth-child(even) img{order:0}
.grid.three{grid-template-columns:repeat(2,1fr)}.benefits ul{grid-template-columns:1fr}
.gal{grid-template-columns:repeat(2,1fr)}.services ul{grid-template-columns:1fr}
.slide-img{min-height:260px;order:-1}.split-img{height:300px}.split-text{padding:40px var(--gut)}.benefits li{grid-template-columns:64px 1fr}.benefits li img{width:64px}
.article{margin-top:-80px}.contact .row{grid-template-columns:1fr}.btn.gold-btn{width:100%}
.cta-text{font-size:.62rem;letter-spacing:.14em}.totop{display:none}
}
@media (max-width:560px){.grid.three,.grid.two{grid-template-columns:1fr}.hero-copy h1{flex-direction:column}.hero-copy .small-h{text-align:center}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cta-bar{transition:none}}
