/* 333 Davet — Katalog (v21) */
:root{--navy:#080b2e;--navy-2:#11164a;--gold:#c9a86a;--gold-2:#e2c88f;--gold-deep:#9b7a3e;--paper:#f8f5ee;--paper-2:#f1ece1;--ivory:#fffdf8;--ink:#14162f;--soft:#4a4c63;--muted:#7d7e90;--line:rgba(20,22,47,.12);--lg:rgba(201,168,106,.45);
--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope','Helvetica Neue',Arial,sans-serif;--ease:cubic-bezier(.22,.61,.36,1);--out:cubic-bezier(.16,1,.3,1);--head:72px;--foot:72px;--g:clamp(20px,4.5vw,64px)}
*,*::before,*::after{box-sizing:border-box}
html,body{overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--ink);font:400 15.5px/1.7 var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;line-height:1.02;letter-spacing:-.015em}
h1 em,h2 em{font-style:italic;color:var(--gold-deep)}
.cx-skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--gold);color:var(--navy);padding:10px 14px}
.cx-skip:focus{top:12px}

/* intro curtain */
.cx-intro{position:fixed;inset:0;z-index:300;background:var(--navy);display:grid;place-items:center;transition:transform 1.1s var(--out),visibility 0s 1.2s}
.cx-intro div{text-align:center;color:var(--gold-2);font:600 10px/1 var(--sans);letter-spacing:.42em}
.cx-intro img{width:150px;margin:0 auto 22px;opacity:0;animation:cxFade 1s var(--ease) forwards}
.cx-intro span{opacity:0;animation:cxFade 1s var(--ease) .3s forwards}
.cx-ready .cx-intro{transform:translateY(-100%);visibility:hidden}
@keyframes cxFade{to{opacity:1}}

/* header */
.cx-head{position:fixed;inset:0 0 auto;z-index:50;height:var(--head);display:flex;align-items:center;gap:22px;padding:0 var(--g);background:rgba(8,11,46,.96);backdrop-filter:blur(14px);color:#fff;transition:background .6s}
.on-cover .cx-head{background:linear-gradient(180deg,rgba(8,11,46,.7),rgba(8,11,46,0));backdrop-filter:none}
.cx-brand img{height:40px;width:auto}
.cx-title{font:400 20px/1 var(--serif);font-style:italic;color:var(--gold-2);padding-left:22px;border-left:1px solid rgba(255,255,255,.2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-actions{margin-left:auto;display:flex;gap:6px}
.cx-actions>*{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px;border:1px solid rgba(255,255,255,.18);font:600 10.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#fff;transition:border-color .3s,background .3s}
.cx-actions>*:hover{border-color:var(--gold);background:rgba(201,168,106,.12)}
.cx-actions i{font-style:normal;color:var(--gold-2);font-size:14px;letter-spacing:0}
.cx-actions button:disabled{opacity:.5}
.cx-bar{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.08)}
.cx-bar span{position:absolute;inset:0;background:linear-gradient(90deg,var(--gold-deep),var(--gold-2));transform-origin:left;transform:scaleX(0);transition:transform .9s var(--out)}

/* stage + chapters */
.cx-stage{min-height:100svh;padding:var(--head) 0 var(--foot);outline:none;overflow:hidden}
.cx-ch{position:relative;min-height:calc(100svh - var(--head) - var(--foot))}
.cx-eyebrow{display:flex;align-items:center;gap:12px;font:600 10.5px/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);margin:0 0 22px}
.cx-eyebrow b{font:italic 400 30px/1 var(--serif);letter-spacing:0;color:var(--gold)}
.cx-eyebrow.light{color:var(--gold-2)}
.cx-eyebrow.center{justify-content:center}
.cx-eyebrow::before{content:"";width:30px;height:1px;background:currentColor;opacity:.7}
.cx-eyebrow.center::before{display:none}
h2{font-size:clamp(40px,5vw,78px)}
h2.center,.center{text-align:center}
.cx-lead{font-size:clamp(15.5px,1.15vw,17.5px);color:var(--soft);max-width:560px;margin:26px 0 0}
.cx-note{font-size:12.5px;color:var(--muted);margin:18px 0 0}
.cx-btn{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 26px;border:1px solid var(--navy);color:var(--navy);font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;position:relative;overflow:hidden;isolation:isolate;transition:color .5s var(--ease),border-color .5s}
.cx-btn::before{content:"";position:absolute;inset:0;background:var(--navy);transform:scaleX(0);transform-origin:right;transition:transform .6s var(--out);z-index:-1}
.cx-btn:hover{color:#fff}
.cx-btn:hover::before{transform:scaleX(1);transform-origin:left}
.cx-btn i{font-style:normal;transition:transform .4s var(--ease)}
.cx-btn:hover i{transform:translateX(4px)}
.cx-btn.gold{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.cx-btn.gold::before{background:var(--ivory)}
.cx-btn.gold:hover{color:var(--navy)}
.cx-btn.light{border-color:rgba(255,255,255,.45);color:#fff}
.cx-btn.light::before{background:#fff}
.cx-btn.light:hover{color:var(--navy)}

/* ---- animation system ---- */
.cx-a{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform 1.1s var(--out);transition-delay:calc(var(--i,0) * 90ms + 120ms)}
.cx-line{display:block;overflow:hidden;padding-bottom:.08em}
.cx-line>span{display:inline-block;transform:translateY(108%);transition:transform 1.2s var(--out);transition-delay:calc(var(--i,0) * 110ms + 160ms)}
.cx-mask{margin:0;overflow:hidden;clip-path:inset(0 0 100% 0);transition:clip-path 1.4s var(--out) .15s}
.cx-mask img{width:100%;height:100%;object-fit:cover;transform:scale(1.18);transition:transform 2.2s var(--out) .15s}
.is-in .cx-a{opacity:1;transform:none}
.is-in .cx-line>span{transform:none}
.is-in .cx-mask{clip-path:inset(0 0 0 0)}
.is-in .cx-mask img{transform:scale(1.03)}
[data-dir="prev"] .cx-a{transform:translateY(-22px)}
[data-dir="prev"] .is-in .cx-a{transform:none}
.cx-ch.is-out{animation:cxOut .42s var(--ease) forwards}
[data-dir="next"] .cx-ch.is-out{--ox:-40px}
[data-dir="prev"] .cx-ch.is-out{--ox:40px}
@keyframes cxOut{to{opacity:0;transform:translateX(var(--ox,-40px))}}
.re>.cx-courses .cx-a,.re>.cx-menu-intro{animation:cxRe .8s var(--out) both}
@keyframes cxRe{from{opacity:0;transform:translateY(16px)}}

/* ---- cover ---- */
.cx-cover{margin-top:calc(var(--head) * -1);min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--navy)}
.cx-cover-img{position:absolute;inset:0;overflow:hidden}
.cx-cover-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.15) translate(calc(var(--px,0) * -14px),calc(var(--py,0) * -10px));transition:transform 8s linear}
.is-in .cx-cover-img img{transform:scale(1.03) translate(calc(var(--px,0) * -14px),calc(var(--py,0) * -10px))}
.cx-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,11,46,.35),rgba(8,11,46,.05) 35%,rgba(8,11,46,.55) 70%,rgba(8,11,46,.92));pointer-events:none}
.cx-frame{position:absolute;inset:calc(var(--head) + 18px) 18px calc(var(--foot) + 18px);border:1px solid rgba(226,200,143,.35);z-index:1;pointer-events:none;opacity:0;transform:scale(1.03);transition:opacity 1.4s var(--ease) .5s,transform 1.6s var(--out) .5s}
.is-in .cx-frame{opacity:1;transform:none}
.cx-cover-copy{position:relative;z-index:2;padding:0 calc(var(--g) + 30px) calc(var(--foot) + 70px);max-width:1100px}
.cx-cover h1{font-size:clamp(52px,8.6vw,140px);line-height:.95}
.cx-cover h1 .cx-line:nth-child(2) span{font-style:italic;color:var(--gold-2)}
.cx-cover-sub{margin:26px 0 22px;max-width:520px;font-size:clamp(15px,1.2vw,18px);color:rgba(255,255,255,.85)}
.cx-cover-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:34px}
.cx-cover-meta span{padding:9px 13px;border:1px solid rgba(226,200,143,.4);font:600 10px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#f3e6c6;background:rgba(8,11,46,.35);backdrop-filter:blur(6px)}
.cx-stamp{position:absolute;right:calc(var(--g) + 20px);top:50%;z-index:2;writing-mode:vertical-rl;font:600 9.5px/1 var(--sans);letter-spacing:.42em;color:rgba(255,255,255,.55)}

/* ---- story ---- */
.cx-story{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(40px,6vw,110px);align-items:center;padding:clamp(40px,6vh,80px) var(--g)}
.cx-dropcap::first-letter{float:left;font:400 78px/.8 var(--serif);color:var(--gold-deep);padding:8px 12px 0 0}
.cx-features{list-style:none;padding:0;margin:32px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 26px;border-top:1px solid var(--line)}
.cx-features li{display:flex;gap:12px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--soft)}
.cx-features li::before{content:"";width:6px;height:6px;flex:none;background:var(--gold);transform:rotate(45deg) translateY(-2px)}
.cx-story-visual{position:relative;padding:0 0 60px 60px}
.cx-story-visual .big{aspect-ratio:4/5;transform:translate(calc(var(--px,0) * 10px),calc(var(--py,0) * 8px))}
.cx-story-visual .small{position:absolute;left:0;bottom:0;width:44%;aspect-ratio:3/4;border:10px solid var(--paper);box-shadow:0 30px 70px -30px rgba(8,11,46,.45);transition-delay:.45s;transform:translate(calc(var(--px,0) * -16px),calc(var(--py,0) * -12px))}
.cx-badge{position:absolute;right:-18px;top:30px;width:118px;height:118px;border-radius:50%;background:var(--navy);color:var(--gold-2);display:grid;place-content:center;text-align:center;font:600 9px/1.5 var(--sans);letter-spacing:.24em}
.cx-badge b{font:400 36px/1 var(--serif);letter-spacing:0;color:#fff}

/* ---- areas ---- */
.cx-areas{display:grid;grid-template-columns:1.15fr 1fr;gap:0;align-items:stretch;background:var(--ivory)}
.cx-areas-img{position:relative;min-height:calc(100svh - var(--head) - var(--foot))}
.cx-areas-img .cx-mask{position:absolute;inset:0}
.cx-areas-img img{transition:transform 2.2s var(--out) .15s,opacity .5s,filter .5s}
.cx-areas-img img.swap{opacity:0;filter:blur(6px)}
.cx-area-cap{position:absolute;left:24px;bottom:24px;background:rgba(8,11,46,.85);color:var(--gold-2);padding:11px 15px;font:600 10px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;z-index:2}
.cx-areas-copy{padding:clamp(40px,6vw,96px) clamp(28px,5vw,90px);display:flex;flex-direction:column;justify-content:center}
.cx-space-note{display:flex;gap:12px;align-items:center;margin:24px 0 6px;font-size:13.5px;color:var(--soft)}
.cx-space-note i{width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px rgba(201,168,106,.2);flex:none}
.cx-tabs{position:relative;display:inline-flex;gap:4px;border-bottom:1px solid var(--line);margin:22px 0 4px;max-width:100%;overflow-x:auto;scrollbar-width:none}
.cx-tabs::-webkit-scrollbar{display:none}
.cx-tabs button{padding:12px 16px;font:600 10.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);white-space:nowrap;transition:color .3s}
.cx-tabs button[aria-selected="true"]{color:var(--navy)}
.cx-tab-ink{position:absolute;left:0;bottom:-1px;height:2px;background:var(--gold);transition:transform .5s var(--out),width .5s var(--out)}
.cx-caps{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--navy);margin-top:26px}
.cx-caps div{padding:22px 18px 18px 0}
.cx-caps div:nth-child(even){padding-left:22px;border-left:1px solid var(--line)}
.cx-caps div:nth-child(n+3){border-top:1px solid var(--line)}
.cx-caps span{display:block;font:600 10px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.cx-caps b{display:inline-block;font:400 clamp(46px,4.6vw,70px)/1 var(--serif);color:var(--navy);margin-top:10px}
.cx-caps small{margin-left:8px;font:600 10px/1 var(--sans);letter-spacing:.16em;color:var(--gold-deep);text-transform:uppercase}
.cx-areas .cx-btn{align-self:flex-start;margin-top:26px}

/* ---- gallery ---- */
.cx-gallery{padding:clamp(36px,5vh,70px) var(--g)}
.cx-gal-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:30px;flex-wrap:wrap}
.cx-masonry{columns:4 240px;column-gap:12px}
.cx-tile{position:relative;display:block;width:100%;margin:0 0 12px;break-inside:avoid;overflow:hidden;background:var(--paper-2);opacity:0;transform:translateY(30px) scale(.98);transition:opacity .8s var(--ease),transform 1s var(--out);transition-delay:calc(var(--i,0) * 60ms + 300ms)}
.is-in .cx-tile{opacity:1;transform:none}
.cx-tile img{width:100%;height:auto;transition:transform 1.2s var(--out)}
.cx-tile span{position:absolute;right:12px;bottom:12px;width:36px;height:36px;border-radius:50%;background:rgba(8,11,46,.78);color:var(--gold-2);display:grid;place-items:center;opacity:0;transform:scale(.6);transition:all .4s var(--ease)}
.cx-tile:hover img{transform:scale(1.06)}
.cx-tile:hover span{opacity:1;transform:none}

/* ---- menu ---- */
.cx-menu{display:grid;grid-template-columns:.8fr 1.2fr;min-height:calc(100svh - var(--head) - var(--foot))}
.cx-menu-img{position:relative}
.cx-menu-img .cx-mask{position:absolute;inset:0}
.cx-menu-img p{position:absolute;left:28px;bottom:28px;z-index:2;color:#fff;font:400 26px/1.15 var(--serif);text-shadow:0 4px 30px rgba(0,0,0,.4)}
.cx-menu-img p em{color:var(--gold-2)}
.cx-menu-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(8,11,46,.75));pointer-events:none}
.cx-menu-card{position:relative;margin:clamp(24px,4vw,60px);padding:clamp(34px,4vw,64px) clamp(24px,4vw,70px);background:var(--ivory);box-shadow:0 30px 80px -40px rgba(8,11,46,.35)}
.cx-menu-card::before{content:"";position:absolute;inset:12px;border:1px solid var(--lg);pointer-events:none}
.cx-menu-card h2{font-size:clamp(36px,4vw,60px)}
.center-tabs{text-align:center}
.cx-menu-intro{text-align:center;font:italic 400 20px/1.4 var(--serif);color:var(--soft);margin:22px 0 10px}
.cx-courses{display:grid;gap:0;text-align:center}
.cx-course h3{font:600 10.5px/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--gold-deep);margin:20px 0 10px}
.cx-course p{margin:0;font:400 20px/1.55 var(--serif);color:var(--ink)}
.cx-orn{display:block;color:var(--gold);font-size:11px;margin:16px 0 0}

/* ---- services ---- */
.cx-services{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,110px);align-items:center;padding:clamp(40px,6vh,80px) var(--g)}
.cx-services-list{list-style:none;padding:0;margin:32px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 28px;border-top:1px solid var(--navy)}
.cx-services-list li{display:flex;gap:16px;align-items:baseline;padding:15px 0;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--ink)}
.cx-services-list span{font:italic 400 22px/1 var(--serif);color:var(--gold-deep);min-width:28px}
.cx-services-photos{position:relative;height:min(68vh,620px)}
.cx-services-photos .a{position:absolute;right:0;top:0;width:76%;height:78%;transform:translate(calc(var(--px,0) * 10px),calc(var(--py,0) * 8px))}
.cx-services-photos .b{position:absolute;left:0;bottom:0;width:50%;height:46%;border:10px solid var(--paper);box-shadow:0 30px 70px -30px rgba(8,11,46,.45);transition-delay:.45s;transform:translate(calc(var(--px,0) * -14px),calc(var(--py,0) * -10px))}

/* ---- contact ---- */
.cx-contact{display:grid;place-items:center;padding:clamp(30px,6vh,80px) var(--g);background:var(--navy);overflow:hidden}
.cx-contact-bg{position:absolute;inset:0}
.cx-contact-bg img{width:100%;height:100%;object-fit:cover;opacity:.32;filter:saturate(.8);transform:scale(1.12);transition:transform 8s linear}
.is-in .cx-contact-bg img{transform:scale(1.02)}
.cx-contact::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(8,11,46,.4),rgba(8,11,46,.92))}
.cx-card{position:relative;z-index:2;width:min(760px,100%);text-align:center;color:#f4efe4;padding:clamp(36px,5vw,70px) clamp(22px,5vw,70px);border:1px solid rgba(226,200,143,.35);background:rgba(8,11,46,.5);backdrop-filter:blur(8px)}
.cx-card::before{content:"";position:absolute;inset:10px;border:1px solid rgba(226,200,143,.18);pointer-events:none}
.cx-card-logo{height:54px;width:auto;margin:0 auto 26px}
.cx-card h2{color:#fff}
.cx-card h2 .cx-line:last-child span{font-style:italic;color:var(--gold-2)}
.cx-card>p{color:rgba(244,239,228,.8);max-width:500px;margin:22px auto 30px}
.cx-card-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.cx-card-info{margin-top:34px;padding-top:26px;border-top:1px solid rgba(255,255,255,.14);display:grid;gap:6px;font-size:13.5px;color:rgba(244,239,228,.75)}
.cx-card-info b{font:400 26px/1.1 var(--serif);color:#fff}
.cx-card-info a{color:var(--gold-2)}
.cx-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin-top:6px}
.cx-links button{color:var(--gold-2)}

/* ---- footer controls ---- */
.cx-foot{position:fixed;inset:auto 0 0;z-index:50;height:var(--foot);display:flex;align-items:center;gap:24px;padding:0 var(--g);background:rgba(248,245,238,.95);backdrop-filter:blur(12px);border-top:1px solid var(--line)}
.on-cover .cx-foot{background:rgba(8,11,46,.55);border-color:rgba(255,255,255,.12);color:#fff}
.cx-where{display:flex;flex-direction:column;gap:4px;min-width:140px}
.cx-where span{font:600 10px/1 var(--sans);letter-spacing:.24em;color:var(--gold-deep)}
.on-cover .cx-where span{color:var(--gold-2)}
.cx-where b{font:400 20px/1 var(--serif)}
.cx-dots{display:flex;gap:6px;margin:0 auto;align-items:center}
.cx-dots button{position:relative;width:34px;height:24px}
.cx-dots button::before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:currentColor;opacity:.22;transition:opacity .3s,background .3s}
.cx-dots button[aria-current="true"]::before{background:var(--gold);opacity:1}
.cx-dots em{position:absolute;bottom:30px;left:50%;transform:translate(-50%,6px);white-space:nowrap;font:600 9.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;font-style:normal;background:var(--navy);color:var(--gold-2);padding:7px 9px;opacity:0;pointer-events:none;transition:all .3s}
.cx-dots button:hover em{opacity:1;transform:translate(-50%,0)}
.cx-arrows{display:flex;gap:8px}
.cx-arrows button{width:48px;height:48px;border:1px solid currentColor;font-size:18px;transition:background .3s,color .3s,border-color .3s,opacity .3s}
.cx-arrows button:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.on-cover .cx-arrows button:hover{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.cx-arrows button:disabled{opacity:.25;pointer-events:none}
#cx-next{background:var(--navy);color:#fff;border-color:var(--navy)}
.on-cover #cx-next{background:var(--gold);color:var(--navy);border-color:var(--gold)}

/* ---- dialogs ---- */
dialog{border:0;padding:0;max-width:none;max-height:none;background:transparent}
.cx-toc{width:100vw;height:100dvh;background:var(--navy);color:#fff;padding:clamp(70px,10vh,120px) var(--g) 40px;overflow:auto}
.cx-toc[open]{animation:cxToc .7s var(--out)}
@keyframes cxToc{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
.cx-toc h2{font-size:clamp(40px,5vw,72px);margin-bottom:34px}
.cx-toc h2 em{color:var(--gold-2)}
.cx-toc nav{display:grid;max-width:900px;border-top:1px solid rgba(255,255,255,.14)}
.cx-toc nav button{display:flex;align-items:baseline;gap:22px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.14);font:400 clamp(26px,3vw,40px)/1.1 var(--serif);text-align:left;transition:padding .4s var(--out),color .3s}
.cx-toc nav button span{font:600 11px/1 var(--sans);letter-spacing:.2em;color:var(--gold)}
.cx-toc nav button i{margin-left:auto;font-style:normal;color:var(--gold-2);opacity:0;transition:opacity .3s}
.cx-toc nav button:hover{padding-left:14px;color:var(--gold-2)}
.cx-toc nav button:hover i{opacity:1}
.cx-x{position:fixed;right:22px;top:16px;width:50px;height:50px;font-size:30px;font-weight:200;color:#fff;z-index:3}
.cx-lb{width:100vw;height:100dvh;align-items:center;justify-content:center}
.cx-lb[open]{display:flex}
.cx-lb::backdrop,.cx-toc::backdrop{background:rgba(5,7,30,.94)}
.cx-lb img{max-width:min(92vw,1500px);max-height:80vh;object-fit:contain}
.cx-lb img.in{animation:cxLb .6s var(--out)}
@keyframes cxLb{from{opacity:0;transform:scale(.96)}}
.cx-lb-bar{position:fixed;left:0;right:0;bottom:22px;display:flex;justify-content:center;align-items:center;gap:24px;color:rgba(255,255,255,.8);font:600 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.cx-lb-bar button{width:50px;height:50px;border:1px solid rgba(255,255,255,.3);border-radius:50%;color:#fff;font-size:18px}
.cx-loading{min-height:70vh;display:grid;place-content:center;text-align:center;gap:14px;padding:var(--g)}
.cx-loading b{font:italic 400 64px/1 var(--serif);color:var(--gold);animation:cxPulse 1.6s ease-in-out infinite}
@keyframes cxPulse{50%{opacity:.35}}
.cx-status{position:fixed;left:50%;bottom:calc(var(--foot) + 16px);transform:translate(-50%,20px);opacity:0;z-index:60;background:var(--navy);color:#fff;padding:12px 18px;font-size:13.5px;border-left:2px solid var(--gold);transition:all .5s var(--out);pointer-events:none}
.cx-status.on{opacity:1;transform:translate(-50%,0)}
.cx-swipe{position:fixed;left:50%;bottom:calc(var(--foot) + 18px);transform:translateX(-50%);z-index:55;background:rgba(8,11,46,.85);color:#fff;padding:10px 16px;border-radius:30px;font:600 10.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;display:flex;gap:10px;transition:opacity .6s}
.cx-swipe span{color:var(--gold-2);animation:cxNudge 1.4s ease-in-out infinite}
.cx-swipe span:last-child{animation-direction:reverse}
.cx-swipe.out{opacity:0}
@keyframes cxNudge{50%{transform:translateX(-4px)}}

/* ---- responsive ---- */
@media (max-width:980px){
  .cx-story,.cx-services{grid-template-columns:1fr}
  .cx-story-visual{order:-1;padding:0 0 40px 40px}
  .cx-areas,.cx-menu{grid-template-columns:1fr}
  .cx-areas-img,.cx-menu-img{min-height:46vh}
  .cx-services-photos{height:52vh;order:-1}
  .cx-dots{display:none}
  .cx-arrows{margin-left:auto}
}
@media (max-width:640px){
  :root{--head:60px;--foot:64px}
  .cx-brand img{height:32px}
  .cx-title{display:none}
  .cx-actions .t{display:none}
  .cx-actions>*{width:40px;justify-content:center;padding:0}
  .cx-cover-copy{padding:0 26px calc(var(--foot) + 46px)}
  .cx-cover h1{font-size:clamp(46px,13vw,68px)}
  .cx-frame{inset:calc(var(--head) + 10px) 10px calc(var(--foot) + 10px)}
  .cx-stamp{display:none}
  .cx-features,.cx-services-list{grid-template-columns:1fr}
  .cx-badge{width:92px;height:92px;right:-6px}
  .cx-badge b{font-size:28px}
  .cx-caps b{font-size:44px}
  .cx-masonry{columns:2;column-gap:8px}
  .cx-tile{margin-bottom:8px}
  .cx-menu-card{margin:16px}
  .cx-course p{font-size:18px}
  .cx-where{min-width:0}
  .cx-where b{font-size:17px}
  .cx-arrows button{width:44px;height:44px}
  .cx-card-actions .cx-btn{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .cx-a,.cx-tile{opacity:1;transform:none}.cx-line>span{transform:none}.cx-mask{clip-path:none}
}
@media (max-width:640px){
  .cx-cover::after{background:linear-gradient(180deg,rgba(8,11,46,.45),rgba(8,11,46,.15) 30%,rgba(8,11,46,.7) 60%,rgba(8,11,46,.95))}
  .cx-cover .cx-eyebrow{font-size:9.5px;letter-spacing:.24em}
  .cx-cover-copy{text-shadow:0 2px 24px rgba(0,0,0,.35)}
}
