:root{--ink:#1a0b0d;--text:#4a3d40;--red:#b3141f;--maroon:#6e1217;--deep:#3a080c;--gold:#d4a24c;--ivory:#faf5ee;--paper:#f3eadf;--line:#e6d9c8;--blush:#f3d4d4;--accent:#d4a24c;--r:18px;--serif:"Fraunces",Georgia,serif;--sans:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:400 16.5px/1.7 var(--sans);color:var(--text);background:var(--ivory);overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--serif);color:var(--ink);line-height:1.12;margin:0 0 .5em;font-weight:600;letter-spacing:-.01em}
h1{font-size:clamp(2.3rem,5.4vw,4.4rem);font-weight:700}h2{font-size:clamp(1.8rem,3.6vw,2.8rem)}h3{font-size:1.3rem}h4{font:700 .78rem var(--sans);letter-spacing:.14em;text-transform:uppercase}
a{color:var(--red);text-decoration:none}img{max-width:100%}p{margin:0 0 1em}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}.narrow{max-width:860px}.center{text-align:center}.lead{font-size:1.18rem}
#sp{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--gold),var(--red));z-index:300}
.cg{position:fixed;left:0;top:0;width:460px;height:460px;margin:-230px 0 0 -230px;border-radius:50%;background:radial-gradient(circle,rgba(212,162,76,.14),transparent 62%);pointer-events:none;z-index:90;transition:opacity .3s}
/* buttons */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:.5em;background:linear-gradient(135deg,var(--red),var(--maroon));color:#fff;padding:.9em 1.8em;border:0;border-radius:40px;font:600 .95rem var(--sans);cursor:pointer;box-shadow:0 10px 26px rgba(179,20,31,.28);transition:transform .25s,box-shadow .25s}
.btn::after{content:"";position:absolute;top:0;left:-70%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);transform:skewX(-20deg);transition:left .6s}
.btn:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(179,20,31,.36);color:#fff}.btn:hover::after{left:130%}
.btn.sm{padding:.6em 1.25em;font-size:.85rem}.btn.gold{background:linear-gradient(135deg,#efc76e,var(--gold));color:var(--deep);box-shadow:0 10px 26px rgba(212,162,76,.35)}.btn.gold:hover{color:var(--deep)}
.btn.ghost{background:transparent;box-shadow:none;border:1.5px solid rgba(255,255,255,.55);color:#fff}.btn.ghost:hover{background:#fff;color:var(--maroon)}.btn.ghost.dk{border-color:var(--ink);color:var(--ink)}.btn.ghost.dk:hover{background:var(--ink);color:#fff}
.row{display:flex;gap:14px;flex-wrap:wrap}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:700 .74rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--red);margin-bottom:16px}.eyebrow::before{content:"";width:30px;height:2px;background:linear-gradient(90deg,var(--gold),var(--red))}
/* header */
.topbar{background:var(--deep);color:#d9c3bd;font-size:.82rem}.topbar .wrap{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}.topbar a{color:#d9c3bd;margin-right:20px;transition:color .2s}.topbar div:last-child a{margin:0 0 0 20px}.topbar a:hover{color:var(--gold)}
.site-head{position:sticky;top:0;z-index:100;background:rgba(250,245,238,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(230,217,200,.7);transition:box-shadow .3s}
.site-head.sm{box-shadow:0 8px 30px rgba(58,8,12,.1)}.bar{display:flex;align-items:center;justify-content:space-between;height:78px;transition:height .3s}.site-head.sm .bar{height:62px}
.logo{display:flex;align-items:center;margin:0}.logo img{height:46px;width:auto;display:block;transition:height .3s}.site-head.sm .logo img{height:38px}
.nav{display:flex;align-items:center;gap:30px}.nav>a:not(.btn),.has-dd>a{position:relative;color:var(--ink);font-weight:600;font-size:.93rem}
.nav>a:not(.btn)::after,.has-dd>a::after{content:"";position:absolute;left:0;bottom:-6px;height:2px;width:100%;background:linear-gradient(90deg,var(--gold),var(--red));transform:scaleX(0);transform-origin:left;transition:transform .3s}
.nav>a:not(.btn):hover::after,.has-dd:hover>a::after{transform:scaleX(1)}
.has-dd{position:relative;padding:26px 0}.dd{display:none;position:absolute;top:100%;left:-18px;min-width:250px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px;box-shadow:0 24px 50px rgba(58,8,12,.16);animation:dd .25s ease}
@keyframes dd{from{opacity:0;transform:translateY(8px)}}
.dd a{display:block;padding:9px 14px;color:var(--text);font-size:.92rem;border-radius:10px;transition:all .2s}.dd a:hover{background:var(--paper);color:var(--red);padding-left:20px}
.has-dd:hover .dd,.has-dd:focus-within .dd{display:block}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer}.burger span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;transition:.3s}
/* hero */
.hero{position:relative;color:#ead9d3;padding:110px 0 260px;overflow:hidden;isolation:isolate;background:var(--deep)}
.hero-bg{position:absolute;inset:-70px 0;background:center/cover;z-index:-4;will-change:transform}
.hero::before{content:"";position:absolute;inset:0;z-index:-3;background:linear-gradient(115deg,rgba(58,8,12,.95) 28%,rgba(110,18,23,.8) 68%,rgba(179,20,31,.55))}
.hero::after{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(rgba(255,255,255,.1) 1px,transparent 1px) 0 0/28px 28px;-webkit-mask-image:linear-gradient(#000,transparent 85%);mask-image:linear-gradient(#000,transparent 85%)}
.orb{position:absolute;border-radius:50%;filter:blur(70px);z-index:-1;animation:orb 15s ease-in-out infinite;pointer-events:none}.o1{width:340px;height:340px;background:rgba(212,162,76,.38);top:-90px;right:14%}.o2{width:460px;height:460px;background:rgba(179,20,31,.55);bottom:-190px;left:-120px;animation-delay:-6s}
@keyframes orb{50%{transform:translate(46px,-34px) scale(1.14)}}
.hero h1{color:#fff;font-size:clamp(2.2rem,4.6vw,3.9rem)}.hero .lead{max-width:33em;color:#ecdcd6;margin-bottom:30px}.hero .eyebrow{color:var(--gold)}
em.gt{font-style:italic;color:var(--gold)}
.grid2{display:grid;grid-template-columns:1.08fr 1fr;gap:64px;align-items:center}.grid2.top{align-items:start}
.routesvg{width:100%;max-width:520px;justify-self:end;filter:drop-shadow(0 30px 40px rgba(0,0,0,.3))}
.ribbon{position:absolute;left:0;right:0;bottom:116px;border-top:1px solid rgba(255,255,255,.14);background:rgba(58,8,12,.55);backdrop-filter:blur(8px);padding:15px 0;overflow:hidden;white-space:nowrap}
.ribbon .track{display:inline-flex;animation:mq 34s linear infinite}.ribbon span{font:600 1.05rem var(--serif);color:var(--gold);padding:0 30px;position:relative}.ribbon span::after{content:"✦";position:absolute;right:-6px;color:rgba(255,255,255,.35);font-size:.7rem;top:6px}
@keyframes mq{to{transform:translateX(-50%)}}
/* split-word headline + reveal */
.js [data-split] .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em}.js [data-split] .w>i{display:inline-block;font-style:normal;transform:translateY(112%);transition:transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i) * 70ms)}.js [data-split].in .w>i{transform:none}
.js [data-r]{opacity:0;transform:translateY(34px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0s)}
.js [data-r=left]{transform:translateX(-56px)}.js [data-r=right]{transform:translateX(56px)}.js [data-r=zoom]{transform:scale(.9)}.js [data-r].in{opacity:1;transform:none}
/* stats */
.stats{margin-top:-96px;position:relative;z-index:5}.sbox{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-radius:26px;box-shadow:0 34px 70px rgba(58,8,12,.2);overflow:hidden}
.sbox>div{padding:36px 20px;text-align:center;border-right:1px solid var(--line);position:relative}.sbox>div:last-child{border:0}.sbox>div::before{content:"";position:absolute;left:30%;right:30%;top:0;height:3px;background:linear-gradient(90deg,var(--gold),var(--red));border-radius:0 0 4px 4px}
.sbox b{display:block;font:700 clamp(2.2rem,4vw,3.3rem) var(--serif);background:linear-gradient(135deg,var(--red),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1}.sbox span{color:#7a6a6c;font-weight:500}
/* sections */
.sec{padding:104px 0;position:relative}.sec.alt{background:var(--paper)}
.sh{max-width:720px;margin:0 auto 56px;text-align:center}.sh .eyebrow{justify-content:center}.sh p{color:#6b5b5e}
.sh.l{margin-left:0;text-align:left}.sh.l .eyebrow{justify-content:flex-start}
.cards{display:grid;gap:24px}.three{grid-template-columns:repeat(3,1fr)}.four-c{grid-template-columns:repeat(4,1fr)}
.card{position:relative;display:block;padding:36px 30px;border-radius:22px;background:#fff;border:1px solid var(--line);overflow:hidden;color:var(--text);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s}
.card::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(212,162,76,.2),transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none}
a.card:hover,.card:hover{box-shadow:0 26px 54px rgba(58,8,12,.14);border-color:rgba(212,162,76,.7)}.card:hover::before{opacity:1}
.card .no{position:absolute;right:20px;top:8px;font:700 4.6rem var(--serif);color:transparent;-webkit-text-stroke:1.5px rgba(179,20,31,.16);line-height:1}
.ring{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(135deg,var(--red),var(--maroon));color:#fff;margin-bottom:22px;box-shadow:0 12px 24px rgba(179,20,31,.28);transition:transform .5s}.card:hover .ring{transform:rotate(-8deg) scale(1.1)}
.ic{width:34px;height:34px;color:var(--red)}.ring .ic{width:28px;height:28px;color:#fff}
.card h3{position:relative}.card p{position:relative;margin-bottom:.8em}
.more{position:relative;display:inline-flex;gap:8px;font-weight:700;color:var(--red)}.more::after{content:"→";transition:transform .3s}.card:hover .more::after{transform:translateX(7px)}
/* about */
.frame{position:relative;padding:0 0 26px 26px}.frame::before{content:"";position:absolute;left:0;bottom:0;right:26px;top:26px;border:2px solid var(--gold);border-radius:28px}
.vid{position:relative;width:100%;border-radius:24px;background:#000;box-shadow:0 30px 60px rgba(58,8,12,.25);display:block}
.spin-badge{position:absolute;right:-18px;top:-22px;width:132px;height:132px;background:var(--red);border-radius:50%;box-shadow:0 14px 30px rgba(179,20,31,.4);z-index:2}.spin-badge .rot{transform-origin:60px 60px;animation:spin 18s linear infinite}.spin-badge text{fill:#fff;font:700 9.4px var(--sans);letter-spacing:.18em}.spin-badge .yr{font:700 24px var(--serif);letter-spacing:0;fill:var(--gold)}
@keyframes spin{to{transform:rotate(360deg)}}
/* marquee pills */
.mq{overflow:hidden;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.mq+.mq{margin-top:14px}
.mq .track{display:inline-flex;gap:14px;animation:mq 46s linear infinite;padding:8px 0}.mq.rev .track{animation-direction:reverse;animation-duration:54s}.mq:hover .track{animation-play-state:paused}
.pill{display:inline-flex;align-items:center;gap:12px;padding:16px 28px;border-radius:50px;background:#fff;border:1px solid var(--line);color:var(--ink);font-weight:600;transition:all .3s}.pill::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--gold);transition:background .3s}
.pill:hover{background:linear-gradient(135deg,var(--red),var(--maroon));color:#fff;border-color:transparent;transform:translateY(-4px);box-shadow:0 14px 28px rgba(179,20,31,.3)}.pill:hover::before{background:#fff}
/* consul */
.dark{background:linear-gradient(135deg,#3a080c,#6e1217);color:#e5d2cc;overflow:hidden;isolation:isolate}.dark h2{color:#fff}.dark .eyebrow{color:var(--gold)}
.consul{display:grid;grid-template-columns:340px 1fr;gap:80px;align-items:center}.cframe{position:relative}.cframe::before{content:"";position:absolute;inset:20px -20px -20px 20px;border:2px solid var(--gold);border-radius:28px}.cframe img{position:relative;width:100%;border-radius:28px;aspect-ratio:4/5;object-fit:cover;box-shadow:0 30px 60px rgba(0,0,0,.35)}
.qmark{position:absolute;font:700 22rem/0.7 var(--serif);color:rgba(212,162,76,.1);top:70px;right:5%;pointer-events:none;z-index:-1}
.qt{font:italic 500 clamp(1.25rem,2.3vw,1.85rem)/1.5 var(--serif);color:#fff;margin-bottom:26px}.who b{color:var(--gold);font-weight:700}
/* events */
.events{display:grid;gap:16px}.ev{display:grid;grid-template-columns:128px 1fr;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;transition:transform .35s,box-shadow .35s}
.ev:hover{transform:translateX(10px);box-shadow:0 22px 46px rgba(58,8,12,.12)}.ev .d{display:grid;place-content:center;text-align:center;background:linear-gradient(160deg,var(--red),var(--maroon));color:#fff;padding:24px 10px}.ev .d b{display:block;font:700 2.4rem var(--serif);line-height:1}.ev .d span{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;opacity:.9}
.ev .b{padding:22px 30px;border-left:2px dashed var(--line);display:flex;flex-direction:column;justify-content:center}.ev h3{margin:0 0 .2em}.ev p{margin:0;color:#7a6a6c}
/* gallery */
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:14px}.gal a{position:relative;display:block;overflow:hidden;border-radius:20px;background:var(--paper)}.gal a:first-child{grid-column:span 2;grid-row:span 2}
.gal img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.8,.2,1)}.gal a:hover img{transform:scale(1.1)}
.gal a::after{content:"View";position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(transparent 40%,rgba(58,8,12,.7));color:#fff;font:600 .95rem var(--sans);letter-spacing:.14em;text-transform:uppercase;opacity:0;transition:opacity .35s}.gal a:hover::after{opacity:1}
.lb{position:fixed;inset:0;background:rgba(20,5,7,.93);display:none;place-items:center;z-index:400;padding:24px;cursor:zoom-out}.lb.on{display:grid;animation:dd .3s}.lb img{max-width:100%;max-height:92vh;border-radius:14px}
/* cta + contact */
.cta{background:linear-gradient(120deg,#3a080c,#b3141f,#6e1217,#3a080c);background-size:300% 300%;animation:shift 14s ease infinite;color:#f1dcd6;text-align:center;padding:112px 0 200px;position:relative;overflow:hidden;isolation:isolate}
@keyframes shift{50%{background-position:100% 50%}}.cta h2{color:#fff;font-size:clamp(2rem,4.4vw,3.4rem)}.cta .eyebrow{color:var(--gold);justify-content:center}.cta p{max-width:36em;margin:0 auto 30px;font-size:1.1rem}
.row.mid{justify-content:center;align-items:center;gap:28px}.callnow{display:flex;gap:12px;align-items:center;text-align:left;color:#fff;font-size:.9rem;padding-left:28px;border-left:2px solid rgba(255,255,255,.35)}.callnow .ic{color:var(--gold)}.callnow b{font-size:1.1rem}
.overlap{margin-top:-120px;position:relative;z-index:3;padding-bottom:104px}.ccard{background:#fff;border-radius:30px;padding:54px;box-shadow:0 40px 80px rgba(58,8,12,.22);display:grid;grid-template-columns:1fr 1.1fr;gap:56px}
.feat{display:flex;gap:16px;margin:22px 0;align-items:flex-start}.feat .ring{flex:0 0 52px;width:52px;height:52px;border-radius:16px;margin:0}.feat .ring .ic{width:24px;height:24px}.feat h3{margin:0 0 .15em;font-size:1.1rem}.feat p{margin:0}
.form{display:grid;gap:16px}.form label{display:grid;gap:6px;font-weight:600;color:var(--ink);font-size:.9rem}
input,select,textarea{font:inherit;padding:.85em 1.05em;border:1.5px solid var(--line);border-radius:14px;background:var(--ivory);width:100%;color:var(--ink);transition:border-color .25s,box-shadow .25s,background .25s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 4px rgba(212,162,76,.22);background:#fff}
.flash{max-width:1152px;margin:18px auto;padding:14px 20px;border-radius:14px;background:#e8f7ef;color:#0b5a46;border:1px solid #a8e6d0;animation:dd .4s}.flash.err{background:#fdecec;color:#8a1c1c;border-color:#f3b8b8}
/* inner pages */
.page-head{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(120deg,#3a080c,#6e1217);color:#ead9d3;padding:100px 0 84px}
.page-head::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:rgba(212,162,76,.3);filter:blur(80px);right:8%;top:-160px;z-index:-1;animation:orb 15s ease-in-out infinite}
.page-head::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(rgba(255,255,255,.09) 1px,transparent 1px) 0 0/26px 26px}
.page-head h1{color:#fff;font-size:clamp(2.1rem,4.4vw,3.5rem)}.page-head .eyebrow{color:var(--gold)}.page-head .lead{max-width:40em;margin:0;color:#ecdcd6}
.prose p{max-width:62ch}.side{background:#fff;border:1px solid var(--line);padding:30px;border-radius:22px}.side a:not(.btn){display:block;padding:8px 0;font-weight:600;border-bottom:1px solid var(--line)}.side h3{margin-top:1em}.side h3:first-child{margin-top:0}
/* footer */
.site-foot{background:var(--deep);color:#cdb7b2;position:relative;overflow:hidden}.site-foot::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--gold),var(--red),transparent)}
.site-foot h2,.site-foot h4{color:#fff}.site-foot .wrap{position:relative}
.cta-band{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:60px 0;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:46px;flex-wrap:wrap}.cta-band h2{margin:0;font-size:clamp(1.5rem,3vw,2.1rem);max-width:18em}
.sub{display:flex;gap:10px;flex:0 1 460px}.sub input{border:0;border-radius:40px;background:#fff}
.cols{display:grid;grid-template-columns:1.6fr 1fr 1.5fr;gap:48px}.cols a{display:block;color:#cdb7b2;padding:4px 0;transition:all .2s}.cols a:hover{color:var(--gold);padding-left:6px}.flogo{height:52px;width:auto}
.wordmark{font:700 clamp(4.5rem,17vw,13rem)/.9 var(--serif);color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.1);text-align:center;margin:46px 0 0;user-select:none}
.copy{margin:20px 0;font-size:.85rem;text-align:center}
/* responsive */
@media(max-width:960px){
 .burger{display:block}.nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;align-items:flex-start;padding:18px 24px;gap:12px;border-bottom:1px solid var(--line);max-height:78vh;overflow:auto}.nav.open{display:flex}
 .has-dd{padding:0}.dd{display:none!important;position:static;border:0;box-shadow:none;padding:0 0 0 12px;animation:none}.has-dd.open .dd{display:block!important}
 .grid2,.ccard,.consul,.cols{grid-template-columns:1fr}.three,.four-c{grid-template-columns:1fr 1fr}.sbox{grid-template-columns:1fr 1fr}.sbox>div:nth-child(2){border-right:0}.sbox>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
 .hero{padding:80px 0 250px}.routesvg{justify-self:center}.gal{grid-template-columns:repeat(2,1fr)}.ccard{padding:30px}.consul{gap:50px}.cframe{max-width:280px}.sec{padding:74px 0}.ev{grid-template-columns:96px 1fr}
}
@media(max-width:600px){.three,.four-c{grid-template-columns:1fr}.cta-band,.row.mid{flex-direction:column;align-items:flex-start}.callnow{border:0;padding:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.js [data-r],.js [data-split] .w>i{opacity:1!important;transform:none!important}html{scroll-behavior:auto}.cg{display:none}}
