
:root{
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
  --bg:#F3EEE6;--bg-2:#E8E0D3;--ink:#1A231E;--muted:#5F6A63;--rose:#A23A52;--brass:#9C7A3C;--night:#13201A;--night-2:#1C2D25;--night-ink:#F3EEE6;--line:rgba(26,35,30,.14);
  --sky-a:#2A4034;--sky-b:#6E8B72;--hill-1:#2E4639;--hill-2:#22362C;--hill-3:#18281F;--sun:#E7B65C;
  --display:"Gloock","Didot","Bodoni 72",Georgia,serif;--body:"Instrument Sans","Helvetica Neue",Arial,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0F1813;--bg-2:#16231C;--ink:#EEE7DB;--muted:#A5B0A8;--rose:#E08497;--brass:#CFA864;--night:#0A110D;--night-2:#13201A;--night-ink:#EEE7DB;--line:rgba(238,231,219,.13);color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0F1813;--bg-2:#16231C;--ink:#EEE7DB;--muted:#A5B0A8;--rose:#E08497;--brass:#CFA864;--night:#0A110D;--night-2:#13201A;--night-ink:#EEE7DB;--line:rgba(238,231,219,.13);color-scheme:dark}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
html.lenis,html.lenis body{height:auto}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.03rem/1.62 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--night)}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:70;opacity:.06;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
a{color:inherit} a:focus-visible,button:focus-visible{outline:2px solid var(--brass);outline-offset:4px}
.wrap{max-width:1320px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}
.d{font-family:var(--display);font-weight:400}

/* preloader (Cartier Watches & Wonders) */
.loader{position:fixed;inset:0;z-index:80;background:var(--night);color:var(--night-ink);display:grid;place-items:center}
.loader .inner{text-align:center}
.loader svg{width:120px;height:auto;color:var(--rose);display:block;margin:0 auto 26px}
.loader svg path{stroke-dasharray:600;stroke-dashoffset:600}
.loader .count{font:400 clamp(3rem,8vw,6rem)/1 var(--display);font-variant-numeric:tabular-nums}
.loader small{display:block;margin-top:10px;opacity:.6;font-size:.9rem}
.no-js .loader,.reduced .loader{display:none}

/* cursor (Rolls-Royce / agency) */
.cursor{position:fixed;left:0;top:0;width:14px;height:14px;border-radius:50%;background:var(--brass);pointer-events:none;z-index:75;transform:translate(-50%,-50%);transition:width .35s,height .35s,background .35s;display:grid;place-items:center;mix-blend-mode:normal}
.cursor span{font:600 .72rem/1 var(--body);color:var(--night);opacity:0;transition:opacity .2s}
.cursor.big{width:86px;height:86px;background:var(--rose)}
.cursor.big span{opacity:1;color:#fff}
@media (hover:none),(pointer:coarse){.cursor{display:none}}

/* header */
header{position:fixed;left:0;right:0;top:0;padding-top:env(safe-area-inset-top,0px);z-index:50;color:var(--night-ink);mix-blend-mode:difference}
.bar{display:flex;justify-content:space-between;align-items:center;height:78px}
.brand{font:400 1.45rem/1 var(--display);text-decoration:none;color:#fff}
.bar nav{display:flex;gap:30px;font-size:.92rem;color:#fff}
.bar nav a{text-decoration:none}
@media(max-width:820px){.bar nav{display:none}}
.book-fab{position:fixed;right:clamp(16px,3vw,32px);bottom:calc(env(safe-area-inset-bottom,0px) + clamp(16px,3vw,32px));z-index:55;background:var(--rose);color:#fff;text-decoration:none;font-weight:600;font-size:.95rem;width:108px;height:108px;border-radius:50%;display:grid;place-items:center;text-align:center;line-height:1.2;box-shadow:0 10px 30px rgba(0,0,0,.25)}
@media(max-width:600px){.book-fab{width:88px;height:88px;font-size:.85rem}}

/* hero: expanding arch window (Mercedes Sensual Purity scroll-to-full-bleed) */
.hero{position:relative;height:260vh;background:var(--night)}
.hero .stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.window{position:absolute;inset:0;clip-path:inset(0 0 0 0 round 0);will-change:clip-path}
.js .window{clip-path:inset(16% 34% 8% 34% round 48vw 48vw 0 0)}
@media(max-width:700px){.js .window{clip-path:inset(18% 16% 10% 16% round 48vw 48vw 0 0)}}
.scene{position:absolute;inset:0;background:linear-gradient(var(--sky-a),var(--sky-b))}
.scene svg{position:absolute;left:-5%;width:110%;bottom:0;height:auto}
.scene .sunwrap{position:absolute;left:50%;top:58%;width:22vmin;height:22vmin;margin-left:-11vmin;border-radius:50%;background:var(--sun);box-shadow:0 0 120px 40px rgba(231,182,92,.35)}
#petals{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero .title{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--night-ink);pointer-events:none;padding:0 20px}
.hero h1{font:400 clamp(3.4rem,12vw,12rem)/.86 var(--display);margin:0;letter-spacing:-.02em}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em}
.hero h1 .w>span{display:inline-block}
.hero .kicker{margin-top:28px;font-size:1.05rem;opacity:.85;max-width:40ch}
.hero .hint{position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 28px);left:0;right:0;text-align:center;color:var(--night-ink);font-size:.85rem;opacity:.7}
.hero .hint i{display:block;width:1px;height:46px;background:currentColor;margin:10px auto 0;transform-origin:top;animation:drop 2s infinite}
@keyframes drop{0%{transform:scaleY(0)}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.reveal-copy{position:absolute;left:clamp(20px,5vw,72px);bottom:calc(env(safe-area-inset-bottom,0px) + clamp(32px,8vh,80px));max-width:30ch;color:var(--night-ink);opacity:0}
.reveal-copy p{font:400 clamp(1.5rem,3vw,2.4rem)/1.15 var(--display);margin:0 0 16px}
.reveal-copy a{color:var(--night-ink)}
.no-js .reveal-copy{opacity:1}

/* statement word fill (Silver Pinewood quiet luxury) */
.statement{padding:clamp(100px,16vw,220px) 0;background:var(--bg)}
.statement p{font:400 clamp(2rem,5.4vw,4.8rem)/1.08 var(--display);margin:0;max-width:20ch}
.statement .wd{opacity:1}
.js .statement .wd{opacity:.14}
.statement .sub{display:flex;justify-content:space-between;gap:32px;margin-top:56px;flex-wrap:wrap;color:var(--muted);max-width:none}
.statement .sub span{max-width:40ch}

/* services hover reveal (Hotel Odisej colourful transitions) */
.services{padding-bottom:clamp(80px,12vw,160px)}
.sh{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px;gap:20px;flex-wrap:wrap}
.sh h2{font:400 clamp(2.4rem,5vw,4.6rem)/1 var(--display);margin:0}
.sh p{color:var(--muted);margin:0;max-width:36ch}
.slist{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.slist li{border-bottom:1px solid var(--line)}
.slist a{display:grid;grid-template-columns:1fr minmax(0,38ch);gap:24px;align-items:baseline;padding:clamp(18px,2.6vw,30px) 0;text-decoration:none;transition:padding .5s cubic-bezier(.2,.7,.1,1),color .3s}
.slist h3{font:400 clamp(1.9rem,4.6vw,4rem)/1 var(--display);margin:0}
.slist p{margin:0;color:var(--muted)}
.slist a:hover{padding-left:clamp(10px,3vw,40px);color:var(--rose)}
@media(max-width:760px){.slist a{grid-template-columns:1fr}}
.float{position:fixed;left:0;top:0;width:280px;height:340px;border-radius:160px 160px 14px 14px;pointer-events:none;z-index:45;overflow:hidden;opacity:0;transform:translate(-50%,-50%) scale(.6);transition:opacity .35s,transform .45s cubic-bezier(.2,.7,.1,1),background .45s;display:grid;place-items:center}
.float.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.float svg{width:46%;height:auto;color:#fff}
@media (hover:none),(pointer:coarse){.float{display:none}}

/* living map (ERA immersive real estate) */
.mapsec{background:var(--night);color:var(--night-ink);padding:clamp(90px,12vw,160px) 0;overflow:hidden}
.mapgrid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,6vw,90px);align-items:center}
.mapsec h2{font:400 clamp(2.4rem,5vw,4.4rem)/1 var(--display);margin:0 0 22px}
.mapsec p{opacity:.78;max-width:38ch}
.hours{margin-top:32px;border-top:1px solid rgba(238,231,219,.2)}
.hours div{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid rgba(238,231,219,.12)}
.live{display:inline-flex;align-items:center;gap:10px;font-weight:600;margin-top:24px}
.live i{width:10px;height:10px;border-radius:50%;background:#7FC2A2;box-shadow:0 0 0 0 rgba(127,194,162,.6);animation:ring 2.2s infinite}
@keyframes ring{70%{box-shadow:0 0 0 12px rgba(127,194,162,0)}100%{box-shadow:0 0 0 0 rgba(127,194,162,0)}}
.map{width:100%;height:auto}
.map .road{fill:none;stroke:rgba(238,231,219,.28);stroke-width:2}
.map .main{stroke:var(--brass);stroke-width:3}
.map .river{fill:none;stroke:#6FA7A0;stroke-width:5;stroke-linecap:round;opacity:.7}
.map text{fill:rgba(238,231,219,.7);font:500 13px var(--body)}
.map .pin circle.p{fill:var(--rose);transform-origin:center;transform-box:fill-box;animation:pp 2.4s infinite}
@keyframes pp{0%{r:8;opacity:.9}100%{r:42;opacity:0}}
@media(max-width:860px){.mapgrid{grid-template-columns:1fr}}

/* team drag slider (Gambit Resort) */
.team{padding:clamp(90px,12vw,160px) 0 clamp(70px,9vw,120px);overflow:hidden}
.drag{display:flex;gap:clamp(16px,2vw,28px);padding:0 clamp(20px,4vw,56px);cursor:grab;user-select:none;touch-action:pan-y;will-change:transform}
.drag.down{cursor:grabbing}
.doc{flex:0 0 clamp(260px,30vw,400px)}
.doc .ph{aspect-ratio:4/5;border-radius:999px 999px 18px 18px;background:var(--bg-2);display:grid;place-items:center;overflow:hidden;position:relative;margin-bottom:18px}
.doc .ph span{font:400 clamp(4rem,8vw,6.4rem)/1 var(--display);color:var(--rose);transition:transform .8s cubic-bezier(.2,.7,.1,1)}
.doc:hover .ph span{transform:scale(1.12)}
.doc h3{font:400 1.7rem/1.1 var(--display);margin:0 0 6px}
.doc p{margin:0;color:var(--muted);font-size:.95rem;max-width:36ch}
.dragnote{display:flex;justify-content:space-between;align-items:center;margin-top:32px;color:var(--muted);font-size:.9rem}
.dragnote .bar2{flex:1;height:1px;background:var(--line);margin:0 18px;position:relative}
.dragnote .bar2 i{position:absolute;left:0;top:-1px;height:3px;width:20%;background:var(--brass)}

/* marquee with scroll velocity skew */
.mq{padding:clamp(40px,6vw,70px) 0;border-block:1px solid var(--line);overflow:hidden;background:var(--bg-2)}
.mq .label{text-align:center;color:var(--muted);margin:0 0 22px;font-size:.95rem}
.mq .track{display:flex;width:max-content;gap:0;font:400 clamp(2.4rem,6vw,5.4rem)/1.05 var(--display);will-change:transform}
.mq .track span{padding:0 .5em;white-space:nowrap}
.mq .track span:nth-child(even){color:var(--rose)}

/* quote (Silena soulful hotel) */
.quote{padding:clamp(100px,14vw,200px) 0;text-align:center}
.quote blockquote{margin:0 auto;max-width:22ch;font:400 clamp(2rem,5vw,4.2rem)/1.08 var(--display)}
.quote .line{display:block;overflow:hidden}
.quote .line>span{display:inline-block}
.quote cite{display:block;margin-top:28px;font-style:normal;color:var(--muted)}

/* closing */
.close{background:var(--rose);color:#fff;padding:clamp(90px,12vw,170px) 0 40px;overflow:hidden}
.close h2{font:400 clamp(3.4rem,13vw,13rem)/.86 var(--display);margin:0;letter-spacing:-.02em}
.close .row{display:flex;justify-content:space-between;align-items:end;gap:32px;flex-wrap:wrap;margin-top:56px}
.mag{display:inline-grid;place-items:center;width:170px;height:170px;border-radius:50%;background:#fff;color:var(--rose);text-decoration:none;font-weight:600;text-align:center;line-height:1.25;transition:transform .2s}
.close address{font-style:normal;line-height:1.8}
.close footer{margin-top:80px;padding-top:24px;border-top:1px solid rgba(255,255,255,.3);font-size:.88rem;opacity:.85;display:grid;gap:6px}

@media (prefers-reduced-motion:reduce){.hero{height:auto}.hero .stage{position:relative}.window{clip-path:none!important}.reveal-copy{opacity:1}.statement .wd{opacity:1!important}.live i,.map .pin circle.p,.hero .hint i{animation:none}}
.logo{height:clamp(30px,3.4vw,40px);width:auto;display:block}
.l-light{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .l-dark{display:none}:root:not([data-theme="light"]) .l-light{display:block}}
:root[data-theme="dark"] .l-dark{display:none}:root[data-theme="dark"] .l-light{display:block}
header{mix-blend-mode:normal!important;transition:background .4s}

header:not(.solid) .l-dark{display:none!important}header:not(.solid) .l-light{display:block!important}
header.solid{background:var(--bg)}
.loader .lg{height:clamp(34px,5vw,52px);width:auto;display:block;margin:18px auto 0}
.doc .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;transition:transform 1s cubic-bezier(.2,.7,.1,1);-webkit-user-drag:none;pointer-events:none}
.doc:hover .ph img{transform:scale(1.06)}
.doc .cr,.prof .cr{color:var(--brass);font-size:.86rem;font-weight:500;margin:0 0 8px!important}
.doc .more{margin-top:14px;background:none;border:0;border-bottom:1px solid currentColor;padding:0 0 2px;font:500 .95rem var(--body);color:var(--ink);cursor:pointer}
.prof{border:0;padding:0;max-width:min(1040px,94vw);width:100%;max-height:90vh;background:var(--bg);color:var(--ink);border-radius:22px;overflow:auto}
.prof::backdrop{background:rgba(10,17,13,.72);backdrop-filter:blur(6px)}
.prof[open]{animation:pin .55s cubic-bezier(.2,.7,.1,1)}
@keyframes pin{from{opacity:0;transform:translateY(40px) scale(.97)}}
.pgrid{display:grid;grid-template-columns:.85fr 1.15fr}
.pimg{position:relative;min-height:420px;background:var(--bg-2);display:grid;place-items:center}
.pimg span{font:400 6rem/1 var(--display);color:var(--rose)}
.pimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.pbody{padding:clamp(28px,4vw,52px);position:relative}
.pbody h2{font:400 clamp(2rem,4vw,3.2rem)/1 var(--display);margin:0 0 8px}
.pbody p{max-width:60ch}
.pbody dl{margin:24px 0;border-top:1px solid var(--line)}
.pbody dl div{padding:14px 0;border-bottom:1px solid var(--line)}
.pbody dt{font-weight:600;margin-bottom:4px}.pbody dd{margin:0;color:var(--muted)}
.pbook{display:inline-block;background:var(--rose);color:#fff;text-decoration:none;font-weight:600;padding:14px 24px;border-radius:999px}
.x{position:absolute;top:18px;right:18px;background:none;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font:500 .88rem var(--body);color:var(--ink);cursor:pointer}
@media(max-width:760px){.pgrid{grid-template-columns:1fr}.pimg{min-height:340px}.x{background:var(--bg)}}
@media (prefers-reduced-motion:reduce){.prof[open]{animation:none}}

:root{--teal:#178F78;--teal-ink:#FFFFFF;--gold:#F2C230}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--teal:#23BB9D;--teal-ink:#0A110D}}
:root[data-theme="dark"]{--teal:#23BB9D;--teal-ink:#0A110D}
.bbtext{display:inline-block;font:600 .8rem/1.2 var(--body);padding:6px 10px;border:1.5px solid currentColor;border-radius:8px}
/* announcement */
.ann{display:flex;align-items:center;justify-content:center;gap:14px;background:var(--teal);color:#fff;text-decoration:none;padding:8px 16px;font-size:.9rem;line-height:1.3}
.annlogo{height:30px;width:auto;background:#fff;border-radius:6px;padding:3px}
.annbook{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
@media(max-width:700px){.ann{font-size:.8rem;gap:10px}.annbook{display:none}.annlogo{height:26px}}
/* seal */
.seal{position:absolute;right:clamp(16px,4vw,56px);top:calc(env(safe-area-inset-top,0px) + 150px);width:clamp(132px,15vw,190px);aspect-ratio:1;z-index:5;display:block;color:var(--night-ink);text-decoration:none}
.seal svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 18s linear infinite}
.seal text{font:600 12.5px var(--body);letter-spacing:.08em;fill:currentColor}
.sealin{position:absolute;inset:24%;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.25);overflow:hidden;color:#13201A}
.seallogo{width:78%;height:auto}
.sealin .bbtext{font-size:.62rem;text-align:center;border:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.seal{top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 90px);right:16px}}
.hero .kicker b{color:var(--gold);font-weight:600}
/* bulk billing section */
.bb{background:var(--teal);color:var(--teal-ink);padding:clamp(80px,11vw,150px) 0 0;overflow:hidden}
.bbhead{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,48px)}
.bblogo{height:clamp(64px,8vw,96px);width:auto;background:#fff;border-radius:12px;padding:8px}
.bbhead p{margin:0;font-weight:600;font-size:1.05rem}
.bbbig{font:400 clamp(4rem,15vw,15rem)/.82 var(--display);margin:0 0 clamp(36px,5vw,64px);letter-spacing:-.03em}
.bbbig .zero{display:inline-block;color:var(--gold);font-variant-numeric:tabular-nums}
.bbgrid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(32px,6vw,90px);align-items:start}
.bblede{font:400 clamp(1.3rem,2.2vw,1.75rem)/1.35 var(--display);margin:0;max-width:30ch}
.steps{list-style:none;margin:0;padding:0;counter-reset:st;border-top:1px solid currentColor}
.steps li{counter-increment:st;display:grid;grid-template-columns:56px 1fr;gap:6px 16px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.3)}
.steps li::before{content:counter(st);grid-row:span 2;width:44px;height:44px;border-radius:50%;background:var(--gold);color:#13201A;display:grid;place-items:center;font:400 1.4rem/1 var(--display)}
.steps b{font:400 1.45rem/1.15 var(--display)}
.steps span{opacity:.88}
.bbcta{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:clamp(36px,5vw,56px)}
.bbbtn{background:var(--gold);color:#13201A;text-decoration:none;font-weight:600;padding:16px 28px;border-radius:999px;font-size:1.02rem}
.fine{margin:0;max-width:52ch;font-size:.92rem;opacity:.85}
.bbmq{margin-top:clamp(70px,9vw,120px);padding:clamp(18px,2.4vw,28px) 0;border-top:1px solid rgba(255,255,255,.3);overflow:hidden}
.bbtrack{display:flex;width:max-content;font:400 clamp(2.6rem,7vw,6.4rem)/1 var(--display);will-change:transform}
.bbtrack span{padding:0 .45em;white-space:nowrap}
.bbtrack span:nth-child(even){color:transparent;-webkit-text-stroke:1.5px currentColor}
@media(max-width:820px){.bbgrid{grid-template-columns:1fr}}
/* GP tag + footer logo */
.bbtag{position:absolute;top:18%;left:50%;transform:translateX(-50%);z-index:2;background:var(--teal);color:#fff;font:600 .78rem/1 var(--body);font-style:normal;padding:8px 12px;border-radius:999px;white-space:nowrap}
.footlogo{height:56px;width:auto;background:#fff;border-radius:8px;padding:5px;margin-bottom:8px}
@media (prefers-reduced-motion:reduce){.seal svg{animation:none}}

/* sitemap header */
.bar{gap:20px}
header .bar nav.mainnav{display:block;color:inherit}
.mainnav ul{display:flex;gap:clamp(14px,1.6vw,26px);list-style:none;margin:0;padding:0;font-size:.92rem}
.mainnav a,.megabtn{color:inherit;text-decoration:none;background:none;border:0;font:inherit;cursor:pointer;padding:6px 0;display:inline-flex;align-items:center;gap:6px}
.mainnav a[aria-current]{border-bottom:1px solid currentColor}
.megabtn svg{width:11px;height:8px;transition:transform .3s}
.megabtn[aria-expanded="true"] svg{transform:rotate(180deg)}
header{color:var(--night-ink)}
header.solid,header.menu-open{background:var(--bg);color:var(--ink)}
header.menu-open .l-dark{display:block!important}header.menu-open .l-light{display:none!important}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) header.menu-open .l-dark{display:none!important}:root:not([data-theme="light"]) header.menu-open .l-light{display:block!important}}
.hact{display:flex;align-items:center;gap:16px}
.tel{color:inherit;text-decoration:none;font-weight:600;font-size:.92rem;white-space:nowrap}
.hbook{background:var(--rose);color:#fff;text-decoration:none;font-weight:600;padding:11px 18px;border-radius:999px;font-size:.9rem;white-space:nowrap}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:1px solid currentColor;background:none;color:inherit;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.burger span:not(.sr){display:block;width:16px;height:1.5px;background:currentColor;transition:transform .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(3.25px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.25px) rotate(-45deg)}
@media(max-width:1180px){header .bar nav.mainnav{display:none}.burger{display:inline-flex}.tel{display:none}}
@media(max-width:520px){.hact .hbook{display:none}}
.mega{position:absolute;left:0;right:0;top:100%;background:var(--bg);color:var(--ink);border-top:1px solid var(--line);box-shadow:0 30px 60px rgba(0,0,0,.18);max-height:calc(100vh - 140px);overflow:auto;animation:mdrop .4s cubic-bezier(.2,.7,.1,1)}
@keyframes mdrop{from{opacity:0;transform:translateY(-12px)}}
.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;padding:36px 0 24px}
.mcol h3{font:400 1.35rem/1.1 var(--display);margin:0 0 14px;color:var(--rose)}
.mcol ul{list-style:none;margin:0;padding:0}
.mcol li a{display:block;padding:6px 0;text-decoration:none;color:var(--ink);font-size:.95rem;transition:color .2s,transform .3s}
.mcol li a:hover{color:var(--rose);transform:translateX(4px)}
.mfoot{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:20px 0 28px;border-top:1px solid var(--line)}
.mfoot p{flex:1;min-width:240px;margin:0;color:var(--muted);font-size:.92rem}
.mlogo{height:48px;width:auto;background:#fff;border-radius:8px;padding:4px}
.mall{color:var(--ink);font-weight:600;border:1px solid var(--ink);padding:10px 18px;border-radius:999px;text-decoration:none;font-size:.9rem;display:inline-block}
.mnav{position:absolute;left:0;right:0;top:100%;height:calc(100vh - 100%);height:calc(100svh - 100%);background:var(--bg);color:var(--ink);overflow:auto;padding:12px clamp(20px,4vw,56px) calc(env(safe-area-inset-bottom,0px) + 32px)}
.mnav>ul{list-style:none;margin:0 0 24px;padding:0}
.mnav>ul>li{border-bottom:1px solid var(--line)}
.mnav>ul>li>a,.mnav summary{display:block;padding:16px 0;font:400 1.8rem/1.1 var(--display);text-decoration:none;color:var(--ink);cursor:pointer;list-style:none}
.mnav summary::-webkit-details-marker{display:none}
.mnav .mcat{margin:12px 0 4px;color:var(--rose);font-weight:600;font-size:.9rem}
.mnav details ul{list-style:none;margin:0;padding:0 0 6px}
.mnav details li a{display:block;padding:7px 0;color:var(--muted);text-decoration:none}
.mnav details .mall{margin:12px 0 18px}
.mnav .big{display:block;text-align:center;padding:16px;margin-top:12px;border-radius:999px}
.mnav .tel.big{display:block;border:1px solid var(--ink)}
/* sitemap footer */
.sitefoot{margin-top:80px;padding-top:40px;border-top:1px solid rgba(255,255,255,.3)}
.fgrid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px}
.fcol h4{font:400 1.25rem/1.2 var(--display);margin:0 0 12px}
.fcol ul{list-style:none;margin:0;padding:0}
.fcol li{padding:3px 0}
.fcol a{text-decoration:none}.fcol a:hover{text-decoration:underline}
.fcol p{margin:0 0 12px;line-height:1.6}
.fbook{display:inline-block;background:#fff;color:var(--rose)!important;font-weight:600;padding:12px 20px;border-radius:999px;margin-top:6px}
.flegal{display:grid;gap:8px;margin-top:40px;padding-top:24px;border-top:1px solid rgba(255,255,255,.3);font-size:.86rem;opacity:.88}
.flinks{display:flex;gap:20px;flex-wrap:wrap}
@media(max-width:900px){.fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.fgrid{grid-template-columns:1fr}}

.doc .cardbtns{display:flex;align-items:center;gap:18px;margin-top:16px}
.doc .cbook{background:var(--rose);color:#fff;text-decoration:none;font-weight:600;font-size:.9rem;padding:10px 16px;border-radius:999px}
.doc .more{margin-top:0}
.close .row{align-items:center}
.close .row p{max-width:36ch;margin:0;font-size:1.1rem}
.menu-on .book-fab{display:none}

.sx{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,80px);border-top:1px solid var(--ink);padding-top:12px}
.stabs{display:flex;flex-direction:column}
.stab{all:unset;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:clamp(16px,2.2vw,26px) 0;border-bottom:1px solid var(--line);position:relative;transition:padding .5s cubic-bezier(.2,.7,.1,1)}
.stab .sn{font:400 clamp(1.8rem,3.6vw,3.2rem)/1 var(--display);transition:color .3s}
.stab .sc{color:var(--muted);font-size:.9rem;white-space:nowrap}
.stab::before{content:"";position:absolute;left:0;top:50%;width:0;height:2px;background:var(--c);transition:width .5s cubic-bezier(.2,.7,.1,1)}
.stab[aria-selected="true"]{padding-left:clamp(28px,3vw,48px)}
.stab[aria-selected="true"] .sn{color:var(--c)}
.stab[aria-selected="true"]::before{width:clamp(18px,2vw,32px)}
.stab:focus-visible{outline:2px solid var(--brass);outline-offset:4px}
.spanels{position:relative}
.span{background:var(--bg-2);border-radius:28px 28px 28px 28px;padding:clamp(24px,3vw,40px);border-top:6px solid var(--c)}
.span[data-hidden]{display:none}
.pcat{font:400 clamp(1.6rem,2.6vw,2.2rem)/1.1 var(--display);margin:0 0 6px;color:var(--c)}
.pint{color:var(--muted);margin:0 0 18px}
.span ul{list-style:none;margin:0;padding:0;columns:2;column-gap:28px}
.span li{break-inside:avoid}
.span li a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);transition:color .25s,padding .35s}
.span li a svg{width:14px;height:14px;flex:none;opacity:.35;transition:opacity .25s,transform .35s}
.span li a:hover{color:var(--c);padding-left:6px}
.span li a:hover svg{opacity:1;transform:translateX(3px)}
.span.anim li{animation:sin .55s cubic-bezier(.2,.7,.1,1) both}
@keyframes sin{from{opacity:0;transform:translateY(12px)}}
.sfoot{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:32px}
.sfoot p{flex:1;min-width:240px;margin:0;color:var(--muted);font-size:.92rem}
@media(max-width:900px){.sx{grid-template-columns:1fr}.stabs{flex-direction:row;overflow-x:auto;gap:8px;padding-bottom:6px;scroll-snap-type:x mandatory}.stab{flex:none;border:1px solid var(--line);border-radius:999px;padding:10px 16px!important;scroll-snap-align:start}.stab .sn{font-size:1.1rem}.stab .sc,.stab::before{display:none}.stab[aria-selected="true"]{background:var(--c);border-color:var(--c)}.stab[aria-selected="true"] .sn{color:#fff}}
@media(max-width:520px){.span ul{columns:1}}
@media (prefers-reduced-motion:reduce){.span.anim li{animation:none}}
.hasmega{display:flex;align-items:center;gap:2px}.meganav{color:inherit;text-decoration:none}.hasmega .megabtn{padding-left:4px!important;padding-right:4px!important}