/* ULC Signature, "The Halo". One stylesheet for the whole site.
   Sections: tokens, base, type, buttons, header, page top, homepage, legacy content classes,
   article prose, booking widget, staff screens, footer, motion. */

/* ---------- fonts (self-hosted, latin) ---------- */
@font-face{font-family:"Cormorant";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/cormorant-500-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/cormorant-400-italic.woff2) format("woff2")}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/instrument-sans-400-600-normal.woff2) format("woff2")}

/* ---------- tokens ---------- */
:root{
  --night:#1A1220; --night-2:#24182B; --plum:#5A2D5E; --plum-deep:#47224A;
  --pearl:#F3F0F2; --white:#FFFFFF; --rose:#EADADD;
  --ink:#22172A; --ink-soft:#5F5266; --muted-night:#BFB3C4;
  --gold-1:#B9852A; --gold-2:#F2D04A; --gold-line:#E6BE45; --gold-text:#8A5A12;
  --line:rgba(34,23,42,.14); --line-night:rgba(243,240,242,.16);
  --display:"Cormorant","Cormorant Garamond",Georgia,serif;
  --sans:"Instrument Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --gutter:clamp(18px,4.5vw,64px); --max:1280px; --measure:70ch;
  --e-out:cubic-bezier(.16,1,.3,1); --e-io:cubic-bezier(.65,0,.35,1);
  --head-h:84px;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--head-h) + 16px)}
body{margin:0;background:var(--pearl);color:var(--ink);font:400 1.0625rem/1.65 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit}
p{margin:0 0 1em}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold-1);outline-offset:3px}
.night :focus-visible{outline-color:var(--gold-2)}
.skip{position:absolute;left:-999px;top:8px;background:var(--night);color:var(--pearl);padding:10px 14px;z-index:300}
.skip:focus{left:8px}
.screen-reader-text,.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.night{background:var(--night);color:var(--pearl)}

/* ---------- type ---------- */
.d1{font:500 clamp(2.9rem,6.6vw,6.2rem)/.98 var(--display);letter-spacing:-.02em;text-wrap:balance;margin:0}
.d2{font:500 clamp(2.3rem,4.6vw,4.2rem)/1.02 var(--display);letter-spacing:-.015em;text-wrap:balance;margin:0}
.d3{font:500 clamp(1.7rem,2.7vw,2.4rem)/1.08 var(--display);letter-spacing:-.01em;margin:0}
.lede{font-size:clamp(1.08rem,1.3vw,1.2rem);line-height:1.6}
.label{font:500 .95rem/1.4 var(--sans);color:var(--ink-soft);margin:0 0 14px;display:flex;align-items:center;gap:12px}
.label::before{content:"";flex:none;width:28px;height:1px;background:linear-gradient(90deg,var(--gold-1),var(--gold-2))}
.night .label{color:var(--muted-night)}

/* ---------- buttons ---------- */
.btn,.ulc-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border-radius:2px;font:600 1rem/1.1 var(--sans);text-align:center;text-decoration:none;cursor:pointer;border:0;transition:background-color .25s var(--e-out),color .25s var(--e-out),box-shadow .25s var(--e-out)}
.btn-gold,.ulc-btn-gold{background:linear-gradient(120deg,var(--gold-1),var(--gold-2) 70%);color:var(--night)!important}
.btn-gold:hover,.ulc-btn-gold:hover{box-shadow:0 0 0 1px var(--gold-2),0 10px 30px -10px rgba(242,208,74,.65)}
.btn-plum,.ulc-btn-dark{background:var(--plum);color:#fff!important}
.btn-plum:hover,.ulc-btn-dark:hover{background:var(--plum-deep)}
.btn-ghost,.ulc-btn-ghost{color:currentColor;box-shadow:inset 0 0 0 1px currentColor;background:transparent}
.btn-ghost:hover,.ulc-btn-ghost:hover{background:var(--pearl);color:var(--night)!important;box-shadow:inset 0 0 0 1px var(--pearl)}
.btn-ghost:hover span{color:var(--night)}
.on-light.btn-ghost:hover{background:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.on-light.btn-ghost:hover span{color:var(--pearl)}
.actions,.ulc-cta-row{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- header ---------- */
.site-head{position:fixed;inset:0 0 auto;z-index:100;color:var(--pearl);transition:background-color .35s var(--e-out),color .35s var(--e-out),box-shadow .35s var(--e-out)}
.admin-bar .site-head{top:32px}
@media (max-width:782px){.admin-bar .site-head{top:46px}}
.site-head.is-scrolled{background:rgba(26,18,32,.84);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line-night)}
.site-head.is-solid{background:rgba(243,240,242,.95);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:var(--head-h)}
.brand{display:block;flex:none}
.brand-img{width:clamp(138px,13vw,172px);height:auto}
.brand-text{font:500 1.6rem/1 var(--display)}
.nav{display:flex;align-items:center;gap:28px}
.nav .menu{display:flex;align-items:center;gap:26px;list-style:none;margin:0;padding:0;font-weight:500;font-size:.98rem}
.nav .menu > li{position:relative}
.nav .menu > li > a{display:block;padding:14px 0;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 calc(100% - 8px)/0 1px no-repeat;transition:background-size .3s var(--e-out)}
.nav .menu > li > a:hover,.nav .menu > li.current-menu-item > a,.nav .menu > li.current-menu-ancestor > a{background-size:100% 1px}
.nav .menu > li:first-child{display:none}
.nav .menu > li.is-cta > a{background:linear-gradient(120deg,var(--gold-1),var(--gold-2) 70%);color:var(--night);padding:0 22px;min-height:46px;display:flex;align-items:center;border-radius:2px;white-space:nowrap}
.nav .menu > li.is-cta > a:hover{box-shadow:0 10px 30px -10px rgba(242,208,74,.65)}
.head-phone{font-weight:600;text-decoration:none;white-space:nowrap;order:-1}
@media (max-width:1320px){.head-phone{display:none}}
.nav .menu-item-has-children > a::after{content:"";display:inline-block;width:6px;height:6px;margin:0 0 3px 8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
.nav .sub-menu{list-style:none;margin:0;padding:0}
.nav .menu > li > .sub-menu{position:absolute;left:50%;top:100%;transform:translate(-50%,8px);background:var(--night);color:var(--pearl);padding:28px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6);border-top:1px solid var(--gold-1);opacity:0;visibility:hidden;transition:opacity .25s var(--e-out),transform .25s var(--e-out),visibility 0s .25s;min-width:240px}
.nav .menu > li:hover > .sub-menu,.nav .menu > li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}
.nav .menu > li > .sub-menu:has(.sub-menu){display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:24px 28px;width:min(1040px,92vw)}
.nav .sub-menu a{display:block;padding:6px 0;text-decoration:none;color:var(--muted-night);font-size:.95rem;line-height:1.35}
.nav .sub-menu a:hover{color:var(--pearl)}
.nav .sub-menu > li.menu-item-has-children > a{font:500 1.35rem/1.15 var(--display);color:var(--pearl);margin-bottom:8px;padding-bottom:10px;border-bottom:1px solid var(--line-night)}
.nav .sub-menu > li.menu-item-has-children > a::after{display:none}
.drawer{display:none}
@media (max-width:1060px){
  .nav{display:none}
  .drawer{display:block}
  .drawer summary{list-style:none;min-height:48px;display:flex;align-items:center;gap:10px;font-weight:600;cursor:pointer}
  .drawer summary::-webkit-details-marker{display:none}
  .drawer summary i{position:relative;display:block;width:22px;height:1.5px;background:currentColor;box-shadow:0 6px 0 currentColor;transition:transform .3s var(--e-out),box-shadow .3s var(--e-out)}
  .drawer summary i::after{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transition:transform .3s var(--e-out),opacity .2s}
  .drawer[open] summary i{transform:translateY(3px) rotate(45deg);box-shadow:none}
  .drawer[open] summary i::after{opacity:1;transform:rotate(-90deg)}
  .sheet{position:fixed;left:0;right:0;top:var(--head-h);bottom:0;overflow-y:auto;background:var(--night);color:var(--pearl);padding:12px var(--gutter) 40px;border-top:1px solid var(--line-night)}
  .admin-bar .sheet{top:calc(var(--head-h) + 46px)}
  .drawer-menu,.drawer-menu ul{list-style:none;margin:0;padding:0}
  .drawer-menu > li > a{display:block;padding:14px 0;border-bottom:1px solid var(--line-night);text-decoration:none;font:500 1.75rem/1.1 var(--display)}
  .drawer-menu .sub-menu{padding:6px 0 10px 14px;border-left:1px solid var(--gold-1);margin:8px 0 6px}
  .drawer-menu .sub-menu a{display:flex;align-items:center;min-height:44px;text-decoration:none;color:var(--muted-night)}
  .drawer-menu .sub-menu > li.menu-item-has-children > a{color:var(--pearl);font-weight:600}
  .drawer-menu li.is-cta > a{margin-top:22px;border:0;display:flex;justify-content:center;align-items:center;min-height:54px;background:linear-gradient(120deg,var(--gold-1),var(--gold-2) 70%);color:var(--night);font:600 1rem/1 var(--sans)}
  .drawer-call a{display:block;margin-top:20px;font-weight:600;color:var(--pearl)}
}
body.drawer-open{overflow:hidden}

/* ---------- page top band (pages without their own hero) ---------- */
.page-top{position:relative;padding:calc(var(--head-h) + clamp(48px,7vw,96px)) 0 clamp(48px,6vw,80px);overflow:hidden}
.page-top::before,.ulc-hero::before{content:"";position:absolute;left:58%;top:30%;width:min(900px,120vw);aspect-ratio:2.4/1;border:1px solid rgba(230,190,69,.28);border-radius:50%;transform:rotate(-12deg);pointer-events:none}
.page-top::after,.ulc-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(55% 80% at 85% 20%,rgba(90,45,94,.5),transparent 70%);pointer-events:none}
.page-top .wrap{position:relative;z-index:1}
.page-title{font:500 clamp(2.5rem,5.4vw,4.8rem)/1 var(--display);letter-spacing:-.018em;margin:14px 0 0;max-width:18ch;text-wrap:balance}
.page-top.is-compact{padding-bottom:40px}
.page-top.is-compact .page-title{font-size:clamp(2rem,4vw,3rem)}
.page-meta{margin:16px 0 0;color:var(--muted-night)}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--muted-night);font-size:.92rem}
.crumbs a{text-decoration:none;color:var(--muted-night)}
.crumbs a:hover{color:var(--pearl);text-decoration:underline;text-underline-offset:4px}
.crumbs i{font-style:normal;opacity:.5}
.crumbs span{color:var(--pearl)}

/* ---------- homepage (signature) ---------- */
.hero{position:relative;min-height:100svh;padding:calc(var(--head-h) + 36px) 0 72px;overflow:hidden;display:flex;align-items:center}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 78% 45%,rgba(90,45,94,.55),transparent 70%),radial-gradient(40% 50% at 10% 100%,rgba(185,133,42,.12),transparent 70%);pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,4vw,64px);align-items:center;width:100%}
.hero-copy{position:relative;z-index:2}
.kicker{margin:0 0 26px;color:var(--muted-night);font-weight:500}
.hero .d1{margin-bottom:28px;max-width:13ch}
.hero .lede{color:var(--muted-night);max-width:50ch;margin:0 0 36px}
.hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;margin-top:30px;color:var(--muted-night)}
.hero-meta a{color:var(--pearl);font-weight:600;text-underline-offset:5px;text-decoration-color:var(--gold-1)}
.status{display:inline-flex;align-items:center;gap:10px;margin:0}
.status i{flex:none;width:8px;height:8px;border-radius:50%;background:#7FD69A;box-shadow:0 0 0 4px rgba(127,214,154,.18)}
.status.is-closed i{background:var(--muted-night);box-shadow:none}
.halo{position:relative;aspect-ratio:6/8;max-height:min(78svh,760px);margin-left:auto;width:100%}
.halo .halo-photo{position:absolute;left:24%;right:24%;top:13%;bottom:12%;border-radius:200px 200px 4px 4px;overflow:hidden;background:var(--night-2)}
.halo-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.grade{position:relative}
.halo .halo-photo.grade{position:absolute}
.grade::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(90,45,94,.35),rgba(26,18,32,.15) 50%,rgba(185,133,42,.22));mix-blend-mode:soft-light;pointer-events:none}
.grade img{filter:saturate(.82) contrast(1.04)}
.halo svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.halo .halo-front{z-index:2}
.halo .ring{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:1500;stroke-dashoffset:0;animation:ulc-draw 1.6s .35s var(--e-io) backwards}
.halo .ring-soft{fill:none;stroke:rgba(242,208,74,.18);stroke-width:14;stroke-linecap:round;filter:blur(6px);stroke-dasharray:1500;stroke-dashoffset:0;animation:ulc-draw 1.6s .35s var(--e-io) backwards}
.halo .burst{transform-box:fill-box;transform-origin:center;animation:ulc-burst .7s 1.85s var(--e-out) backwards}
@keyframes ulc-draw{from{stroke-dashoffset:1500}to{stroke-dashoffset:0}}
@keyframes ulc-burst{0%{opacity:0;transform:scale(.2) rotate(-30deg)}60%{opacity:1}100%{opacity:1;transform:scale(1) rotate(0)}}
@media (max-width:860px){
  .hero{min-height:auto;padding-top:calc(var(--head-h) + 20px)}
  .hero-grid{grid-template-columns:1fr}
  .halo{order:-1;max-height:none;width:min(72%,300px);margin:0 auto -16px}
  .hero .d1{max-width:none}
}
.ribbon{border-top:1px solid var(--line-night)}
.ribbon ul{list-style:none;margin:0;padding:22px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ribbon li{display:flex;align-items:baseline;gap:12px;color:var(--muted-night)}
.ribbon strong{font:500 2rem/1 var(--display);color:var(--pearl)}
@media (max-width:760px){.ribbon ul{grid-template-columns:1fr 1fr}}
.sec{padding:clamp(80px,11vw,152px) 0;position:relative}
.sec-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(20px,5vw,80px);align-items:end;margin-bottom:clamp(40px,6vw,72px)}
.sec-head p{margin:0;color:var(--ink-soft);max-width:56ch}
.night .sec-head p{color:var(--muted-night)}
@media (max-width:860px){.sec-head{grid-template-columns:1fr}}
.rose{background:var(--rose)}
.finder > *{min-width:0}
.finder{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);align-items:start}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 32px;padding:0}
.tab{min-height:44px;padding:0 18px;border-radius:2px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;font-weight:500;transition:background-color .2s var(--e-out),color .2s var(--e-out),border-color .2s var(--e-out)}
.tab:hover{border-color:var(--ink)}
.tab[aria-selected="true"]{background:var(--night);color:var(--pearl);border-color:var(--night)}
.panel[hidden]{display:none}
.panel{animation:ulc-panel .5s var(--e-out)}
@keyframes ulc-panel{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.tx{display:grid;grid-template-columns:1fr auto;gap:10px 24px;padding:28px 0;border-top:1px solid var(--line)}
.tx:last-child{border-bottom:1px solid var(--line)}
.tx h3{grid-column:1/-1}
.tx h3 a{text-decoration:none;background:linear-gradient(var(--gold-1),var(--gold-1)) 0 100%/0 1px no-repeat;transition:background-size .35s var(--e-out)}
.tx h3 a:hover,.tx h3 a:focus-visible{background-size:100% 1px}
.tx p{margin:0;color:var(--ink-soft);max-width:58ch;grid-column:1/-1}
.tx .price{grid-column:1;font-weight:600;color:var(--ink)}
.tx .go{grid-column:2;grid-row:3;justify-self:end;font-weight:600;color:var(--plum);text-decoration:none;white-space:nowrap}
.tx .go:hover{text-decoration:underline;text-underline-offset:5px}
.finder-visual{position:sticky;top:110px}
.fv{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:200px 200px 2px 2px;background:var(--rose)}
.fv img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity .6s var(--e-out),transform 1.2s var(--e-out)}
.fv img.is-on{opacity:1;transform:none}
@media (max-width:860px){
  .finder{grid-template-columns:minmax(0,1fr)}.finder-visual{display:none}
  .tabs{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(var(--gutter) * -1) 28px;padding:0 var(--gutter) 4px;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - 40px),transparent)}
  .tabs::-webkit-scrollbar{display:none}
  .tab{flex:none;scroll-snap-align:start}
}
.steps-wrap{position:relative;--g:clamp(20px,3vw,44px)}
.steps{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--g)}
.steps-line{position:absolute;left:28px;right:calc((100% - 3 * var(--g)) / 4 - 28px);top:27px;height:1px;background:var(--line)}
.steps-line span{position:absolute;inset:0;background:linear-gradient(90deg,var(--gold-1),var(--gold-2));transform-origin:left;transform:scaleX(1)}
@supports (animation-timeline:view()){.steps-line span{transform:scaleX(0);animation:ulc-fill linear both;animation-timeline:view();animation-range:entry 40% cover 55%}}
@keyframes ulc-fill{to{transform:scaleX(1)}}
.steps li{position:relative}
.steps .n{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--pearl);border:1px solid var(--gold-1);font:500 1.6rem/1 var(--display);color:var(--gold-text);margin-bottom:24px;position:relative}
.rose .steps .n{background:var(--rose)}
.steps h3{font:600 1.15rem/1.3 var(--sans);margin:0 0 10px}
.steps p{margin:0;color:var(--ink-soft)}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr;row-gap:44px}.steps-line{display:none}}
@media (max-width:540px){.steps{grid-template-columns:1fr}}
.why{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,6vw,96px);align-items:center}
.why-img{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:2px}
.why-img img{width:100%;height:100%;object-fit:cover}
.why .d2{margin-bottom:22px}
.why p{color:var(--ink-soft);max-width:58ch}
.reasons{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.reasons li{padding:16px 0 16px 30px;border-top:1px solid var(--line);position:relative}
.reasons li::before{content:"";position:absolute;left:0;top:25px;width:16px;height:1px;background:var(--gold-1)}
@media (max-width:860px){.why{grid-template-columns:1fr}.why-img{aspect-ratio:3/2}.reasons{grid-template-columns:1fr}}
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px)}
.reviews figure{margin:0;padding-top:28px;border-top:1px solid var(--line-night);display:flex;flex-direction:column}
.stars{display:flex;gap:4px;margin-bottom:20px}
.stars svg{width:15px;height:15px;fill:var(--gold-2)}
.reviews blockquote{margin:0 0 24px;font:400 clamp(1.35rem,1.9vw,1.6rem)/1.32 var(--display);flex:1}
.reviews figcaption{color:var(--muted-night);font-size:.95rem}
.reviews figcaption strong{display:block;color:var(--pearl);font-weight:600}
@media (max-width:860px){.reviews{grid-template-columns:1fr}}
.book{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,6vw,96px);align-items:start}
.book-form{background:var(--white);padding:clamp(24px,3.5vw,44px);box-shadow:0 30px 60px -40px rgba(26,18,32,.45);border-top:2px solid var(--gold-1)}
.book-form fieldset{border:0;margin:0 0 28px;padding:0}
.book-form legend{font:600 1rem/1.3 var(--sans);margin-bottom:14px;padding:0}
.book-form legend b{color:var(--gold-text);font-weight:600;margin-right:8px}
.book-form select{width:100%;min-height:52px;padding:0 16px;border:1px solid var(--line);border-radius:2px;background:var(--pearl);color:var(--ink);font-weight:500}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.days label{position:relative;cursor:pointer}
.days input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.days span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:64px;border:1px solid var(--line);border-radius:2px;font-size:.85rem;color:var(--ink-soft);transition:background-color .2s var(--e-out),color .2s var(--e-out),border-color .2s var(--e-out)}
.days span b{font:500 1.35rem/1.1 var(--display);color:var(--ink)}
.days input:checked + span{background:var(--night);border-color:var(--night);color:var(--muted-night)}
.days input:checked + span b{color:var(--gold-2)}
.days input:focus-visible + span{outline:2px solid var(--gold-1);outline-offset:2px}
.book-note{margin:16px 0 0;font-size:.92rem;color:var(--ink-soft)}
.book-intro{color:var(--ink-soft);max-width:48ch;margin:20px 0 0}
.visit .d2{margin-bottom:22px}
.visit-intro{color:var(--ink-soft);max-width:54ch;margin:0 0 28px}
.book-form .btn{width:100%}
@media (max-width:860px){.book{grid-template-columns:1fr}}
@media (max-width:420px){.days{grid-template-columns:repeat(4,1fr)}}
.faq{max-width:980px;margin-left:auto}
.faq details,.ulc-faq details{border-top:1px solid var(--line)}
.faq details:last-child,.ulc-faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary,.ulc-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;font:500 clamp(1.35rem,2vw,1.7rem)/1.2 var(--display);color:var(--ink)}
.faq summary::-webkit-details-marker,.ulc-faq summary::-webkit-details-marker{display:none}
.faq summary::after,.ulc-faq summary::after{content:"";flex:none;width:18px;height:18px;background:linear-gradient(var(--gold-text),var(--gold-text)) center/18px 1px no-repeat,linear-gradient(var(--gold-text),var(--gold-text)) center/1px 18px no-repeat;transition:transform .35s var(--e-out)}
.faq details[open] summary::after,.ulc-faq details[open] summary::after{transform:rotate(45deg)}
.faq details p,.ulc-faq details p{margin:0 0 28px;color:var(--ink-soft);max-width:66ch}
.visit{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(28px,6vw,96px)}
.visit address{font:500 clamp(1.7rem,3vw,2.4rem)/1.15 var(--display);font-style:normal;margin:0 0 24px}
.hours{display:grid;grid-template-columns:auto 1fr;gap:6px 24px;margin:0 0 24px}
.hours dt{color:var(--ink-soft)}
.hours dd{margin:0;font-weight:600}
.areas{font:400 clamp(1.4rem,2.3vw,1.9rem)/1.45 var(--display);margin:0}
.areas a{text-decoration:none;background:linear-gradient(var(--gold-1),var(--gold-1)) 0 92%/100% 1px no-repeat}
.areas a:hover{background-size:100% 2px;color:var(--plum)}
@media (max-width:860px){.visit{grid-template-columns:1fr}}
.close{text-align:center;padding:clamp(96px,13vw,180px) 0;overflow:hidden;position:relative}
.close::before{content:"";position:absolute;left:50%;top:50%;width:min(1100px,140vw);aspect-ratio:2.2/1;transform:translate(-50%,-50%) rotate(-8deg);border:1px solid rgba(242,208,74,.28);border-radius:50%;pointer-events:none}
.close .d2{max-width:14ch;margin:0 auto 22px}
.close p{max-width:52ch;margin:0 auto 36px;color:var(--muted-night)}
.close .actions{justify-content:center}

/* ---------- legacy content classes, restyled (inner pages keep their markup and words) ---------- */
.built{display:block}
.built > section,.built > div{position:relative}
.ulc-hero{position:relative;overflow:hidden;background:var(--night);color:var(--pearl);padding:calc(var(--head-h) + clamp(48px,7vw,104px)) var(--gutter) clamp(56px,7vw,96px);margin:0;text-align:left}
.ulc-hero-inner{position:relative;z-index:1;max-width:var(--max);margin:0 auto;padding:0}
.ulc-eyebrow{display:flex;align-items:center;gap:12px;color:var(--muted-night);font:500 .95rem/1.4 var(--sans);margin:0 0 22px}
.ulc-eyebrow::before{content:"";width:28px;height:1px;background:linear-gradient(90deg,var(--gold-1),var(--gold-2))}
.ulc-h1,.ulc-hero h1{font:500 clamp(2.6rem,5.8vw,5.2rem)/1 var(--display);letter-spacing:-.018em;color:var(--pearl);margin:0 0 24px;max-width:17ch;text-wrap:balance}
.ulc-sub{color:var(--muted-night);font-size:clamp(1.05rem,1.3vw,1.18rem);line-height:1.6;max-width:58ch;margin:0 0 34px}
.ulc-hero .ulc-btn-ghost{color:var(--pearl)}
/* hero with a photo (town pages): text left, arched photo right; photo below the text on phones */
.ulc-hero-inner:has(> .ulc-hero-photo){display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,360px);grid-template-rows:repeat(4,auto) 1fr;column-gap:clamp(32px,6vw,96px);align-items:start}
.ulc-hero-inner:has(> .ulc-hero-photo) > :not(.ulc-hero-photo){grid-column:1}
.ulc-hero-inner:has(> .ulc-hero-photo) > .ulc-eyebrow{align-self:start}
.ulc-hero-photo{grid-column:2;grid-row:1 / span 5;align-self:center;margin:0;position:relative}
.ulc-hero-photo::before{content:"";position:absolute;left:-18%;right:-18%;top:48%;aspect-ratio:2.6/1;border:1.5px solid rgba(230,190,69,.75);border-radius:50%;transform:rotate(-14deg);pointer-events:none;z-index:2}
.ulc-hero-photo img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:200px 200px 2px 2px;filter:saturate(.9)}
.ulc-hero-photo figcaption{position:relative;z-index:3;margin-top:18px;font-size:.78rem;line-height:1.45;color:var(--muted-night)}
.ulc-hero-photo figcaption a{color:inherit;text-underline-offset:3px;text-decoration-color:rgba(191,179,196,.5)}
.ulc-hero-photo figcaption a:hover{color:var(--pearl)}
@media (max-width:860px){
  .ulc-hero-inner:has(> .ulc-hero-photo){display:block}
  .ulc-hero-photo{width:min(64%,280px);margin:44px auto 0}
  .ulc-hero-photo figcaption{text-align:center}
}
.ulc-wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.ulc-section{padding:clamp(72px,9vw,128px) 0}
.ulc-section-soft{background:var(--rose)}
.ulc-section-dark{background:var(--night);color:var(--pearl)}
.ulc-section-head{max-width:760px;margin:0 0 clamp(36px,5vw,60px);text-align:left}
.ulc-section-eyebrow{display:flex;align-items:center;gap:12px;color:var(--ink-soft);font:500 .95rem/1.4 var(--sans);margin:0 0 14px}
.ulc-section-eyebrow::before{content:"";width:28px;height:1px;background:linear-gradient(90deg,var(--gold-1),var(--gold-2))}
.ulc-section-dark .ulc-section-eyebrow{color:var(--muted-night)}
.ulc-h2,.built h2{font:500 clamp(2.1rem,4vw,3.6rem)/1.04 var(--display);letter-spacing:-.015em;color:inherit;margin:0 0 18px;text-wrap:balance}
.built h3{font:500 clamp(1.45rem,2.2vw,1.9rem)/1.12 var(--display);letter-spacing:-.01em;margin:0 0 12px}
.built h4{font:600 1.1rem/1.3 var(--sans);margin:0 0 8px}
.ulc-lead,.lead{font-size:clamp(1.05rem,1.3vw,1.18rem);line-height:1.65;color:var(--ink-soft);margin:0 0 24px}
.ulc-section-dark .ulc-lead{color:var(--muted-night)}
.ulc-grid-3,.ulc-grid-4{display:grid;gap:clamp(20px,2.5vw,32px);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.ulc-grid-4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.ulc-card{position:relative;background:var(--white);border-radius:2px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .35s var(--e-out)}
.ulc-card:hover{box-shadow:0 24px 50px -30px rgba(26,18,32,.45)}
.ulc-card-img{width:100%;aspect-ratio:3/2;height:auto;object-fit:cover;transition:transform 1.2s var(--e-out)}
.ulc-card:hover .ulc-card-img{transform:scale(1.03)}
.ulc-card-body{padding:26px 26px 28px;display:flex;flex-direction:column;flex:1}
.ulc-card h3{font:500 1.7rem/1.1 var(--display);margin:0 0 10px;color:var(--ink)}
.ulc-card p{color:var(--ink-soft);margin:0 0 18px;flex:1}
.ulc-card-price{display:block;font-weight:600;color:var(--gold-text);margin-bottom:14px}
.ulc-card-link{align-self:flex-start;font-weight:600;color:var(--plum);text-decoration:none;background:linear-gradient(var(--gold-1),var(--gold-1)) 0 100%/100% 1px no-repeat;padding-bottom:3px}
.ulc-card-link:hover{color:var(--ink)}
.ulc-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(20px,3vw,40px);counter-reset:s}
.ulc-step{padding:26px 0 0;border-top:1px solid var(--line-night);text-align:left}
.ulc-section:not(.ulc-section-dark) .ulc-step{border-top-color:var(--line)}
.ulc-step-num{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1px solid var(--gold-1);color:var(--gold-2);font:500 1.5rem/1 var(--display);margin-bottom:20px;background:transparent}
.ulc-section:not(.ulc-section-dark) .ulc-step-num{color:var(--gold-text)}
.ulc-step h4,.ulc-step h3{font:600 1.15rem/1.3 var(--sans);margin:0 0 8px;color:inherit}
.ulc-step p{margin:0;color:var(--muted-night)}
.ulc-section:not(.ulc-section-dark) .ulc-step p{color:var(--ink-soft)}
.ulc-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,96px);align-items:center}
.ulc-split img{width:100%;border-radius:2px;aspect-ratio:4/5;object-fit:cover}
.ulc-split h3{font:500 clamp(2rem,3.6vw,3rem)/1.06 var(--display);margin:0 0 18px}
.ulc-check-list{list-style:none;padding:0;margin:24px 0 0}
.ulc-check-list li{padding:14px 0 14px 30px;position:relative;border-top:1px solid var(--line)}
.ulc-section-dark .ulc-check-list li{border-top-color:var(--line-night)}
.ulc-check-list li::before{content:"";position:absolute;left:0;top:25px;width:16px;height:1px;background:var(--gold-1)}
.ulc-faq{max-width:980px;margin:0}
.ulc-faq details{background:none;border-radius:0;box-shadow:none;padding:0;margin:0}
.ulc-faq summary{color:inherit}
.ulc-cta-band{position:relative;overflow:hidden;background:var(--night);color:var(--pearl);padding:clamp(88px,12vw,160px) var(--gutter);text-align:center}
.ulc-cta-band::before{content:"";position:absolute;left:50%;top:50%;width:min(1100px,140vw);aspect-ratio:2.2/1;transform:translate(-50%,-50%) rotate(-8deg);border:1px solid rgba(242,208,74,.28);border-radius:50%;pointer-events:none}
.ulc-cta-band > *{position:relative}
.ulc-cta-band h2{font:500 clamp(2.3rem,4.6vw,4.2rem)/1.02 var(--display);color:var(--pearl);max-width:16ch;margin:0 auto 20px}
.ulc-cta-band p{color:var(--muted-night);max-width:56ch;margin:0 auto 32px}
.ulc-cta-band .ulc-cta-row{justify-content:center}
.ulc-cta-band .ulc-btn-ghost,.ulc-section-dark .ulc-btn-ghost{color:var(--pearl)}
.ulc-price-table{max-width:900px;margin:0;border-top:1px solid var(--ink)}
.ulc-price-row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}
.ulc-price-name{font-weight:500}
.ulc-price-val{font:500 1.5rem/1 var(--display);color:var(--gold-text);white-space:nowrap}
.ulc-trust{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:24px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:none;margin:0;text-align:left;background:none}
.ulc-trust-item .n{font:500 2.4rem/1 var(--display);color:var(--ink);margin-bottom:6px}
.ulc-trust-item .l{color:var(--ink-soft);font-size:.95rem}
.ulc-testi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(24px,3vw,48px)}
.ulc-testi{padding:28px 0 0;border-top:1px solid var(--line);background:none;border-left:0;box-shadow:none;border-radius:0}
.ulc-section-dark .ulc-testi{border-top-color:var(--line-night)}
.ulc-testi blockquote{margin:0 0 20px;font:400 clamp(1.3rem,1.8vw,1.55rem)/1.34 var(--display);font-style:normal;color:inherit;border:0;padding:0}
.ulc-testi cite{display:block;font-style:normal;font-weight:600}
.ulc-testi cite span{display:block;font-weight:400;color:var(--ink-soft);font-size:.95rem}
.ulc-section-dark .ulc-testi cite span{color:var(--muted-night)}
.ulc-stars{color:var(--gold-2);letter-spacing:.2em;margin-bottom:16px}
.ulc-section:not(.ulc-section-dark) .ulc-stars{color:var(--gold-1)}
.ulc-treatment-intro{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(28px,6vw,96px);align-items:center;padding:0}
.ulc-treatment-intro h2{margin-bottom:18px}
.ulc-treatment-intro img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:200px 200px 2px 2px}
.ulc-quick-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;margin:28px 0 30px;background:var(--line);border:1px solid var(--line)}
.ulc-fact{padding:16px 18px;background:var(--pearl);border:0;border-radius:0}
.ulc-section-soft .ulc-fact{background:var(--rose)}
.ulc-fact .k{font-size:.88rem;color:var(--ink-soft);margin-bottom:4px;text-transform:none;letter-spacing:0;font-weight:500}
.ulc-fact .v{font:500 1.5rem/1.1 var(--display);color:var(--ink)}
.ulc-extractive{background:var(--white);border-left:2px solid var(--gold-1);padding:20px 24px;border-radius:0;margin:16px 0 26px;font-size:1.06rem;line-height:1.6;color:var(--ink)}
.ulc-areas-grid{display:flex;flex-wrap:wrap;gap:10px}
.ulc-area-chip{display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border:1px solid var(--line);border-radius:2px;text-decoration:none;font-weight:500;background:transparent;transition:background-color .2s var(--e-out),color .2s var(--e-out)}
.ulc-area-chip:hover{background:var(--night);color:var(--pearl);border-color:var(--night)}
.ulc-txpage .ulc-hero{margin:0}
.ulc-txgroup{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:clamp(40px,6vw,72px) 0 20px;padding-bottom:12px;border-bottom:1px solid var(--ink)}
.ulc-txgroup h2{font:500 clamp(1.8rem,3vw,2.6rem)/1.05 var(--display);margin:0}
.ulc-txgroup .glink{font-weight:600;color:var(--plum);text-decoration:none;white-space:nowrap}
.ulc-txgroup .glink:hover{text-decoration:underline;text-underline-offset:5px}
.ulc-txgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,2vw,24px)}
.ulc-tcard{display:flex;flex-direction:column;text-decoration:none;background:none;border:0;border-radius:0;box-shadow:none}
.ulc-tcard img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:2px;transition:transform 1.2s var(--e-out)}
.ulc-tcard:hover img{transform:scale(1.03)}
.ulc-tcard{overflow:hidden}
.ulc-tcard .tname{display:block;padding:14px 0 0;text-align:left;font:500 1.35rem/1.15 var(--display);color:var(--ink);min-height:0}
.ulc-tcard:hover .tname{color:var(--plum)}
@media (max-width:1000px){.ulc-txgrid{grid-template-columns:repeat(3,1fr)}}
/* six-card grids (Areas We Serve): three across on desktop, two on phones */
.ulc-txgrid:has(> .ulc-tcard:nth-child(6):last-child){grid-template-columns:repeat(3,1fr);gap:clamp(12px,2.4vw,32px)}
.ulc-txgrid:has(> .ulc-tcard:nth-child(6):last-child) .tname{font-size:clamp(1.25rem,2.2vw,1.7rem)}
.photo-credits{margin:28px 0 0;font-size:.82rem;line-height:1.55;color:var(--ink-soft);max-width:110ch}
.photo-credits a{color:inherit;text-underline-offset:3px;text-decoration-color:rgba(95,82,102,.45)}
.photo-credits a:hover{color:var(--ink)}
@media (max-width:620px){.ulc-txgrid,.ulc-txgrid:has(> .ulc-tcard:nth-child(6):last-child){grid-template-columns:repeat(2,1fr);gap:12px}.ulc-tcard .tname{font-size:1.2rem;padding-top:10px}}
.ulc-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:start}
.ulc-info-card{padding:22px 0;border-top:1px solid var(--line);background:none;border-radius:0;box-shadow:none;margin:0}
.ulc-info-card h3{font:500 1.6rem/1.1 var(--display);margin:0 0 10px}
.ulc-info-card p{margin:0 0 6px;color:var(--ink-soft)}
.ulc-map{width:100%;min-height:420px;border:0;border-radius:2px;filter:grayscale(.35) contrast(1.02)}
.ulc-journey{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,40px);max-width:none;margin:40px 0 0;position:relative}
.ulc-journey::before{content:"";position:absolute;top:27px;left:28px;right:calc(25% - 28px);height:1px;background:linear-gradient(90deg,var(--gold-1),var(--gold-2))}
.ulc-journey-step{position:relative;text-align:left;padding:0}
.ulc-journey-num{display:grid;place-items:center;width:56px;height:56px;margin:0 0 20px;border-radius:50%;background:var(--pearl);border:1px solid var(--gold-1);color:var(--gold-text);font:500 1.5rem/1 var(--display);box-shadow:none;position:relative}
.ulc-section-soft .ulc-journey-num{background:var(--rose)}
.ulc-journey-step h4{font:600 1.08rem/1.3 var(--sans);margin:0 0 8px;color:var(--ink)}
.ulc-journey-step p{margin:0;color:var(--ink-soft);font-size:.98rem}
@media (max-width:860px){
  .ulc-split,.ulc-treatment-intro,.ulc-contact-grid{grid-template-columns:1fr}
  .ulc-treatment-intro img{aspect-ratio:3/2;border-radius:2px}
  .ulc-journey{grid-template-columns:1fr 1fr}.ulc-journey::before{display:none}
}
@media (max-width:480px){.ulc-journey{grid-template-columns:1fr}}

/* ---------- article and prose ---------- */
.article{padding-top:clamp(56px,7vw,96px);padding-bottom:clamp(72px,9vw,128px);max-width:calc(var(--measure) + 2 * var(--gutter))}
.ulc-content-page,.ulc-prose{max-width:calc(var(--measure) + 2 * var(--gutter));margin:0 auto;padding:0 var(--gutter)}
.ulc-section .ulc-content-page{padding-top:0}
.article h2,.ulc-prose h2{font:500 clamp(1.9rem,3.2vw,2.6rem)/1.08 var(--display);letter-spacing:-.012em;margin:2.2em 0 .5em;color:var(--ink)}
.article h2:first-child,.article > :first-child h2,.ulc-prose > h2:first-child{margin-top:0}
.article h3,.ulc-prose h3{font:500 clamp(1.4rem,2.2vw,1.75rem)/1.15 var(--display);margin:1.8em 0 .5em}
.article h4{font:600 1.1rem/1.3 var(--sans);margin:1.6em 0 .4em}
.article p,.ulc-prose p{color:#3B3042;line-height:1.75;margin:0 0 1.1em}
.article ul,.article ol,.ulc-prose ul,.ulc-prose ol{padding-left:1.2em;margin:0 0 1.4em}
.article li,.ulc-prose li{margin:0 0 .5em;line-height:1.7;color:#3B3042}
.article li::marker,.ulc-prose li::marker{color:var(--gold-1)}
.article a,.ulc-prose a{color:var(--plum);text-decoration-color:rgba(185,133,42,.7);text-underline-offset:3px;text-decoration-thickness:1px}
.article a:hover,.ulc-prose a:hover{color:var(--ink);text-decoration-color:var(--gold-1)}
.article strong{color:var(--ink);font-weight:600}
.article blockquote{margin:1.6em 0;padding:0 0 0 24px;border-left:2px solid var(--gold-1);font:400 1.5rem/1.35 var(--display)}
.article table{width:100%;border-collapse:collapse;margin:1.4em 0 2em;font-size:.98rem}
.article th,.article td{text-align:left;padding:12px 14px 12px 0;border-bottom:1px solid var(--line)}
.article th{font-weight:600}
.article figure{margin:0 0 2em}
.ulc-intro-img{margin:0 0 2.2em}
.ulc-intro-img img{width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:2px}
@media (max-width:620px){.ulc-intro-img img{aspect-ratio:16/9}}
.post-list{list-style:none;padding:0;margin:0}
.post-list li{padding:28px 0;border-top:1px solid var(--line)}
.post-list a{text-decoration:none}
.post-list p{margin:10px 0 0;color:var(--ink-soft)}

/* ---------- booking widget ([ulc_booking]) ---------- */
.ulc-booking{--ulc-accent:#5A2D5E;--ulc-line:rgba(34,23,42,.16);--ulc-bg:#FFFFFF;--ulc-ink:#22172A;max-width:760px;font:400 1rem/1.55 var(--sans)}
.built .ulc-booking,.article .ulc-booking{background:var(--white);padding:clamp(24px,4vw,48px);border-top:2px solid var(--gold-1);box-shadow:0 30px 60px -40px rgba(26,18,32,.45)}
.ulc-booking .ulc-form h3,.ulc-booking .ulc-done h3{font:500 1.9rem/1.1 var(--display);color:var(--ink)}
.ulc-booking .ulc-form label{font-weight:600}
.ulc-booking .ulc-form input[type=text],.ulc-booking .ulc-form input[type=email],.ulc-booking .ulc-form input[type=tel],.ulc-booking .ulc-form input[type=date],.ulc-booking .ulc-form select,.ulc-booking .ulc-form textarea{min-height:52px;border-radius:2px;padding:.7em .9em;background:var(--pearl)}
.ulc-booking .ulc-form textarea{min-height:110px}
.ulc-booking .ulc-form fieldset{border-radius:2px}
.ulc-booking .ulc-cal-title{font:500 1.5rem/1 var(--display)}
.ulc-booking .ulc-day,.ulc-booking .ulc-slot,.ulc-booking .ulc-cal-nav{border-radius:2px;min-height:44px}
.ulc-booking .ulc-day.is-selected,.ulc-booking .ulc-slot.is-selected{background:var(--night)!important;border-color:var(--night)!important;color:var(--gold-2)!important}
.ulc-booking .ulc-submit{min-height:54px;border-radius:2px;background:var(--plum)!important;font-weight:600;letter-spacing:0}
.ulc-booking .ulc-submit:hover:not(:disabled){background:var(--plum-deep)!important}
.ulc-booking .ulc-note{border-radius:2px;background:var(--rose);border-color:transparent}

/* ---------- staff screens ---------- */
.ulc-staff .site-head{position:sticky;background:var(--night)}
.ulc-staff .page-top{padding-top:clamp(40px,5vw,64px)}
.ulc-staff .page-top::before{display:none}
.staff-body{padding-top:40px;padding-bottom:80px;max-width:1280px}
.staff-body form{max-width:460px}
.staff-body label{display:block;font-weight:600;margin:0 0 6px}
.staff-body input[type=text],.staff-body input[type=email],.staff-body input[type=password]{width:100%;min-height:52px;padding:0 14px;border:1px solid var(--line);border-radius:2px;background:var(--white);margin:0 0 18px}
body.ulc-staff .staff-body .ulc-su-submit,.staff-body input[type=submit]{min-height:52px;padding:0 28px;border:0;border-radius:2px;background:var(--plum);color:#fff;font-weight:600;cursor:pointer;width:100%}
body.ulc-staff .staff-body .ulc-su-submit:hover,.staff-body input[type=submit]:hover{background:var(--plum-deep)}
body.ulc-staff .ulc-login{max-width:480px;margin:0}
body.ulc-staff .ulc-login .ulc-su-form{background:var(--white);border:0;border-top:2px solid var(--gold-1);border-radius:2px;padding:clamp(24px,4vw,40px);box-shadow:0 30px 60px -40px rgba(26,18,32,.45)}
body.ulc-staff .ulc-login h2{font:500 1.9rem/1.1 var(--display);color:var(--ink);margin:0 0 20px}
body.ulc-staff .ulc-login label{color:var(--ink)}
body.ulc-staff .ulc-login .ulc-su-check{display:flex;align-items:center;gap:10px;font-weight:400;margin:0 0 20px}
body.ulc-staff .ulc-login .ulc-su-links{margin-top:16px;background:none;border:0;padding:0;box-shadow:none}
body.ulc-staff .ulc-login .ulc-su-links button{background:none;border:0;padding:8px 0;min-height:44px;color:var(--plum);font-weight:600;text-decoration:underline;text-underline-offset:4px;cursor:pointer;width:auto}
body.ulc-staff .ulc-login .ulc-su-links button:hover{color:var(--ink);background:none}
body.ulc-staff .ulc-login input:focus{outline:2px solid var(--gold-1);outline-offset:1px;border-color:var(--gold-1)}
.ulc-dashboard{--t:#22172A;--g:#E6BE45;--line:rgba(34,23,42,.14);--muted:#5F5266;font-family:var(--sans)}
.ulc-dashboard .ulc-d-bar{border-radius:2px;background:var(--white)}
.ulc-dashboard .ulc-d-vbtn.active{background:var(--night)}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--line-night);padding:64px 0 40px;font-size:.95rem;color:var(--muted-night)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.foot-brand{margin-bottom:18px}
.foot h2{font:600 .95rem/1.3 var(--sans);color:var(--pearl);margin:0 0 14px}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin-bottom:8px}
.foot a{text-decoration:none}
.foot a:hover{color:var(--pearl);text-decoration:underline;text-underline-offset:4px}
.foot .status{margin-top:8px}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line-night)}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* ---------- motion: image reveals, reduced motion ---------- */
.js .reveal{clip-path:inset(100% 0 0 0);transition:clip-path 1.1s var(--e-out)}
.js .reveal.is-in{clip-path:inset(0 0 0 0)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}
  .halo .ring,.halo .ring-soft,.halo .burst,.panel{animation:none!important}
  .halo .spark{display:none}
  .steps-line span{animation:none!important;transform:scaleX(1)!important}
  .js .reveal{clip-path:none}
}
