@font-face{font-family:'Bricolage Grotesque Variable';src:url(fonts/bricolage-grotesque.woff2) format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:'Manrope Variable';src:url(fonts/manrope.woff2) format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url(fonts/instrument-serif.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}
:root{--paper:#fcfaf6;--ink:#101f1c;--muted:#656c69;--line:#dbdbd7;--surface:#f6f2e9;--primary:#0f4b42;--on-primary:#ffffff;--primary-text:#0f4b42;--accent:#0e5e53;--on-accent:#ffffff;--accent-text:#0e5e53;--card:#ffffff;--tint:#e9efee;--tint-strong:#c5d4d2;--edge:#e6e3db;--signal:#b96f36;--signal-text:#94592b;--on-signal:#101f1c;--i-check:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%230e5e53'%20stroke-width%3D'3'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D%22M20%206%209%2017l-5-5%22%2F%3E%3C%2Fsvg%3E");--i-check-on:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23ffffff'%20stroke-width%3D'3'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D%22M20%206%209%2017l-5-5%22%2F%3E%3C%2Fsvg%3E");--i-arrow:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%230e5e53'%20stroke-width%3D'2.25'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D%22M5%2012h14M12%205l7%207-7%207%22%2F%3E%3C%2Fsvg%3E");--i-plus:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%230e5e53'%20stroke-width%3D'2.5'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D%22M12%205v14M5%2012h14%22%2F%3E%3C%2Fsvg%3E");--deep:#0b3832;--on-deep:#ffffff;--accent-on-deep:#4a867e;--accent-bright:#238a7c;--signal-on-deep:#d9b090;--primary-on-deep:#87a5a1;--dot:#0e5e53;--on-dot:#ffffff;--font-display:'Bricolage Grotesque Variable', ui-sans-serif, system-ui, sans-serif;--font-body:'Manrope Variable', ui-sans-serif, system-ui, sans-serif;--font-accent:'Instrument Serif', ui-serif, Georgia, serif;--accent-weight:400;--display-weight:700;--display-tracking:-0.03em;--body-leading:1.6;--radius-btn:999px;--radius-media:28px;--brand-50:#eff8f6;--brand-100:#d7ede8;--brand-200:#aedbd1;--brand-300:#7ec2b5;--brand-400:#48a494;--brand-500:#228a7b;--brand-600:#0e7567;--brand-700:#0d5e53;--brand-800:#0f4b42;--brand-900:#0d3d36;--brand-950:#05231e;--sand-50:#fcfaf6;--sand-100:#f6f2e9;--sand-200:#ebe5d7;--sand-300:#ddd3be;--sand-400:#c8b895;--sand-500:#b1a079;--sand-600:#85795f;--sand-700:#625a47;--sand-800:#453f31;--sand-900:#2b261b;--sand-950:#19160d;--clay-50:#fdf4ee;--clay-100:#f9e3d4;--clay-200:#f2c6a8;--clay-300:#e2a376;--clay-400:#ca7c41;--clay-500:#af611f;--clay-600:#97500e;--clay-700:#79400d;--clay-800:#60330d;--clay-900:#4f2a0b;--clay-950:#2f1604;--ink-soft:#324642;--ink-muted:#596b67;--i-tick:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%230d5e53'%20stroke-width%3D'2.5'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D%22m4.5%2012.5%205%205%2010-11%22%2F%3E%3C%2Fsvg%3E");--i-tick-on:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23ffffff'%20stroke-width%3D'2.5'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D%22m4.5%2012.5%205%205%2010-11%22%2F%3E%3C%2Fsvg%3E");--i-arr:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%230f4b42'%20stroke-width%3D'1.75'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D%22M4%2012h15%22%2F%3E%3Cpath%20d%3D%22m13%206%206%206-6%206%22%2F%3E%3C%2Fsvg%3E");--i-arr-on:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23ffffff'%20stroke-width%3D'1.75'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D%22M4%2012h15%22%2F%3E%3Cpath%20d%3D%22m13%206%206%206-6%206%22%2F%3E%3C%2Fsvg%3E")}
*,*::before,*::after{ box-sizing: border-box; }
html{ -webkit-text-size-adjust: 100%; }
body{
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 400 1.0625rem/var(--body-leading) var(--font-body);
  font-optical-sizing: auto;
}
img{ display: block; max-width: 100%; }
svg{ display: block; }
a{ color: inherit; text-underline-offset: 0.18em; text-decoration-thickness: 1.5px; }
p{ margin: 0 0 1em; }
h1,h2,h3{ margin: 0; text-wrap: balance; }
h1,h2{
  font-family: var(--font-display);
  font-weight: var(--display-weight);
  letter-spacing: var(--display-tracking);
}
h1{ font-size: clamp(2.6rem, 1rem + 6vw, 6.4rem); line-height: 0.96; }
h2{ font-size: clamp(2rem, 1rem + 3.2vw, 3.8rem); line-height: 1; }
h3{ font-size: 1.25rem; font-weight: 650; line-height: 1.25; }
:root{ --t-item: clamp(1.375rem, 1.1rem + 0.7vw, 1.75rem); }
.stat-value,.pc-price{ font-variant-numeric: lining-nums tabular-nums; }
:focus-visible{ outline: 3px solid var(--accent-text); outline-offset: 3px; }
::selection{ background: var(--accent); color: var(--on-accent); }
.wrap{ width: min(1280px, 100% - 2 * clamp(20px, 4vw, 48px)); margin-inline: auto; }
.wrap.narrow > *{ max-width: 820px; }
.wrap.narrow.prose{ width: min(820px, 100% - 2 * clamp(20px, 4vw, 48px)); }
.visually-hidden{ position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip{ position: absolute; left: -9999px; }
.skip:focus{ left: 12px; top: 12px; z-index: 10; background: var(--paper); padding: 8px 12px; }
.demo-fixed{ padding: 8px 20px; background: var(--paper); color: var(--ink); border-bottom: 1px solid color-mix(in srgb, var(--ink) 18%, transparent); font-size: 0.875rem; }
.demo-fixed details{ margin: 0 auto; max-width: 72ch; }
.demo-fixed summary{ cursor: pointer; font-weight: 650; min-height: 24px; }
.demo-fixed ul{ margin: 6px 0 4px; padding: 0; list-style: none; display: grid; gap: 4px; }
.demo-fixed .was{ text-decoration: line-through; }
.demo-fixed .now{ font-weight: 600; }
.site-header{
  --hdr-h: 92px; --hdr-fg: var(--ink); --hdr-bg: var(--paper); --hdr-brand: var(--primary-text); --menu-bg: var(--paper); --menu-fg: var(--ink);
  --gutter: clamp(20px, 4vw, 48px); position: relative; z-index: 2; background: var(--hdr-bg); color: var(--hdr-fg);
}
.site-header :focus-visible{ outline-color: currentColor; }
.header-row{ position: relative; z-index: 3; display: flex; align-items: center; gap: 12px clamp(28px, 3.2vw, 56px); min-height: var(--hdr-h); padding-block: 14px; }
.brand{ display: flex; align-items: center; gap: 14px; text-decoration: none; min-width: min-content; flex: 0 1000 auto; color: var(--hdr-brand); }
.menu-more,.site-header .menu-close{ display: none; }
.logo{ flex: none; height: 48px; width: auto; max-width: none; }
.header-menu{ display: flex; align-items: center; gap: 12px clamp(28px, 3.2vw, 56px); flex: 1 1 auto; }
.site-header nav ul{ display: flex; flex-wrap: wrap; gap: 4px clamp(20px, 2.2vw, 34px); margin: 0; padding: 0; list-style: none; }
@media (min-width: 1200px){.site-header nav:not(.lang-switch) ul{ width: calc(100% + 2px); }
}
.header-menu > .lang-switch,.header-actions{ flex: none; }
.site-header nav.lang-switch ul{ flex-wrap: nowrap; }
.site-header nav a{ position: relative; display: block; padding-block: 10px; font-weight: 550; white-space: nowrap; text-decoration: none; }
.site-header nav a::after{
  content: ''; position: absolute; inset: auto 0 2px; height: 2px; background: currentColor; border-radius: 2px;
  transform: scaleX(0); transform-origin: left; transition: transform 0.28s var(--ease);
}
.site-header nav a:hover::after,.site-header nav a:focus-visible::after,.site-header nav a[aria-current]::after{ transform: scaleX(1); }
.lang-switch ul{ display: flex; gap: 2px; margin: 0; padding: 0; list-style: none; }
nav.lang-switch a{ display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding-inline: 8px; font-weight: 650; font-size: 0.875rem; letter-spacing: 0.06em; color: inherit; text-decoration: none; }
nav.lang-switch a[aria-current]{ text-decoration: underline; text-underline-offset: 0.3em; }
.site-header nav.lang-switch a::after{ content: none; }
.header-actions{ display: flex; align-items: center; gap: 28px; margin-left: auto; }
.header-phone{ font-weight: 650; text-decoration: none; white-space: nowrap; font-variant-numeric: tabular-nums; padding-block: 10px; }
.header-phone:hover{ text-decoration-line: underline; }
.header-phone .call-word{ display: none; }
.pic-contain{ position: relative; display: block; overflow: hidden; aspect-ratio: var(--frame); background: var(--surface); }
.pic-contain img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; aspect-ratio: auto; }
.pic-contain .pic-blur{ object-fit: cover; transform: scale(1.25); opacity: 0.7; filter: blur(40px) saturate(1.5); }
.header-cta{ min-height: 50px; padding: 12px 24px; font-size: 1rem; white-space: nowrap; }
.header-tools{ display: none; align-items: center; gap: 8px; flex: none; }
.header-call,.menu-toggle,.menu-close{
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; flex: none; min-width: 48px; min-height: 48px; padding-inline: 14px;
  border: 0; border-radius: var(--radius-btn); font: 650 1rem/1 var(--font-body); color: inherit; background: none; cursor: pointer; text-decoration: none;
  transition: transform 0.18s var(--ease);
}
.header-call:active,.menu-toggle:active,.menu-close:active{ transform: scale(0.96); }
.header-call{ background: var(--primary); color: var(--on-primary); font-variant-numeric: tabular-nums; }
.menu-toggle{ margin-right: -10px; }
.call-number{ display: none; }
.toggle-word{ display: grid; }
.toggle-word > *{ grid-area: 1 / 1; }
.menu-toggle[aria-expanded='true'] .when-shut,.menu-toggle:not([aria-expanded='true']) .when-open{ visibility: hidden; }
.burger{ position: relative; width: 18px; height: 10px; }
.burger::before,.burger::after{ content: ''; position: absolute; left: 0; right: 0; height: 2px; background: currentColor; border-radius: 2px; transition: transform 0.3s var(--ease); }
.burger::before{ top: 0; }
.burger::after{ bottom: 0; }
[aria-expanded='true'] .burger::before{ transform: translateY(4px) rotate(45deg); }
[aria-expanded='true'] .burger::after{ transform: translateY(-4px) rotate(-45deg); }
@media (max-width: 1199px){.site-header{ --hdr-h: 72px; }
.header-row{ flex-wrap: wrap; gap: 4px 20px; padding-block: 10px; }
.brand{ margin-right: auto; }
.logo{ height: 40px; }
.header-menu{ flex-basis: 100%; flex-wrap: wrap; }
.site-header nav ul{ flex-wrap: wrap; }
.header-actions{ margin-left: 0; }
.js .header-row{ flex-wrap: nowrap; gap: 8px; }
.js .header-tools{ display: flex; }
.js .header-menu{ display: none; }
}
.site-header.open{ z-index: 30; }
.js .open .header-menu{
  display: flex; flex-flow: column nowrap; align-items: stretch; gap: 0; position: fixed; z-index: 3; overflow-y: auto; overscroll-behavior: contain;
  background: var(--menu-bg); color: var(--menu-fg); --hdr-fg: var(--menu-fg);
}
.js .open nav ul{ flex-direction: column; gap: 0; }
.js .open nav li{ animation: rise 0.5s var(--ease) both; animation-delay: calc(60ms + var(--i, 0) * 45ms); }
.js .open nav a{ font: var(--display-weight) clamp(2rem, 1.4rem + 3vw, 2.75rem)/1.05 var(--font-display); letter-spacing: var(--display-tracking); padding-block: 12px; }
.js .open nav a{ width: fit-content; }
.js .open nav a::after{ bottom: 6px; height: 3px; }
.js .open .header-actions{ flex-direction: column; align-items: stretch; gap: 10px; margin: 0; padding-top: 28px; }
.js .open .header-phone,.js .open .header-cta{ display: flex; align-items: center; justify-content: center; min-height: 56px; border-radius: var(--radius-btn); font-size: 1.125rem; }
.js .open .header-phone{ background: color-mix(in srgb, currentColor 10%, transparent); }
.js .open .menu-more{ display: grid; gap: 12px; padding-top: 28px; font-size: 1rem; }
.js .open .header-actions,.js .open .menu-more{ animation: rise 0.5s var(--ease) 0.28s both; }
.menu-more p{ margin: 0; }
.menu-more .open-now{ margin: 0; font-size: 1.0625rem; }
.menu-hours{ display: grid; grid-template-columns: auto 1fr; gap: 4px 20px; margin: 0; }
.menu-hours div{ display: contents; }
.menu-hours dd{ margin: 0; font-variant-numeric: tabular-nums; }
.menu-email a{ text-underline-offset: 0.2em; }
.js .site-header.open:not(.hdr-over)::after{
  content: ''; position: fixed; inset: 0; z-index: 2; background: color-mix(in srgb, var(--ink) 55%, transparent); animation: fade 0.3s var(--ease) both;
}
.menu-open{ overflow: hidden; }
.js .site-header.open.closing .header-menu,.js .site-header.open.closing:not(.hdr-over)::after{ animation: fade-out 0.22s var(--ease) both; pointer-events: none; }
.js .hdr-drawer.open.closing .header-menu{ animation: slide-out 0.22s var(--ease) both; }
@keyframes fade-out{ to { opacity: 0; } }
@keyframes slide-out{ to { transform: translateX(100%); } }
.menu-open .chat{ display: none; }
@keyframes fade{ from { opacity: 0; } }
@keyframes drop{ from { opacity: 0; transform: translateY(-16px); } }
@keyframes slide{ from { transform: translateX(100%); } }
@keyframes sheet{ from { opacity: 0; transform: translateY(40px); } }
@media (min-width: 1200px){.hdr-bar:has(.util-langs) .header-langs{ display: none; }
}
.hdr-field .header-actions:has(.header-cta) .header-phone{ padding-inline: 0; background: none; color: inherit; }
@media (max-width: 1199px){.js .hdr-field.open .header-actions:has(.header-cta) .header-phone{
    justify-content: flex-start; min-height: 72px; padding: 14px 20px; background: var(--accent); color: var(--on-accent); font: var(--display-weight) 1.75rem/1 var(--font-display);
  }
}
.hdr-drawer{ --menu-bg: var(--deep); --menu-fg: var(--on-deep); }
.hdr-drawer .brand{ margin-right: auto; }
.js .hdr-drawer .header-tools{ display: flex; gap: 12px; }
.js .hdr-drawer .header-menu{ display: none; }
.hdr-drawer .menu-toggle,.hdr-drawer .menu-close{ margin-right: 0; padding-inline: 20px; background: var(--hdr-fg); color: var(--hdr-bg); }
.hdr-drawer .menu-close{ background: var(--menu-fg); color: var(--menu-bg); }
@media (min-width: 1200px){.js .hdr-drawer .header-call{ padding-inline: 12px; background: none; color: inherit; }
.js .hdr-drawer .call-word{ display: none; }
.js .hdr-drawer .call-number{ display: inline; }
}
.js .hdr-drawer.open .header-menu{
  display: flex; inset: 0 0 0 auto; width: min(480px, 100% - 48px); padding: 16px clamp(24px, 3vw, 40px) 32px; animation: slide 0.42s var(--ease) both;
}
.hdr-drawer .header-row{ z-index: auto; }
.js .hdr-drawer.open .menu-close{ display: inline-flex; align-self: flex-end; margin-bottom: 8px; }
.js .hdr-drawer.open nav a{ font-size: clamp(1.75rem, 1.2rem + 1.4vw, 2.5rem); padding-block: 7px; }
.js .hdr-drawer.open .menu-more{ padding-top: 24px; }
.js .hdr-drawer.open .menu-more{ order: 1; }
.js .hdr-drawer.open .header-actions{ order: 2; margin-top: auto; }
.js .hdr-drawer.open .header-phone{ background: color-mix(in srgb, var(--on-deep) 14%, transparent); }
@media (max-width: 1199px){.js .split-page:has(.hdr-dock) ~ .site-footer{ padding-bottom: 84px; }
html.js:has(.hdr-dock) .chat{ bottom: 96px; }
}
.site-header.hdr-over{ position: sticky; top: 0; transition: background-color 0.3s var(--ease), color 0.3s var(--ease), transform 0.4s var(--ease); }
.hdr-over.tuck{ transform: translateY(-100%); }
html:has(.hdr-over){ scroll-padding-top: 96px; }
@media (min-width: 1200px){.hdr-over .header-menu{ justify-content: space-between; }
.hdr-over nav{ margin-inline: auto; }
.hdr-over .header-actions{ margin-left: 0; }
.hdr-over .header-row:not(:has(nav li:nth-child(5))){ display: grid; grid-template-columns: 1fr auto 1fr; }
.hdr-over .header-row:not(:has(nav li:nth-child(5))) .header-menu{ display: contents; }
.hdr-over .header-row:not(:has(nav li:nth-child(5))) .brand{ grid-area: 1 / 2; }
.hdr-over .header-row:not(:has(nav li:nth-child(5))) .wordmark{ font-size: clamp(1.625rem, 1rem + 1vw, 2.125rem); }
.hdr-over .header-row:not(:has(nav li:nth-child(5))) nav{ grid-area: 1 / 1; margin: 0; }
.hdr-over .header-row:not(:has(nav li:nth-child(5))) .header-actions{ grid-area: 1 / 3; justify-self: end; }
}
@media (max-width: 1199px){.js .hdr-over.open .header-row{ flex-wrap: wrap; }
.js .hdr-over.open .brand{ flex: 1 1 0; }
.js .hdr-over.open .header-menu{
    position: static; order: 2; flex-basis: 100%; max-height: calc(100dvh - var(--menu-top, 0px)); padding: 4px 0 24px; background: none; animation: drop 0.3s var(--ease) both;
  }
.js .hdr-over.open nav ul{ display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.js .hdr-over.open nav a{ font-size: clamp(1.5rem, 1.1rem + 2vw, 2rem); padding-block: 10px; }
.js .hdr-over.open .header-actions{ flex-direction: row; padding-top: 16px; }
.js .hdr-over.open .header-actions > *{ flex: 1 1 0; padding-inline: 12px; }
.js .hdr-over.open .menu-more{ display: flex; flex-wrap: wrap; gap: 4px 20px; padding-top: 16px; font-size: 0.9375rem; }
.hdr-over .menu-hours,.hdr-over .menu-email{ display: none; }
}
.actions{ display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.btn{
  display: inline-flex; align-items: center; gap: 10px; min-height: 54px; padding: 14px 26px;
  border-radius: var(--radius-btn); font: 650 1.0625rem/1.2 var(--font-body); text-decoration: none; border: 2px solid transparent; cursor: pointer;
  transition: transform 0.18s var(--ease), background-color 0.18s var(--ease), color 0.18s var(--ease);
}
.btn:hover{ transform: translateY(-2px); }
.btn:active{ transform: translateY(0) scale(0.98); }
.btn-fill{ background: var(--accent); color: var(--on-accent); }
.btn-line{ border-color: currentColor; color: inherit; background: transparent; }
.btn-line:hover{ background: currentColor; }
.btn-line:hover > *,.btn-line:hover{ color: var(--paper); }
.hero .btn-line:hover,.sec-field .btn-line:hover{ color: var(--primary); }
.sec{ padding-block: var(--sec-pad, clamp(80px, 11vw, 168px)); }
.sec + .sec:not(.sec-tone):not(.sec-field){ padding-top: 0; }
.sec-field{ padding-block: clamp(80px, 11vw, 160px); }
.field-primary{ background: var(--primary); color: var(--on-primary); }
.sec-head{ max-width: 46rem; margin-bottom: clamp(36px, 5vw, 64px); }
.sec-intro{ margin-top: 18px; font-size: 1.1875rem; max-width: 38em; }
.footnote{ font-size: 0.9375rem; color: var(--muted); margin-top: 24px; }
.hero-lead{ font-size: clamp(1.125rem, 1rem + 0.4vw, 1.3125rem); max-width: 34em; margin-top: 24px; }
.proofs{ display: flex; flex-wrap: wrap; gap: 6px 26px; margin: 28px 0 0; padding: 0; list-style: none; font-size: 0.9375rem; font-weight: 600; }
.proofs li::before{ content: '✓'; margin-right: 8px; color: var(--accent-text); }
.hero .w{ display: inline-block; }
.services{ margin: 0; padding: 0; list-style: none; display: grid; }
.service h3{ font: var(--display-weight) clamp(1.5rem, 1rem + 1.4vw, 2.3rem)/1.05 var(--font-display); letter-spacing: var(--display-tracking); }
.service h3 a{ text-decoration: none; }
.service p{ margin: 0; max-width: 34em; }
.prices{ margin: 0; display: grid; gap: 4px; }
.price{ display: flex; justify-content: space-between; gap: 20px; align-items: baseline; padding: 18px 20px; background: var(--surface); }
.price dt{ display: grid; }
.price dd{ margin: 0; font: var(--display-weight) 1.35rem/1.2 var(--font-display); white-space: nowrap; }
.steps{ margin: 0; padding: 0; list-style: none; display: grid; gap: 40px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); }
.step h3{ font: var(--display-weight) var(--t-item)/1.12 var(--font-display); letter-spacing: var(--display-tracking); margin-bottom: 10px; }
.step p{ margin: 0; }
.faq-grid{ display: grid; gap: 24px 64px; }
@media (min-width: 900px){.faq-grid{ grid-template-columns: 5fr 7fr; }
}
.faq{ display: grid; gap: 4px; }
.faq details{ background: var(--surface); padding: 0 24px; }
.faq summary{ cursor: pointer; list-style: none; padding: 22px 32px 22px 0; font-weight: 650; font-size: 1.125rem; position: relative; }
.faq summary::-webkit-details-marker{ display: none; }
.faq summary::after{ content: '+'; position: absolute; right: 0; top: 16px; font: 400 1.75rem/1 var(--font-body); transition: transform 0.25s var(--ease); }
.faq details[open] summary::after{ transform: rotate(45deg); }
.faq details p{ padding-bottom: 20px; margin: 0; }
@media (prefers-reduced-motion: no-preference){details{ interpolate-size: allow-keywords; }
details::details-content{ block-size: 0; overflow: clip; overflow-clip-margin: 4px; transition: block-size 0.28s var(--ease), content-visibility 0.28s allow-discrete; }
details[open]::details-content{ block-size: auto; }
@supports not (interpolate-size: allow-keywords){details[open] > :not(summary){ animation: rise 0.28s var(--ease) both; }
}
}
.form{ display: grid; gap: 18px; }
label{ display: grid; gap: 8px; font-weight: 600; }
input,select,textarea{
  font: 400 1.0625rem/1.4 var(--font-body); color: var(--ink); background: var(--paper);
  border: 2px solid color-mix(in srgb, var(--ink) 18%, var(--paper)); border-radius: var(--radius-btn); padding: 14px 16px; width: 100%;
}
textarea{ border-radius: min(var(--radius-btn), 24px); }
input:focus-visible,select:focus-visible,textarea:focus-visible{ border-color: var(--ink); outline-offset: 0; }
.form .btn{ justify-self: start; }
.form-consent{ grid-template-columns: auto 1fr; align-items: start; gap: 12px; font-weight: 500; font-size: 0.9375rem; }
.form-consent input{ width: 22px; height: 22px; margin: 1px 0 0; padding: 0; accent-color: var(--primary); }
.menu{ margin: 0; padding: 0; list-style: none; display: grid; gap: 22px; }
.lunch{ margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.lunch > li{ display: grid; gap: 6px 40px; padding: 24px; background: var(--paper); transition: background-color 0.3s var(--ease); }
@media (min-width: 760px){.lunch > li{ grid-template-columns: 220px 1fr; }
}
.lunch > li.today{ background: var(--accent); color: var(--on-accent); }
.lunch h3{ font: var(--display-weight) 1.6rem/1.1 var(--font-display); }
.lunch ul{ margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; font-size: 1.0625rem; }
.visit{ display: grid; gap: 48px; }
@media (min-width: 900px){.visit{ grid-template-columns: 5fr 7fr; align-items: start; }
}
.open-now:empty{ display: none; }
.open-now{ display: inline-flex; align-items: center; gap: 10px; font-weight: 650; font-size: 1.125rem; margin-bottom: 24px; }
.open-now::before{ content: ''; width: 10px; height: 10px; border-radius: 50%; background: color-mix(in srgb, var(--ink) 35%, var(--paper)); }
.open-now.is-open::before{ background: #1f9d55; animation: pulse 2.4s var(--ease) infinite; }
.hours{ border-collapse: collapse; width: 100%; max-width: 440px; }
.hours caption{ text-align: left; font-weight: 650; margin-bottom: 10px; }
.hours th,.hours td{ text-align: left; padding: 10px 0; border-bottom: 1px solid color-mix(in srgb, var(--ink) 12%, var(--paper)); }
.hours th{ font-weight: 500; }
.hours td{ text-align: right; font-variant-numeric: tabular-nums; }
.address{ margin-top: 28px; font: var(--display-weight) 1.5rem/1.2 var(--font-display); max-width: 18em; }
.contact{ display: grid; gap: 48px 72px; }
@media (min-width: 900px){.contact{ grid-template-columns: 5fr 6fr; align-items: start; }
}
.cta h2{ max-width: 16ch; }
:where(.cta){ container-type: inline-size; }
@container (min-width: 900px){:where(.cta) > .wrap{ display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 64px; align-items: end; }
:where(.cta > .wrap) > :where(:not(h2, p)){ grid-column: 2; grid-row: 1 / span 2; }
:where(.cta > .wrap) :where(.actions){ margin: 0; }
}
.cta p{ max-width: 34em; margin-top: 18px; font-size: 1.1875rem; }
.prose p{ max-width: 36em; font-size: 1.1875rem; }
.prose h2{ margin-bottom: 28px; }
.gallery-swipe{ display: flex; gap: clamp(12px, 2vw, 24px); overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; padding-bottom: 14px; scrollbar-width: thin; }
.gallery-swipe:focus-visible{ outline: 2px solid var(--primary-text); outline-offset: 6px; }
.ba{ position: relative; aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--radius-media); user-select: none; }
.ba img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ba::after{ content: ''; position: absolute; top: 0; bottom: 0; left: var(--pos); width: 3px; margin-left: -1.5px; background: var(--paper); pointer-events: none; }
.marked{ font-family: var(--font-accent); font-style: italic; font-weight: var(--accent-weight); letter-spacing: -0.01em; color: var(--accent-text); }
.sec-field .marked{ color: var(--accent-on-deep); }
.head-row{ display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 0 32px; margin-bottom: clamp(36px, 5vw, 64px); }
.head-row .sec-head{ margin-bottom: 0; }
.more{ font-weight: 650; text-decoration: none; color: var(--primary-text); white-space: nowrap; }
.more::after{ content: '→'; display: inline-block; margin-left: 6px; transition: transform 0.2s var(--ease); }
.more:hover::after{ transform: translateX(4px); }
.checks{ --tick: 1.375em; margin: 24px 0 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.checks li{ display: flex; align-items: flex-start; gap: 0.75em; }
.checks li::before{ content: ''; flex: none; width: var(--tick); height: var(--tick); margin-block: calc((1lh - var(--tick)) / 2); border-radius: 50%; background: var(--tint) var(--i-check) center / 58% no-repeat; }
.checks-panel{ --tick: 1.5rem; gap: 3px; margin-top: 32px; grid-template-columns: repeat(auto-fit, minmax(min(100%, max(14rem, 50% - 3px)), 1fr)); border-radius: var(--radius-media); overflow: hidden; }
.checks-panel li{ gap: 14px; padding: clamp(16px, 1.6vw, 20px) clamp(16px, 1.8vw, 22px); background: var(--surface); color: var(--ink); font-size: 1rem; font-weight: 500; line-height: 1.45; }
.checks-panel li:last-child:nth-child(odd){ grid-column: 1 / -1; }
.checks-panel li::before{ background-color: var(--primary); background-image: var(--i-check-on); background-size: 55%; }
:is(.sec-tone, .band-surface, .tio-card) .checks-panel li{ background: var(--paper); }
.price-cards{ margin: 0; padding: 0; list-style: none; display: grid; gap: clamp(8px, 1vw, 14px); grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); align-items: stretch; }
.price-cards:has(> :nth-child(6):last-child, > :nth-child(9):last-child){ grid-template-columns: repeat(auto-fill, minmax(max(min(100%, 250px), 30%), 1fr)); }
.price-card{ display: flex; flex-direction: column; padding: clamp(24px, 2.6vw, 32px); background: var(--surface); color: var(--ink); border-radius: var(--radius-media); }
:is(.sec-tone, .band-surface) .price-card{ background: var(--paper); }
.price-card.is-marked{ background: var(--primary); color: var(--on-primary); }
.pc-name{ display: flex; justify-content: space-between; align-items: center; gap: 12px; font: var(--display-weight) var(--t-item)/1.12 var(--font-display); letter-spacing: var(--display-tracking); }
.badge{ font: 650 0.8125rem/1 var(--font-body); letter-spacing: 0; padding: 6px 10px; border-radius: var(--radius-btn); border: 1px solid currentColor; }
.pc-note{ margin: 10px 0 0; font-size: 0.9375rem; color: var(--muted); }
.pc-amount{ margin-top: auto; }
.pc-price{ margin: 0; padding-top: 28px; font: var(--display-weight) 2rem/1 var(--font-display); letter-spacing: var(--display-tracking); white-space: nowrap; }
.pc-price-note{ margin: 8px 0 0; font-size: 0.875rem; color: var(--muted); }
.campaign .was{ display: inline-block; font: 500 0.9375rem/1.2 var(--font-body); letter-spacing: 0; white-space: nowrap; vertical-align: 0.15em; }
.campaign .was s{ text-decoration-thickness: 1.5px; }
.is-marked .pc-note,.is-marked .pc-price-note{ color: inherit; opacity: 0.85; }
.is-marked .checks li::before{ background-color: color-mix(in srgb, var(--on-primary) 16%, transparent); background-image: var(--i-check-on); }
.price-card .checks{ margin-top: 20px; font-size: 0.9375rem; gap: 8px; }
.pc-btn{ margin-top: 24px; justify-content: center; min-height: 48px; padding-block: 10px; font-size: 1rem; }
.is-marked .pc-btn{ background: var(--paper); color: var(--ink); }
.sec-stats{ padding-block: clamp(48px, 6vw, 88px); }
.stats{ margin: 0; padding: 0; list-style: none; display: grid; gap: clamp(8px, 1vw, 14px); grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.stat{ padding: clamp(24px, 3vw, 40px) clamp(20px, 3vw, 36px); background: var(--surface); color: var(--ink); border-radius: var(--radius-media); }
:is(.sec-tone, .band-surface) .stat{ background: var(--paper); }
.stat-value{ font-variant-numeric: tabular-nums; margin: 0 0 12px; font: var(--display-weight) clamp(2.4rem, 1.6rem + 2.4vw, 3.4rem)/1 var(--font-display); letter-spacing: var(--display-tracking); color: var(--primary-text); }
.stat-label{ margin: 0; max-width: 22em; }
.ti{ display: grid; gap: 40px 72px; align-items: center; }
@media (min-width: 900px){.ti{ grid-template-columns: 1fr 1fr; }
.ti-left .ti-pic,.ti-left > picture{ order: -1; }
}
.ti h2{ margin-bottom: 28px; }
.ti-text > p{ max-width: 36em; }
.ti-text > .ti-note{ font-size: 0.9375rem; color: var(--muted); }
.ti-pic{ width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius-media); }
.team{ margin: 0; padding: 0; list-style: none; display: grid; gap: 48px; }
.person{ display: grid; gap: 24px 48px; align-items: start; }
@media (min-width: 760px){.person.has-pic{ grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
.team:has(.has-pic) .person:not(.has-pic){ grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
.team:has(.has-pic) .person:not(.has-pic) > div{ grid-column: 2; }
}
.person-pic{ width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius-media); }
.person h3{ font: var(--display-weight) clamp(1.6rem, 1rem + 1.4vw, 2.4rem)/1.05 var(--font-display); letter-spacing: var(--display-tracking); }
.person-role{ font-weight: 650; color: var(--primary-text); margin: 6px 0 20px; }
.person p:not(.person-role){ max-width: 36em; }
.tags{ margin: 20px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.tags li,.tag{ font-size: 0.8125rem; font-weight: 650; padding: 5px 12px; border-radius: var(--radius-btn); background: var(--surface); }
.video{ position: relative; display: grid; place-items: center; aspect-ratio: 16 / 9; width: 100%; overflow: hidden; border: 0; border-radius: var(--radius-media); background: var(--deep); color: var(--on-deep); text-decoration: none; }
.offers{ margin: 0; padding: 0; list-style: none; display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.offer{ display: grid; grid-template-rows: auto 1fr; overflow: hidden; background: var(--surface); color: var(--ink); border-radius: var(--radius-media); }
:is(.sec-tone, .band-surface) .offer{ background: var(--paper); }
.offer-pic{ width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.offer-body{ display: grid; grid-template-rows: auto auto 1fr auto; padding: 22px 24px 24px; }
.offer-meta{ display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 14px; font-size: 0.875rem; color: var(--muted); }
.offer :is(h2, h3){ font: var(--display-weight) var(--t-item)/1.12 var(--font-display); letter-spacing: var(--display-tracking); margin-bottom: 10px; }
.post-related .offers{ grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.offer :is(h2, h3) a{ color: inherit; text-decoration-line: none; }
.offer :is(h2, h3) a:hover,.offer :is(h2, h3) a:focus-visible{ text-decoration-line: underline; }
.offer-body > p:not(.offer-meta):not(.offer-foot){ font-size: 1rem; }
.offer-foot{ display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 8px 0 0; padding-top: 16px; }
.offer-price{ font: var(--display-weight) 1.35rem/1 var(--font-display); font-variant-numeric: lining-nums; }
.site-footer{ background: var(--ink); color: var(--paper); padding-top: 64px; font-size: 0.9375rem; overflow: hidden; }
.site-footer p{ margin: 0 0 4px; }
.site-footer ul{ margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.footer-name{
  font: var(--display-weight) min(16rem, calc(150vw / var(--len, 12)))/0.8 var(--font-display);
  letter-spacing: -0.045em; white-space: nowrap; margin: 48px 0 0 !important; padding-inline: clamp(12px, 2vw, 24px); color: var(--primary);
  filter: brightness(1.6) saturate(0.9);
}
.site-footer .footer-socials{ display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.footer-socials a{ display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--radius-btn); background: color-mix(in srgb, var(--paper) 12%, transparent); color: inherit; transition: background-color 0.2s var(--ease), transform 0.2s var(--ease); }
.footer-socials a:hover{ background: color-mix(in srgb, var(--paper) 22%, transparent); transform: translateY(-2px); }
.sec-field,.site-footer,.lunch > li.today{ position: relative; isolation: isolate; }
.sec-field::before,.site-footer::before{
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url(grain.jpg) 0 0 / 360px; mix-blend-mode: soft-light; opacity: 0.6;
}
.steps-live .step{ opacity: 0.38; transition: opacity 0.5s var(--ease); }
.steps-live .step.lit{ opacity: 1; }
:root{ --ease: cubic-bezier(0.2, 0.7, 0.1, 1); }
.ready [data-r]:not(.in){ opacity: 0; transform: translateY(28px); }
.ready [data-r]{ transition: opacity 0.7s var(--ease), transform 0.9s var(--ease); transition-delay: calc(var(--i, 0) * 80ms); }
.hero-h .w{ animation: rise 0.9s var(--ease) both; animation-delay: calc(80ms + var(--i) * 70ms); }
.hero-lead,.hero .actions,.proofs{ animation: rise 0.9s var(--ease) both 0.45s; }
.ready [data-wipe]{ transition: clip-path 1.1s var(--ease), transform 1.6s var(--ease); }
.ready [data-wipe]:not(.in){ clip-path: inset(100% 0 0 0); transform: scale(1.08); }
.ready [data-wipe].in{ clip-path: inset(0 0 0 0); }
@keyframes rise{ from { opacity: 0; transform: translateY(0.45em); } }
@keyframes settle{ from { transform: scale(1.08); } }
@keyframes marquee{ to { transform: translateX(-50%); } }
@keyframes pulse{ 50% { opacity: 0.35; } }
@media (prefers-reduced-motion: no-preference){@view-transition{ navigation: auto; }
.site-header{ view-transition-name: site-header; }
::view-transition-old(demo-bar),::view-transition-new(demo-bar),::view-transition-old(site-header),::view-transition-new(site-header){ animation: none; }
::view-transition-old(root){ animation: 140ms ease-in both vt-out; }
::view-transition-new(root){ animation: 320ms var(--ease) 140ms both vt-in; }
}
@keyframes vt-out{ to { opacity: 0; } }
@keyframes vt-in{ from { opacity: 0; transform: translateY(14px); } }
@media (prefers-reduced-motion: reduce){*,*::before,*::after{ animation: none !important; transition: none !important; }
.ready [data-r]:not(.in){ opacity: 1; transform: none; }
.ready [data-wipe]:not(.in){ clip-path: none; transform: none; }
}
.post-date{ margin: 0 0 8px; font-size: 0.9375rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.post-summary{ margin: 0; max-width: 36em; }
.blog-page{ padding-block: clamp(48px, 7vw, 104px) clamp(80px, 10vw, 144px); }
.post{ font-size: clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem); }
.post-col{ width: min(65ch, 100% - 2 * clamp(20px, 4vw, 48px)); margin-inline: auto; }
.post-h{ font-size: clamp(2.2rem, 1rem + 3.4vw, 3.6rem); line-height: 1.04; }
.post-meta{ margin: 20px 0 0; color: var(--muted); font-size: 0.9375rem; }
.post-figure{ width: min(1040px, 100% - 2 * clamp(20px, 4vw, 48px)); margin: clamp(32px, 5vw, 56px) auto 0; }
.post-figure img{ width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-media); }
.post-body{ margin-top: clamp(36px, 5vw, 56px); line-height: 1.68; }
.post-body > *{ margin: 0 0 1.15em; }
.post .post-body h2{ font-size: clamp(1.5rem, 1rem + 1vw, 1.9rem); line-height: 1.15; margin: 2em 0 0.6em; }
.post-body h3{ font-size: 1.2em; margin: 1.6em 0 0.4em; }
.post-body > :first-child{ margin-top: 0; }
.post-body ul,.post-body ol{ padding-left: 1.3em; }
.post-body li + li{ margin-top: 0.35em; }
.post-body li::marker{ color: var(--accent-text); }
.post-body blockquote{ margin-inline: 0; padding-left: 1.1em; border-left: 3px solid var(--accent); font: var(--display-weight) 1.25em/1.35 var(--font-display); letter-spacing: var(--display-tracking); }
.post-body blockquote p{ margin: 0; }
.post-body a{ color: var(--primary-text); }
.rich{ max-width: 36em; font-size: 1.125rem; line-height: 1.65; }
.rich > *{ margin: 0 0 1em; }
.rich > :last-child{ margin-bottom: 0; }
.rich h3{ margin: 1.8em 0 0.5em; font: var(--display-weight) var(--t-item)/1.15 var(--font-display); letter-spacing: var(--display-tracking); }
.rich h4{ margin: 1.5em 0 0.4em; font-size: 1.0625em; font-weight: 700; }
.rich > :first-child{ margin-top: 0; }
.rich ul,.rich ol{ padding-left: 1.3em; }
.rich li + li{ margin-top: 0.35em; }
.rich li::marker{ color: var(--accent-text); }
.rich blockquote{ margin-inline: 0; padding-left: 1.1em; border-left: 3px solid var(--accent); font: var(--display-weight) 1.2em/1.35 var(--font-display); letter-spacing: var(--display-tracking); }
.rich a{ color: var(--primary-text); }
.blog-page .post-more-h{ font-size: clamp(1.6rem, 1rem + 1.6vw, 2.4rem); margin-bottom: 32px; }
picture{ display: contents; }
source{ display: none; }
img{ height: auto; }
.announce{ background: var(--accent); color: var(--on-accent); text-align: center; padding: 10px 20px; font-size: 0.9375rem; font-weight: 600; }
.announce p{ margin: 0; }
.announce a{ font-weight: 750; }
.page-header{ background: var(--surface); color: var(--ink); padding-block: clamp(44px, 6vw, 104px); }
.page-h{ font-size: clamp(2.3rem, 1rem + 3.6vw, 4.2rem); line-height: 1.03; max-width: 20ch; }
.page-eyebrow{ margin: 0 0 14px; font-size: 1.0625rem; font-weight: 650; }
.page-intro{ margin: 20px 0 0; font-size: 1.1875rem; max-width: 38em; }
.crumbs ol{ display: flex; flex-wrap: wrap; margin: 0 0 22px; padding: 0; list-style: none; font-size: 0.9375rem; }
.crumb-sep{ margin-inline: 10px; }
.crumbs a{ font-weight: 650; }
.stars{ display: inline-flex; gap: 0.08em; vertical-align: -0.1em; color: var(--accent-text); }
.stars .star{ width: 1em; height: 1em; fill: currentColor; }
.stars .off{ opacity: 0.3; }
.review{ break-inside: avoid; margin-bottom: 16px; padding: clamp(24px, 2.4vw, 32px); background: var(--surface); color: var(--ink); border-radius: var(--radius-media); }
:is(.sec-tone, .band-surface) .review{ background: var(--paper); }
.review figure{ margin: 0; }
.review blockquote{ margin: 0 0 20px; font-size: 1.125rem; }
.review figcaption{ display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: 0.9375rem; }
@media (max-width: 899px){html:not(:has(.call-first-static)) .call-first{ position: fixed; z-index: 15; inset: auto 0 0; padding-bottom: env(safe-area-inset-bottom); box-shadow: 0 -2px 12px rgb(0 0 0 / 0.18); }
html:not(:has(.call-first-static)):has(.call-first) .site-footer{ padding-bottom: 72px; }
html:not(:has(.call-first-static)):has(.call-first) .chat{ bottom: 76px; }
}
.map{ aspect-ratio: 4 / 3; overflow: hidden; background: var(--surface); color: var(--ink); border-radius: var(--radius-media); }
.map-frame{ display: block; width: 100%; height: 100%; border: 0; }
.listing{ margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.listing li{ padding: clamp(20px, 2.4vw, 28px) clamp(20px, 2.4vw, 32px); background: var(--surface); color: var(--ink); }
:is(.sec-tone, .band-surface) .listing li{ background: var(--paper); }
.listing h3{ margin: 0 0 8px; font: var(--display-weight) var(--t-item)/1.12 var(--font-display); letter-spacing: var(--display-tracking); }
.listing p{ margin: 0 0 8px; max-width: 40em; }
.listing + .actions{ margin-top: 24px; }
.hp{ position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form-status:empty{ display: none; }
.form-status,.form-msg{ margin: 0; padding: 14px 16px; background: var(--surface); color: var(--ink); border-left: 4px solid var(--accent); }
.form-status.form-bad,.form-err{ border-left-color: var(--ink); }
.form-msg{ display: none; }
.form-msg:target{ display: block; }
.form-check:empty{ display: none; }
.booking{ min-height: 420px; overflow: hidden; background: var(--surface); color: var(--ink); border-radius: var(--radius-media); }
.booking-frame{ display: block; width: 100%; height: 720px; border: 0; }
.btn .icon,.btn svg{ flex: none; }
.swish{ padding: clamp(24px, 2.6vw, 32px); background: var(--surface); color: var(--ink); border-radius: var(--radius-media); }
.swish h3{ font: var(--display-weight) 1.35rem/1.2 var(--font-display); margin: 0 0 10px; }
.swish p{ margin: 0 0 8px; }
.qr{ display: block; width: 200px; max-width: 100%; height: auto; margin: 16px 0; }
.course,.course-top{ container-type: inline-size; background: var(--paper); }
.course-aside-note{ margin: 16px 0 0; font-size: 0.875rem; color: var(--muted); }
.course-top{ background: var(--surface); color: var(--ink); padding-block: clamp(44px, 6vw, 96px); }
.course-head{ display: grid; gap: clamp(28px, 4vw, 56px); align-items: center; }
.course-meta{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 0 0 20px; font-size: 0.9375rem; font-weight: 600; }
.course-meta > span:not(.tag){ display: inline-flex; align-items: center; gap: 6px; }
.course-top .tag{ background: var(--paper); }
.course-h{ font-size: clamp(2.3rem, 1rem + 3.6vw, 4.2rem); line-height: 1.03; max-width: 18ch; }
.course-summary{ margin: 20px 0 0; font-size: 1.1875rem; max-width: 36em; }
.course-pic{ width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-media); }
.course-grid{ display: grid; gap: clamp(32px, 4vw, 56px); padding-block: clamp(56px, 8vw, 120px); }
.course-main{ display: grid; gap: clamp(28px, 3vw, 40px); align-content: start; min-width: 0; }
.course-tile{ padding: clamp(24px, 2.6vw, 32px); background: var(--surface); color: var(--ink); border-radius: var(--radius-media); }
.course :is(.course-tile, .rich) :is(h2, h3){ font: var(--display-weight) var(--t-item)/1.12 var(--font-display); letter-spacing: var(--display-tracking); }
.course .course-tile :is(h2, h3){ margin: 0; }
.course .rich :is(h2, h3){ margin: 1.8em 0 0.5em; }
.course .rich > :first-child{ margin-top: 0; }
.course-tile .checks{ margin-top: 18px; }
.course-facts{ display: grid; gap: 14px; margin: 18px 0 0; }
.course-facts dt{ font-weight: 700; }
.course-facts dd{ margin: 2px 0 0; max-width: 40em; }
.course-box{ padding: clamp(24px, 2.6vw, 32px); background: var(--surface); color: var(--ink); border-radius: var(--radius-media); }
.course-box-label{ margin: 0; font-size: 0.9375rem; font-weight: 650; }
.course-price{ margin: 6px 0 0; font: var(--display-weight) clamp(2rem, 1.5rem + 1.4vw, 2.6rem)/1.1 var(--font-display); letter-spacing: var(--display-tracking); font-variant-numeric: lining-nums; }
.course-price .price-unit{ font: 500 0.9375rem/1.2 var(--font-body); letter-spacing: 0; }
.course-price .was{ display: block; margin-top: 8px; }
.course-book{ display: flex; justify-content: center; width: 100%; margin-top: 24px; }
.course-ways{ margin: 28px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; font-size: 0.9375rem; font-weight: 650; }
.course-ways a{ display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.course-ways a:hover{ color: var(--primary-text); }
.course-ways .icon{ flex: none; color: var(--primary-text); }
@container (min-width: 860px){.course-head:not(.is-solo){ grid-template-columns: 1.1fr 0.9fr; }
.course-grid{ grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); }
.course-aside{ position: sticky; top: 32px; align-self: start; }
}
.links{ margin: 0; padding: 0; list-style: none; display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.link-card{ position: relative; display: grid; grid-template-rows: auto 1fr; overflow: hidden; background: var(--surface); color: var(--ink); border-radius: var(--radius-media); transition: transform 0.2s var(--ease); }
:is(.sec-tone, .band-surface) .link-card{ background: var(--paper); }
.link-card:hover{ transform: translateY(-3px); }
.link-pic{ width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.link-body{ display: grid; grid-template-rows: auto 1fr auto; padding: 22px 24px 24px; }
.link-meta{ margin: 0 0 12px; font-size: 0.9375rem; font-weight: 650; color: var(--primary-text); }
.link-card h3{ margin: 0; font: var(--display-weight) var(--t-item)/1.15 var(--font-display); letter-spacing: var(--display-tracking); }
.link-card h3 a{ color: inherit; text-decoration: none; }
.link-card h3 a::after{ content: ''; position: absolute; inset: 0; border-radius: inherit; }
.link-card h3 a:focus-visible{ outline: none; }
.link-card:has(a:focus-visible){ outline: 3px solid var(--primary-text); outline-offset: 3px; }
.link-date{ margin: 18px 0 0; font-size: 0.9375rem; }
.links-follow{ display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: clamp(28px, 4vw, 44px); }
.links-follow > p{ margin: 0; font-weight: 700; }
.follow-socials{ display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.follow-socials a{ display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px 0 14px; border-radius: var(--radius-btn); background: var(--surface); color: var(--ink); font-weight: 650; text-decoration: none; transition: transform 0.2s var(--ease); }
:is(.sec-tone, .band-surface) .follow-socials a{ background: var(--paper); }
.follow-socials a:hover{ transform: translateY(-2px); }
.eyebrow{ margin: 0 0 14px; font-size: 0.9375rem; font-weight: 650; color: var(--primary-text); }
.sec-field .eyebrow,.hero-v-photo.has-pic .eyebrow{ color: inherit; opacity: 0.86; }
.band-white{ background: var(--card); }
.band-surface{ background: var(--surface); }
.band > .sec{ background: none; }
.band + .sec:not(.sec-tone):not(.sec-field){ padding-top: var(--sec-pad, clamp(80px, 11vw, 168px)); }
.tag-signal{ background: color-mix(in srgb, var(--signal) 12%, var(--card)); color: var(--signal-text); }
.f-req{ margin-left: 2px; color: var(--signal-text); }
.f-opt{ font-weight: 400; color: var(--muted); }
.f-hint{ margin: -8px 0 0; font-size: 0.875rem; color: var(--muted); }
.f-consent-note{ margin-top: -10px; padding-left: 34px; }
.f-hint a{ color: var(--primary-text); font-weight: 650; }
.form-send{ display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.form-send p{ margin: 0; font-size: 0.875rem; color: var(--muted); }
@media (min-width: 640px){.form-split{ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 20px; }
.form-split > *{ grid-column: 1 / -1; }
.form-split > .f-half{ grid-column: auto; }
}
.site-header.hdr-row{ position: sticky; top: 0; --hdr-h: 80px; transition: background-color 0.3s var(--ease), box-shadow 0.3s var(--ease); }
.hdr-row.solid:not(.open){ background: color-mix(in srgb, var(--paper) 88%, transparent); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); box-shadow: 0 1px 0 var(--line), 0 10px 30px -20px rgb(0 0 0 / 0.25); }
html:has(.hdr-row){ scroll-padding-top: 96px; }
.hdr-row .header-row{ gap: 12px clamp(20px, 2.4vw, 40px); }
.hdr-row nav a{ font-size: 0.9375rem; font-weight: 600; }
.hdr-row .header-actions{ gap: 20px; }
.hdr-row .header-phone{ display: inline-flex; align-items: center; gap: 8px; font-size: 0.9375rem; font-weight: 600; }
.hdr-row .header-phone .icon{ box-sizing: content-box; padding: 8px; border-radius: 50%; background: var(--tint); color: var(--primary-text); }
.hdr-row .header-cta{ min-height: 44px; padding: 10px 20px; font-size: 0.9375rem; }
@media (min-width: 1200px){.hdr-row:not(.open) .header-langs{ display: none; }
}
@media (max-width: 1199px){.hdr-row .header-call{ min-width: 48px; padding: 0; background: var(--tint); color: var(--primary-text); }
.hdr-row .call-word{ display: none; }
.hdr-row .menu-toggle{ margin-right: 0; border: 1px solid var(--edge); background: var(--card); }
.js .hdr-row.open .header-menu{ inset: var(--menu-top, 0px) 0 0; padding: 12px var(--gutter) 32px; animation: fade 0.3s var(--ease) both; }
.js .hdr-row.open nav li{ border-bottom: 1px solid var(--edge); }
.js .hdr-row.open nav a{ display: flex; width: auto; min-height: 64px; align-items: center; font-size: 1.75rem; padding-block: 8px; }
.js .hdr-row.open nav a::after{ display: none; }
.js .hdr-row.open .header-actions{ order: 2; margin-top: auto; }
.js .hdr-row.open .menu-more{ display: none; }
}
.footer-cols{ padding-top: clamp(56px, 7vw, 80px); }
.fc-grid{ display: grid; gap: 40px; }
@media (min-width: 640px){.fc-grid{ grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1024px){.fc-grid{ grid-template-columns: 1.4fr 1fr 1fr 1.2fr; }
}
.fc-brand{ display: inline-flex; align-items: center; gap: 12px; margin-bottom: 18px; font-weight: 700; font-size: 1rem; text-decoration: none; color: inherit; }
.fc-mark{ width: 40px; height: 40px; border-radius: 50%; }
.fc-about p{ max-width: 20rem; font-size: 0.875rem; line-height: 1.6; opacity: 0.85; }
.site-footer .fc-col h2{ margin: 0 0 14px; font: 700 0.75rem/1.4 var(--font-body); letter-spacing: 0.16em; text-transform: uppercase; opacity: 0.8; }
.fc-col ul{ gap: 10px; font-size: 0.875rem; }
.fc-col a{ text-decoration: none; }
.fc-col a:hover{ text-decoration: underline; }
.fc-contact address{ display: grid; gap: 12px; font-style: normal; font-size: 0.875rem; }
.site-footer .fc-contact address p{ display: flex; gap: 10px; align-items: flex-start; margin: 0; }
.fc-contact .icon{ flex: none; margin-top: 2px; opacity: 0.75; }
.fc-hours{ display: grid; gap: 4px; margin: 16px 0 0; font-size: 0.875rem; }
.fc-hours div{ display: flex; justify-content: space-between; gap: 16px; }
.fc-hours dt{ white-space: nowrap; opacity: 0.85; }
.fc-hours dd{ margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.site-footer .fc-org{ margin-top: 16px; font-size: 0.75rem; opacity: 0.8; }
.footer-cols .footer-name{ margin-bottom: -0.12em !important; text-align: center; }
.fc-bar{ border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent); }
.fc-bar .wrap{ display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 32px; padding-block: 24px; font-size: 0.75rem; }
.site-footer .fc-bar p{ margin: 0; opacity: 0.85; }
.site-footer .fc-legal{ display: flex; flex-wrap: wrap; gap: 8px 20px; }
.fc-legal a{ text-decoration: none; opacity: 0.85; }
.fc-legal a:hover{ text-decoration: underline; opacity: 1; }
.site-footer.footer-cols .footer-langs ul{ display: flex; gap: 4px; }
.footer-cols .footer-langs a{ min-height: 36px; padding-inline: 14px; border-radius: 999px; font-size: 0.75rem; letter-spacing: 0; text-decoration: none; }
.footer-cols .footer-langs a[aria-current]{ background: color-mix(in srgb, currentColor 14%, transparent); }
.blog-page.blog-cards{ padding-block: 0; }
.blog-cards .post{ padding-bottom: clamp(64px, 8vw, 112px); }
.post-cards{ margin: 0; padding: 0; list-style: none; display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.post-card{ position: relative; display: grid; grid-template-rows: auto 1fr; overflow: hidden; background: var(--surface); color: var(--ink); border-radius: var(--radius-media); }
.post-card-pic{ width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.post-card-body{ display: grid; grid-template-rows: auto auto 1fr auto; gap: 8px; padding: 22px 24px 24px; }
.post-card .post-date{ margin: 0; font-size: 0.8125rem; }
.post-card .post-card-title{ margin: 0; font: var(--display-weight) 1.125rem/1.35 var(--font-display); letter-spacing: var(--display-tracking); }
.post-card .post-summary{ margin: 0 0 8px; font-size: 0.875rem; line-height: 1.6; color: var(--muted); }
.post-card .more{ justify-self: start; font-size: 0.875rem; }
.post-card .post-card-title a{ color: inherit; text-decoration: none; }
.post-card .post-card-title a::before{ content: ''; position: absolute; inset: 0; border-radius: inherit; }
.post-card:has(a:focus-visible){ outline: 3px solid var(--primary-text); outline-offset: 3px; }
.post-card a:focus-visible{ outline: none; }
.post-header .post-h{ max-width: 22ch; }
.post-header .post-meta{ margin-top: 16px; font-size: 0.875rem; }
.blog-cards .post-figure{ width: min(1184px, 100% - 2 * clamp(20px, 4vw, 32px)); margin-top: 24px; }
.blog-cards .post-col{ width: min(800px, 100% - 2 * clamp(20px, 4vw, 32px)); }
.flow > :is(.sec, .sec-field){ padding-top: calc(var(--sec-pad, clamp(80px, 11vw, 168px)) * 0.25); }
:is(.sec, .flow, .band):has(+ .flow),:is(.flow, .band):has(+ .flow) > :is(.sec, .sec-field){ padding-bottom: calc(var(--sec-pad, clamp(80px, 11vw, 168px)) * 0.25); }
.flow :is(.sec-head h2, .prose h2, .ti h2, .faq-grid h2){ font-size: clamp(1.5rem, 1.25rem + 1vw, 2.125rem); line-height: 1.15; }
.flow .sec-head,.flow .head-row{ margin-bottom: clamp(20px, 2.4vw, 28px); }
.flow .wrap.narrow.prose{ width: min(1280px, 100% - 2 * clamp(20px, 4vw, 48px)); }
.flow .wrap.narrow.prose > *{ max-width: 48rem; }
.flow .prose h2{ margin-bottom: 16px; }
.flow .ti-pic{ aspect-ratio: 4 / 3; }
.head-small :is(.sec-head h2, .faq-grid h2){ font-size: clamp(1.5rem, 1.25rem + 1vw, 2.125rem); line-height: 1.15; }
.head-small .sec-intro{ margin-top: 8px; font-size: 0.9375rem; }
.head-small .sec-head,.head-small .head-row{ margin-bottom: clamp(20px, 2.4vw, 32px); }
.lightbox{
  --lb-fg: #f3efe7; position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0;
  background: #0d0d0c; color: var(--lb-fg); opacity: 0;
  transition: opacity 0.26s var(--ease), display 0.26s allow-discrete, overlay 0.26s allow-discrete;
}
.lightbox[open]{ opacity: 1; display: grid; grid-template: 'top top top' auto 'prev stage next' 1fr 'cap cap cap' auto / 72px 1fr 72px; }
@starting-style{ .lightbox[open] { opacity: 0; } }
.lightbox::backdrop{ background: #0d0d0c; }
.lb-stage{ grid-area: stage; margin: 0; min-height: 0; display: grid; place-items: center; padding: 8px; touch-action: pan-y; transition: transform 0.32s var(--ease); }
@starting-style{ .lightbox[open] .lb-stage { transform: scale(0.96); } }
.lb-stage picture{ display: contents; }
.lb-stage img{ max-width: 100%; max-height: calc(100svh - 150px); width: auto; height: auto; object-fit: contain; user-select: none; -webkit-user-drag: none; }
.lb-cap{ grid-area: cap; margin: 0; padding: 4px 24px 22px; max-width: 70ch; justify-self: center; text-align: center; font-size: 0.9375rem; color: color-mix(in srgb, var(--lb-fg) 82%, transparent); }
.lb-count{ grid-area: top; margin: 0; padding: 22px 24px 0; font-size: 0.9375rem; font-variant-numeric: tabular-nums; }
.lb-btn{ display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; transition: background 0.2s var(--ease), transform 0.2s var(--ease); }
.lb-btn:hover{ background: rgb(255 255 255 / 0.12); }
.lb-btn:active{ transform: scale(0.94); }
.lb-btn:focus-visible{ outline: 3px solid var(--lb-fg); outline-offset: 2px; }
.lb-prev{ grid-area: prev; align-self: center; justify-self: center; }
.lb-next{ grid-area: next; align-self: center; justify-self: center; }
.lb-close{ position: absolute; top: 12px; right: 12px; }
.lb-one .lb-prev,.lb-one .lb-next{ visibility: hidden; }
@media (max-width: 640px){.lightbox[open]{ grid-template: 'top top' auto 'stage stage' 1fr 'prev next' auto 'cap cap' auto / 1fr 1fr; }
.lb-stage{ padding: 0; }
.lb-stage img{ max-height: calc(100svh - 200px); }
}
@media (prefers-reduced-motion: reduce){.lightbox,.lb-stage{ transition: none; }
}
.dir-bands{
  --sec-pad: clamp(4.5rem, 3rem + 5.5vw, 8rem); --display-weight: 650; --card-r: 1.5rem; --media-r: 1.75rem;
  --deeper: var(--brand-950); --edge: var(--sand-200); --muted: var(--ink-muted); --tint: var(--brand-50); --tint-strong: var(--brand-200);
  --ease-x: cubic-bezier(0.16, 1, 0.3, 1);
  --shadow-soft: 0 1px 2px rgb(16 31 28 / 0.04), 0 12px 32px -12px rgb(16 31 28 / 0.12);
  --shadow-lift: 0 2px 4px rgb(16 31 28 / 0.04), 0 24px 48px -20px rgb(16 31 28 / 0.22);
  --shadow-float: 0 1px 1px rgb(16 31 28 / 0.04), 0 8px 16px -8px rgb(16 31 28 / 0.12), 0 32px 64px -24px rgb(16 31 28 / 0.28);
  font-size: 1rem; line-height: 1.5; font-feature-settings: 'ss01', 'cv11'; font-synthesis-weight: none;
  text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
.dir-bands *{ font-feature-settings: inherit !important; }
.dir-bands p{ margin: 0; }
.dir-bands :is(p, li, dd){ text-wrap: pretty; }
.dir-bands .wrap{ width: min(1184px, 100% - 40px); }
@media (min-width: 640px){.dir-bands .wrap{ width: min(1184px, 100% - 64px); }
}
.dir-bands :is(h1, h2, h3, h4){ margin: 0; font-family: var(--font-display); font-weight: 650; letter-spacing: -0.022em; line-height: inherit; text-wrap: balance; }
.dir-bands :is(h1, h2){ letter-spacing: -0.035em; }
.dir-bands h2{ font-size: clamp(2rem, 1.5rem + 2.1vw, 3.25rem); line-height: 1.08; }
.dir-bands .marked{ font-size: 1.1em; letter-spacing: -0.01em; color: var(--brand-600); }
.dir-bands :is(.hero-v-photo.has-pic, .sec-field, .cta, .photo-card) .marked{ color: var(--brand-200); }
.dir-bands :focus-visible{ outline: 3px solid var(--brand-600); outline-offset: 3px; border-radius: 4px; }
.dir-bands ::selection{ background: var(--brand-200); color: var(--brand-950); }
.dir-bands .sec + .sec:not(.sec-field){ padding-top: var(--sec-pad); }
.dir-bands .sec-head{ display: flex; flex-direction: column; align-items: flex-start; gap: 16px; max-width: 42rem; margin-bottom: 48px; }
.dir-bands .head-row{ display: flex; flex-direction: column; justify-content: space-between; gap: 24px; margin-bottom: 48px; }
@media (min-width: 768px){.dir-bands .head-row{ flex-direction: row; align-items: flex-end; }
}
.dir-bands .head-row .sec-head{ margin-bottom: 0; }
.dir-bands .sec-intro{ max-width: 36rem; margin: 0; font-size: 1.0625rem; line-height: 1.625; color: var(--ink-muted); }
@media (min-width: 640px){.dir-bands .sec-intro{ font-size: 1.125rem; }
}
.dir-bands .eyebrow{ display: inline-flex; align-items: center; gap: 12px; margin: 0; font-size: 0.75rem; line-height: 1.5; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--brand-700); }
.dir-bands .eyebrow::before{ content: ''; width: 28px; height: 1.5px; border-radius: 2px; background: currentColor; opacity: 0.55; }
.dir-bands :is(.sec-field, .hero-v-photo.has-pic, .cta) .eyebrow{ color: var(--brand-200); opacity: 1; }
.dir-bands{ --m-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E"); --m-out: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7'/%3E%3Cpath d='M8.5 7H17v8.5'/%3E%3C/svg%3E"); --m-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4.5 12.5 5 5 10-11'/%3E%3C/svg%3E"); }
.dir-bands .btn{ justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px; border: 0; font: 600 0.9375rem/1.5 var(--font-body); white-space: nowrap; transition: background-color 0.2s var(--ease-x), border-color 0.2s var(--ease-x), color 0.2s var(--ease-x), box-shadow 0.2s var(--ease-x), transform 0.2s var(--ease-x); }
.dir-bands .btn:hover{ transform: translateY(-1px); }
.dir-bands .btn:active{ transform: scale(0.97); }
.dir-bands .btn-fill{ background: var(--brand-700); color: #fff; box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.14), 0 1px 2px rgb(0 0 0 / 0.1), 0 8px 20px -10px var(--brand-800); }
.dir-bands .btn-fill:hover{ background: var(--brand-800); }
.dir-bands .btn-line{ border: 1px solid var(--sand-300); background: #fff; color: var(--ink); }
.dir-bands .btn-line:hover,.dir-bands .btn-line:hover > *{ transform: none; border-color: var(--brand-300); background: var(--brand-50); color: var(--brand-900); }
.dir-bands a.btn-fill::after{ content: ''; flex: none; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--m-arrow) center / contain no-repeat; mask: var(--m-arrow) center / contain no-repeat; transition: transform 0.3s var(--ease-x); }
.dir-bands a.btn-fill[href^='http']::after{ -webkit-mask-image: var(--m-out); mask-image: var(--m-out); }
.dir-bands a.btn-fill:hover::after{ transform: translateX(4px); }
.dir-bands a.btn-fill[href^='http']:hover::after{ transform: translate(2px, -2px); }
.dir-bands .actions{ gap: 12px; margin-top: 32px; }
.dir-bands .head-row > .more{ display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; min-height: 44px; font-size: 0.9375rem; line-height: 1.5; font-weight: 600; color: var(--brand-800); }
.dir-bands :is(.head-row > .more, .offer .more) > span{ background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; transition: background-size 0.28s var(--ease-x); }
.dir-bands :is(.head-row > .more:hover, .offer:hover .more) > span{ background-size: 100% 1.5px; }
@media (min-width: 768px){.dir-bands .head-row > .more{ align-self: auto; }
}
.dir-bands .head-row > .more::after{ content: ''; flex: none; width: 16px; height: 16px; margin: 0; background: currentColor; -webkit-mask: var(--m-arrow) center / contain no-repeat; mask: var(--m-arrow) center / contain no-repeat; transition: transform 0.3s var(--ease-x); }
.dir-bands .head-row > .more:hover::after{ transform: translateX(4px); }
.dir-bands .tag,.dir-bands .tags li{ display: inline-flex; align-items: center; padding: 4px 12px; border-radius: 999px; font-size: 0.75rem; line-height: 1rem; font-weight: 600; letter-spacing: 0.025em; background: var(--brand-50); color: var(--brand-800); box-shadow: inset 0 0 0 1px var(--brand-200); }
.dir-bands .tag-signal{ background: color-mix(in srgb, var(--clay-500) 10%, transparent); color: var(--clay-600); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--clay-500) 25%, transparent); }
.dir-bands .stars{ color: var(--clay-500); }
.dir-bands .site-header{ --hdr-h: 72px; background: transparent; }
.dir-bands .site-header.solid:not(.open){ background: color-mix(in srgb, var(--sand-50) 85%, transparent); box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--sand-200) 70%, transparent), 0 10px 30px -20px rgb(0 0 0 / 0.25); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); }
.dir-bands .header-row{ min-height: var(--hdr-h); padding-block: 0; gap: 24px; justify-content: space-between; transition: min-height 0.3s var(--ease-x); }
.dir-bands .brand{ flex: none; padding-block: 8px; border-radius: 8px; }
.dir-bands .logo{ width: 140px; height: auto; transition: width 0.3s var(--ease-x); }
.dir-bands .header-langs,.dir-bands .header-call,.dir-bands .site-header .menu-more{ display: none; }
.dir-bands .site-header nav:not(.lang-switch) ul{ gap: 4px; }
.dir-bands .site-header nav:not(.lang-switch) a{ display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; font-size: 0.9375rem; line-height: 1.5; font-weight: 600; color: var(--ink-soft); transition: color 0.2s; }
.dir-bands .site-header nav:not(.lang-switch) a:hover,.dir-bands .site-header nav a[aria-current]{ color: var(--brand-900); }
.dir-bands .site-header nav a::after{ inset: auto 14px 8px; height: 2px; border-radius: 999px; background: var(--brand-600); }
.dir-bands .header-actions{ gap: 20px; margin-left: 0; }
.dir-bands .header-phone{ display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0; font-variant-numeric: normal; font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; color: var(--ink-soft); }
.dir-bands .header-phone:hover{ color: var(--brand-800); text-decoration: none; }
.dir-bands .header-phone .icon{ box-sizing: border-box; width: 32px; height: 32px; padding: 8px; border-radius: 50%; background: var(--brand-50); color: var(--brand-700); }
.dir-bands .header-cta{ min-height: 44px; padding: 0 20px; font-size: 0.9375rem; }
.dir-bands .site-header{ --menu-from: 1024; }
@media (min-width: 1024px) and (max-width: 1199px){.js .dir-bands .header-row{ flex-wrap: wrap; gap: 0 24px; }
.js .dir-bands .header-tools{ display: none; }
.js .dir-bands .header-menu{ display: contents; }
.dir-bands .site-header nav:not(.lang-switch),.dir-bands .header-actions{ flex: 1 1 0; max-width: max-content; }
.dir-bands .site-header nav:not(.lang-switch) ul{ display: grid; grid-auto-flow: column; gap: 4px; }
.dir-bands .site-header nav:not(.lang-switch) a,.dir-bands .header-phone{ white-space: normal; }
}
@media (min-width: 1024px){.dir-bands .site-header{ --hdr-h: 80px; }
.dir-bands .site-header.solid{ --hdr-h: 64px; }
.dir-bands .header-menu{ display: contents; }
.dir-bands .logo{ width: 184px; }
.dir-bands .solid .logo{ width: 164px; }
}
@media (max-width: 1023px){.js .dir-bands .header-tools{ gap: 0; }
.dir-bands .menu-toggle{ width: 48px; min-width: 48px; height: 48px; min-height: 48px; margin: 0; padding: 0; border: 1px solid var(--sand-300); border-radius: 50%; background: #fff; color: var(--ink); }
.dir-bands .menu-toggle:hover{ background: var(--sand-100); }
.dir-bands .menu-toggle .toggle-word{ position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.dir-bands .burger{ width: 20px; height: 14px; background: linear-gradient(currentColor, currentColor) 0 6px / 100% 2px no-repeat; transition: background-size 0.2s; }
.dir-bands [aria-expanded='true'] .burger{ background-size: 0 2px; }
.dir-bands [aria-expanded='true'] .burger::before{ transform: translateY(6px) rotate(45deg); }
.dir-bands [aria-expanded='true'] .burger::after{ transform: translateY(-6px) rotate(-45deg); }
.js .dir-bands .site-header.open .header-menu{ inset: var(--menu-top, 0px) 0 0; padding: 24px 20px 40px; gap: 32px; background: var(--sand-50); animation: fade 0.3s var(--ease) both; }
.js .dir-bands .site-header.open nav ul{ gap: 0; }
.js .dir-bands .site-header.open::after{ content: none; }
.js .dir-bands .site-header.open nav li{ border-bottom: 1px solid var(--sand-200); }
.js .dir-bands .site-header.open .header-phone .call-word{ display: inline; margin-right: calc(0.27em - 8px); }
.js .dir-bands .site-header.open nav a{ display: flex; justify-content: space-between; width: auto; min-height: 64px; padding: 0; font: 600 1.75rem/1.5 var(--font-display); letter-spacing: -0.025em; color: var(--ink); }
.js .dir-bands .site-header.open nav a[aria-current]{ color: var(--brand-700); }
.js .dir-bands .site-header.open nav a::after{ content: ''; display: block; position: static; inset: auto; width: 20px; height: 20px; border-radius: 0; transform: none; background: var(--brand-600); -webkit-mask: var(--m-arrow) center / contain no-repeat; mask: var(--m-arrow) center / contain no-repeat; }
.js .dir-bands .site-header.open .header-actions{ flex-direction: column-reverse; order: 2; gap: 12px; margin-top: auto; padding: 0; }
.js .dir-bands .site-header.open :is(.header-phone, .header-cta){ justify-content: center; min-height: 52px; padding: 0 28px; border-radius: 999px; font-size: 1rem; }
.js .dir-bands .site-header.open .header-phone{ border: 1px solid var(--sand-300); background: #fff; color: var(--ink); }
.js .dir-bands .site-header.open .header-phone .icon{ width: 16px; height: 16px; padding: 0; background: none; }
}
.dir-bands{ --grain: 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' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.dir-bands :is(.hero-v-photo, .site-footer, .price-card.is-marked, .qvp-panel)::after{ content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0.07; mix-blend-mode: overlay; background-image: var(--grain); }
.dir-bands .hero-v-photo{ align-items: end; text-align: left; min-height: min(88svh, 56rem); background: var(--brand-950); }
.dir-bands .hero-v-photo .hvp-media{ z-index: -10; }
.dir-bands .hero-v-photo .hvp-media::after{ background: linear-gradient(to top, var(--brand-950), color-mix(in srgb, var(--brand-950) 55%, transparent), color-mix(in srgb, var(--brand-950) 25%, transparent)); }
.dir-bands .hero-v-photo .hvp-media::before{ content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to right, color-mix(in srgb, var(--brand-950) 85%, transparent), color-mix(in srgb, var(--brand-950) 45%, transparent), transparent); }
.dir-bands .hero-v-photo .hvp-over{ display: flex; flex-direction: column; align-items: flex-start; gap: 24px; padding-block: 160px 64px; }
@media (min-width: 640px){.dir-bands .hero-v-photo .hvp-over{ padding-bottom: 80px; }
}
@media (min-width: 1024px){.dir-bands .hero-v-photo .hvp-over{ padding-bottom: 96px; }
}
.dir-bands .hero-v-photo .hvp-over > *{ max-width: 48rem; margin: 0; }
.dir-bands .hero-v-photo .hero-h{ max-width: 48rem; font-size: clamp(2.6rem, 1.55rem + 4.4vw, 5.25rem); line-height: 1; color: #fff; overflow-wrap: normal; hyphens: manual; }
.dir-bands .hero-v-photo .hero-lead{ max-width: 36rem; font-size: 1.0625rem; line-height: 1.625; color: color-mix(in srgb, var(--brand-50) 90%, transparent); }
@media (min-width: 640px){.dir-bands .hero-v-photo .hero-lead{ font-size: 1.125rem; }
}
.dir-bands .hero-v-photo .actions{ flex-direction: column; justify-content: flex-start; align-self: stretch; gap: 12px; margin: 0; }
@media (min-width: 640px){.dir-bands .hero-v-photo .actions{ flex-direction: row; }
}
.dir-bands :is(.hero-v-photo, .cta) .btn{ min-height: 52px; padding: 0 28px; font-size: 1rem; }
.dir-bands :is(.hero-v-photo.has-pic, .cta) .btn-fill{ background: #fff; color: var(--brand-900); box-shadow: 0 8px 24px -12px rgb(0 0 0 / 0.5); }
.dir-bands :is(.hero-v-photo.has-pic, .cta) .btn-fill:hover{ background: var(--brand-50); }
.dir-bands :is(.hero-v-photo.has-pic, .cta) .btn-line{ border: 1px solid rgb(255 255 255 / 0.3); background: none; color: #fff; }
.dir-bands :is(.hero-v-photo.has-pic, .cta) .btn-line:hover{ border-color: rgb(255 255 255 / 0.7); background: rgb(255 255 255 / 0.1); color: #fff; }
.dir-bands .hero-v-photo .proofs{ justify-content: flex-start; gap: 8px 24px; margin: 8px 0 0; font-size: 0.875rem; line-height: 1.25rem; font-weight: 500; color: color-mix(in srgb, var(--brand-50) 90%, transparent); }
.dir-bands .hero-v-photo .proofs li{ display: flex; align-items: center; gap: 8px; }
.dir-bands .hero-v-photo .proofs li::before{ content: ''; flex: none; width: 16px; height: 16px; margin: 0; background: var(--brand-300); -webkit-mask: var(--m-check-thin) center / contain no-repeat; mask: var(--m-check-thin) center / contain no-repeat; }
.dir-bands{ --m-check-thin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4.5 12.5 5 5 10-11'/%3E%3C/svg%3E"); }
.dir-bands .hero-v-photo .hvp-toggle{ background: color-mix(in srgb, var(--brand-950) 70%, transparent); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.dir-bands .hero-v-photo .hvp-toggle:hover{ background: var(--brand-950); }
@media (max-width: 639px){.dir-bands :is(.hero-v-photo, .cta) .actions .btn{ width: 100%; }
}
.dir-bands .hero-h .w{ display: inline; animation: none; }
.dir-bands .hero-v-photo .hvp-over > *{ animation: bands-rise 0.9s var(--ease-x) both; animation-delay: calc(120ms + var(--k, 0) * 90ms); }
.dir-bands .hero-v-photo .hvp-over > [data-r]{ opacity: 1; transform: none; transition: none; }
.dir-bands .hvp-over > :nth-child(2){ --k: 1; }
.dir-bands .hvp-over > :nth-child(3){ --k: 2; }
.dir-bands .hvp-over > :nth-child(4){ --k: 3; }
.dir-bands .hvp-over > :nth-child(5){ --k: 4; }
@keyframes bands-rise{ from { opacity: 0; transform: translate3d(0, 39px, 0); } }
.ready .dir-bands [data-r]{ transition: opacity 0.9s var(--ease-x), transform 0.9s var(--ease-x); transition-delay: calc(var(--i, 0) * 80ms); }
.dir-bands .page-header{ position: relative; overflow: hidden; isolation: isolate; background: var(--sand-50); border-bottom: 1px solid var(--sand-200); padding-block: 24px 56px; }
@media (min-width: 640px){.dir-bands .page-header{ padding-block: 32px 80px; }
}
.dir-bands .page-header::before{ content: ''; position: absolute; z-index: -1; top: -14rem; right: -12%; width: 38rem; height: 38rem; border-radius: 50%; background: radial-gradient(closest-side, var(--brand-100), transparent); opacity: 0.7; pointer-events: none; }
@media (min-width: 1024px){.dir-bands .page-header::after{ content: ''; position: absolute; z-index: -1; top: -6rem; right: -6rem; width: 28rem; height: 28rem; pointer-events: none; background: radial-gradient(circle at 336px 112px, transparent 0 89px, var(--brand-200) 89px 90.12px, transparent 90.12px 156.24px, color-mix(in srgb, var(--brand-200) 60%, transparent) 156.24px 157.36px, transparent 157.36px 223.44px, color-mix(in srgb, var(--brand-200) 35%, transparent) 223.44px 224.56px, transparent 224.56px); }
}
.dir-bands .crumbs ol{ gap: 4px 8px; margin: 0; font-size: 0.875rem; line-height: 1.25rem; color: var(--ink-muted); }
.dir-bands .crumbs li{ display: flex; align-items: center; gap: 8px; }
.dir-bands .crumb-sep{ margin: 0; color: var(--sand-400); }
.dir-bands .crumbs a{ font-weight: 400; text-decoration: none; border-radius: 4px; transition: color 0.15s; }
.dir-bands .crumbs a:hover{ color: var(--brand-800); text-decoration: underline; text-underline-offset: 2px; }
.dir-bands .crumbs [aria-current]{ font-weight: 500; color: var(--ink); }
.dir-bands .page-head{ max-width: 48rem; }
.dir-bands .page-header .crumbs + .page-head{ margin-top: 40px; }
@media (min-width: 640px){.dir-bands .page-header .crumbs + .page-head{ margin-top: 56px; }
}
.dir-bands .page-header .page-eyebrow{ margin-bottom: 20px; }
.dir-bands .page-h{ max-width: 48rem; font-size: clamp(2.35rem, 1.6rem + 3.2vw, 4.25rem); line-height: 1.03; }
.dir-bands .page-intro{ max-width: 42rem; margin-top: 24px; font-size: 1.125rem; line-height: 1.625; color: var(--ink-soft); }
.dir-bands .sec-stats{ padding-block: 48px; }
@media (min-width: 640px){.dir-bands .sec-stats{ padding-block: 64px; }
}
.dir-bands .stats{ display: grid; gap: 1px; overflow: hidden; margin: 0; border: 0; border-radius: var(--card-r); background: var(--sand-200); box-shadow: 0 0 0 1px var(--sand-200); }
@media (min-width: 640px){.dir-bands .stats{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dir-bands .stats:has(> :nth-child(2):last-child){ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px){.dir-bands .stats:has(> :nth-child(4)){ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.dir-bands .stat{ display: flex; flex-direction: column; gap: 12px; padding: 28px; background: #fff; border-radius: 0; }
@media (min-width: 640px){.dir-bands .stat{ padding: 36px; }
}
.dir-bands .stat-value{ order: 1; margin: 0; font: 600 clamp(2rem, 1.5rem + 2.1vw, 3.25rem)/1.08 var(--font-display); letter-spacing: -0.035em; color: var(--brand-700); font-variant-numeric: tabular-nums; }
.dir-bands .stat-label{ order: 2; max-width: 24ch; margin: 0; font-size: 0.9375rem; line-height: 1.375; color: var(--ink-muted); }
.dir-bands .ti{ gap: 48px; align-items: center; }
@media (min-width: 900px){.dir-bands .ti{ grid-template-columns: 1fr; }
}
@media (min-width: 1024px){.dir-bands .ti{ grid-template-columns: 1fr 1fr; gap: 40px; }
.dir-bands .ti-right .ti-text{ padding-right: 24px; }
.dir-bands .ti-left .ti-text{ padding-left: 24px; }
}
.dir-bands .ti-text{ display: flex; flex-direction: column; align-items: flex-start; gap: 28px; }
.dir-bands .ti-text > .eyebrow + h2{ margin-top: -12px; }
.dir-bands .ti h2{ margin: 0; }
.dir-bands .ti-text > p:not(.eyebrow){ max-width: none; font-size: 1.0625rem; line-height: 1.75; color: var(--ink-soft); }
.dir-bands .ti-text > p:not(.eyebrow) + p{ margin-top: -12px; }
.dir-bands .ti-text > div:has(> .checks){ align-self: stretch; }
.dir-bands .ti-pic{ aspect-ratio: auto; height: auto; border-radius: var(--media-r); background: var(--sand-100); }
.dir-bands .ti .actions{ margin: 0; }
.dir-bands .ti .actions .btn-line::after{ content: ''; flex: none; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--m-arrow) center / contain no-repeat; mask: var(--m-arrow) center / contain no-repeat; transition: transform 0.3s var(--ease-x); }
.dir-bands .ti .actions .btn-line:hover::after{ transform: translateX(4px); }
.dir-bands :is(.head-small, .flow) .ti{ gap: 32px; }
@media (min-width: 1024px){.dir-bands :is(.head-small, .flow) .ti{ gap: 32px; }
.dir-bands .flow .ti{ column-gap: 56px; }
.dir-bands :is(.head-small, .flow) :is(.ti-right, .ti-left) .ti-text{ padding: 0; }
}
.dir-bands :is(.head-small, .flow) .ti-text{ gap: 16px; }
.dir-bands :is(.head-small, .flow) .ti-text > .eyebrow + h2{ margin-top: 0; }
.dir-bands :is(.head-small, .flow) .ti h2{ font-size: clamp(1.5rem, 1.25rem + 1vw, 2.125rem); line-height: 1.15; letter-spacing: -0.0245em; }
.dir-bands :is(.head-small, .flow) .ti-text > p:not(.eyebrow) + p{ margin-top: 0; }
.dir-bands .head-small .ti-text > p:not(.eyebrow, .ti-note){ line-height: 1.625; }
.dir-bands .ti-text > p.ti-note{ font-size: 0.875rem; line-height: 1.625; color: var(--ink-muted); }
.dir-bands :is(.head-small, .flow) .ti picture{ display: block; overflow: hidden; border: 1px solid var(--sand-200); border-radius: var(--media-r); }
.dir-bands :is(.head-small, .flow) .ti-pic{ aspect-ratio: 4 / 3; height: auto; border: 0; border-radius: 0; object-fit: cover; }
.dir-bands .head-small .ti-pic{ aspect-ratio: 5 / 4; }
.dir-bands :is(.head-small, .flow) .ti .actions{ flex-direction: column; align-self: stretch; margin-top: 8px; }
@media (min-width: 640px){.dir-bands :is(.head-small, .flow) .ti .actions{ flex-direction: row; align-self: flex-start; }
}
.dir-bands .ti .btn-fill::after{ content: none; }
.dir-bands .ti .actions .btn-line[href^='http']::after{ -webkit-mask-image: var(--m-out); mask-image: var(--m-out); }
.dir-bands .ti .actions .btn-line[href^='http']:hover::after{ transform: translate(2px, -2px); }
.dir-bands .page-header:not(:has(.page-eyebrow)){ padding-block: 24px 40px; }
@media (min-width: 640px){.dir-bands .page-header:not(:has(.page-eyebrow)){ padding-block: 32px 56px; }
}
.dir-bands .page-header:not(:has(.page-eyebrow))::before,.dir-bands .page-header:not(:has(.page-eyebrow))::after{ content: none; }
.dir-bands .page-header:not(:has(.page-eyebrow)) .crumbs + .page-head{ margin-top: 24px; }
.dir-bands .page-header:not(:has(.page-eyebrow)) .page-intro{ margin-top: 16px; }
.dir-bands .page-header:not(:has(.page-eyebrow)) + :is(.sec, div){ --read-top: 48px; }
.dir-bands .page-header:not(:has(.page-eyebrow)) ~ .flow{ --flow-gap: 56px; }
.dir-bands .page-header:not(:has(.page-eyebrow)) ~ .flow > :is(.sec, .sec-field){ padding-top: var(--flow-gap); }
.dir-bands .page-header:not(:has(.page-eyebrow)) + .sec,.dir-bands .page-header:not(:has(.page-eyebrow)) + :is(div, .flow) > :is(.sec, .sec-field){ padding-top: var(--read-top); }
.dir-bands .page-header:not(:has(.page-eyebrow)) ~ .flow:not(:has(+ .flow)) > :is(.sec, .sec-field){ padding-bottom: 48px; }
.dir-bands .page-header:not(:has(.page-eyebrow)) + :is(.sec, div):not(:has(+ .flow)){ --read-bottom: 48px; }
@media (min-width: 640px){.dir-bands .page-header:not(:has(.page-eyebrow)) + :is(.sec, div){ --read-top: 64px; }
.dir-bands .page-header:not(:has(.page-eyebrow)) ~ .flow{ --flow-gap: 64px; }
.dir-bands .page-header:not(:has(.page-eyebrow)) ~ .flow:not(:has(+ .flow)) > :is(.sec, .sec-field){ padding-bottom: 64px; }
}
.dir-bands .flow .links{ gap: 16px; }
.dir-bands .flow .link-card{ gap: 0; }
.dir-bands .flow :is(.sec-head, .head-row){ margin-bottom: 32px; }
.dir-bands .flow .sec-head h2{ font-size: clamp(1.5rem, 1.25rem + 1vw, 2.125rem); line-height: 1.15; letter-spacing: -0.0245em; }
.dir-bands .ctb{ padding: 40px 24px; border-radius: var(--media-r); background: var(--brand-800); color: #fff; }
@media (min-width: 640px){.dir-bands .ctb{ padding-inline: 40px; }
}
.dir-bands .ctb::before{ content: none; }
.dir-bands .ctb::after{ content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0.07; mix-blend-mode: overlay; background-image: var(--grain); }
.dir-bands .ctb h2{ max-width: none; font-size: clamp(1.5rem, 1.25rem + 1vw, 2.125rem); line-height: 1.15; letter-spacing: -0.0245em; color: #fff; }
.dir-bands .ctb p{ max-width: 42rem; margin-top: 16px; font-size: 1.0625rem; line-height: 1.75; color: var(--brand-100); opacity: 1; }
.dir-bands .ctb p strong{ color: #fff; font-weight: 700; }
.dir-bands .ctb .actions{ margin-top: 24px; }
.dir-bands .ctb .btn-fill{ background: #fff; color: var(--brand-900); box-shadow: 0 8px 24px -12px rgb(0 0 0 / 0.5); }
.dir-bands .ctb .btn-fill:hover{ background: var(--brand-50); }
.dir-bands .ctb .btn-fill::after{ content: none; }
.dir-bands .prose > p + .rich{ margin-top: 16px; }
.dir-bands .rich li{ margin: 0; }
.dir-bands .faq-group > *{ max-width: 48rem; }
.dir-bands .faq-group .faq-group-h{ margin: 0 0 16px; font: 700 1.25rem/1.75rem var(--font-display); letter-spacing: -0.035em; }
@media (min-width: 640px){.dir-bands .faq-group .faq-group-h{ font-size: 1.5rem; line-height: 2rem; }
}
.dir-bands .flow > .sec.faq-v-group,.dir-bands .flow:has(> .faq-v-group) + .flow > .sec{ padding-top: 40px; }
.dir-bands .faq-v-group:has(+ .flow > .faq-v-group),.dir-bands .flow:has(+ .flow > .faq-v-group) > .faq-v-group,.dir-bands .faq-v-group:has(+ .faq-v-group){ padding-bottom: 0; }
.dir-bands .flow .txc:not(:has(h2)){ max-width: 48rem; padding: 24px; }
.dir-bands .flow .txc:not(:has(h2)) .rich{ max-width: none; margin: 0; color: var(--ink-soft); }
.dir-bands .txc:not(:has(h2)) .rich a{ color: var(--brand-800); font-weight: 600; text-decoration: underline; text-decoration-color: currentColor; text-decoration-thickness: auto; text-underline-offset: 2px; }
.dir-bands .checks{ gap: 12px; margin: 0; }
.dir-bands .checks li{ gap: 12px; }
.dir-bands .checks li::before{ width: 20px; height: 20px; margin: 2px 0 0; background: var(--brand-100) var(--i-tick) center / 12px no-repeat; }
.dir-bands .checks-panel{ margin: 0; overflow: visible; border-radius: 0; grid-template-columns: 1fr; }
@media (min-width: 640px){.dir-bands .checks-panel{ grid-template-columns: 1fr 1fr; }
}
.dir-bands .checks-panel li{ padding: 16px; border: 1px solid var(--sand-200); border-radius: 16px; background: var(--sand-50); color: var(--ink-soft); font-size: 0.9375rem; font-weight: 400; line-height: 1.375; }
.dir-bands .checks-panel li:last-child:nth-child(odd){ grid-column: auto; }
.dir-bands :is(.sec-tone, .band-surface) .checks-panel li{ background: var(--sand-50); }
.dir-bands .offers{ gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 640px){.dir-bands .offers{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px){.dir-bands .offers{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dir-bands .offers:has(> :nth-child(4)){ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.dir-bands .offer{ position: relative; display: flex; flex-direction: column; border: 1px solid var(--sand-200); border-radius: var(--card-r); background: #fff; transition: transform 0.5s var(--ease-x), box-shadow 0.5s var(--ease-x), border-color 0.5s var(--ease-x); }
.dir-bands .offer:hover{ transform: translateY(-4px); border-color: var(--brand-200); box-shadow: var(--shadow-lift); }
.dir-bands .offer > :is(picture, .pic-contain){ display: block; overflow: hidden; background: var(--sand-100); }
.dir-bands .pic-contain{ background: var(--sand-100); }
.dir-bands .offer-pic{ transition: transform 0.7s var(--ease-x); }
.dir-bands .offer:hover .offer-pic{ transform: scale(1.04); }
.dir-bands .offer-body{ display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 24px; }
.dir-bands .offer-meta{ gap: 4px 8px; margin: 0; font-size: 0.75rem; line-height: 1rem; font-weight: 500; color: var(--ink-muted); }
.dir-bands .offer :is(h2, h3){ margin: 0; font: 600 1.25rem/1.375 var(--font-display); letter-spacing: -0.025em; color: var(--ink); }
.dir-bands .offer :is(h2, h3) a{ text-decoration: none; }
.dir-bands .offer :is(h2, h3) a:hover{ text-decoration: none; }
.dir-bands .offer :is(h2, h3) a::after{ content: ''; position: absolute; inset: 0; border-radius: var(--card-r); }
.dir-bands .offer-body > p:not(.offer-meta):not(.offer-foot){ margin: 0; font-size: 0.875rem; line-height: 1.625; color: var(--ink-muted); }
.dir-bands .offer-foot{ display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: auto 0 0; padding-top: 16px; border-top: 1px solid var(--sand-200); }
.dir-bands .offer-price{ font: 600 1.125rem/1.75rem var(--font-display); color: var(--ink); }
.dir-bands .offer .more{ display: inline-flex; align-items: center; gap: 6px; font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; color: var(--brand-800); }
.dir-bands .offer .more::after{ content: ''; width: 32px; height: 32px; margin: 0; border-radius: 50%; background: var(--brand-50) var(--i-arr) center / 16px no-repeat; transition: background-color 0.3s, transform 0.3s; }
.dir-bands .offer:hover .more::after{ transform: translateX(2px); background-color: var(--brand-700); background-image: var(--i-arr-on); }
.dir-bands .price-cards{ gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 640px){.dir-bands .price-cards{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px){.dir-bands .price-cards:not([data-cols]):not(:has(> :nth-child(4))){ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1280px){.dir-bands .price-cards:not([data-cols]):has(> :nth-child(4)){ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1024px){.dir-bands .price-cards[data-cols='3']{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dir-bands .price-cards[data-cols='4']{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.dir-bands .price-card{ position: relative; isolation: isolate; gap: 24px; padding: 24px; background: #fff; border: 1px solid var(--sand-200); border-radius: var(--card-r); transition: transform 0.5s var(--ease-x), box-shadow 0.5s var(--ease-x); }
@media (min-width: 640px){.dir-bands .price-card{ padding: 28px; }
}
.dir-bands .price-card:not(.is-marked):hover{ transform: translateY(-4px); box-shadow: var(--shadow-lift); }
.dir-bands .price-card.is-marked{ overflow: hidden; border: 0; background: var(--brand-800); color: #fff; box-shadow: var(--shadow-float); }
.dir-bands .pc-name{ flex-wrap: wrap; gap: 8px; font: 600 1.25rem/1.75rem var(--font-display); letter-spacing: -0.025em; color: var(--ink); }
.dir-bands .is-marked .pc-name{ color: #fff; }
.dir-bands .badge{ display: inline-flex; align-items: center; padding: 4px 12px; border: 0; border-radius: 999px; font: 600 0.75rem/1rem var(--font-body); letter-spacing: 0.025em; background: var(--brand-50); color: var(--brand-800); box-shadow: inset 0 0 0 1px var(--brand-200); }
.dir-bands .is-marked .badge{ background: rgb(255 255 255 / 0.1); color: #fff; box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.25); }
.dir-bands .pc-note{ margin: -16px 0 0; font-size: 0.875rem; line-height: 1.625; color: var(--ink-muted); }
.dir-bands .is-marked :is(.pc-note, .pc-price-note){ color: var(--brand-100); opacity: 1; }
.dir-bands .pc-amount{ display: flex; flex-direction: column; gap: 6px; margin: 0; padding-block: 20px; border-block: 1px solid var(--sand-200); }
.dir-bands .is-marked .pc-amount{ border-color: rgb(255 255 255 / 0.15); }
.dir-bands .pc-price{ display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 8px; margin: 0; padding: 0; border: 0; font: 600 2.25rem/1 var(--font-display); letter-spacing: -0.025em; color: var(--ink); font-variant-numeric: tabular-nums; }
.dir-bands .is-marked .pc-price{ color: #fff; }
.dir-bands .pc-price-note{ margin: 0; padding: 0; border: 0; font-size: 0.75rem; line-height: 1.625; color: var(--ink-muted); }
.dir-bands .price-card .checks{ gap: 10px; margin: 0; font-size: 0.875rem; line-height: 1.25rem; color: var(--ink-soft); }
.dir-bands .price-card .checks li{ gap: 10px; }
.dir-bands .is-marked .checks{ color: var(--brand-50); }
.dir-bands .is-marked .checks li::before{ background-color: rgb(255 255 255 / 0.15); background-image: var(--i-tick-on); }
.dir-bands .pc-btn{ width: 100%; margin-top: auto; }
.dir-bands .price-card:has(.pc-btn) .checks{ margin-bottom: 4px; }
.dir-bands .is-marked .pc-btn{ background: #fff; color: var(--brand-900); box-shadow: 0 8px 24px -12px rgb(0 0 0 / 0.5); }
.dir-bands .is-marked .pc-btn:hover{ background: var(--brand-50); }
.dir-bands .pc-btn::after{ content: none !important; }
.dir-bands .sec-prices .footnote{ max-width: 48rem; margin-top: 48px; font-size: 0.875rem; line-height: 1.625; color: var(--ink-muted); }
.dir-bands .steps-v-timeline .sec-head{ margin-bottom: 56px; }
.dir-bands .stl-num{ border-color: var(--brand-200); background: #fff; color: var(--brand-700); font: 600 1.125rem/1.75rem var(--font-display); letter-spacing: 0; box-shadow: var(--shadow-soft); }
.dir-bands .stl-step:not(:last-child)::before{ background: repeating-linear-gradient(180deg, var(--brand-300) 0 8px, transparent 8px 14px); }
@media (min-width: 1024px){.dir-bands .stl-step:not(:last-child)::before{ background: repeating-linear-gradient(90deg, var(--brand-300) 0 12px, transparent 12px 22px); }
}
.dir-bands .stl-step > div{ display: flex; flex-direction: column; gap: 8px; }
.dir-bands .stl-step h3{ margin: 0; font: 600 1.25rem/1.375 var(--font-display); letter-spacing: -0.025em; }
.dir-bands .stl-step p{ font-size: 0.9375rem; line-height: 1.625; color: var(--ink-muted); }
.dir-bands .stl-link{ align-self: flex-start; margin: 0; font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; color: var(--brand-800); text-underline-offset: 4px; }
.dir-bands .stl-link .icon{ width: 16px; height: 16px; stroke-width: 1.75; }
.dir-bands .qvp-grid{ gap: 24px; }
@media (min-width: 1024px){.dir-bands .qvp-grid.has-sum{ grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px; }
.dir-bands .qvp-panel{ grid-column: span 4; }
.dir-bands .qvp-list{ grid-column: span 8; }
}
.dir-bands .qvp-panel{ position: relative; isolation: isolate; overflow: hidden; gap: 32px; padding: 28px; border-radius: var(--card-r); background: var(--brand-900); color: #fff; }
@media (min-width: 640px){.dir-bands .qvp-panel{ padding: 36px; }
}
.dir-bands .qvp-src{ gap: 8px; font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; color: var(--brand-100); }
.dir-bands .qvp-score{ margin-top: 32px; font: 600 4.5rem/1 var(--font-display); letter-spacing: -0.025em; }
.dir-bands .qvp-score span{ margin: 0; font-size: 1.5rem; line-height: 2rem; font-weight: 500; letter-spacing: inherit; color: var(--brand-200); opacity: 1; }
.dir-bands .qvp-panel .stars{ display: flex; gap: 2px; margin-top: 16px; font-size: 20px; color: var(--clay-200); }
.dir-bands .qvp-panel .stars .off{ opacity: 1; color: rgb(255 255 255 / 0.2); }
.dir-bands .qvp-count{ margin-top: 12px; font-size: 0.875rem; line-height: 1.25rem; color: var(--brand-100); opacity: 1; }
.dir-bands .qvp-btn{ gap: 8px; min-height: 44px; padding: 0 20px; background: #fff; color: var(--brand-900); font-size: 0.9375rem; box-shadow: 0 8px 24px -12px rgb(0 0 0 / 0.5); }
.dir-bands .qvp-btn:hover{ background: var(--brand-50); }
.dir-bands .qvp-btn::after{ content: ''; flex: none; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--m-out) center / contain no-repeat; mask: var(--m-out) center / contain no-repeat; transition: transform 0.3s var(--ease-x); }
.dir-bands .qvp-btn:hover::after{ transform: translate(2px, -2px); }
.dir-bands .qvp-fetched{ margin-top: 16px; font-size: 0.75rem; line-height: 1.625; color: var(--brand-200); opacity: 1; }
.dir-bands .qvp-list{ gap: 16px; }
.dir-bands .qvp-card{ gap: 20px; padding: 24px; border: 1px solid var(--sand-200); border-radius: var(--card-r); background: var(--sand-50); }
@media (min-width: 640px){.dir-bands .qvp-card{ padding: 28px; }
}
.dir-bands .qvp-mark{ color: var(--brand-300); }
.dir-bands .qvp-card blockquote{ font-size: 0.9375rem; line-height: 1.625; color: var(--ink-soft); }
.dir-bands .qvp-who{ gap: 12px; padding-top: 20px; border-top: 1px solid var(--sand-200); }
.dir-bands .qvp-name{ font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; color: var(--ink); }
.dir-bands .qvp-when{ font-size: 0.75rem; line-height: 1rem; color: var(--ink-muted); }
.dir-bands .qvp-who .stars{ display: flex; gap: 2px; font-size: 16px; color: var(--clay-500); }
.dir-bands .qvp-who .stars .off{ opacity: 1; color: var(--sand-300); }
@media (max-width: 639px){.dir-bands .qvp-list{ margin-inline: -20px; padding: 0 20px 8px; }
}
.dir-bands :is(.review, .qv-item figure){ border: 1px solid var(--edge); border-radius: var(--card-r); }
.dir-bands .team{ gap: 24px; }
.dir-bands .person{ gap: 0; align-items: stretch; overflow: hidden; border: 1px solid var(--sand-200); border-radius: var(--card-r); background: #fff; }
.dir-bands .person > picture{ display: block; overflow: hidden; background: var(--sand-100); }
.dir-bands .person-pic{ aspect-ratio: 1; height: 100%; border-radius: 0; object-position: 50% 30%; }
@media (min-width: 760px){.dir-bands .person.has-pic{ grid-template-columns: 1fr; }
}
@media (min-width: 768px){.dir-bands .person.has-pic{ grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
}
@media (min-width: 1024px){.dir-bands .person.has-pic{ grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
.dir-bands .person.has-pic .person-pic{ aspect-ratio: auto; contain: size; height: 100%; }
}
.dir-bands .person > div{ display: flex; flex-direction: column; gap: 20px; padding: 28px; }
@media (min-width: 640px){.dir-bands .person > div{ padding: 40px; }
}
.dir-bands .person h3{ font: 600 clamp(1.5rem, 1.25rem + 1vw, 2.125rem)/1.15 var(--font-display); letter-spacing: -0.0245em; }
.dir-bands .person-role{ margin: -14px 0 0; font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; color: var(--brand-700); }
.dir-bands .person p:not(.person-role){ max-width: none; font-size: 1.0625rem; line-height: 1.75; color: var(--ink-soft); }
.dir-bands .person p:not(.person-role) + p{ margin-top: -4px; }
.dir-bands .person .tags{ gap: 8px; margin: 0; }
.dir-bands .person .tags li{ padding: 4px 12px; border: 1px solid var(--sand-300); background: none; box-shadow: none; color: var(--ink-soft); letter-spacing: 0; }
.dir-bands .team-v-profile .tpf-card{ padding: 24px; border-color: var(--sand-200); border-radius: var(--card-r); background: #fff; }
@media (min-width: 640px){.dir-bands .team-v-profile .tpf-card{ padding: 32px; }
}
.dir-bands .tpf-card picture{ display: block; overflow: hidden; border-radius: 20px; background: var(--sand-100); }
.dir-bands .tpf-pic{ border-radius: 0; }
.dir-bands .team-v-profile .tpf-card :is(h2, h3){ margin-top: 20px; font-size: 1.5rem; line-height: 2rem; }
.dir-bands .team-v-profile .tpf-role{ margin-top: 4px; font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; color: var(--brand-700); }
.dir-bands .team-v-profile .tpf-tags{ margin-top: 8px; font-size: 0.875rem; line-height: 1.25rem; color: var(--ink-muted); }
.dir-bands .tpf-bio p{ color: var(--ink-soft); }
.dir-bands .faq-grid{ gap: 40px; }
@media (min-width: 1024px){.dir-bands .faq-grid{ grid-template-columns: repeat(12, minmax(0, 1fr)); }
.dir-bands .faq-grid > :first-child{ grid-column: span 5; position: sticky; top: 112px; align-self: start; }
.dir-bands .faq-grid > :last-child{ grid-column: span 7; }
}
.dir-bands .faq-grid .head-row{ display: flex; flex-direction: column; align-items: flex-start; gap: 28px; margin: 0; }
.dir-bands :is(.faq-grid, .faq-group) .more{ display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px; border: 1px solid var(--sand-300); border-radius: 999px; background: #fff; color: var(--ink); font-size: 0.9375rem; line-height: 1.5; font-weight: 600; text-decoration: none; transition: background-color 0.2s, border-color 0.2s, color 0.2s; }
.dir-bands :is(.faq-grid, .faq-group) .more:hover{ border-color: var(--brand-300); background: var(--brand-50); color: var(--brand-900); }
.dir-bands :is(.faq-grid, .faq-group) .more > span{ background: none; }
.dir-bands :is(.faq-grid, .faq-group) .more::after{ content: ''; flex: none; width: 16px; height: 16px; margin: 0; background: currentColor; -webkit-mask: var(--m-arrow) center / contain no-repeat; mask: var(--m-arrow) center / contain no-repeat; transition: transform 0.3s var(--ease-x); }
.dir-bands :is(.faq-grid, .faq-group) .more:hover::after{ transform: translateX(4px); }
.dir-bands .faq{ gap: 12px; }
.dir-bands .faq details{ padding: 0 20px; background: #fff; border: 1px solid var(--sand-200); border-radius: var(--card-r); transition: border-color 0.3s, box-shadow 0.3s; }
@media (min-width: 640px){.dir-bands .faq details{ padding: 0 28px; }
}
.dir-bands .faq details:hover,.dir-bands .faq details[open]{ border-color: var(--brand-200); }
.dir-bands .faq details[open]{ box-shadow: var(--shadow-soft); }
.dir-bands .faq summary{ display: flex; align-items: center; min-height: 68px; padding: 16px 52px 16px 0; font: 600 1.0625rem/1.5 var(--font-display); letter-spacing: -0.025em; color: var(--ink); transition: color 0.2s; }
@media (min-width: 640px){.dir-bands .faq summary{ font-size: 1.125rem; line-height: 1.75rem; }
}
.dir-bands .faq summary:hover{ color: var(--brand-800); }
.dir-bands .faq summary::after{ content: ''; top: 50%; right: 0; width: 36px; height: 36px; border-radius: 50%; color: var(--brand-700); background: linear-gradient(currentColor, currentColor) center / 14px 2px no-repeat, linear-gradient(currentColor, currentColor) center / 2px 14px no-repeat, var(--brand-50); transform: translateY(-50%); transition: transform 0.3s var(--ease-x), background-color 0.3s var(--ease-x), background-size 0.3s, color 0.3s; }
.dir-bands .faq details[open] summary::after{ color: #fff; background-color: var(--brand-700); background-size: 14px 2px, 2px 0; transform: translateY(-50%) rotate(180deg); }
.dir-bands .faq details p{ max-width: 62ch; margin: 0; padding-bottom: 24px; font-size: 1.0625rem; line-height: 1.75; color: var(--ink-soft); }
.dir-bands :is(.faq details p, .rich) a{ color: var(--brand-700); font-weight: 600; text-decoration: underline; text-decoration-color: color-mix(in oklab, currentColor 35%, transparent); text-decoration-thickness: 1.5px; text-underline-offset: 3px; transition: text-decoration-color 0.16s; }
.dir-bands :is(.faq details p, .rich) a:hover{ color: var(--brand-900); text-decoration-color: currentColor; }
.dir-bands .links{ gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 640px){.dir-bands .links{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px){.dir-bands .links{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.dir-bands .link-card{ display: flex; flex-direction: column; border: 1px solid var(--sand-200); border-radius: var(--card-r); background: #fff; transition: border-color 0.15s, box-shadow 0.15s; }
.dir-bands .link-card:hover{ transform: none; border-color: var(--brand-200); box-shadow: var(--shadow-soft); }
.dir-bands .link-card picture{ display: block; background: var(--sand-100); }
.dir-bands .link-pic{ width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.dir-bands .link-body{ position: relative; display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 24px; }
.dir-bands .link-meta{ margin: 0; font-size: 0.75rem; line-height: 1rem; font-weight: 600; color: var(--brand-700); }
.dir-bands .link-card h3{ font: 700 1.125rem/1.375 var(--font-display); letter-spacing: -0.022em; }
.dir-bands .link-date{ margin: auto 0 0; padding: 8px 32px 0 0; font-size: 0.875rem; line-height: 1.25rem; color: var(--ink-muted); }
.dir-bands .link-body::after{ content: ''; position: absolute; right: 24px; bottom: 26px; width: 16px; height: 16px; background: var(--brand-800); -webkit-mask: var(--m-out) center / contain no-repeat; mask: var(--m-out) center / contain no-repeat; transition: transform 0.15s; }
.dir-bands .link-card:hover .link-body::after{ transform: translate(2px, -2px); }
.dir-bands .links-follow{ gap: 12px; margin-top: 48px; }
.dir-bands .links-follow > p{ font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; color: var(--ink-soft); }
.dir-bands .follow-socials{ display: contents; }
.dir-bands .follow-socials a{ min-height: 40px; padding: 0 16px; border: 1px solid var(--sand-300); background: #fff; color: var(--ink); font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; transition: background-color 0.2s, border-color 0.2s, color 0.2s, transform 0.2s; }
.dir-bands .follow-socials a:hover{ transform: translateY(-1px); border-color: var(--brand-300); background: var(--brand-50); color: var(--brand-900); }
.dir-bands .follow-socials svg{ display: none; }
@media (min-width: 1024px){.dir-bands .cfk-grid{ grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px; align-items: stretch; }
.dir-bands .cfk-side{ grid-column: span 5; }
.dir-bands .cfk-card{ grid-column: span 7; }
}
.dir-bands .cfk-side{ display: flex; flex-direction: column; gap: 32px; }
.dir-bands .cfk-side .cf-intro{ max-width: 36rem; margin: 0; font-size: 1.0625rem; line-height: 1.625; color: var(--ink-muted); }
@media (min-width: 640px){.dir-bands .cfk-side .cf-intro{ font-size: 1.125rem; }
}
.dir-bands .cfk-rows{ gap: 4px; }
.dir-bands .cfk-row:hover{ background: #fff; }
.dir-bands .cfk-icon{ width: 48px; height: 48px; border-radius: 16px; background: var(--brand-100); color: var(--brand-700); transition: background-color 0.2s, color 0.2s; }
.dir-bands .cfk-row:hover .cfk-icon{ background: var(--brand-700); color: #fff; }
.dir-bands .cfk-label{ font-size: 0.75rem; line-height: 1rem; font-weight: 700; letter-spacing: 0.12em; color: var(--ink-muted); }
.dir-bands .cfk-value{ font-weight: 600; color: var(--ink); overflow-wrap: break-word; }
.dir-bands .cfk-note{ font-size: 0.75rem; line-height: 1rem; color: var(--ink-muted); }
.dir-bands .cfk-go{ color: var(--brand-600); }
.dir-bands .cfk-hours{ padding: 24px; border: 1px solid var(--sand-200); border-radius: var(--card-r); background: #fff; }
.dir-bands .cfk-hours h3{ gap: 8px; font: 600 1.125rem/1.75rem var(--font-display); letter-spacing: -0.025em; }
.dir-bands .cfk-hours h3 .icon{ color: var(--brand-700); }
.dir-bands .cfk-hours dl{ margin-top: 16px; font-size: 0.875rem; line-height: 1.25rem; }
.dir-bands .cfk-hours dl div{ gap: 2px 16px; padding-block: 10px; border: 0; }
.dir-bands .cfk-hours dl div:not(:last-child){ border-bottom: 1px solid var(--sand-200); }
.dir-bands .cfk-hours dt{ font-weight: 500; color: var(--ink); }
.dir-bands .cfk-hours dd{ color: var(--ink-muted); }
.dir-bands .cfk-hours .btn{ min-height: 44px; margin-top: 20px; padding: 0 20px; font-size: 0.9375rem; }
.dir-bands .cfk-card{ padding: 24px; border: 1px solid var(--sand-200); border-radius: var(--card-r); background: #fff; box-shadow: var(--shadow-lift); }
@media (min-width: 640px){.dir-bands .cfk-card{ padding: 40px; }
}
.dir-bands .cfk-title{ font: 600 clamp(1.5rem, 1.25rem + 1vw, 2.125rem)/1.15 var(--font-display); letter-spacing: -0.0245em; }
.dir-bands .cfk-intro{ max-width: 32rem; margin: 8px 0 32px; font-size: 0.9375rem; line-height: 1.625; color: var(--ink-muted); }
.dir-bands .form{ gap: 20px; }
@media (min-width: 640px){.dir-bands .form-split{ column-gap: 20px; }
}
.dir-bands .form label:not(.form-consent){ display: block; font-size: 1rem; line-height: 1.5rem; }
.dir-bands .form label:not(.form-consent) > span:first-child{ font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; color: var(--ink); }
.dir-bands .form label:not(.form-consent) > :is(input, select, textarea){ display: block; width: 100%; margin-top: 6px; }
.dir-bands .f-req{ margin: 0; color: var(--clay-600); }
.dir-bands .f-opt{ font-weight: 400; color: var(--ink-muted); }
.dir-bands .form :is(input:not([type='checkbox']), select, textarea){ min-height: 48px; padding: 10px 16px; border: 1px solid color-mix(in srgb, var(--ink-muted) 70%, transparent); border-radius: 14px; background: #fff; color: var(--ink); font: 400 1rem/1.5rem var(--font-body); transition: border-color 0.2s, box-shadow 0.2s; }
@media (min-width: 640px){.dir-bands .form :is(input:not([type='checkbox']), select, textarea){ font-size: 0.9375rem; }
}
.dir-bands .form :is(input, select, textarea):hover{ border-color: var(--ink-soft); }
.dir-bands .form :is(input, select, textarea):focus-visible{ border-color: var(--brand-600); outline: none; box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand-500) 15%, transparent); }
.dir-bands .form label > textarea:not(#x){ min-height: 128px; padding-block: 12px; line-height: 1.5; resize: vertical; }
.dir-bands .form label:not(.form-consent) > textarea{ display: inline-block; vertical-align: baseline; }
.dir-bands .f-hint{ margin: -14px 0 0; font-size: 0.75rem; line-height: 1rem; color: var(--ink-muted); }
.dir-bands .form-consent{ gap: 12px; margin-top: 20px; font-size: 0.875rem; line-height: 1.625; font-weight: 400; color: var(--ink-soft); }
.dir-bands .form-consent input{ width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--brand-700); }
.dir-bands .f-consent-note{ margin-top: -16px; padding-left: 32px; }
.dir-bands .f-hint a{ color: var(--brand-700); font-weight: 600; text-decoration: underline; text-decoration-color: color-mix(in oklab, currentColor 35%, transparent); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.dir-bands .form-send{ flex-direction: column; align-items: flex-start; gap: 12px; }
@media (min-width: 640px){.dir-bands .form-send{ flex-direction: row; align-items: center; }
}
.dir-bands .form-send p{ font-size: 0.75rem; line-height: 1rem; color: var(--ink-muted); }
.dir-bands .form button.btn-fill{ min-height: 52px; padding: 0 28px; font-size: 1rem; box-shadow: var(--shadow-soft); }
@media (max-width: 639px){.dir-bands .form-send .btn{ width: 100%; }
}
.dir-bands .chat{ right: 16px; bottom: 16px; }
@media (min-width: 640px){.dir-bands .chat{ right: 24px; bottom: 24px; }
}
.dir-bands .chat-open{ background: var(--brand-800); color: #fff; transition: transform 0.2s, background-color 0.2s; }
.dir-bands .chat-open:hover{ transform: translateY(-2px); background: var(--brand-900); }
.dir-bands .chat-open.has-avatar{ min-height: 56px; padding: 6px; gap: 12px; border: 1px solid color-mix(in srgb, var(--brand-900) 10%, transparent); font: 600 0.875rem/1.25rem var(--font-body); box-shadow: var(--shadow-lift); }
@media (min-width: 640px){.dir-bands .chat-open.has-avatar{ padding-right: 20px; }
}
.dir-bands .chat-open picture{ position: relative; display: block; overflow: hidden; background: var(--brand-100); }
.dir-bands .chat-open picture::after{ content: ''; position: absolute; right: 0; bottom: 0; width: 10px; height: 10px; border: 2px solid var(--brand-800); border-radius: 50%; background: oklch(0.765 0.177 163.223); }
.dir-bands .cta{ padding: 12px; background: none; color: var(--ink); }
@media (min-width: 640px){.dir-bands .cta{ padding: 16px; }
}
.dir-bands .cta::before{ display: none; }
.dir-bands .cta > .wrap{ position: relative; isolation: isolate; overflow: hidden; display: block; width: auto; padding: 80px 20px; border-radius: calc(var(--card-r) * 1.25); background: var(--brand-800); color: #fff; text-align: center; }
@media (min-width: 640px){.dir-bands .cta > .wrap{ padding: 96px 32px; }
}
@media (min-width: 1024px){.dir-bands .cta > .wrap{ padding-block: 112px; }
}
.dir-bands .cta > .wrap::before{ content: ''; position: absolute; z-index: -1; top: -10rem; left: -5rem; width: 30rem; height: 30rem; border-radius: 50%; background: radial-gradient(closest-side, var(--brand-600), transparent); opacity: 0.6; }
.dir-bands .cta > .wrap::after{ content: ''; position: absolute; z-index: -1; right: -10rem; bottom: -10rem; width: 44rem; height: 44rem; background: radial-gradient(circle, transparent 0 104.7px, var(--brand-600) 104.7px 106.5px, transparent 106.5px 175.1px, color-mix(in srgb, var(--brand-600) 80%, transparent) 175.1px 176.9px, transparent 176.9px 245.5px, color-mix(in srgb, var(--brand-600) 60%, transparent) 245.5px 247.3px, transparent 247.3px 315.9px, color-mix(in srgb, var(--brand-600) 40%, transparent) 315.9px 317.7px, transparent 317.7px); }
.dir-bands .cta h2{ max-width: 42rem; margin-inline: auto; font-size: clamp(2.35rem, 1.6rem + 3.2vw, 4.25rem); line-height: 1.03; color: #fff; }
.dir-bands .cta h2 + p{ max-width: 36rem; margin: 20px auto 0; font-size: 1.125rem; line-height: 1.625; color: var(--brand-100); opacity: 1; }
.dir-bands .cta .actions{ flex-direction: column; justify-content: center; margin-top: 40px; }
@media (min-width: 640px){.dir-bands .cta .actions{ flex-direction: row; }
}
.dir-bands .cta .eyebrow{ margin-bottom: 16px; }
.dir-bands .course-top{ padding-block: 24px 40px; background: var(--sand-50); border-bottom: 1px solid var(--sand-200); }
@media (min-width: 640px){.dir-bands .course-top{ padding-block: 32px 56px; }
}
.dir-bands .course-head{ gap: 40px; margin-top: 24px; align-items: start; }
@container (min-width: 860px){.dir-bands .course-head:not(.is-solo){ grid-template-columns: 1fr; }
}
@media (min-width: 1024px){.dir-bands .course-head:not(.is-solo){ grid-template-columns: 1.1fr 0.9fr; gap: 56px; }
}
.dir-bands .course-intro{ display: flex; flex-direction: column; gap: 20px; }
.dir-bands .course-meta{ gap: 12px; margin: 0; font-size: 0.875rem; line-height: 1.25rem; font-weight: 400; color: var(--ink-muted); }
.dir-bands .course-meta > span:not(.tag){ gap: 6px; }
.dir-bands .course-meta .icon{ width: 16px; height: 16px; }
.dir-bands .course-h{ max-width: none; font-size: clamp(2.35rem, 1.6rem + 3.2vw, 4.25rem); line-height: 1.03; }
.dir-bands .course-summary{ max-width: 42rem; margin: 0; font-size: 1.125rem; line-height: 1.625; color: var(--ink-soft); }
.dir-bands .course-intro .actions{ flex-direction: column; margin-top: 4px; }
@media (min-width: 640px){.dir-bands .course-intro .actions{ flex-direction: row; }
}
.dir-bands .course-intro .btn{ min-height: 52px; padding: 0 28px; font-size: 1rem; }
.dir-bands :is(.course-intro, .course-box) .btn-fill::after{ content: none; }
.dir-bands .course-head > :is(picture, .pic-contain){ display: block; overflow: hidden; border: 1px solid var(--sand-200); border-radius: var(--media-r); background: #fff; }
.dir-bands .course-pic{ aspect-ratio: 4 / 3; border-radius: 0; box-shadow: none; }
.dir-bands .course{ padding-block: var(--sec-pad); }
.dir-bands .course-grid{ gap: 40px; padding: 0; }
@container (min-width: 860px){.dir-bands .course-grid{ grid-template-columns: 1fr; }
.dir-bands .course-aside{ position: static; }
}
@media (min-width: 1024px){.dir-bands .course-grid{ grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 56px; }
.dir-bands .course-aside{ position: sticky; top: 96px; align-self: start; }
}
.dir-bands .course-main{ display: flex; flex-direction: column; gap: 40px; }
.dir-bands .course .rich{ font-size: 1.0625rem; line-height: 1.75; color: var(--ink-soft); }
.dir-bands .course .rich,.dir-bands .course .rich > *{ max-width: none; }
.dir-bands .course .rich :is(h2, h3){ margin: 40px 0 0; font: 650 1.625rem/1.2 var(--font-display); letter-spacing: -0.035em; color: var(--ink); }
.dir-bands .course .rich > :first-child{ margin-top: 0; }
.dir-bands .course-tile{ padding: 24px; border: 1px solid var(--sand-200); border-radius: var(--card-r); background: #fff; }
@media (min-width: 640px){.dir-bands .course-tile{ padding: 28px; }
}
.dir-bands .course .course-tile :is(h2, h3){ font: 600 1.25rem/1.75rem var(--font-display); letter-spacing: -0.025em; color: var(--ink); }
.dir-bands .course-tile .checks{ gap: 10px; margin-top: 16px; font-size: 0.9375rem; color: var(--ink-soft); }
.dir-bands .course-tile .checks li{ gap: 10px; }
.dir-bands .course-tile .checks li::before{ width: 16px; height: 16px; margin-top: 2px; border-radius: 0; background: var(--brand-600); -webkit-mask: var(--m-check-thin) center / contain no-repeat; mask: var(--m-check-thin) center / contain no-repeat; }
.dir-bands .course-tile:has(.course-facts){ border-color: var(--brand-200); background: var(--brand-50); }
.dir-bands .course .course-tile:has(.course-facts) :is(h2, h3){ font-size: 1.125rem; }
.dir-bands .course-facts{ gap: 12px; margin-top: 12px; font-size: 0.9375rem; color: var(--ink-soft); }
.dir-bands .course-facts dt{ font-weight: 600; color: var(--ink); }
.dir-bands .course-facts dd{ max-width: none; margin: 0; }
.dir-bands .course-box{ padding: 24px; border: 1px solid var(--sand-200); border-radius: var(--card-r); background: #fff; box-shadow: var(--shadow-soft); }
.dir-bands .course-box-label{ font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; color: var(--ink-muted); }
.dir-bands .course-price{ display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 8px; margin-top: 4px; font: 700 1.875rem/2.25rem var(--font-body); letter-spacing: -0.025em; color: var(--ink); }
.dir-bands .course-price .price-unit{ font: 400 0.875rem/1.25rem var(--font-body); letter-spacing: 0; color: var(--ink-muted); }
.dir-bands .course-book{ margin-top: 20px; }
.dir-bands .course-ways{ gap: 8px; margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--sand-200); font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; }
.dir-bands .course-ways a{ display: flex; gap: 8px; color: var(--ink-soft); overflow-wrap: anywhere; }
.dir-bands .course-ways a:hover{ color: var(--brand-800); }
.dir-bands .course-ways .icon{ width: 16px; height: 16px; color: var(--brand-700); }
.dir-bands .course-aside-note{ margin-top: 16px; font-size: 0.75rem; line-height: 1.625; color: var(--ink-muted); }
.dir-bands .course-aside-note a{ color: var(--brand-700); font-weight: 600; text-decoration: underline; text-decoration-color: color-mix(in oklab, currentColor 35%, transparent); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.dir-bands .site-footer{ padding-top: 0; background: var(--brand-950); color: var(--brand-100); font-size: 1rem; }
.dir-bands .site-footer::before{ display: none; }
.dir-bands .site-footer :is(p, ul, dl){ margin: 0; }
.dir-bands .fc-grid{ gap: 48px; padding-block: 80px 56px; }
@media (min-width: 640px){.dir-bands .fc-grid{ grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1024px){.dir-bands .fc-grid{ grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; }
}
.dir-bands .fc-about{ display: flex; flex-direction: column; gap: 20px; }
.dir-bands .fc-brand{ gap: 12px; margin: 0; font-size: 1rem; line-height: 1.5rem; font-weight: 700; color: #fff; }
.dir-bands .fc-about p{ max-width: 20rem; font-size: 0.875rem; line-height: 1.625; color: var(--brand-200); opacity: 1; }
.dir-bands .site-footer .footer-socials{ gap: 8px; margin: 0; }
.dir-bands .footer-socials a{ width: 44px; height: 44px; border: 1px solid rgb(255 255 255 / 0.2); border-radius: 50%; background: none; color: var(--brand-100); transition: border-color 0.3s, color 0.3s, background-color 0.3s, transform 0.3s; }
.dir-bands .footer-socials a:hover{ transform: translateY(-2px); border-color: rgb(255 255 255 / 0.5); background: rgb(255 255 255 / 0.1); color: #fff; }
.dir-bands .footer-socials svg{ width: 20px; height: 20px; }
.dir-bands .fc-col{ display: flex; flex-direction: column; gap: 12px; }
.dir-bands .site-footer .fc-col h2{ margin: 0; font: 700 0.75rem/1rem var(--font-display); letter-spacing: 0.16em; text-transform: uppercase; color: var(--brand-200); opacity: 1; }
.dir-bands .fc-col ul{ display: flex; flex-direction: column; gap: 10px; font-size: 0.875rem; line-height: 1.25rem; }
.dir-bands .fc-col a{ font-weight: 400; transition: color 0.15s; }
.dir-bands .fc-col a:hover{ color: #fff; text-decoration: none; }
.dir-bands .fc-contact{ gap: 16px; }
.dir-bands .fc-contact address{ gap: 12px; font-size: 0.875rem; line-height: 1.25rem; }
.dir-bands .site-footer .fc-contact address p{ gap: 10px; align-items: center; }
.dir-bands .site-footer .fc-contact address p:first-child{ align-items: flex-start; }
.dir-bands .fc-contact .icon{ margin: 0; color: var(--brand-300); opacity: 1; }
.dir-bands .fc-contact address p:first-child .icon{ margin-top: 2px; }
.dir-bands .fc-hours{ gap: 4px; margin: 0; font-size: 0.875rem; line-height: 1.25rem; color: var(--brand-200); }
.dir-bands .fc-hours dt{ opacity: 1; }
.dir-bands .fc-hours dd{ color: var(--brand-100); font-variant-numeric: normal; }
.dir-bands .site-footer .fc-org{ margin: 0; font-size: 0.75rem; line-height: 1rem; color: var(--brand-200); opacity: 1; }
.dir-bands .footer-cols .footer-name{ width: min(1184px, 100% - 40px); margin: 0 auto -0.18em !important; padding: 0; font: 600 clamp(1.75rem, 7.6vw, 7.25rem)/1 var(--font-display); letter-spacing: -0.05em; text-align: center; color: var(--brand-500); filter: none; pointer-events: none; user-select: none; }
@media (min-width: 640px){.dir-bands .footer-cols .footer-name{ width: min(1184px, 100% - 64px); }
}
.dir-bands .fc-bar{ border-top: 1px solid rgb(255 255 255 / 0.1); }
.dir-bands .fc-bar .wrap{ flex-direction: column; align-items: flex-start; gap: 16px; padding-block: 24px 96px; font-size: 0.75rem; line-height: 1rem; color: var(--brand-200); }
@media (min-width: 640px){.dir-bands .fc-bar .wrap{ flex-direction: row; align-items: center; justify-content: space-between; }
}
.dir-bands .site-footer .fc-bar p{ opacity: 1; }
.dir-bands .site-footer .fc-legal{ gap: 8px 20px; }
.dir-bands .fc-legal a{ opacity: 1; transition: color 0.15s; }
.dir-bands .fc-legal a:hover{ color: #fff; text-decoration: none; }
.dir-bands .footer-cols .footer-langs a{ min-height: 36px; padding-inline: 12px; color: var(--brand-200); font-size: 0.75rem; font-weight: 600; letter-spacing: 0; }
.dir-bands .footer-cols .footer-langs a:hover{ background: rgb(255 255 255 / 0.1); color: #fff; }
.dir-bands .footer-cols .footer-langs a[aria-current]{ background: rgb(255 255 255 / 0.1); color: #fff; text-decoration: none; }
.dir-bands .blog-cards > .page-header{ padding-bottom: 56px; }
@media (min-width: 640px){.dir-bands .blog-cards > .page-header{ padding-bottom: 80px; }
}
.dir-bands .blog-cards-list{ padding-block: var(--sec-pad); }
.dir-bands .post-cards{ gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 640px){.dir-bands .post-cards{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px){.dir-bands .post-cards{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.dir-bands .post-card{ display: flex; flex-direction: column; background: #fff; border: 1px solid var(--sand-200); border-radius: var(--card-r); transition: border-color 0.15s, box-shadow 0.15s; }
.dir-bands .post-card:hover{ transform: none; border-color: var(--brand-200); box-shadow: var(--shadow-soft); }
.dir-bands .post-card picture{ display: block; background: var(--sand-100); }
.dir-bands .post-card-pic{ aspect-ratio: 16 / 10; }
.dir-bands .post-card-body{ display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 24px; }
.dir-bands .post-card .post-date{ font-size: 0.75rem; line-height: 1rem; font-weight: 600; color: var(--brand-700); }
.dir-bands .post-card .post-card-title{ font: 700 1.125rem/1.375 var(--font-display); letter-spacing: -0.035em; color: var(--ink); }
.dir-bands .post-card .post-summary{ margin: 0; font-size: 0.875rem; line-height: 1.625; color: var(--ink-muted); }
.dir-bands .post-card .more{ display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 8px; font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; color: var(--brand-800); }
.dir-bands .post-card .more::after{ content: ''; width: 16px; height: 16px; margin: 0; background: currentColor; -webkit-mask: var(--m-arrow) center / contain no-repeat; mask: var(--m-arrow) center / contain no-repeat; transition: transform 0.15s; }
.dir-bands .post-card:hover .more::after{ transform: translateX(2px); }
.dir-bands .page-header.post-header{ padding-block: 24px 40px; }
@media (min-width: 640px){.dir-bands .page-header.post-header{ padding-block: 32px 48px; }
}
.dir-bands .post-header::before,.dir-bands .post-header::after{ content: none; }
.dir-bands .post-header .crumbs + .page-head{ margin-top: 24px; }
.dir-bands .post-header .page-intro{ max-width: none; margin-top: 16px; }
.dir-bands .post-header .post-h{ max-width: none; }
.dir-bands .post-header .post-meta{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 20px; font-size: 0.875rem; line-height: 1.25rem; color: var(--ink-muted); }
.dir-bands .blog-cards .post{ padding-bottom: 0; }
.dir-bands .blog-cards .post-figure{ width: min(1184px, 100% - 40px); margin: 24px auto 0; overflow: hidden; border: 1px solid var(--sand-200); border-radius: var(--media-r); }
@media (min-width: 640px){.dir-bands .blog-cards .post-figure{ width: min(1184px, 100% - 64px); }
}
.dir-bands .blog-cards .post-figure img{ border-radius: 0; }
.dir-bands .blog-cards .post-col{ width: min(768px, 100% - 40px); }
.dir-bands .blog-cards .post-body{ margin-block: 40px; font-size: 1.0625rem; line-height: 1.75; color: var(--ink-soft); }
@media (min-width: 640px){.dir-bands .blog-cards .post-body{ margin-block: 56px; }
}
.dir-bands .blog-cards .post-body > *{ margin: 0; }
.dir-bands .blog-cards .post-body > * + *{ margin-top: 16px; }
.dir-bands .blog-cards .post-body h2{ margin-top: 40px; font: 650 1.625rem/1.2 var(--font-display); letter-spacing: -0.035em; color: var(--ink); }
.dir-bands .blog-cards .post-body h3{ margin-top: 28px; font: 650 1.25rem/1.3 var(--font-display); letter-spacing: -0.022em; color: var(--ink); }
.dir-bands .blog-cards .post-body :is(ul, ol){ display: grid; gap: 8px; padding-left: 20px; }
.dir-bands .blog-cards .post-body li + li{ margin: 0; }
.dir-bands .blog-cards .post-body li::marker{ color: var(--brand-500); }
.dir-bands .blog-cards .post-body strong{ color: var(--ink); font-weight: 700; }
.dir-bands .blog-cards .post-body a{ color: var(--brand-700); font-weight: 600; text-decoration-color: color-mix(in oklab, currentColor 35%, transparent); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.dir-bands .post-related{ padding-block: var(--sec-pad); background: var(--sand-100); }
.dir-bands .post-related .post-more-h{ margin-bottom: 24px; font-size: clamp(1.5rem, 1.25rem + 1vw, 2.125rem); line-height: 1.15; letter-spacing: -0.0245em; }
.dir-bands .post-related .offers{ grid-template-columns: 1fr; }
@media (min-width: 640px){.dir-bands .post-related .offers{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px){.dir-bands .post-related .offers{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.dir-bands .flow > :is(.sec, .sec-field){ padding-top: 48px; }
.dir-bands :is(.sec, .flow, .band):has(+ .flow),.dir-bands :is(.flow, .band):has(+ .flow) > :is(.sec, .sec-field){ padding-bottom: 0; }
.dir-bands .flow .wrap.narrow.prose{ width: min(1184px, 100% - 40px); }
@media (min-width: 640px){.dir-bands .flow .wrap.narrow.prose{ width: min(1184px, 100% - 64px); }
}
.dir-bands .txc{ max-width: 48rem; padding: 24px; border: 1px solid var(--sand-200); border-radius: var(--card-r); background: #fff; }
@media (min-width: 640px){.dir-bands .txc{ padding: 32px; }
}
.dir-bands .txc h2{ margin: 0; font: 600 1.25rem/1.75rem var(--font-display); letter-spacing: -0.025em; }
.dir-bands .txc .rich{ max-width: none; margin-top: 12px; font-size: 1.0625rem; line-height: 1.75; color: var(--ink-soft); }
.dir-bands .txc .rich p{ margin: 0; font-size: inherit; line-height: inherit; }
.dir-bands .txc .rich > * + *{ margin-top: 16px; }
.dir-bands .flow .txc{ max-width: none; }
.dir-bands .flow .txc :is(p, .rich){ max-width: 42rem; margin: 8px 0 0; font-size: 0.9375rem; line-height: 1.625; color: var(--ink-muted); }
.dir-bands .flow .txc .rich p{ margin: 0; }
.dir-bands .wrap.narrow.prose{ width: min(1184px, 100% - 40px); }
@media (min-width: 640px){.dir-bands .wrap.narrow.prose{ width: min(1184px, 100% - 64px); }
}
.dir-bands .wrap.narrow.prose > *{ max-width: 48rem; }
.dir-bands .prose h2{ margin: 0 0 16px; font-size: clamp(1.5rem, 1.25rem + 1vw, 2.125rem); line-height: 1.15; letter-spacing: -0.0245em; }
.dir-bands :is(.prose > p, .rich){ font-size: 1.0625rem; line-height: 1.75; color: var(--ink-soft); }
.dir-bands :is(.prose > p + p, .rich > * + *){ margin-top: 16px; }
.dir-bands .rich :is(ul, ol){ display: grid; gap: 8px; margin-block: 0; padding-left: 20px; }
.dir-bands .rich ul li::marker{ color: var(--brand-500); }
.dir-bands .rich strong{ color: var(--ink); font-weight: 700; }
.dir-bands .rich h2{ margin-top: 40px; font-size: 1.625rem; line-height: 1.2; }
.dir-bands .rich h3{ margin-top: 28px; font-size: 1.25rem; line-height: 1.3; }
.dir-bands .head-small .sec-head{ gap: 8px; margin-bottom: 32px; }
.dir-bands .head-small .sec-head h2{ font-size: clamp(1.5rem, 1.25rem + 1vw, 2.125rem); line-height: 1.15; letter-spacing: -0.0245em; }
.dir-bands .head-small .sec-intro{ max-width: 42rem; margin: 0; font-size: 0.9375rem; color: var(--ink-muted); }
.dir-bands :is(.flow.head-small, .head-small:not(:has(.sec-intro))) .sec-head{ margin-bottom: 24px; }
.dir-bands .flow.head-small .sec-intro{ line-height: 1.5; }
.dir-bands .flow.head-small > .sec{ padding-top: 40px; }
.dir-bands .links-v-portrait .lp{ gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 640px){.dir-bands .links-v-portrait .lp{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px){.dir-bands .links-v-portrait .lp{ grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
.dir-bands .links-v-portrait .lp-card{ display: flex; flex-direction: column; aspect-ratio: auto; background: #fff; color: var(--ink); border: 1px solid var(--sand-200); border-radius: var(--card-r); transition: border-color 0.15s, box-shadow 0.15s; }
.dir-bands .links-v-portrait .lp-card:hover{ transform: none; border-color: var(--brand-200); box-shadow: var(--shadow-soft); }
.dir-bands .links-v-portrait .lp-card picture{ display: block; background: var(--sand-100); }
.dir-bands .links-v-portrait .lp-pic{ position: static; aspect-ratio: 9 / 16; height: auto; }
.dir-bands .links-v-portrait .lp-play{ inset: 0 0 auto; width: auto; height: auto; aspect-ratio: 9 / 16; background: none; color: var(--brand-800); }
.dir-bands .links-v-portrait .lp-play svg{ box-sizing: content-box; width: 24px; height: 24px; padding: 16px; margin-left: 2px; border-radius: 50%; background: rgb(255 255 255 / 0.9); box-shadow: var(--shadow-float); transition: transform 0.15s; }
.dir-bands .links-v-portrait .lp-card:hover .lp-play svg{ transform: scale(1.05); }
.dir-bands .links-v-portrait .lp-cap{ position: static; display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 16px; background: none; color: var(--ink); }
.dir-bands .links-v-portrait .lp-source{ margin: 0; font-size: 0.75rem; line-height: 1rem; font-weight: 600; color: var(--brand-700); }
.dir-bands .links-v-portrait .lp-card h3{ font: 700 1rem/1.375 var(--font-display); letter-spacing: -0.022em; }
.dir-bands .links-v-portrait .sec-head{ margin-bottom: 48px; }
.dir-bands .pc-price .campaign{ display: inline-flex; flex-direction: column-reverse; align-items: flex-start; gap: 6px; }
.dir-bands .pc-price .campaign .now{ display: inline-flex; flex-wrap: wrap; align-items: baseline; column-gap: 8px; }
.dir-bands .pc-price .campaign .was{ display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; font: 400 0.875rem/1.25rem var(--font-body); letter-spacing: 0; color: var(--ink-muted); vertical-align: baseline; }
.dir-bands .pc-price .was s{ text-decoration-color: color-mix(in srgb, var(--clay-500) 70%, transparent); text-decoration-thickness: auto; }
.dir-bands .pc-price .save{ display: inline-flex; align-items: center; padding: 4px 12px; border-radius: 999px; font: 600 0.75rem/1rem var(--font-body); letter-spacing: 0.025em; background: color-mix(in srgb, var(--clay-500) 10%, transparent); color: var(--clay-600); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--clay-500) 25%, transparent); }
.dir-bands .is-marked .pc-price .was{ color: var(--brand-100); }
.dir-bands .is-marked .pc-price .save{ background: rgb(255 255 255 / 0.1); color: #fff; box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.25); }
.dir-bands .pc-price .price-unit{ font: 400 0.875rem/1.25rem var(--font-body); letter-spacing: 0; color: var(--ink-muted); }
.dir-bands .is-marked .pc-price .price-unit{ color: var(--brand-100); }
.dir-bands .blog-cards .post{ font-size: 1rem; }
.dir-bands .post-related{ background: var(--surface); }
.dir-bands .qvp-btn::after{ content: ''; flex: none; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--m-out) center / contain no-repeat; mask: var(--m-out) center / contain no-repeat; }
.dir-bands .fc-col a{ font-weight: 400; }
.dir-bands .cfk-rows li{ text-wrap: wrap; }
.dir-bands .crumb-sep{ font-weight: 400; }
.dir-bands .txc .rich > p + p{ margin-top: 16px; }
.dir-bands .rich strong{ font-weight: 700; color: var(--ink); }
.dir-bands .ti-left > picture{ order: -1; }
.dir-bands .page-header:not(:has(.page-eyebrow)) .page-intro{ max-width: none; }
.dir-bands .page-updated{ margin-top: 16px; font-size: 0.875rem; line-height: 1.25rem; color: var(--ink-muted); }
.dir-bands .prose p{ max-width: none; font-size: 1.0625rem; line-height: 1.75; }
.dir-bands .post-card time,.dir-bands .link-date time{ font-variant-numeric: normal; }
.dir-bands .blog-cards .post-body{ margin-block: 0; padding-block: 40px; }
@media (min-width: 640px){.dir-bands .blog-cards .post-body{ padding-block: 56px; }
}
.dir-bands .form-consent > span{ line-height: 24px; }
.dir-bands .stat-label{ text-wrap: wrap; }
.dir-bands .ph-band .crumbs :is(ol, [aria-current]){ color: inherit; }
.dir-bands .ti > picture{ display: block; overflow: hidden; border-radius: var(--media-r); }
@media (min-width: 640px){.dir-bands .fc-bar .wrap{ flex-wrap: nowrap; }
.dir-bands .fc-bar .wrap > *{ min-width: 0; }
.dir-bands .footer-langs{ flex: none; }
}
.dir-bands .offer-foot > *,.dir-bands .offer .more{ white-space: normal; }
.hero-v-photo{ position: relative; isolation: isolate; overflow: hidden; display: grid; align-items: center; min-height: min(88svh, 920px); background: var(--deep); color: var(--on-deep); text-align: center; }
.hero-v-photo .hvp-media{ position: absolute; inset: 0; z-index: -1; }
.hero-v-photo .hvp-media img{ width: 100%; height: 100%; object-fit: cover; }
.hero-v-photo .hvp-media::after{ content: ''; position: absolute; inset: 0; background: linear-gradient(rgb(0 0 0 / 0.5), rgb(0 0 0 / 0.42) 40%, rgb(0 0 0 / 0.62)); }
.hero-v-photo.has-pic{ color: #fff; }
.hero-v-photo .hvp-over{ padding-block: clamp(64px, 10vw, 128px); display: grid; justify-items: center; }
.hero-v-photo .hero-h{ font-size: clamp(2.6rem, 1rem + 5.4vw, 6.4rem); max-width: 14ch; overflow-wrap: anywhere; hyphens: auto; }
.hero-v-photo .hero-lead{ max-width: 32em; margin-inline: auto; }
.hero-v-photo .actions,.hero-v-photo .proofs{ justify-content: center; }
.hero-v-photo .btn-line{ color: inherit; }
.hero-v-photo .btn-line:hover{ color: var(--ink); background: #fff; }
.hero-v-photo:not(.has-pic) .btn-line:hover{ color: var(--deep); background: var(--on-deep); }
.hero-v-photo .proofs li::before{ color: inherit; }
.hero-v-photo .hvp-video{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-v-photo .hvp-toggle{ position: absolute; top: 16px; right: 16px; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: rgb(0 0 0 / 0.55); color: #fff; cursor: pointer; }
.hero-v-photo .hvp-toggle[hidden]{ display: none; }
.hero-v-photo .hvp-toggle:hover{ background: rgb(0 0 0 / 0.75); }
.hvp-toggle .icon:last-child,.hvp-toggle.paused .icon:first-child{ display: none; }
.hvp-toggle.paused .icon:last-child{ display: block; }
.stl{ margin: 0; padding: 0; list-style: none; display: grid; gap: 40px; }
.stl-step{ position: relative; display: flex; gap: 20px; }
.stl-num{ position: relative; z-index: 1; flex: none; display: grid; place-items: center; width: 56px; height: 56px; border: 1px solid var(--tint-strong); border-radius: 50%; background: var(--card); color: var(--accent-text); font: var(--display-weight) 1.125rem/1 var(--font-display); font-variant-numeric: lining-nums; box-shadow: 0 1px 2px rgb(0 0 0 / 0.04), 0 12px 32px -12px rgb(0 0 0 / 0.12); }
.stl-step:not(:last-child)::before{ content: ''; position: absolute; left: 28px; top: 64px; bottom: -32px; width: 1px; background: repeating-linear-gradient(180deg, var(--tint-strong) 0 8px, transparent 8px 14px); }
.stl-step > div{ padding-top: 8px; }
.stl-step h3{ margin: 0 0 8px; font: var(--display-weight) 1.25rem/1.35 var(--font-display); letter-spacing: var(--display-tracking); }
.stl-step p{ margin: 0; font-size: 0.9375rem; line-height: 1.65; color: var(--muted); }
.stl-link{ display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-size: 0.875rem; font-weight: 650; color: var(--primary-text); text-decoration: none; }
.stl-link:hover{ text-decoration: underline; }
@media (min-width: 1024px){.stl{ grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 32px; }
.stl-step{ flex-direction: column; gap: 24px; }
.stl-step > div{ padding: 0 16px 0 0; }
.stl-step:not(:last-child)::before{ top: 28px; left: 68px; right: -24px; bottom: auto; width: auto; height: 1px; background: repeating-linear-gradient(90deg, var(--tint-strong) 0 12px, transparent 12px 22px); }
}
.qvp-grid{ display: grid; gap: 24px; }
@media (min-width: 1024px){.qvp-grid.has-sum{ grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 32px; }
}
.qvp-panel{ display: flex; flex-direction: column; justify-content: space-between; gap: 32px; padding: clamp(28px, 3vw, 36px); border-radius: max(var(--radius-media), 20px); background: var(--deep); color: var(--on-deep); }
.qvp-src{ display: flex; align-items: center; gap: 10px; margin: 0; font-size: 0.875rem; font-weight: 650; }
.qvp-g{ display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #fff; }
.qvp-score{ margin: 32px 0 0; font: var(--display-weight) clamp(3.5rem, 2.5rem + 3vw, 4.5rem)/1 var(--font-display); letter-spacing: var(--display-tracking); font-variant-numeric: lining-nums; }
.qvp-score span{ margin-left: 6px; font-size: 0.34em; font-weight: 500; letter-spacing: 0; opacity: 0.75; }
.qvp-panel .stars{ display: block; margin-top: 16px; font-size: 1.25rem; color: var(--signal-on-deep); }
.qvp-count{ margin: 12px 0 0; font-size: 0.875rem; opacity: 0.85; }
.qvp-btn{ display: flex; width: 100%; justify-content: center; min-height: 44px; padding: 10px 20px; background: #fff; color: #16181a; font-size: 0.9375rem; }
.qvp-fetched{ margin: 16px 0 0; font-size: 0.75rem; line-height: 1.6; opacity: 0.8; }
.qvp-list{ margin: 0; padding: 0; list-style: none; display: grid; gap: 16px; }
@media (min-width: 640px){.qvp-list{ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 639px){.qvp-list{ display: flex; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; margin-inline: calc(-1 * clamp(20px, 4vw, 48px)); padding: 0 clamp(20px, 4vw, 48px) 8px; scrollbar-width: none; }
.qvp-card{ flex: 0 0 85%; scroll-snap-align: start; }
}
.qvp-card{ display: flex; flex-direction: column; gap: 20px; padding: clamp(24px, 2.4vw, 28px); background: var(--paper); color: var(--ink); border: 1px solid var(--edge); border-radius: max(var(--radius-media), 20px); }
.qvp-mark{ color: var(--tint-strong); }
.qvp-card blockquote{ flex: 1; margin: 0; font-size: 0.9375rem; line-height: 1.65; }
.qvp-card blockquote p{ margin: 0; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 6; line-clamp: 6; overflow: hidden; }
.qvp-who{ display: flex; align-items: center; gap: 12px; padding-top: 20px; border-top: 1px solid var(--edge); }
.qvp-face{ flex: none; width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.qvp-by{ flex: 1; min-width: 0; }
.qvp-by p{ margin: 0; }
.qvp-name{ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.875rem; font-weight: 650; }
.qvp-name a,.qvp-when a{ color: inherit; text-decoration: none; }
.qvp-name a:hover,.qvp-when a:hover{ text-decoration: underline; }
.qvp-when{ font-size: 0.75rem; color: var(--muted); }
.qvp-who .stars{ flex: none; font-size: 0.875rem; color: var(--signal-text); }
.cfk-grid{ display: grid; gap: 48px; }
@media (min-width: 1024px){.cfk-grid{ grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px; align-items: start; }
}
.cfk-side{ display: grid; gap: 32px; align-content: start; }
.cfk-side .sec-head{ margin: 0; }
.cfk-rows{ margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.cfk-row{ display: flex; align-items: center; gap: 16px; padding: 12px; margin-inline: -12px; border-radius: 16px; color: inherit; text-decoration: none; transition: background-color 0.2s; }
.cfk-row:hover{ background: var(--card); }
.cfk-text{ flex: 1; min-width: 0; }
.cfk-go{ flex: none; color: var(--primary-text); opacity: 0; transition: opacity 0.3s, transform 0.3s; }
.cfk-row:hover .cfk-go{ opacity: 1; transform: translateX(2px); }
.cfk-icon{ flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 16px; background: var(--tint); color: var(--primary-text); }
.cfk-label{ display: block; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.cfk-value{ display: block; font-weight: 650; color: var(--ink); overflow-wrap: anywhere; }
.cfk-note{ display: block; font-size: 0.75rem; color: var(--muted); }
.cfk-hours{ padding: 24px; background: var(--card); color: var(--ink); border: 1px solid var(--edge); border-radius: max(var(--radius-media), 20px); }
.cfk-hours h3{ display: flex; align-items: center; gap: 8px; margin: 0; font: var(--display-weight) 1.125rem/1.3 var(--font-display); letter-spacing: var(--display-tracking); }
.cfk-hours h3 .icon{ color: var(--primary-text); }
.cfk-hours dl{ margin: 16px 0 0; font-size: 0.875rem; }
.cfk-hours dl div{ display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 16px; padding-block: 10px; border-top: 1px solid var(--edge); }
.cfk-hours dl div:first-child{ border-top: 0; }
.cfk-hours dt{ font-weight: 550; }
.cfk-hours dd{ margin: 0; color: var(--muted); }
.cfk-hours .btn{ display: flex; width: 100%; justify-content: center; margin-top: 20px; min-height: 46px; padding-block: 10px; font-size: 0.9375rem; }
.cfk-card{ padding: clamp(24px, 4vw, 40px); background: var(--card); color: var(--ink); border: 1px solid var(--edge); border-radius: max(var(--radius-media), 20px); box-shadow: 0 2px 4px rgb(0 0 0 / 0.04), 0 24px 48px -20px rgb(0 0 0 / 0.22); }
.cfk-title{ margin: 0; font: var(--display-weight) clamp(1.5rem, 1.25rem + 1vw, 2.125rem)/1.15 var(--font-display); letter-spacing: var(--display-tracking); }
.cfk-intro{ margin: 8px 0 32px; max-width: 32rem; font-size: 0.9375rem; line-height: 1.65; color: var(--muted); }
.cfk-card .form{ gap: 20px; }
.cfk-card label{ gap: 6px; font-size: 0.875rem; }
.cfk-card :is(input, select, textarea){ min-height: 48px; padding: 10px 16px; border: 1px solid color-mix(in srgb, var(--ink) 45%, var(--card)); border-radius: 14px; background: var(--card); font-size: 0.9375rem; }
.cfk-card textarea{ min-height: 128px; }
.cfk-card .form-consent{ font-weight: 400; }
.cfk-card .form-consent input{ min-height: 0; width: 20px; height: 20px; padding: 0; }
.cfk-side .cf-intro{ max-width: 36rem; margin: 16px 0 0; font-size: 1.125rem; line-height: 1.65; color: var(--muted); }
.txc{ max-width: 52rem; padding: clamp(24px, 3vw, 36px); background: var(--card); color: var(--ink); border: 1px solid var(--edge); border-radius: max(var(--radius-media), 20px); }
.txc h2{ margin-bottom: 12px; font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem); line-height: 1.3; letter-spacing: -0.015em; }
.txc p,.txc .rich{ max-width: 44rem; font-size: 0.9375rem; line-height: 1.7; }
.txc p:last-child{ margin-bottom: 0; }
.txc a{ color: var(--primary-text); }
.team-v-profile .tpf{ margin: 0; padding: 0; list-style: none; display: grid; gap: 32px; }
.team-v-profile .tpf-card{ display: grid; gap: 24px; padding: clamp(24px, 3vw, 32px); background: var(--card); color: var(--ink); border: 1px solid var(--edge); border-radius: var(--radius-media); }
@media (min-width: 1024px){.team-v-profile .tpf-card{ grid-template-columns: 0.38fr 0.62fr; align-items: start; gap: 40px; }
}
.team-v-profile .tpf-pic{ width: 100%; aspect-ratio: 1; object-fit: cover; object-position: 50% 30%; border-radius: min(var(--radius-media), 20px); }
.team-v-profile .tpf-card :is(h2, h3){ margin-top: 20px; font-size: 1.5rem; line-height: 1.33; }
.team-v-profile .tpf-role{ margin: 4px 0 0; font-size: 0.875rem; font-weight: 650; color: var(--primary-text); }
.team-v-profile .tpf-tags{ margin: 8px 0 0; font-size: 0.875rem; color: var(--muted); }
.team-v-profile .tpf-bio p{ margin: 0; font-size: 1.0625rem; line-height: 1.75; }
.team-v-profile .tpf-bio p + p{ margin-top: 16px; }
.ctb{ position: relative; isolation: isolate; overflow: hidden; padding: clamp(32px, 4vw, 40px) clamp(24px, 4vw, 40px); background: var(--primary); color: var(--on-primary); border-radius: var(--radius-media); }
.ctb::before{ content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: url(grain.jpg) 0 0 / 360px; mix-blend-mode: soft-light; opacity: 0.5; }
.ctb h2{ max-width: 30ch; font-size: clamp(1.5rem, 1.25rem + 1vw, 2.125rem); line-height: 1.15; color: inherit; }
.ctb p{ max-width: 42rem; margin: 16px 0 0; opacity: 0.88; }
.ctb .actions{ margin-top: 24px; }
.ctb .btn-fill{ background: var(--paper); color: var(--ink); }
.ctb .btn-line{ color: inherit; }
.ctb .marked{ color: inherit; }
.faq-v-group + .faq-v-group,.band + .faq-v-group{ padding-top: 0; }
.faq-group{ display: grid; }
.faq-group > *{ width: 100%; max-width: 46rem; }
.faq-group .faq-group-h{ margin: 0 0 14px; font: var(--display-weight) clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem)/1.2 var(--font-display); letter-spacing: var(--display-tracking); }
.faq-group .sec-intro{ margin: 0 0 16px; }
.faq-group .more{ justify-self: start; margin-top: 18px; }
.faq-v-group:has(+ .faq-v-group){ padding-bottom: clamp(28px, 3vw, 40px); }
.flow > .faq-v-group{ padding-top: 0; }
.faq-v-group:has(+ .flow > .faq-v-group),.flow:has(+ .flow > .faq-v-group) > .faq-v-group{ padding-bottom: 36px; }
.links-v-portrait .lp{ margin: 0; padding: 0; list-style: none; display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
@container (min-width: 1100px){.links-v-portrait .lp{ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
}
.links-v-portrait .lp-card{ position: relative; aspect-ratio: 9 / 16; overflow: hidden; border-radius: var(--radius-media); background: var(--deep); color: #fff; transition: transform 0.2s var(--ease); }
.links-v-portrait .lp-card:hover{ transform: translateY(-3px); }
.links-v-portrait .lp-pic{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.links-v-portrait .lp-play{ position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--accent); color: var(--on-accent); }
.links-v-portrait .lp-cap{ position: absolute; inset: auto 0 0; padding: 72px 16px 16px; background: linear-gradient(to top, rgb(0 0 0 / 0.86), rgb(0 0 0 / 0.66) 55%, transparent); }
.links-v-portrait .lp-source{ margin: 0 0 6px; font-size: 0.875rem; font-weight: 650; }
.links-v-portrait .lp-card h3{ margin: 0; font: var(--display-weight) 1.125rem/1.2 var(--font-display); letter-spacing: var(--display-tracking); }
.links-v-portrait .lp-card h3 a{ color: inherit; text-decoration: none; }
.links-v-portrait .lp-card h3 a::after{ content: ''; position: absolute; inset: 0; }
.links-v-portrait .lp-card h3 a:focus-visible{ outline: none; }
.links-v-portrait .lp-card:has(a:focus-visible){ outline: 3px solid var(--primary-text); outline-offset: 3px; }
.links-v-portrait :is(.wrap){ container-type: inline-size; }
.chat{ position: fixed; right: 16px; bottom: 16px; z-index: 20; display: grid; justify-items: end; gap: 12px; font-family: var(--font-body); }
.chat[hidden],.chat-panel[hidden]{ display: none; }
.chat-open{
  display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 12px 22px; order: 2;
  border: 2px solid var(--on-primary); border-radius: var(--radius-btn); background: var(--primary); color: var(--on-primary);
  font: 650 1rem/1.2 var(--font-body); cursor: pointer; transition: transform 0.18s var(--ease);
}
.chat-open:hover{ transform: translateY(-2px); }
.chat-open[aria-expanded='true']{ background: var(--ink); color: var(--paper); border-color: var(--paper); }
.chat-open.has-avatar{ padding: 6px 20px 6px 6px; gap: 12px; border: 1px solid color-mix(in srgb, var(--ink) 10%, transparent); font-size: 0.875rem; box-shadow: 0 24px 48px -20px rgb(0 0 0 / 0.3); }
.chat-open .chat-avatar,.chat-open picture{ flex: none; width: 44px; height: 44px; border-radius: 50%; overflow: hidden; }
.chat-avatar{ width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.chat-head .chat-avatar,.chat-head picture{ flex: none; width: 40px; height: 40px; border-radius: 50%; overflow: hidden; }
.chat-head h2{ margin-right: auto; }
@media (max-width: 639px){.chat-open.has-avatar{ padding: 6px; }
.chat-open.has-avatar .chat-open-label{ position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
.chat-panel{
  display: flex; flex-direction: column; width: min(380px, 100vw - 32px); max-height: min(560px, 100dvh - 100px);
  background: var(--paper); color: var(--ink); border: 2px solid var(--ink); border-radius: var(--radius-media);
  overflow: hidden; transition: opacity 0.22s var(--ease), transform 0.22s var(--ease), display 0.22s allow-discrete;
}
.chat-panel[hidden]{ opacity: 0; transform: translateY(8px); }
.chat:not([hidden]){ transition: opacity 0.3s var(--ease), transform 0.3s var(--ease); }
@starting-style{
  .chat-panel:not([hidden]), .chat:not([hidden]) { opacity: 0; transform: translateY(8px); }
}
.chat-head{ display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 12px 12px 18px; background: var(--primary); color: var(--on-primary); }
.chat-head h2{ margin: 0; font: var(--display-weight) 1.2rem/1.1 var(--font-display); letter-spacing: var(--display-tracking); }
.chat-close{ display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: var(--radius-btn); background: transparent; color: inherit; cursor: pointer; }
.chat-close:hover{ background: color-mix(in srgb, currentColor 14%, transparent); }
.chat-log{ flex: 1; min-height: 120px; margin: 0; padding: 16px; list-style: none; overflow-y: auto; display: grid; align-content: start; gap: 10px; }
.chat-log li{ max-width: 88%; padding: 10px 14px; border-radius: 14px; line-height: 1.45; white-space: pre-line; overflow-wrap: anywhere; }
.chat-bot{ background: var(--surface); justify-self: start; }
.chat-log a{ color: inherit; }
.chat-links{ display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.chat-bot > .chat-link{ display: inline-block; margin-top: 8px; }
.chat-link{ font-weight: 650; text-underline-offset: 3px; }
.chat-links .chat-link{ display: inline-flex; align-items: center; min-height: 36px; padding: 4px 12px; border: 1px solid var(--line); border-radius: var(--radius-btn); background: var(--paper); text-decoration: none; }
.chat-link:hover{ text-decoration: underline; }
.chat-ai{ display: block; margin-top: 6px; font-size: 0.8125rem; color: var(--muted); }
.chat-chips{ display: flex; flex-wrap: wrap; gap: 6px; padding: 0 12px 10px; max-height: 132px; overflow-y: auto; }
.chat-chips:empty{ display: none; }
.chat-chip{
  min-height: 36px; padding: 6px 12px; border: 1.5px solid var(--primary); border-radius: var(--radius-btn); background: var(--paper);
  color: var(--ink); font: 600 0.875rem/1.2 var(--font-body); text-align: left; cursor: pointer;
}
.chat-chip:hover{ background: var(--surface); }
.chat-check{ padding: 0 12px; }
.chat-check:empty{ display: none; }
.chat-form{ display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--line); }
.chat-form textarea{
  flex: 1; min-width: 0; min-height: 48px; max-height: 120px; resize: none; padding: 12px; border: 2px solid var(--line); border-radius: 12px;
  background: var(--paper); color: var(--ink); font: inherit; font-size: 1rem;
}
.chat-form textarea:focus-visible{ border-color: var(--ink); outline-offset: 1px; }
.chat-form button{ flex: none; min-height: 48px; padding: 0 16px; border: 0; border-radius: var(--radius-btn); background: var(--accent); color: var(--on-accent); font: 650 1rem/1 var(--font-body); cursor: pointer; }
.chat-note{ margin: 0; padding: 0 12px 12px; font-size: 0.8125rem; color: var(--muted); }
@media (prefers-reduced-motion: reduce){.chat-panel,.chat{ transition: none; }
.chat-open{ transition: none; }
.chat-open:hover{ transform: none; }
}
@media print{.chat{ display: none; }
}
.chat-log li.chat-wide{ max-width: none; white-space: normal; }
.chat-wide .book-h{ font-size: 1.1rem; }
.chat-wide .book-call{ display: none; }
.chat-links button.chat-link{ font: inherit; font-weight: 650; color: inherit; cursor: pointer; }
.chat-leave{ display: grid; gap: 10px; }
.chat-status:empty{ display: none; }
.chat-status,.chat-ok{ margin: 0; }
