@font-face{font-family:"Manrope";src:url("/assets/fonts/manrope-variable.ttf") format("truetype");font-style:normal;font-weight:200 800;font-display:swap}

@font-face{font-family:"Great Vibes";src:url("/assets/fonts/great-vibes-regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}

/* retained layout and functional rules: assets/v1/colors.css */
.dept-lira{--accent:#a45a27}
.dept-evrika{--accent:#b94331}
.dept-eko-dom{--accent:#2f6843}
.dept-vega{--accent:#63418f}

/* retained layout and functional rules: assets/v1/styles.css */
:root{--ink:#12313a;--muted:#61757a;--blue:#0d536d;--blue2:#147493;--cream:#f7f1e5;--paper:#fffdf8;--coral:#ef6a4c;--yellow:#f2b84b;--green:#6b9a63;--line:#dce2df;--shadow:0 18px 55px rgba(20,48,55,.12);--radius:28px}*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:var(--paper);color:var(--ink);}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:auto}button,input,select,textarea{}button,a{touch-action:manipulation}.skip-link{position:fixed;left:16px;top:-80px;z-index:100;background:#fff;padding:12px 18px;border-radius:12px}.skip-link:focus{top:12px}.site-header{height:86px;display:flex;align-items:center;gap:38px;padding:0 clamp(20px,4vw,72px);border-bottom:1px solid rgba(18,49,58,.1);background:rgba(255,253,248,.93);backdrop-filter:blur(14px);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:12px;margin-right:auto}.brand-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:15px;background:var(--blue);color:white;}.brand b{display:block;;}.brand small{display:block;color:var(--muted);;text-transform:uppercase;}.site-header nav{display:flex;gap:28px;;}.site-header nav a,.header-cta{border-radius:99px}.site-header nav a:focus-visible,.site-header nav a:hover{color:var(--blue2)}.header-cta{padding:12px 20px;background:var(--ink);color:#fff;;}.hero{min-height:680px;display:grid;grid-template-columns:minmax(0,1.03fr) minmax(420px,.97fr);gap:clamp(28px,5vw,90px);align-items:center;padding:clamp(55px,8vw,112px) clamp(20px,6vw,108px);background:linear-gradient(110deg,#f8f2e6 0 54%,#dce8df 54%);overflow:hidden}.eyebrow{margin:0 0 14px;color:var(--coral);;;;text-transform:uppercase}.hero h1,.department-hero h1,.service-summary h1,.text-page h1{;;margin:0}.hero h1 em{;color:var(--blue);font-style:italic}.hero-lead{max-width:640px;;color:#415d62;margin:30px 0}.hero-actions,.department-actions{display:flex;flex-wrap:wrap;gap:12px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 24px;border:1px solid transparent;border-radius:99px;;cursor:pointer}.button.primary{background:var(--blue);color:white}.button.primary:hover{background:#083f54}.button.secondary{background:rgba(255,255,255,.66);border-color:rgba(18,49,58,.22)}.button:focus-visible,.card-action:focus-visible,.department-tile:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:3px solid #f5b52e;outline-offset:3px}.hero-stats{list-style:none;padding:0;margin:52px 0 0;display:flex;gap:clamp(25px,4vw,60px)}.hero-stats li{display:flex;flex-direction:column}.hero-stats b{}.hero-stats span{;color:var(--muted)}.hero-art{position:relative;min-height:470px;border-radius:48px;background:#e7efe8;box-shadow:var(--shadow);overflow:hidden}.window-view{height:63%;position:relative;background:linear-gradient(#bdd5d0,#e6e5c1);border-bottom:12px solid #b57944;display:flex;justify-content:space-evenly;overflow:hidden}.window-view:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(88deg,transparent 0 68px,rgba(255,255,255,.6) 69px 76px,transparent 77px 103px)}.window-view span{width:12px;height:185%;background:#f6f6e8;transform:rotate(4deg);box-shadow:8px 0 0 #5b6755;z-index:1}.window-view i{position:absolute;bottom:-8px;width:160px;height:150px;border-radius:50% 50% 0 0;background:#7fa16e;filter:blur(1px)}.window-view i:nth-of-type(1){left:-40px}.window-view i:nth-of-type(2){left:100px;height:110px}.window-view i:nth-of-type(3){left:230px;height:170px}.window-view i:nth-of-type(4){right:70px;height:120px}.window-view i:nth-of-type(5){right:-80px;height:190px}.workbench{position:absolute;left:0;right:0;bottom:0;height:44%;background:linear-gradient(8deg,#c98c4c,#e4b570);display:flex;align-items:center;justify-content:center;gap:20px;padding:32px}.workbench span{display:grid;place-items:center;box-shadow:0 12px 25px rgba(30,40,30,.22)}.tablet{width:125px;height:95px;border:9px solid #173e53;border-radius:13px;color:white;;background:linear-gradient(135deg,#ef596f,#ebad3a 50%,#10678e 51%)}.robot{width:75px;height:75px;border-radius:20px;background:#e8e6db;color:#244c5f;}.palette{width:108px;height:55px;border-radius:15px;background:white;color:#ef6a4c;word-spacing:4px}.music{width:82px;height:135px;border-radius:60% 20% 25% 60%;background:#cc8d45;color:white;}.department-section,.catalog-section,.steps-section,.service-details,.request-section{padding:clamp(70px,9vw,130px) clamp(20px,6vw,108px)}.section-head{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:42px}.section-head h2,.service-details h2,.request-copy h2{;;margin:0}.section-head>p{max-width:430px;color:var(--muted)}.department-section{background:#0d536d;color:#fff}.department-section .eyebrow{color:#f6c85e}.department-section .section-head>p{color:#c8dce2}.department-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.department-tile{min-height:165px;display:flex;align-items:center;gap:24px;padding:28px;border:1px solid rgba(255,255,255,.16);border-radius:25px;background:rgba(255,255,255,.06);transition:.25s}.department-tile:hover{background:var(--accent);transform:translateY(-3px)}.department-tile>span:last-child{margin-left:auto;}.department-index{color:#f4c75f;}.department-tile h3{;margin:0 0 5px}.department-tile p{margin:0;color:#d6e3e5}.department-tile b{;text-transform:uppercase;}.catalog-section{background:#fff}.filters{display:grid;grid-template-columns:1.25fr 1.25fr .9fr auto;gap:12px;padding:18px;background:var(--cream);border-radius:22px;margin-bottom:32px}.filters label{display:flex;flex-direction:column;gap:6px}.filters label span{;;;text-transform:uppercase}.filters input,.filters select,.lead-form input,.lead-form textarea{width:100%;min-height:48px;border:1px solid #cdd6d3;border-radius:13px;background:#fff;padding:10px 13px;color:var(--ink)}.clear-filters,.add-child{align-self:end;min-height:48px;border:0;border-radius:13px;background:#fff;padding:10px 16px;color:var(--blue);;cursor:pointer}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.service-card{border:1px solid var(--line);border-radius:24px;overflow:hidden;background:#fff;transition:.25s;min-width:0}.service-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.service-card[hidden]{display:none}.card-image{display:block;aspect-ratio:1.25;overflow:hidden;background:#e9eee8}.card-image img{height:100%;object-fit:cover;transition:.45s}.service-card:hover .card-image img{transform:scale(1.035)}.card-body{padding:22px}.card-topline{display:flex;justify-content:space-between;gap:12px;color:var(--muted);;text-transform:uppercase;}.card-topline strong{color:var(--coral);white-space:nowrap}.service-card h3{;margin:12px 0}.card-description{color:#53676b;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}.chips{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.chips span{padding:6px 9px;border-radius:99px;background:#eef3ef;}.card-action{display:flex;justify-content:space-between;align-items:center;color:var(--blue);;border-top:1px solid var(--line);padding-top:15px}.empty-state{text-align:center;padding:70px 20px;background:var(--cream);border-radius:24px}.steps-section{background:var(--cream)}.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.steps li{padding:32px;border-radius:24px;background:#fff}.steps li>span{color:var(--coral);}.steps h3{;margin:30px 0 10px}.steps p{color:var(--muted)}.breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);;padding:28px clamp(20px,6vw,108px) 0}.service-hero{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(35px,6vw,90px);padding:38px clamp(20px,6vw,108px) clamp(70px,8vw,110px);align-items:center}.service-image{position:relative;border-radius:35px;overflow:hidden;background:#e9eee8}.service-image img{aspect-ratio:1;object-fit:cover}.service-summary h1{}.service-lead{;color:#50666b;margin:26px 0}.fact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden;margin:30px 0}.fact-grid div{background:#fff;padding:18px}.fact-grid span,.service-details aside span,.fixed-fields span{display:block;color:var(--muted);;text-transform:uppercase;}.service-details{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(40px,8vw,130px);background:var(--cream)}.service-details>div>p:last-child{}.service-details aside{background:#fff;padding:30px;border-radius:24px}.service-details aside>div{padding:0 0 20px;margin-bottom:20px;border-bottom:1px solid var(--line)}.service-details aside b,.service-details aside a{display:block;margin-top:5px}.map-link{color:var(--blue);}.request-section{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(40px,8vw,120px);align-items:start}.request-copy{position:sticky;top:120px}.privacy-note{padding:16px;border-left:3px solid var(--yellow);background:var(--cream);}.lead-form{padding:clamp(22px,4vw,42px);background:#f5f1e7;border-radius:28px;display:grid;gap:18px}.fixed-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fixed-fields div{padding:16px;background:#fff;border-radius:14px}.lead-form label>span{display:block;;margin-bottom:6px}.lead-form label small{;color:var(--muted)}.children-fieldset{border:0;padding:0;margin:0}.children-fieldset legend{;margin-bottom:3px}.field-note{margin:0 0 12px;color:var(--muted);}.child-row{display:grid;grid-template-columns:1fr 150px 44px;gap:9px;margin-bottom:9px}.child-row button{border:0;border-radius:12px;background:#fff;color:#b04435;;cursor:pointer}.add-child{border:1px dashed #9bb0ab;background:transparent}.consent{display:flex;gap:10px;align-items:flex-start}.consent input{width:20px;min-height:20px;margin-top:2px}.consent span{;}.submit-button{border:0}.form-status{min-height:24px;margin:0;}.form-status.error{color:#a33425}.form-status.success{color:#247339}.honeypot{position:absolute;left:-9999px}.department-hero{min-height:430px;padding:75px clamp(20px,6vw,108px);background:linear-gradient(120deg,var(--accent),#173d4c);color:white;display:flex;align-items:center;justify-content:space-between;overflow:hidden}.department-hero .breadcrumbs{padding:0;color:rgba(255,255,255,.72);margin-bottom:50px}.department-hero .eyebrow{color:#f7d069}.department-hero>div>p:not(.eyebrow){}.hero-number{;color:rgba(255,255,255,.08)}.text-page{max-width:900px;margin:auto;padding:80px 20px 120px}.text-page h1{margin-bottom:45px}.text-page h2{;margin-top:40px}.text-page p{}.text-page code{background:#eef1ee;padding:2px 5px}.site-footer{display:grid;grid-template-columns:1fr 1fr 1fr;gap:45px;padding:60px clamp(20px,6vw,108px);background:#102f38;color:white}.site-footer p{color:#afc4c9}.footer-brand .brand-mark{background:#f1b448;color:#17313a}.local-note{}.site-footer a{text-decoration:underline;text-underline-offset:3px}.site-footer .brand{text-decoration:none}@media(max-width:1050px){.hero{grid-template-columns:1fr;background:var(--cream)}.hero-art{min-height:420px}.service-grid{grid-template-columns:repeat(2,1fr)}.filters{grid-template-columns:repeat(2,1fr)}.clear-filters{align-self:stretch}.service-hero{grid-template-columns:1fr 1fr}.request-section{grid-template-columns:1fr}.request-copy{position:static}.hero-number{}.site-footer{grid-template-columns:1fr 1fr}}@media(max-width:720px){.site-header{height:70px;padding:0 16px}.brand-mark{width:40px;height:40px}.header-cta{display:none}.hero{padding:55px 20px}.hero h1{}.hero-art{min-height:300px;border-radius:28px}.window-view{height:58%}.workbench{height:47%;gap:9px;padding:16px}.tablet{width:90px;height:72px;}.robot{width:58px;height:58px}.palette{width:78px}.music{width:60px;height:95px}.hero-stats{gap:22px}.department-grid,.service-grid,.steps,.service-hero,.service-details,.site-footer{grid-template-columns:1fr}.department-tile{min-height:135px}.section-head{display:block}.filters{grid-template-columns:1fr}.filters select:disabled{opacity:1}.service-hero{padding-top:25px}.service-summary h1{}.fact-grid{grid-template-columns:1fr 1fr}.request-section{padding-top:75px}.fixed-fields{grid-template-columns:1fr}.child-row{grid-template-columns:1fr 95px 40px}.department-hero{min-height:390px;padding:50px 20px;position:relative}.hero-number{position:absolute;right:-10px;bottom:20px;}.department-hero>div{position:relative;z-index:1}.department-hero h1{}.site-footer{gap:28px}}

/* retained layout and functional rules: assets/v1/department-themes.css */
body[class*="theme-"] {
  --theme: #0d536d;
  --theme-dark: #12313a;
  --theme-soft: #f7f1e5;
  --theme-highlight: #ef6a4c;
  --theme-radius: 26px;
}

body[class*="theme-"] .site-header { border-color: color-mix(in srgb, var(--theme) 20%, transparent); }
body[class*="theme-"] .button.primary { background: var(--theme); }
body[class*="theme-"] .service-summary .eyebrow,
body[class*="theme-"] .service-details .eyebrow,
body[class*="theme-"] .request-copy .eyebrow { color: var(--theme-highlight); }
body[class*="theme-"] .service-hero { background: var(--theme-hero, transparent); }
body[class*="theme-"] .service-image,
body[class*="theme-"] .service-details aside,
body[class*="theme-"] .lead-form,
body[class*="theme-"] .service-card { border-radius: var(--theme-radius); }
body[class*="theme-"] .service-details { background: var(--theme-soft); }
body[class*="theme-"] .request-section { background: var(--theme-page, #fff); }
body[class*="theme-"] .catalog-section { background: var(--theme-page, #fff); }
body[class*="theme-"] .card-action,
body[class*="theme-"] .map-link { color: var(--theme); }
body[class*="theme-"] .department-hero { background: var(--theme-hero); position: relative; }

body[class*="theme-"] .theme-symbol {
  position: absolute;
  z-index: 1;
  top: 50%;
  right: clamp(24px, 6vw, 104px);
  width: clamp(250px, 27vw, 390px);
  aspect-ratio: 9 / 7;
  pointer-events: none;
  transform: translateY(-50%);
  filter: drop-shadow(0 24px 34px rgba(11, 30, 38, .22));
}

body[class*="theme-"] .theme-symbol img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* «Лира»: кобальт, светлая зелень и тёплая древесная нота. */
body.theme-lira {
  --theme: #0b5670;
  --theme-dark: #15383f;
  --theme-soft: #f5eddf;
  --theme-page: #fffdf7;
  --theme-highlight: #b94331;
  --theme-radius: 20px;
  --theme-hero:
    radial-gradient(circle at 82% 50%, rgba(255, 253, 241, .42), transparent 29%),
    linear-gradient(118deg, #0b5670 0 62%, #dce8d8 62% 100%);
}
.theme-lira .service-card { box-shadow: 0 8px 0 rgba(203, 139, 73, .09); }

/* «Эврика»: глубокий индиго и энергичный терракотовый акцент. */
body.theme-evrika {
  --theme: #b94331;
  --theme-dark: #24334f;
  --theme-soft: #eef1fb;
  --theme-page: #faf9ff;
  --theme-highlight: #5740ad;
  --theme-radius: 17px;
  --theme-hero:
    radial-gradient(circle at 82% 50%, rgba(255, 222, 207, .24), transparent 29%),
    linear-gradient(123deg, #21304d 0 66%, #b94331 66% 100%);
}
.theme-evrika .filters { background: #e9ecf8; }
.theme-evrika .service-card:hover { box-shadow: 9px 9px 0 #ef6249; }

/* «Эко-Дом»: природные зелёные тона и спокойное золото. */
body.theme-eko-dom {
  --theme: #2f6843;
  --theme-dark: #213f35;
  --theme-soft: #eaf2e6;
  --theme-page: #fbfdf8;
  --theme-highlight: #8c5429;
  --theme-radius: 36px;
  --theme-hero:
    radial-gradient(circle at 82% 50%, rgba(255, 249, 210, .28), transparent 30%),
    linear-gradient(116deg, #28553c 0 63%, #c8ae73 63% 100%);
}
.theme-eko-dom .service-card { border-color: #cfdcca; }
.theme-eko-dom .filters { background: #edf4e9; }
.theme-eko-dom .card-image { border-radius: 34px 34px 50% 34px; }

/* «Вега»: ночной индиго, фиолетовый и звёздное золото. */
body.theme-vega {
  --theme: #63418f;
  --theme-dark: #201d3f;
  --theme-soft: #eee9f7;
  --theme-page: #faf8fd;
  --theme-highlight: #7a4500;
  --theme-radius: 12px;
  --theme-hero:
    radial-gradient(circle at 82% 50%, rgba(211, 188, 244, .2), transparent 30%),
    linear-gradient(124deg, #1c1a3d 0 67%, #684594 67% 100%);
}
.theme-vega .service-card { border: 0; box-shadow: 0 0 0 1px #d7cee8; }
.theme-vega .filters { background: #ece6f5; }
.theme-vega .card-topline strong { color: #7451a5; }

@media (max-width: 720px) {
  body[class*="theme-"] .theme-symbol {
    right: -76px;
    width: 280px;
    opacity: .18;
    filter: none;
  }
}

/* retained layout and functional rules: assets/v1/overrides.css */
/* Совместимые улучшения letolira.ru: контраст, понятные CTA и мобильная навигация. */
.filters { grid-template-columns: 1.25fr 1.25fr .9fr auto; }
.header-location {
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid #b9c8c9;
  border-radius: 99px;
  background: #fff;
  color: #12313a;;
  cursor: pointer;
  white-space: nowrap;
}
.header-location:hover { border-color: #0d536d; background: #eef5f4; color: #083f54; }
.location-button { border-color: #9eb3b2; background: #fff; color: #12313a; }
.location-button:hover { border-color: #0d536d; background: #eef5f4; }
.mobile-quickbar { display: none; }
.department-hero .button.secondary {
  border-color: #fff;
  background: #fff;
  color: #17313a;
  box-shadow: 0 8px 24px rgba(10,25,30,.18);
}
.department-hero .button.secondary:hover { background: #f7f1e5; color: #0d4155; }
.department-hero .breadcrumbs { color: rgba(255,255,255,.94); }
.department-hero > div > p:not(.eyebrow) { color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.18); }
.nearest-panel {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 18px;
  align-items: center;
  margin: 0 0 28px;
  padding: 22px;
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 22px;
  background: #fff;
  color: #12313a;
  box-shadow: 0 18px 40px rgba(5,35,45,.2);
}
.nearest-panel[hidden], .nearest-result[hidden] { display: none; }
.nearest-icon {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border-radius: 50%;
  background: #f2b84b;
  color: #17313a;;;
}
.nearest-status { margin: 0 0 5px;; }
.nearest-panel small { display: block; margin-top: 7px; color: #52696d; }
.nearest-result { display: flex; gap: 20px; align-items: center; justify-content: space-between; margin-top: 10px; }
.nearest-result div { display: flex; flex-direction: column; }
.nearest-result strong {; }
.nearest-result span { color: #52696d; }
.nearest-link { min-width: max-content; background: #0d536d; color: #fff; }
.department-tile.is-nearest { outline: 4px solid #f2b84b; outline-offset: 3px; background: rgba(255,255,255,.16); }

.hero-art--illustrated {
  background: linear-gradient(145deg, #eaf2ec, #d7e7dc);
}
.hero-art--illustrated .hero-illustration {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.online-section {
  padding: clamp(70px, 9vw, 130px) clamp(20px, 6vw, 108px);
  background:
    radial-gradient(circle at 88% 12%, rgba(242,184,75,.22), transparent 29%),
    linear-gradient(145deg, #f8f2e6, #edf3ee);
}
.online-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.online-card {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 370px;
  flex-direction: column;
  overflow: hidden;
  padding: clamp(25px, 3vw, 36px);
  border: 1px solid rgba(18,49,58,.12);
  border-radius: 28px 64px 28px 28px;
  box-shadow: 0 16px 42px rgba(18,49,58,.10);
  transition: transform .24s ease, box-shadow .24s ease;
}
.online-card::after {
  position: absolute;
  width: 190px;
  height: 190px;
  right: -74px;
  bottom: -98px;
  border: 26px solid currentColor;
  border-radius: 50%;
  content: "";
  opacity: .08;
  pointer-events: none;
}
.online-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 58px rgba(18,49,58,.18);
}
.online-card:focus-visible,
.online-card-action:focus-visible,
.footer-social-link:focus-visible {
  outline: 3px solid #f5b52e;
  outline-offset: 4px;
}
.online-card--vk {
  background: linear-gradient(145deg, #0a69d8, #0754af);
  color: #fff;
}
.online-card--max {
  background: linear-gradient(145deg, #5946d7, #08748d);
  color: #fff;
}
.online-card--reviews {
  background: linear-gradient(145deg, #ffe4a7, #f2bd55);
  color: #17313a;
}
.online-card-label {
  max-width: calc(100% - 86px);;;;
  text-transform: uppercase;
  opacity: .88;
}
.online-mark {
  position: absolute;
  top: 24px;
  right: 24px;
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 18px;
  background: rgba(255,255,255,.16);;;;
  backdrop-filter: blur(8px);
}
.online-card--reviews .online-mark {
  border-color: rgba(23,49,58,.20);
  background: rgba(255,255,255,.55);;
}
.online-card h3 {
  margin: 74px 0 14px;;;
}
.online-card p {
  max-width: 36ch;
  margin: 0 0 24px;
  color: inherit;;
  opacity: .91;
}
.online-card > strong {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;;;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
.site-footer {
  grid-template-columns: 1.15fr 1fr .9fr 1fr;
}
.footer-social-links {
  display: grid;
  gap: 9px;
  margin-top: 14px;
}
.footer-social-link {
  display: flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  min-width: 160px;
  padding: 8px 12px 8px 8px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 14px;
  background: rgba(255,255,255,.07);
  text-decoration: none ;
  transition: background .2s ease, transform .2s ease;
}
.footer-social-link:hover {
  background: rgba(255,255,255,.14);
  transform: translateX(3px);
}
.footer-social-link span {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 11px;
  color: #fff;;;
}
.footer-social-link--vk span { background: #087aea; }
.footer-social-link--max span { background: linear-gradient(145deg, #6757e8, #1296ae); }
.footer-social-link--reviews span { background: #d88617; }
.footer-social-link b {; }
.privacy-page .legal-meta {
  margin-top: -26px;
  color: #52696d;;;
}
.privacy-page ul {
  padding-left: 24px;;
}
.privacy-page li + li { margin-top: 8px; }
.privacy-page .legal-contact {
  margin: 26px 0;
  padding: 22px;
  border-left: 4px solid #f2b84b;
  border-radius: 16px;
  background: #f7f1e5;
}
.privacy-page .legal-contact p { margin: 0; }
.privacy-page a {
  color: #0b5670;;
  text-decoration: underline;
  text-underline-offset: 3px;
}
button:disabled { cursor: wait; opacity: .62; }

@media (max-width: 1050px) {
  .header-location { display: none; }
  .filters { grid-template-columns: repeat(2, 1fr); }
  .online-grid { grid-template-columns: 1fr 1fr; }
  .online-card--reviews { grid-column: 1 / -1; min-height: 315px; }
  .site-footer { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .filters { grid-template-columns: 1fr; }
  body { padding-bottom: 76px; overflow-x: hidden; }
  .mobile-quickbar {
    position: fixed;
    left: 10px;
    right: 10px;
    bottom: max(10px, env(safe-area-inset-bottom));
    z-index: 50;
    display: grid;
    grid-template-columns: 1.25fr .75fr;
    gap: 8px;
    padding: 8px;
    border: 1px solid rgba(18,49,58,.15);
    border-radius: 20px;
    background: rgba(255,253,248,.96);
    box-shadow: 0 12px 38px rgba(12,35,42,.22);
    backdrop-filter: blur(14px);
  }
  .mobile-quickbar button, .mobile-quickbar a {
    display: flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 14px;;
  }
  .mobile-quickbar button { background: #0d536d; color: #fff; }
  .mobile-quickbar a { background: #f1eadc; color: #12313a; }
  .nearest-panel { grid-template-columns: 1fr; padding: 18px; }
  .nearest-icon { width: 52px; height: 52px; }
  .nearest-result { align-items: stretch; flex-direction: column; }
  .nearest-link, .hero-actions .location-button { width: 100%; }
  .department-hero .button.secondary { color: #17313a; }
  .online-grid { grid-template-columns: 1fr; }
  .online-card,
  .online-card--reviews {
    grid-column: auto;
    min-height: 310px;
    border-radius: 24px 48px 24px 24px;
  }
  .online-card h3 { margin-top: 62px; }
  .site-footer { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms ;
    animation-iteration-count: 1 ;
    transition-duration: .01ms ;
    scroll-behavior: auto ;
  }
}

/* retained layout and functional rules: assets/v1/readability.css */
/*
 * Единая система читаемости для всех 44 страниц.
 * Цветные темы подразделений сохраняются в department-themes.css;
 * здесь задаются безопасные текстовые поверхности и типографическая иерархия.
 */
:root {
  --font-sans: "Segoe UI Variable Text", "Segoe UI", Inter, Arial, sans-serif;
  --font-display: Georgia, "Times New Roman", serif;
  --readable-ink: #12313a;
  --readable-body: #3f575c;
  --readable-muted: #4b6267;
  --readable-paper: #fffdf8;
  --readable-line: #cbd6d3;
}

body {
  color: var(--readable-ink);;;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3 {
  text-wrap: balance;
}

p,
li,
label,
input,
select,
textarea,
button {
  font-kerning: normal;
}

p {
  text-wrap: pretty;
}

.brand {
  min-width: 0;;
}

.brand-emblem {
  display: block;
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  padding: 1px;
  border-radius: 50%;
  background: #fff;
  object-fit: contain;
  box-shadow:
    0 0 0 2px rgba(255, 255, 255, .98),
    0 5px 15px rgba(18, 49, 58, .18);
}

.brand > span {
  min-width: 0;
}

.brand b {;
}

.brand small {
  color: #496167;;
}

.eyebrow {
  color: #9b3c2a;;
}

.hero h1,
.department-hero h1,
.service-summary h1,
.text-page h1 {;
}

.section-head h2,
.service-details h2,
.request-copy h2,
.service-card h3,
.steps h3 {;
}

.hero-lead,
.section-head > p,
.card-description,
.steps p,
.service-details > div > p:last-child,
.request-copy > p,
.text-page p {
  color: var(--readable-body);
}

.hero-lead {
  max-width: 62ch;;
}

.hero-stats span {
  color: var(--readable-muted);
}

.visually-hidden {
  position: absolute ;
  width: 1px ;
  height: 1px ;
  padding: 0 ;
  margin: -1px ;
  overflow: hidden ;
  clip: rect(0 0 0 0) ;
  white-space: nowrap ;
  border: 0 ;
}

.topic-ticker {
  position: relative;
  overflow: hidden;
  border-block: 1px solid rgba(18, 49, 58, .16);
  color: var(--readable-ink);
}

.home-ticker {
  background: linear-gradient(90deg, #f2b84b, #ffdc84 52%, #f2b84b);
}

body[class*="theme-"] .department-ticker {
  border-color: rgba(255, 255, 255, .18);
  background: var(--theme-dark, #12313a);
  color: #fff;
}

.ticker-track {
  display: flex;
  width: max-content;
  will-change: transform;
  animation: topic-ticker-motion 38s linear infinite;
}

.department-ticker .ticker-track {
  animation-duration: 42s;
}

.topic-ticker:hover .ticker-track {
  animation-play-state: paused;
}

.ticker-group {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
}

.ticker-item {
  display: inline-flex;
  align-items: center;
  min-height: 62px;
  padding-inline: clamp(18px, 2.5vw, 38px);;;;;
  text-transform: uppercase;
  white-space: nowrap;
}

.ticker-item::after {
  content: "✦" / "";
  margin-left: clamp(36px, 5vw, 76px);
  color: #8b4c18;;
}

.department-ticker .ticker-item::after {
  color: #ffe08b;
}

@keyframes topic-ticker-motion {
  to {
    transform: translateX(-50%);
  }
}

.section-head > p {;
}

.card-topline {
  color: var(--readable-muted);
}

.card-topline strong {
  color: #9d3c2c;
}

.card-description {;;
}

.chips span {
  color: #334c52;;
}

.steps p {;
}

.steps li > span {
  color: #9d3c2c;
}

.breadcrumbs {
  align-items: center;
  color: #50666b;;
}

.breadcrumbs > * {
  flex: 0 0 auto;
}

.breadcrumbs > :last-child {
  flex: 1 1 18rem;
  min-width: 0;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: manual;
}

/*
 * На страницах услуг цветной фон остаётся самостоятельным элементом темы,
 * а весь критичный текст размещается на локальной непрозрачной поверхности.
 * Это надёжнее и спокойнее, чем одинаковый контур вокруг всех букв.
 */
.service-summary {
  position: relative;
  z-index: 2;
  min-width: 0;
  padding: clamp(28px, 3.5vw, 48px);
  border: 1px solid rgba(18, 49, 58, .14);
  border-top: 5px solid var(--theme, #0d536d);
  border-radius: var(--theme-radius, 28px);
  background: var(--readable-paper);
  color: var(--readable-ink);
  box-shadow: 0 24px 70px rgba(18, 49, 58, .2);
}

.service-summary h1 {
  max-width: 100%;
  color: var(--readable-ink);;;;;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: manual;
}

.service-summary h1.service-title--long {;
}

.service-summary h1.service-title--xlong {;
}

.service-summary h1.service-title--wide-word {;
}

.service-card h3,
.service-card h3 a {;;;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: manual;
}

.service-card h3.service-title--long {;
}

.service-card h3.service-title--xlong {;
}

.service-card h3.service-title--wide-word {;
}

.service-lead {
  max-width: 58ch;
  color: #3e575c;;;
}

.fact-grid {
  border-color: var(--readable-line);
  background: var(--readable-line);
}

.fact-grid div {
  background: #fff;
}

.fact-grid span,
.service-details aside span,
.fixed-fields span {
  color: #52686d;;;
}

.fact-grid b {;
}

.service-details > div {
  max-width: 74ch;
}

.service-details > div > p:last-child {;
}

.request-copy {
  min-width: 0;
  max-width: 58ch;
}

.request-copy h2 {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: manual;
}

.request-copy > p {;
}

.lead-form {
  color: var(--readable-ink);
}

.lead-form label > span,
.children-fieldset legend {;
}

.lead-form label small,
.field-note {
  color: #465e63;
}

.field-note {;;
}

.lead-form input,
.lead-form select,
.lead-form textarea {
  color: var(--readable-ink);
}

.lead-form input::placeholder,
.lead-form textarea::placeholder,
.filters input::placeholder {
  color: #617579;
  opacity: 1;
}

.consent span {
  color: #334e54;;
}

.privacy-note {
  color: #334e54;;
}

/*
 * Заголовки подразделений расположены на художественных цветных фонах.
 * Здесь достаточно локальной тени и стабильного белого цвета; подложка
 * не нужна и индивидуальный характер четырёх тем остаётся видимым.
 */
.department-hero > div:not(.theme-symbol) {
  position: relative;
  z-index: 2;
  width: min(780px, 72%);
  max-width: 780px;
  padding: clamp(28px, 4vw, 54px);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: calc(var(--theme-radius, 24px) + 2px);
  background: var(--theme-dark, #12313a);
  box-shadow: 0 24px 70px rgba(5, 20, 25, .3);
}

body.theme-vega {
  --theme-highlight: #7a4500;
}

.department-hero h1 {
  color: #fff;;
  text-shadow: 0 2px 22px rgba(8, 24, 30, .5);
}

.department-hero .breadcrumbs,
.department-hero .breadcrumbs a,
.department-hero > div > p:not(.eyebrow) {
  color: #fff;
  text-shadow: 0 1px 8px rgba(5, 20, 25, .65);
}

.department-hero .eyebrow {
  color: #ffe08b;
  text-shadow: 0 1px 8px rgba(5, 20, 25, .5);
}

.department-hero > div > p:not(.eyebrow) {
  max-width: 64ch;;
}

.text-page {
  max-width: 820px;
}

.text-page h1 {
  max-width: 18ch;;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: manual;
}

.text-page h2 {;
}

.text-page p {
  max-width: 72ch;;
}

.filters label span {;
}

.site-footer {;
}

.site-footer p,
.site-footer .local-note,
.footer-brand small {
  color: #d1e0e3;
}

.footer-brand b {
  color: #fff;
}

.footer-brand .brand-emblem {
  width: 56px;
  height: 56px;
  flex-basis: 56px;
}

.site-footer a:focus-visible,
.brand:focus-visible {
  border-radius: 10px;
  outline: 2px solid #12313a;
  outline-offset: 2px;
  box-shadow: 0 0 0 5px #f5b52e;
}

.button:focus-visible,
.card-action:focus-visible,
.department-tile:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
button:focus-visible {
  outline: 2px solid #12313a;
  outline-offset: 2px;
  box-shadow: 0 0 0 5px #f5b52e;
}

@media (max-width: 1050px) {
  .service-hero {
    gap: clamp(24px, 4vw, 42px);
  }
}

@media (max-width: 720px) {
  body {;
  }

  .site-header {
    gap: 14px;
  }

  .brand {
    gap: 10px;
  }

  .brand-emblem {
    width: 44px;
    height: 44px;
    flex-basis: 44px;
  }

  .brand b {;
  }

  .brand small {;;
  }

  .hero h1 {;;
  }

  .hero-copy,
  .hero-art,
  .window-view,
  .request-copy {
    min-width: 0;
    max-width: 100%;
  }

  .breadcrumbs {
    flex-wrap: wrap;
    overflow-x: visible;
  }

  .breadcrumbs::-webkit-scrollbar {
    display: none;
  }

  .breadcrumbs > :last-child {
    flex-basis: 100%;
    padding-right: 0;
  }

  .service-hero {
    gap: 22px;
    padding-top: 22px;
  }

  .service-summary {
    padding: 24px 20px 26px;
    border-top-width: 4px;
    box-shadow: 0 18px 46px rgba(18, 49, 58, .18);
  }

  .service-summary h1 {
    max-width: 100%;;;
  }

  .service-summary h1.service-title--long {;
  }

  .service-summary h1.service-title--xlong {;
  }

  .service-summary h1.service-title--wide-word {;
  }

  .service-card h3 {;
  }

  .service-card h3.service-title--long {;
  }

  .service-card h3.service-title--xlong {;
  }

  .service-card h3.service-title--wide-word {;
  }

  .service-lead {
    margin: 20px 0 24px;;;
  }

  .fact-grid {
    margin: 24px 0;
  }

  .fact-grid div {
    padding: 15px;
  }

  .department-hero h1 {
    max-width: 11ch;;
  }

  .department-hero > div:not(.theme-symbol) {
    width: 100%;
    padding: 25px 22px 29px;
  }

  .department-hero .breadcrumbs {
    margin-bottom: 36px;
  }

  .department-hero > div > p:not(.eyebrow) {
    max-width: 29ch;;
  }

  .text-page {
    padding-top: 58px;
  }

  .text-page h1 {
    margin-bottom: 32px;;;
  }

  .text-page p {;
  }

  .footer-brand .brand-emblem {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
  }
}

@media (forced-colors: active) {
  .service-summary {
    border: 2px solid CanvasText;
  }

  .topic-ticker {
    border-block: 2px solid CanvasText;
  }
}

.card-union {
  margin: 12px 0;
  padding: 11px 12px;
  border-left: 3px solid var(--coral);
  border-radius: 0 12px 12px 0;
  background: color-mix(in srgb, var(--cream) 72%, white);
  color: var(--ink);
}

.card-union span,
.service-union span {
  display: block;
  margin-bottom: 3px;
  color: var(--muted);;;;
  text-transform: uppercase;
}

.card-union b {
  display: block;;;
}

.service-union {
  margin: 22px 0 0;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--paper);
}

.service-union strong {
  display: block;;;
}

.union-definition {
  margin: 24px 0;
  padding: 18px 20px;
  border-left: 4px solid var(--coral);
  border-radius: 0 14px 14px 0;
  background: var(--paper);
}

@media (max-width: 720px) {
  .service-union {
    margin-top: 18px;
    padding: 14px;
  }

  .fact-grid span {;
  }
}

@media (prefers-reduced-motion: reduce) {
  .topic-ticker {
    overflow: visible;
  }

  .ticker-track {
    width: 100%;
    transform: none;
    animation: none ;
  }

  .ticker-group {
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
  }

  .ticker-group + .ticker-group {
    display: none;
  }

  .ticker-item {
    min-height: 44px;
    padding: 8px 12px;
    white-space: normal;
  }

  .ticker-item::after {
    margin-left: 24px;
  }
}

@media (max-width: 340px) {
  .hero h1 {;
  }

  .fact-grid {
    grid-template-columns: 1fr;
  }
}

/* Official enrollment instructions replace the public lead form. */
.enrollment-section {
  display: grid;
  grid-template-columns: minmax(260px, .62fr) minmax(0, 1.38fr);
  gap: clamp(34px, 7vw, 110px);
  align-items: start;
  padding: clamp(70px, 9vw, 130px) clamp(20px, 6vw, 108px);
  background:
    radial-gradient(circle at 8% 10%, color-mix(in srgb, var(--theme, #0d536d) 12%, transparent), transparent 34%),
    #fffdf8;
  scroll-margin-top:calc(var(--header-height,100px) + 16px);
}

.enrollment-heading {
  position: sticky;
  top: 118px;
  min-width: 0;
}

.enrollment-heading h2 {
  margin: 0;
  color: var(--readable-ink);;;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: manual;
}

.enrollment-heading > p:last-child {
  max-width: 44ch;
  margin: 24px 0 0;
  color: var(--readable-body);;;
}

.enrollment-steps {
  display: grid;
  gap: 12px;
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.enrollment-steps > li {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  padding: 20px clamp(18px, 2.4vw, 30px);
  border: 1px solid rgba(18, 49, 58, .12);
  border-radius: 20px;
  background: #fff;
  color: var(--readable-ink);;
  box-shadow: 0 10px 30px rgba(18, 49, 58, .06);
}

.enrollment-step-number {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 50%;
  background: var(--theme, #0d536d);
  color: #fff;;;
}

.enrollment-steps a {
  color: #075f84;;
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .17em;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: manual;
}

.enrollment-steps ul {
  display: grid;
  gap: 6px;
  margin: 12px 0 0;
  padding-left: 22px;
}

.enrollment-source-missing,
.teacher-phone.is-missing b {
  color: #8c3a2a;
}

.enrollment-warning {
  grid-column: 2;
  margin: 18px 0 0;
  padding: 22px 24px;
  border: 1px solid #e1b84f;
  border-left: 5px solid #d48b16;
  border-radius: 16px;
  background: #fff4cf;
  color: #533b12;;;
}

.teacher-phone a,
a[href^="tel:"] {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
  font-variant-numeric: tabular-nums;
}

.group-id-list {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: manual;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 880px) {
  .enrollment-section {
    grid-template-columns: 1fr;
  }

  .enrollment-heading {
    position: static;
  }

  .enrollment-warning {
    grid-column: 1;
  }
}

@media (max-width: 390px) {
  .service-summary h1.service-title--wide-word {;
  }

  .enrollment-steps > li {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 8px;
    padding: 15px 10px;
  }

  .enrollment-step-number {
    width: 34px;
    height: 34px;
  }

  [data-enrollment-program],
  [data-enrollment-union] {;
  }

  .enrollment-warning {
    padding: 18px;
  }
}

/* retained layout and functional rules: assets/site.css */
:root {
  --prototype-ink: #173941;
  --prototype-muted: #607279;
  --prototype-line: rgba(23, 57, 65, 0.14);
  --prototype-cream: #fff9ef;
  --prototype-green: #167a68;
  --prototype-green-soft: #e7f6f0;
  --prototype-red: #9b3f2d;
  --prototype-red-soft: #fff0ea;
  --prototype-gold: #bb7b17;
  --prototype-shadow: 0 18px 52px rgba(22, 57, 65, 0.1);
}

html {
  scroll-behavior: auto;
}

body {
  color: var(--prototype-ink);
  background: #fffdf9;
}

.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 100;
  transform: translateY(-150%);
  padding: 11px 16px;
  border-radius: 12px;
  background: var(--prototype-ink);
  color: white;;
}

.skip-link:focus {
  transform: translateY(0);
}

:where(a, button, input, select, summary):focus-visible {
  outline: 3px solid #e6a800;
  outline-offset: 3px;
}

.button {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 18px;
  border: 1px solid transparent;
  border-radius: 999px;;;;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.button-primary {
  background: var(--prototype-green);
  color: white;
  box-shadow: 0 9px 24px rgba(22, 122, 104, 0.2);
}

.button-primary:hover {
  background: #106a5b;
}

.button-secondary {
  border-color: rgba(22, 122, 104, 0.18);
  background: var(--prototype-green-soft);
  color: var(--prototype-ink);
}

.button-secondary:hover {
  background: #d7eee6;
}

.container {
  width: min(calc(100% - 40px), 1320px);
  margin-inline: auto;
}

.prototype-header {
  position: sticky;
  top: 0;
  z-index: 30;
  backdrop-filter: blur(16px);
  background: rgba(255, 253, 249, 0.94);
  border-bottom: 1px solid var(--prototype-line);
}

.prototype-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--prototype-ink);
  text-decoration: none;;
}

.prototype-brand img {
  width: 52px;
  height: 52px;
  object-fit: contain;
}

.prototype-brand__title {
  max-width: 34rem;;;;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.header-catalog-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  margin-left: auto;
  color: var(--prototype-green);;
  text-underline-offset: 0.2em;
}

.prototype-status {
  color: var(--prototype-muted);;
}

.prototype-hero {
  padding: clamp(30px, 4.2vw, 52px) 0 clamp(22px, 3vw, 34px);
  background:
    radial-gradient(circle at 12% 14%, rgba(236, 184, 83, 0.18), transparent 30%),
    radial-gradient(circle at 88% 20%, rgba(32, 142, 116, 0.12), transparent 34%);
}

.prototype-hero h1,
.program-detail__header h1,
.program-card h2,
.group-card h3,
.finder h2,
.detail-groups h2,
.program-description h2 {;;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.prototype-hero h1 {
  margin: 0;
  max-width: 20ch;;;
}

.prototype-hero__lead {
  max-width: 68ch;
  margin: 13px 0 0;
  color: var(--prototype-muted);;;
}

.prototype-hero__action {
  margin-top: 24px;
}

.finder {
  margin: 0 0 clamp(26px, 4vw, 42px);
  padding: clamp(20px, 3vw, 30px);
  border: 1px solid var(--prototype-line);
  border-radius: 28px;
  background: white;
  box-shadow: var(--prototype-shadow);
}

.finder__heading h2 {
  margin: 0 0 17px;;;
}

.finder__controls {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
}

.finder__controls--primary {
  grid-template-columns: minmax(260px, 1.7fr) minmax(150px, 0.72fr) minmax(190px, 1fr);
}

.finder__controls label {
  display: grid;
  gap: 7px;
  min-width: 0;
  color: var(--prototype-muted);;;
}

.finder__search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  min-width: 0;
}

.finder__submit {
  min-width: 92px;
  min-height: 46px;
  padding-inline: 22px;
}

.finder__controls input,
.finder__controls select {
  min-width: 0;
  min-height: 46px;
  width: 100%;
  border: 1px solid var(--prototype-line);
  border-radius: 13px;
  padding: 0 13px;
  background: white;
  color: var(--prototype-ink);;;;
}

.finder__more {
  margin-top: 12px;
}

.finder__more > summary {
  display: none;
}

.finder__more > .finder__more-controls {
  display: grid ;
}

.finder__chips[hidden],
.availability__facts[hidden],
.finder__actions [hidden] {
  display: none ;
}

.finder__chips {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
  color: var(--prototype-muted);;;
}

.finder__chips > div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.filter-chip {
  min-height: 44px;
  border: 1px solid rgba(22, 122, 104, 0.28);
  border-radius: 999px;
  padding: 6px 11px;
  background: var(--prototype-green-soft);
  color: var(--prototype-ink);;
  cursor: pointer;
}

.filter-chip:hover,
.filter-chip:focus-visible {
  border-color: var(--prototype-green);
}

.finder__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 18px;
}

.finder__actions p {
  margin: 0 0 0 auto;
  color: var(--prototype-muted);
}

.finder__result {
  font-variant-numeric: tabular-nums;
}

.program-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2.6vw, 30px);
  padding-bottom: clamp(64px, 8vw, 110px);
}

.program-card {
  min-width: 0;
  border: 1px solid var(--prototype-line);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 14px 38px rgba(22, 57, 65, 0.08);
  overflow: clip;
}

.program-card[hidden],
.group-card[hidden] {
  display: none ;
}

.program-card__overview {
  display: grid;
  grid-template-columns: minmax(140px, 180px) minmax(0, 1fr);
  gap: clamp(18px, 2.6vw, 30px);
  align-items: start;
  padding: clamp(18px, 2.6vw, 28px);
}

.program-card__overview > .program-poster {
  width: 100%;
}

.program-card__summary {
  min-width: 0;
  padding: 2px 0 0;
}

.program-card h2 {
  margin: 6px 0 12px;;;
}

.program-card h2.title-tier--long {;
}

.program-card h2.title-tier--very-long {;
}

.program-card h2.title-tier--ultra-long {;;;
}

.program-card h2 a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-decoration-color: transparent;
  text-underline-offset: 0.13em;
}

.program-card h2 a:hover,
.program-card h2 a:focus-visible {
  text-decoration-color: currentColor;
}

.program-card__teacher {
  margin: 0;;;
}

.program-card__teacher--multiple {
  display: grid;
  gap: 5px;
}

.program-card__teacher--multiple ul {
  display: grid;
  gap: 3px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.program-card__teacher--multiple li {;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.program-card__meta {
  margin: 8px 0 20px;
  color: var(--prototype-muted);;
}

.program-groups {
  border-top: 1px solid var(--prototype-line);
}

.program-groups > summary {
  min-height: 50px;
  display: flex;
  align-items: center;
  padding: 0 clamp(22px, 3vw, 34px);
  cursor: pointer;
  color: var(--prototype-green);;
}

.program-groups > summary:hover {
  background: var(--prototype-green-soft);
}

.program-groups__grid {
  display: grid;
  gap: 12px;
  padding: 0 clamp(14px, 2vw, 24px) clamp(14px, 2vw, 24px);
}

.poster-frame {
  position: relative;
  width: min(100%, 380px);
  aspect-ratio: var(--poster-ratio, 4 / 5);
  margin: 0;
  border-radius: 22px;
  overflow: hidden;
  background: var(--prototype-cream);
  box-shadow: inset 0 0 0 1px var(--prototype-line);
}

.poster-frame picture { display: contents; }

.poster-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  background: var(--prototype-cream);
  transform: none ;
}

.poster-frame--pending {
  background:
    radial-gradient(circle at 74% 24%, rgba(235, 174, 64, 0.48) 0 11%, transparent 11.5%),
    radial-gradient(circle at 30% 65%, rgba(25, 132, 108, 0.22) 0 22%, transparent 22.5%),
    linear-gradient(145deg, #fff7df, #e9f4ef 72%);
}

.poster-shape {
  position: absolute;
  inset: 17%;
  border: 2px solid rgba(23, 57, 65, 0.15);
  border-radius: 44% 56% 54% 46% / 52% 40% 60% 48%;
}

.group-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(220px, 360px) minmax(0, 1fr);
  gap: clamp(20px, 4vw, 42px);
  align-items: start;
  padding: clamp(16px, 2.6vw, 28px);
  border: 1px solid var(--prototype-line);
  border-radius: 26px;
  background: white;
  box-shadow: 0 12px 34px rgba(22, 57, 65, 0.08);
}

.group-card--compact {
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 14px;
  padding: 14px;
  border-radius: 18px;
  box-shadow: none;
}

.group-card--compact .poster-frame {
  width: 110px;
  border-radius: 13px;
}

.group-card--compact .group-card__body > .group-facts,
.group-card--compact .group-schedule {
  display: none;
}

.group-card__body {
  min-width: 0;
}

.group-card__quickfacts {
  display: grid;
  gap: 5px;
  margin: 0 0 12px;
  padding: 0;
  list-style: none;
  color: var(--prototype-muted);;;
}

.group-card__quickfacts li:not(:first-child)::before {
  content: "•" / "";
  margin-right: 7px;
  color: var(--prototype-gold);
}

.group-card__eyebrow {
  margin: 0 0 7px;
  color: var(--prototype-green);;;;
  text-transform: uppercase;
  white-space: nowrap;
}

.group-card h3 {
  margin: 0 0 14px;;;
}

.group-card h3.title-tier--long {;
}

.group-card h3.title-tier--very-long {;
}

.group-card h3.title-tier--ultra-long {;;;
}

.group-card--compact h3 {;
}

.group-card__detail-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  margin-top: 12px;
  color: var(--prototype-green);;
  text-underline-offset: 0.2em;
}

.group-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.group-facts,
.availability__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0 0;
}

.group-facts > div,
.availability__facts > div {
  min-width: 0;
  padding: 11px 13px;
  border-radius: 13px;
  background: var(--prototype-cream);
}

.group-facts dt,
.availability__facts dt {
  color: var(--prototype-muted);;;;
  text-transform: uppercase;
}

.group-facts dd,
.availability__facts dd {
  margin: 4px 0 0;;;
  overflow-wrap: normal;
  word-break: normal;
}

.availability {
  margin-top: 10px;
  padding: 11px 12px;
  border-radius: 16px;
  background: var(--prototype-green-soft);
  border: 1px solid rgba(22, 122, 104, 0.18);
  min-height: 0;
}

:root body .availability[data-source-recruitment-state="NOT_OPEN_FLAG"] {
  color: #9b3444;
  background: #fff0f1;
  border-color: #bd6775;
}

.availability[data-state="error"],
.availability[data-state="anomaly"] {
  background: var(--prototype-red-soft);
  border-color: rgba(155, 63, 45, 0.22);
}

.availability[data-recruitment-open="true"][data-state="error"],
.availability[data-recruitment-open="true"][data-state="anomaly"] {
  background: #fff7e2;
  border-color: rgba(187, 123, 23, 0.24);
}

.availability[data-state="stale"] {
  background: #fff5d9;
  border-color: rgba(187, 123, 23, 0.24);
}

.availability__status {
  margin: 0;;;
}

.availability__note,
.availability__updated {
  margin: 5px 0 0;
  color: var(--prototype-muted);;;
}

.availability--compact {
  min-height: 0;
  padding: 9px 10px;
}

.availability--compact .availability__facts,
.availability--compact .availability__updated {
  display: none ;
}

.group-schedule {
  margin-top: 18px;
  padding: 16px;
  border-radius: 16px;
  background: #f4f8f7;
}

.group-schedule h4 {
  margin: 0 0 8px;;
}

.group-schedule ul {
  display: grid;
  gap: 7px;
  margin: 0;
  padding-left: 20px;
}

.group-schedule li {;
}

.group-schedule li span {
  display: block;
  color: var(--prototype-muted);;
}

.program-detail {
  padding-top: clamp(30px, 5vw, 64px);
  padding-bottom: clamp(72px, 9vw, 118px);
}

.program-detail__intro {
  display: grid;
  grid-template-columns: minmax(240px, 340px) minmax(0, 1fr);
  gap: clamp(28px, 5vw, 68px);
  align-items: center;
  padding: clamp(34px, 6vw, 72px) 0 clamp(28px, 5vw, 58px);
}

.program-detail__intro > .program-poster {
  width: 100%;
}

.breadcrumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: var(--prototype-muted);;
  flex-wrap: wrap;
}

.breadcrumbs span:last-child {
  min-width: 0;
}

.program-detail__header {
  max-width: 980px;
  padding: 0;
}

.program-detail__header h1 {
  margin: 8px 0 18px;
  max-width: 100%;text-wrap:wrap;
}

.program-detail__header h1.title-tier--long {;
}

.program-detail__header h1.title-tier--very-long {;
}

.program-detail__header h1.title-tier--ultra-long {;;;
}

.program-detail__teacher {
  margin: 0;;;
}

.program-detail__lead,
.program-description p {
  max-width: 76ch;
  color: var(--prototype-muted);;;
}

.program-detail__source {
  margin-top: 16px;
  color: var(--prototype-muted);;
}

.program-detail__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

#finder-title,
#groups-title,
.group-card {
  scroll-margin-top:calc(var(--header-height,100px) + 16px);
}

/* Non-interactive focus destination: welcome/anchor navigation must not draw a box. */
.finder__heading > #finder-title:focus,
#catalog-form[tabindex="-1"]:focus {
  outline: none;
}

.program-description {
  max-width: 980px;
  margin-bottom: clamp(38px, 6vw, 72px);
}

.program-description h2,
.detail-groups h2 {
  margin: 0;;;
}

.detail-groups__grid {
  display: grid;
  gap: clamp(18px, 3vw, 30px);
  margin-top: 24px;
}

.empty-state {
  padding: 50px;
  margin-bottom: 80px;
  border: 1px dashed var(--prototype-line);
  border-radius: 24px;
  text-align: center;
}

.empty-state .button {
  margin-top: 10px;
}

.prototype-footer {
  padding: 28px 0;
  border-top: 1px solid var(--prototype-line);
  color: var(--prototype-muted);;
}

.prototype-footer p {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0;
}

.prototype-footer__credit {
  margin-bottom: 10px ;
  color: rgba(255, 248, 232, 0.94);;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.prototype-footer a {
  color: var(--prototype-green);;
}

@media (max-width: 1180px) {
  .finder__controls--primary,
  .finder__more-controls {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .finder__search {
    grid-column: span 3;
  }
}

@media (max-width: 820px) {
  .prototype-status {
    display: none;
  }

  .program-grid {
    grid-template-columns: 1fr;
  }

  .group-card {
    grid-template-columns: minmax(150px, 270px) minmax(0, 1fr);
  }

  .program-card__overview {
    grid-template-columns: minmax(130px, 180px) minmax(0, 1fr);
  }

  .program-detail__intro {
    grid-template-columns: minmax(190px, 270px) minmax(0, 1fr);
  }
}

@media (max-width: 640px) {
  .header-catalog-link {
    display: none;
  }

  .prototype-hero {
    padding: 22px 0 18px;
  }

  .prototype-brand img {
    width: 44px;
    height: 44px;
  }

  .prototype-hero h1,
  .program-detail__header h1 {;;;
  }

  .finder {
    margin-bottom: 22px;
    padding: 16px;
    border-radius: 22px;
  }

  .finder__heading h2 {
    margin-bottom: 14px;;
  }

  .prototype-hero__lead {
    margin-top: 10px;;;
  }

  .finder__controls,
  .finder__controls--primary {
    grid-template-columns: 1fr;
  }

  .finder__search {
    grid-column: auto;
  }

  .finder__more > summary {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid var(--prototype-line);
    border-radius: 13px;
    padding: 0 13px;
    color: var(--prototype-green);;
    cursor: pointer;
  }

  .finder__more:not([open]) > .finder__more-controls {
    display: none ;
  }

  .finder__more[open] > .finder__more-controls {
    display: grid ;
    margin-top: 10px;
  }

  .finder__actions {
    align-items: stretch;
  }

  .finder__actions .button {
    width: auto;
    flex: 1 1 auto;
  }

  .finder__actions p {
    flex-basis: 100%;
    margin-left: 0;
  }

  .program-card,
  .group-card {
    border-radius: 21px;
  }

  .program-card__overview,
  .program-detail__intro {
    grid-template-columns: 1fr;
  }

  .program-card__overview > .program-poster,
  .program-detail__intro > .program-poster {
    max-width: none;
  }

  .program-card__overview > .program-poster {
    width: min(68vw, 240px);
    margin-inline: auto;
  }

  .program-detail__intro > .program-poster {
    width: 100%;
  }

  .program-card h2 {;
  }

  .program-card h2.title-tier--long {;
  }

  .program-card h2.title-tier--very-long {;
  }

  .program-card h2.title-tier--ultra-long {;
  }

  .program-detail__header h1.title-tier--long {;
  }

  .program-detail__header h1.title-tier--very-long {;
  }

  .program-detail__header h1.title-tier--ultra-long {;
  }

  .group-card,
  .group-card--compact {
    grid-template-columns: 1fr;
  }

  .group-card h3,
  .group-card--compact h3 {;
  }

  .group-card h3.title-tier--long,
  .group-card--compact h3.title-tier--long {;
  }

  .group-card h3.title-tier--very-long,
  .group-card--compact h3.title-tier--very-long {;
  }

  .group-card h3.title-tier--ultra-long,
  .group-card--compact h3.title-tier--ultra-long {;
  }

  .group-card:not(.group-card--compact) .poster-frame {
    width: 100%;
    max-width: none;
    border-radius: 18px;
  }

  .group-card--compact .poster-frame {
    width: min(54vw, 180px);
    margin-inline: auto;
    border-radius: 18px;
  }

  .group-facts,
  .availability__facts {
    grid-template-columns: 1fr;
  }

}

@media (max-width: 340px) {
  .container {
    width: calc(100% - 28px);
    padding-left: 0;
    padding-right: 0;
  }

  .group-card {
    padding: 16px;
  }

  .program-card__summary {
    padding: 0;
  }

  .program-detail__header h1 {;
  }

  .program-detail__header h1.title-tier--long {;
  }

  .program-detail__header h1.title-tier--very-long {;
  }

  .program-detail__header h1.title-tier--ultra-long {;
  }

  .program-card h2.title-tier--very-long {;
  }

  .program-card h2.title-tier--ultra-long {;
  }

  .group-card h3,
  .group-card--compact h3 {;
  }

  .group-card h3.title-tier--long,
  .group-card--compact h3.title-tier--long {;
  }

  .group-card h3.title-tier--very-long,
  .group-card--compact h3.title-tier--very-long {;
  }

  .group-card h3.title-tier--ultra-long,
  .group-card--compact h3.title-tier--ultra-long {;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/* 2026-09-06: local-only poster-led design refresh. */
:root {
  --poster-navy: #071f39;
  --poster-navy-2: #0d3155;
  --poster-cream: #fff2d5;
  --poster-paper: #fffaf0;
  --poster-gold: #d5a342;
  --poster-gold-soft: #f3d38c;
  --poster-burgundy: #9b1e2c;
  --poster-shadow: 0 24px 70px rgba(7, 31, 57, 0.17);
}

body {
  min-height: 100vh;
  background:
    radial-gradient(circle at 8% 5%, rgba(213, 163, 66, 0.16), transparent 28rem),
    radial-gradient(circle at 94% 28%, rgba(155, 30, 44, 0.08), transparent 25rem),
    linear-gradient(180deg, #fffaf0 0, #f7ead2 52%, #fffaf0 100%);
}

.prototype-header {
  color: var(--poster-cream);
  background: color-mix(in srgb, var(--poster-navy) 94%, transparent);
  border-bottom: 1px solid rgba(243, 211, 140, 0.5);
  box-shadow: 0 8px 26px rgba(7, 31, 57, 0.16);
}

.prototype-brand,
.header-catalog-link {
  color: var(--poster-cream);
}

.prototype-brand img {
  filter: drop-shadow(0 3px 8px rgba(0, 0, 0, 0.22));
}

.prototype-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(42px, 5.4vw, 78px) 0 clamp(42px, 5vw, 70px);
  color: var(--poster-cream);
  background:
    radial-gradient(circle at 76% 20%, rgba(255, 230, 170, 0.2), transparent 26rem),
    linear-gradient(123deg, var(--poster-navy) 0 68%, #133e65 68% 79%, var(--poster-burgundy) 79% 100%);
  border-bottom: 5px solid var(--poster-gold);
}

.prototype-hero::before,
.prototype-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  border: 2px solid rgba(243, 211, 140, 0.5);
  border-radius: 50%;
  transform: rotate(-10deg);
}

.prototype-hero::before {
  width: min(62vw, 870px);
  height: min(26vw, 360px);
  right: -10vw;
  bottom: -16vw;
  box-shadow: 0 0 0 12px rgba(213, 163, 66, 0.08), 0 0 0 25px rgba(255, 242, 213, 0.05);
}

.prototype-hero::after {
  width: 340px;
  height: 120px;
  left: -130px;
  top: -56px;
  border-color: rgba(255, 242, 213, 0.22);
}

.prototype-hero .eyebrow {
  color: var(--poster-gold-soft);;
}

.prototype-hero h1 {
  max-width: 17ch;
  color: #fff8e8;
  text-shadow: 0 3px 0 rgba(0, 0, 0, 0.16);
}

.prototype-hero h1 em {
  display: block;
  margin-top: 0.08em;
  color: var(--poster-gold-soft);
  font-style: italic;;
}

.prototype-hero__lead {
  max-width: 61ch;
  color: rgba(255, 248, 232, 0.84);;
}

.finder {
  position: relative;
  z-index: 2;
  margin-top: clamp(-26px, -2.2vw, -18px);
  border: 1px solid rgba(156, 106, 27, 0.42);
  border-top: 4px solid var(--poster-gold);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(255, 247, 228, 0.96)),
    var(--poster-paper);
  box-shadow: var(--poster-shadow);
}

.finder__heading h2 {
  color: var(--poster-navy);
}

.finder__controls input,
.finder__controls select,
.finder__more > summary {
  border-color: rgba(7, 31, 57, 0.18);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: inset 0 1px 0 white;
}

.filter-chip,
.button-secondary {
  border-color: rgba(213, 163, 66, 0.48);
  background: #fff2d5;
  color: var(--poster-navy);
}

.button-primary {
  background: var(--poster-burgundy);
  box-shadow: 0 10px 26px rgba(155, 30, 44, 0.25);
}

.button-primary:hover {
  background: #7e1722;
}

.program-grid {
  gap: clamp(24px, 3vw, 38px);
}

.program-grid[hidden],
.group-results[hidden] {
  display: none ;
}

.group-results {
  padding-bottom: clamp(64px, 8vw, 110px);
}

.group-card__program {
  margin: 0 0 8px;
  color: var(--prototype-muted);;;;
}

.group-card__search-actions,
.group-card__navigator-link {
  position: relative;
  z-index: 2;
}

.registration-guide {
  position: relative;
  z-index: 3;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid color-mix(in srgb, var(--dept-main) 18%, transparent);
}

.registration-guide .registration-guide__title {
  margin: 0 0 12px;
  color: var(--dept-deep);;
}

.registration-steps {
  display: grid;
  gap: 9px;
  margin: 0;
  padding-left: 24px;
  color: #183a50;;
}

.registration-guide__actions,
.group-card__search-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.teacher-contact {
  margin-top: 16px;
  padding: 14px 16px;
  border-radius: 16px;
  background: color-mix(in srgb, var(--dept-soft) 74%, white);
}

.teacher-contact p {
  margin: 0;
}

.teacher-contact__name {
  color: var(--dept-deep);;
}

.teacher-contact__pending,
.teacher-contact__label {
  margin-top: 6px ;
  color: var(--prototype-muted);;
}

.teacher-contact__phone {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  margin-top: 4px;
  color: var(--dept-main);;;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.2em;
  white-space: nowrap;
}

.privacy-page {
  max-width: 820px;
  padding-block: clamp(42px, 7vw, 88px);
}

.privacy-page h1 {
  margin: 0 0 24px;
  color: var(--poster-navy);;;
}

.privacy-page p {;;
}

.help-panel {
  margin-top: 14px;
  border: 1px solid color-mix(in srgb, var(--dept-main) 22%, transparent);
  border-radius: 17px;
  background: rgba(255, 255, 255, 0.82);
}

.help-panel > summary {
  min-height: 48px;
  display: flex;
  align-items: center;
  padding: 10px 15px;
  color: var(--dept-main);
  cursor: pointer;;
}

.help-form {
  display: grid;
  gap: 14px;
  padding: 4px 15px 17px;
}

.help-form__context {
  margin: 0;
  color: var(--prototype-muted);;;
}

.help-form__field {
  display: grid;
  gap: 6px;
  color: #183a50;;;
}

.help-form input,
.help-form textarea {
  min-width: 0;
  width: 100%;
  min-height: 46px;
  border: 1px solid rgba(7, 31, 57, 0.22);
  border-radius: 12px;
  padding: 10px 12px;
  background: white;
  color: var(--poster-navy);
}

.help-form textarea {
  min-height: 104px;
  resize: vertical;
}

.help-form__consent {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  color: var(--prototype-muted);;;
}

.help-form__consent input {
  width: 20px;
  min-height: 20px;
  margin: 2px 0 0;
}

.help-form__consent a {
  color: var(--dept-main);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.help-form__submit[disabled] {
  cursor: wait;
  opacity: 0.68;
}

.help-form__status {
  min-height: 22px;
  margin: 0;;;
}

.help-form__status--error { color: #9b1e2c; }
.help-form__status--success { color: #12623e; }

.honeypot {
  display: none;
  position: absolute ;
  left: -10000px ;
  width: 1px ;
  height: 1px ;
  overflow: hidden ;
}

@media (max-width: 640px) {
  .registration-guide__actions .button,
  .group-card__search-actions .button,
  .help-form__submit {
    width: 100%;
  }
}

.program-card {
  position: relative;
  container: program-card / inline-size;
  border: 1px solid rgba(122, 83, 22, 0.36);
  border-radius: 30px;
  background:
    radial-gradient(circle at 100% 0, rgba(213, 163, 66, 0.17), transparent 15rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(255, 246, 226, 0.98));
  box-shadow: 0 18px 48px rgba(7, 31, 57, 0.13);
}

.program-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 8px;
  background: linear-gradient(90deg, var(--poster-navy), var(--poster-gold) 46%, var(--poster-burgundy));
}

.program-card__overview {
  grid-template-columns: minmax(190px, 220px) minmax(0, 1fr);
  gap: clamp(22px, 2.8vw, 34px);
  padding: clamp(24px, 3vw, 34px);
}

.program-card__overview > .program-poster {
  width: min(100%, 220px);
  justify-self: center;
}

.program-card h2 {
  color: var(--poster-navy);
}

.program-card .eyebrow,
.program-detail .eyebrow {
  color: var(--poster-burgundy);;;
}

.program-card__teacher {
  color: #183a50;
}

.program-groups {
  border-top-color: rgba(122, 83, 22, 0.28);
  background: rgba(255, 250, 240, 0.58);
}

.program-groups > summary {
  color: var(--poster-navy-2);
}

.program-groups > summary:hover {
  background: rgba(243, 211, 140, 0.22);
}

.poster-frame {
  border: 1px solid rgba(122, 83, 22, 0.42);
  border-radius: 24px;
  background: #f7ead2;
  box-shadow:
    0 16px 34px rgba(7, 31, 57, 0.14),
    inset 0 0 0 5px rgba(255, 250, 240, 0.72);
}

.poster-frame img {
  background: #f7ead2;
}

.department-surface {
  --dept-main: #0b5670;
  --dept-deep: #072e49;
  --dept-accent: #b94331;
  --dept-gold: #d5a342;
  --dept-soft: #eef6f2;
}

.department-surface--lira,
.program-detail--lira {
  --dept-main: #075e86;
  --dept-deep: #063452;
  --dept-accent: #af2233;
  --dept-gold: #d6a13a;
  --dept-soft: #eaf5f3;
}

.department-surface--evrika,
.program-detail--evrika {
  --dept-main: #123f9c;
  --dept-deep: #08275f;
  --dept-accent: #e95518;
  --dept-gold: #e2ad3f;
  --dept-soft: #eef2ff;
}

.department-surface--eko-dom,
.program-detail--eko-dom {
  --dept-main: #1c653a;
  --dept-deep: #0d4126;
  --dept-accent: #728f2d;
  --dept-gold: #d2a53d;
  --dept-soft: #edf6e6;
}

.department-surface--vega,
.program-detail--vega {
  --dept-main: #59318a;
  --dept-deep: #291650;
  --dept-accent: #7d44ad;
  --dept-gold: #d8ab4b;
  --dept-soft: #f2ecfb;
}

.group-card {
  position: relative;
  isolation: isolate;
  container: group-card / inline-size;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--dept-main) 28%, #c9a45c);
  border-top: 5px solid var(--dept-main);
  border-radius: 28px;
  background:
    radial-gradient(circle at 97% 8%, color-mix(in srgb, var(--dept-accent) 14%, transparent), transparent 15rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), color-mix(in srgb, var(--dept-soft) 82%, white));
  box-shadow: 0 18px 46px color-mix(in srgb, var(--dept-deep) 13%, transparent);
}

.group-card::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 280px;
  height: 92px;
  right: -112px;
  bottom: -44px;
  border: 2px solid color-mix(in srgb, var(--dept-gold) 58%, transparent);
  border-radius: 50%;
  transform: rotate(-14deg);
  pointer-events: none;
}

.group-card--compact {
  grid-template-columns: 142px minmax(0, 1fr);
  gap: 18px;
  padding: 18px;
  border-top-width: 4px;
  border-radius: 21px;
  box-shadow: 0 9px 24px color-mix(in srgb, var(--dept-deep) 10%, transparent);
}

.group-card--compact .poster-frame {
  width: 142px;
  border-radius: 17px;
}
@media(min-width:1024px){
 :root body .program-grid{align-items:stretch}
 :root body .program-grid>.program-card{display:flex;flex-direction:column;min-height:0}
 :root body .program-grid>.program-card>.program-card__overview{flex:1 0 auto;align-items:stretch}
 :root body .program-grid>.program-card>.program-card__overview>.program-poster{align-self:start}
 :root body .program-grid>.program-card .program-card__summary{display:flex;flex-direction:column;min-width:0;align-self:stretch;justify-content:flex-start}
 :root body .program-grid>.program-card .program-card__summary>.button{margin-top:auto;align-self:flex-start}
 :root body .program-grid>.program-card>details[data-program-groups]{margin-top:auto}
 :root body .program-grid>.program-card:has(>details[data-program-groups][open]){grid-column:1/-1}
 :root body .program-grid>.program-card>details[data-program-groups][open] .program-groups__grid{grid-template-columns:minmax(0,1fr);width:100%;min-width:0}
 :root body .group-card--compact:has(.group-card__poster-link){display:grid;grid-template-columns:minmax(320px,38%) minmax(0,1fr);gap:28px;align-items:start}
 :root body .group-card--compact>.group-card__poster-link{width:100%;max-width:440px;align-self:start}
 :root body .group-card--compact .poster-frame{width:100%;max-width:440px;height:auto;aspect-ratio:auto;margin:0}
 :root body .group-card--compact .poster-frame img{width:100%;height:auto;max-width:100%;object-fit:contain;object-position:top center}
}
:root body .group-card--full>.group-card__description{grid-column:1/-1;width:100%;min-width:0;margin-top:0;box-sizing:border-box}
:root body .group-card--full>.group-card__description p{max-width:none}

.group-card__poster-link {
  display: block;
  position: relative;
  z-index: 2;
  width: fit-content;
  max-width: 100%;
  color: inherit;
  text-decoration: none;
}

.group-card__poster-link:focus-visible {
  border-radius: 17px;
  outline: 4px solid color-mix(in srgb, var(--dept-gold) 72%, white);
  outline-offset: 3px;
}

.group-card__eyebrow,
.group-card__detail-link {
  color: var(--dept-main);
}

.group-card__short-description {
  margin: 8px 0 12px;
  color: var(--prototype-muted);;;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.department-surface .button-primary {
  background: var(--dept-main);
  box-shadow: 0 9px 22px color-mix(in srgb, var(--dept-main) 24%, transparent);
}

.group-facts > div,
.availability__facts > div,
.availability,
.group-schedule {
  border: 1px solid color-mix(in srgb, var(--dept-main) 13%, transparent);
  background: color-mix(in srgb, var(--dept-soft) 72%, white);
}

.program-detail {
  position: relative;
}

.program-detail__intro {
  position: relative;
  isolation: isolate;
  margin-top: clamp(20px, 3vw, 34px);
  padding: clamp(28px, 4vw, 52px);
  border: 1px solid rgba(122, 83, 22, 0.34);
  border-radius: 34px;
  background:
    radial-gradient(circle at 96% 0, rgba(213, 163, 66, 0.18), transparent 20rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(255, 244, 220, 0.96));
  box-shadow: var(--poster-shadow);
}

.program-detail--single-department .program-detail__intro {
  border-top: 6px solid var(--dept-main);
  background:
    radial-gradient(circle at 98% 2%, color-mix(in srgb, var(--dept-accent) 13%, transparent), transparent 20rem),
    linear-gradient(145deg, white, color-mix(in srgb, var(--dept-soft) 72%, white));
}

.program-detail__header h1 {
  color: var(--poster-navy);
}

.program-description {
  margin-top: clamp(28px, 4vw, 52px);
  padding: clamp(24px, 3vw, 36px);
  border-left: 5px solid var(--poster-gold);
  border-radius: 0 24px 24px 0;
  background: rgba(255, 250, 240, 0.8);
}

.detail-groups {
  margin-top: clamp(44px, 6vw, 74px);
}

.prototype-footer {
  color: rgba(255, 248, 232, 0.78);
  background: var(--poster-navy);
  border-top: 4px solid var(--poster-gold);
}

.prototype-footer a {
  color: var(--poster-gold-soft);
}

html[data-department-theme="lira"] body {
  background: radial-gradient(circle at 8% 8%, rgba(16, 117, 145, 0.16), transparent 30rem), linear-gradient(#f8fbfa, #eaf5f3 45%, #fffaf0);
}

html[data-department-theme="evrika"] body {
  background: radial-gradient(circle at 8% 8%, rgba(18, 63, 156, 0.14), transparent 30rem), linear-gradient(#fafbff, #eef2ff 45%, #fffaf0);
}

html[data-department-theme="eko-dom"] body {
  background: radial-gradient(circle at 8% 8%, rgba(28, 101, 58, 0.15), transparent 30rem), linear-gradient(#fbfdf8, #edf6e6 45%, #fffaf0);
}

html[data-department-theme="vega"] body {
  background: radial-gradient(circle at 8% 8%, rgba(89, 49, 138, 0.17), transparent 30rem), linear-gradient(#fbf9ff, #f2ecfb 45%, #fffaf0);
}

/* Approved department surfaces are decorative framing only. The opaque cream
   centre keeps text readable while the selected series colour stays peripheral. */
body {
  background-color: #f7efe0;
  background-image:
    linear-gradient(rgba(255, 250, 241, 0.86), rgba(255, 250, 241, 0.92)),
    url(/assets/design-surfaces/web-surface-program-02-v1.webp);
  background-position: center top;
  background-repeat: repeat-y;
  background-size: min(100vw, 1600px) auto;
}

html[data-department-theme="lira"] body {
  background-image:
    linear-gradient(rgba(248, 252, 251, 0.82), rgba(244, 250, 248, 0.91)),
    url(/assets/design-surfaces/web-surface-lira-03-v1.webp);
}

html[data-department-theme="evrika"] body {
  background-image:
    linear-gradient(rgba(250, 251, 255, 0.82), rgba(246, 248, 255, 0.91)),
    url(/assets/design-surfaces/web-surface-evrika-01-v1.webp);
}

html[data-department-theme="eko-dom"] body {
  background-image:
    linear-gradient(rgba(251, 253, 247, 0.82), rgba(247, 251, 242, 0.91)),
    url(/assets/design-surfaces/web-surface-eko-dom-03-v1.webp);
}

html[data-department-theme="vega"] body {
  background-image:
    linear-gradient(rgba(251, 249, 255, 0.82), rgba(248, 245, 253, 0.91)),
    url(/assets/design-surfaces/web-surface-vega-03-v1.webp);
}

.program-card--single-department,
.group-card {
  background-image:
    linear-gradient(145deg, rgba(255, 255, 255, 0.96), color-mix(in srgb, var(--dept-soft, #f7ead2) 78%, rgba(255, 255, 255, 0.94))),
    var(--department-surface-image, none);
  background-position: center;
  background-size: cover;
}

.program-card--lira,
.department-surface--lira {
  --department-surface-image: url(/assets/design-surfaces/web-surface-lira-03-v1.webp);
}

.program-card--evrika,
.department-surface--evrika {
  --department-surface-image: url(/assets/design-surfaces/web-surface-evrika-01-v1.webp);
}

.program-card--eko-dom,
.department-surface--eko-dom {
  --department-surface-image: url(/assets/design-surfaces/web-surface-eko-dom-03-v1.webp);
}

.program-card--vega,
.department-surface--vega {
  --department-surface-image: url(/assets/design-surfaces/web-surface-vega-03-v1.webp);
}

.program-card--multi-department {
  background-image:
    linear-gradient(rgba(255, 253, 248, 0.94), rgba(255, 249, 237, 0.96)),
    url(/assets/design-surfaces/web-surface-program-02-v1.webp);
  background-position: center;
  background-size: cover;
}

.program-detail--single-department .program-detail__intro {
  background-image:
    linear-gradient(145deg, rgba(255, 255, 255, 0.95), color-mix(in srgb, var(--dept-soft) 76%, rgba(255, 255, 255, 0.94))),
    var(--department-surface-image, none);
  background-position: center;
  background-size: cover;
}

.program-detail--lira { --department-surface-image: url(/assets/design-surfaces/web-surface-lira-03-v1.webp); }
.program-detail--evrika { --department-surface-image: url(/assets/design-surfaces/web-surface-evrika-01-v1.webp); }
.program-detail--eko-dom { --department-surface-image: url(/assets/design-surfaces/web-surface-eko-dom-03-v1.webp); }
.program-detail--vega { --department-surface-image: url(/assets/design-surfaces/web-surface-vega-03-v1.webp); }

/* The catalog can remain two-column while an individual card becomes narrow
   (sidebar, split view, zoom). Switch by card width, not viewport width. */
@container program-card (max-width: 620px) {
  .program-card__overview {
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
  }

  .program-card__overview > .program-poster {
    width: 100%;
    max-width: 100%;
    margin-inline: auto;
  }

  .program-card__summary {
    min-width: 0;
    width: 100%;
  }

  .program-card h2,
  .program-card h2 a,
  .program-card__teacher,
  .program-card__meta {
    max-width: 100%;
    overflow: visible;
    height: auto;
    max-height: none;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    text-overflow: clip;
    -webkit-line-clamp: unset;
  }

  .program-card .button-primary {
    max-width: 100%;
  }

  .group-card--compact {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  .group-card--compact .poster-frame {
    width: 100%;
    max-width: 100%;
    margin-inline: auto;
  }

  .group-card__body {
    min-width: 0;
    width: 100%;
  }

  .program-groups > summary {
    min-height: 48px;
    padding-block: 10px;
  }
}

.program-card h2,
.program-card h2 a,
.group-card h3,
.program-detail__header h1 {
  display: block;
  height: auto;
  max-height: none;
  overflow: visible;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  text-overflow: clip;
  -webkit-line-clamp: unset;
}

@media (max-width: 820px) {
  .program-card__overview {
    grid-template-columns: minmax(190px, 240px) minmax(0, 1fr);
  }

  .program-card__overview > .program-poster {
    width: min(100%, 240px);
  }
}

@media (max-width: 640px) {
  body {
    background-size: 1100px auto;
  }

  .prototype-hero {
    padding: 30px 0 42px;
    background: linear-gradient(150deg, var(--poster-navy) 0 77%, var(--poster-burgundy) 77% 100%);
  }

  .finder {
    margin-top: -22px;
  }

  .program-card__overview {
    grid-template-columns: minmax(0, 1fr);
    padding: 22px 18px 24px;
  }

  .program-card__overview > .program-poster {
    width: 100%;
  }

  .program-detail__intro {
    margin-top: 18px;
    padding: 18px;
    border-radius: 24px;
  }

  .group-card--compact .poster-frame {
    width: 100%;
  }

  .group-card,
  .group-card--compact {
    grid-template-columns: minmax(0, 1fr);
  }
}

.program-card h2,
.program-card h2 a,
.group-card h3,
.program-detail__header h1 {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

/* The existing real title link covers the non-interactive overview surface.
   Buttons and the compare disclosure remain separate controls above it. */
.program-card__overview {
  position: relative;
}

.program-card h2 a {
  position: static;
}

.program-card h2 a::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  border-radius: 28px 28px 0 0;
}

.program-card .button,
.program-groups {
  position: relative;
  z-index: 2;
}

.program-card:has(h2 a:hover) {
  border-color: rgba(155, 30, 44, 0.58);
  box-shadow: 0 22px 56px rgba(7, 31, 57, 0.18);
}

.program-card h2 a:focus-visible::after {
  outline: 4px solid color-mix(in srgb, var(--poster-gold) 72%, white);
  outline-offset: -7px;
}

/* Compact group cards already contain an exact group-anchor link. Stretch
   that real href over the card without using onclick; detail-page cards keep
   their independent Navigator action and receive no synthetic destination. */
.group-card:has(.group-card__detail-link) .group-card__detail-link::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  border-radius: inherit;
}

.group-card:has(.group-card__detail-link) .group-card__detail-link {
  position: static;
}

.group-card:has(.group-card__detail-link):has(.group-card__detail-link:hover) {
  border-color: color-mix(in srgb, var(--dept-main) 62%, #c9a45c);
  box-shadow: 0 14px 32px color-mix(in srgb, var(--dept-deep) 16%, transparent);
}

.group-card:target {
  border-color: var(--dept-gold);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--dept-gold) 28%, transparent), 0 18px 46px color-mix(in srgb, var(--dept-deep) 16%, transparent);
}

.group-card:has(.group-card__detail-link) .group-card__detail-link:focus-visible::after {
  outline: 4px solid color-mix(in srgb, var(--dept-gold) 72%, white);
  outline-offset: -7px;
}

/* At the narrowest supported viewport retain the same typographic hierarchy,
   but make the longest real source words fit without emergency letter breaks. */
@media (max-width: 340px) {
  .program-card h2 {; }
  .program-card h2.title-tier--long {; }
  .program-card h2.title-tier--very-long {; }
  .program-card h2.title-tier--ultra-long {; }

  .group-card h3,
  .group-card--compact h3 {; }
  .group-card h3.title-tier--long,
  .group-card--compact h3.title-tier--long {; }
  .group-card h3.title-tier--very-long,
  .group-card--compact h3.title-tier--very-long {; }
  .group-card h3.title-tier--ultra-long,
  .group-card--compact h3.title-tier--ultra-long {; }

  .finder__search-row { gap: 7px; }
  .finder__submit {
    min-width: 76px;
    padding-inline: 14px;
  }
}

/* The card itself is the relevant width even in a desktop split view. */
@container program-card (max-width: 340px) {
  .program-card h2 {; }
  .program-card h2.title-tier--long {; }
  .program-card h2.title-tier--very-long {; }
  .program-card h2.title-tier--ultra-long {; }

  .group-card h3,
  .group-card--compact h3 {; }
  .group-card h3.title-tier--long,
  .group-card--compact h3.title-tier--long {; }
  .group-card h3.title-tier--very-long,
  .group-card--compact h3.title-tier--very-long {; }
  .group-card h3.title-tier--ultra-long,
  .group-card--compact h3.title-tier--ultra-long {; }
}


/* Local UX candidate: social navigation, calm ticker, full group descriptions. */
:root body .site-header .header-utility { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; max-width:100%; }
.prototype-header { height:72px; padding-block:0; }
.header-inner { width:100%; height:100%; display:flex; align-items:center; justify-content:space-between; gap:clamp(18px,3vw,40px); }
.header-inner .prototype-brand { flex:0 1 auto; min-width:0; margin-right:0; }
.header-inner .header-utility { flex:1 0 100%; margin-left:0; width:100%; }
.topic-ticker { position:relative; overflow:hidden; margin:0 0 clamp(26px,4vw,42px); border:1px solid rgba(18,49,58,.14); border-radius:20px; color:var(--poster-navy); background:linear-gradient(90deg,#f2b84b,#ffdc84 52%,#f2b84b); }
.program-catalog-heading,.group-results-heading { margin:0 0 clamp(18px,2.5vw,28px); text-align:center; }
.program-catalog-heading .eyebrow,.group-results-heading .eyebrow { margin:0 0 5px; color:var(--poster-red); }
.program-catalog-heading h2,.group-results-heading h2 { margin:0; color:var(--poster-navy);;;; }
.ticker-toolbar { display:flex; justify-content:flex-end; min-height:0; }
.ticker-track { display:flex; width:max-content; will-change:transform; animation:topic-ticker-motion 52s linear infinite; }
.ticker-group { display:flex; flex:0 0 auto; align-items:center; }
.ticker-item { display:inline-flex; align-items:center; min-height:58px; padding-inline:clamp(18px,2.5vw,38px);;;;; text-transform:uppercase; white-space:nowrap; }
.ticker-item::after { content:"✦" / ""; margin-left:clamp(34px,5vw,70px); color:#8b4c18;; }
@keyframes topic-ticker-motion { to { transform:translateX(-50%); } }
.nearest-trigger { margin-right:10px; }
.nearest-panel { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; gap:7px; flex:1 1 100%; min-width:0; margin-top:12px; padding:15px 18px; border:1px solid rgba(27,88,96,.18); border-radius:17px; background:#f4fbf8; }
.finder__actions .nearest-panel > [data-nearest-status] { display:block; width:100%; min-width:0; margin:0;;; color:var(--poster-navy); }
.nearest-panel small { display:block; margin-top:6px; color:var(--prototype-muted); }
.nearest-panel > [data-nearest-result] { min-width:0; }
.nearest-result-card { display:grid; grid-template-columns:minmax(0,1fr); gap:4px; min-width:0; }
.nearest-result-card strong,.nearest-result-card span { display:block; min-width:0; overflow-wrap:normal; word-break:normal; }
.nearest-result-card strong { color:var(--poster-navy);;; }
.group-card__description { margin:14px 0; padding:15px 17px; border-left:4px solid var(--dept-main); border-radius:0 15px 15px 0; background:color-mix(in srgb,var(--dept-soft) 60%,white); }
:root body .group-card__description :is(h2,h4) { margin:0 0 12px; color:var(--ui-ink); }
.group-card__description p { margin:0; color:var(--prototype-ink);;; overflow-wrap:normal; word-break:normal; hyphens:none; }
.group-card:target { outline:4px solid color-mix(in srgb,var(--dept-gold) 72%,white); outline-offset:4px; scroll-margin-top:calc(var(--header-height,100px) + 16px); }
@media (max-width:860px) { }
@media (max-width:640px) {
  .prototype-header { height:auto; min-height:70px; padding-block:10px; }
  .header-inner { height:auto; align-items:center; flex-wrap:wrap; gap:10px; }
  .header-inner .prototype-brand { width:100%; }
  .site-header .header-utility { width:100%; display:grid ; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
  .ticker-track { padding-right:0; }
  .ticker-item { min-height:52px;; }
  .finder__actions { display:flex; flex-wrap:wrap; gap:10px; }
  .nearest-trigger { width:100%; margin:0; }
  .group-card,.group-card--compact{ display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
  .group-card .group-card__poster-link,.group-card--compact .group-card__poster-link { width:100%; }
  .group-card .poster-frame,.group-card--compact .poster-frame{ width:100%; max-width:none; aspect-ratio:4/5; }
  .group-card .poster-frame img { width:100%; height:100%; object-fit:contain; object-position:center; }
  .group-card__body { min-width:0; }
  .topic-ticker { margin-bottom:22px; }
}
@media (prefers-reduced-motion:reduce) { .ticker-track { animation:none; transform:none; } .ticker-group + .ticker-group { display:none; } }

/* Long titles must not widen the mobile detail grid. */
.program-detail__intro > * { min-width:0; }
.program-detail { overflow-x:clip; }
.group-card { overflow-x:clip; }
@media (max-width:640px) {
  .program-detail__intro { width:100%; box-sizing:border-box; }
  .program-detail__header h1.title-tier--long {;; }
}

.group-card__title-link { color:inherit; text-decoration:none; }
.group-card__title-link:hover { color:var(--dept-main); text-decoration:underline; text-underline-offset:3px; }
.detail-groups--single .detail-groups__grid { grid-template-columns:minmax(0,1fr); max-width:900px; margin-inline:auto; }


.group-card--program-poster-only {
  display:grid;
  grid-template-columns:minmax(170px,260px) minmax(0,1fr);
  align-items:start;
  gap:clamp(16px,2.5vw,26px);
}
.group-card--program-poster-only .group-card__poster-link,
.group-card--program-poster-only .poster-frame { width:100%; }
.group-card--program-poster-only .group-card__program-brief { display:grid; gap:12px; align-self:center; min-width:0; }
.group-card--program-poster-only .group-card__department { margin:0; color:var(--dept-deep);; }
.group-card--program-poster-only .group-card__teachers { display:grid; gap:4px; color:var(--prototype-ink); }
.group-card--program-poster-only .group-card__teachers span { color:var(--prototype-muted);;; text-transform:uppercase;; }
.group-card--program-poster-only .group-card__teachers ul { display:grid; gap:3px; margin:0; padding:0; list-style:none; }
.group-card--program-poster-only .group-card__teachers li {;; overflow-wrap:normal; word-break:normal; hyphens:none; }
.group-card--program-poster-only .group-schedule { margin:0; }
@media (max-width:640px) {
  .group-card--program-poster-only { grid-template-columns:minmax(0,1fr); }
  .group-card--program-poster-only .group-schedule { width:100%; box-sizing:border-box; }
}

/* retained layout and functional rules: assets/search-actions.css */
.finder__search-row{display:block}.finder__search-row input{width:100%;box-sizing:border-box}.finder__search-actions{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 14px}.finder__search-actions .button{min-height:48px;padding:12px 24px}.finder__search-actions .button:focus-visible{outline:3px solid #163f49;outline-offset:4px}@media(max-width:640px){.finder__search-actions{display:grid;grid-template-columns:minmax(0,1fr)}.finder__search-actions .button{width:100%;min-height:48px}}
/* retained layout and functional rules: assets/catalog-current.css */
/* Current catalog: full titles and balanced, accessible cards. */
.program-card h2,.program-detail h1,.group-card h3{display:block;-webkit-line-clamp:unset;overflow:visible;max-height:none;white-space:normal;text-overflow:clip;overflow-wrap:anywhere}
.program-card--text-only .program-card__overview{grid-template-columns:1fr}.group-card--text-only{grid-template-columns:1fr}
.historical-group-note{margin-block:24px;padding:20px;border:1px solid #bda263;border-radius:16px;background:#fff7df}
.group-card__quickfacts{;}.group-card__quickfacts li{margin:.35em 0}
.program-detail{padding-block:32px}.program-detail>.breadcrumbs{padding:0;margin:0 0 20px}.group-detail-header{margin-bottom:24px}.group-detail-header h1{margin:0}.detail-groups--single{padding-block:0}.detail-groups--single .detail-groups__grid{max-width:1200px;margin-inline:0}
.group-card--full{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr);gap:28px;align-items:start}.group-card--full>.group-card__poster-link{display:block;position:static;top:auto;align-self:start;width:100%;margin:0}.group-card--full .poster-frame{width:100%;max-width:none;margin:0}.group-card--full .poster-frame img{display:block;width:100%;height:auto;object-fit:contain}.group-card--full .group-card__body{min-width:0}.group-card--full h2{;}.group-card--full .group-facts{margin-top:0}.group-card--full .group-card__description{margin-top:24px}.group-card__description p{max-width:70ch;}.group-card__actions{display:flex;flex-wrap:wrap;gap:12px}
.department-surface--vega{--department-accent:#175963;border-top-color:#175963}.department-surface--evrika{--department-accent:#7e2335;border-top-color:#7e2335}.department-surface--lira{--department-accent:#9c2938;border-top-color:#9c2938}.department-surface--eko-dom{--department-accent:#196445;border-top-color:#196445}
:is(h1,h2,h3,[id]){scroll-margin-top:calc(var(--header-height,100px) + 16px)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #174f61;outline-offset:4px}
@media(max-width:760px){.group-card--full{display:block}.group-card--full>.group-card__poster-link{position:static}.group-card--full .group-card__body{margin-top:16px}.group-detail-header h1,.program-detail h1{}.group-card__actions .button{width:100%}.group-card__quickfacts{}}
@media(max-width:1050px){}
@media(max-width:520px){}
@media(max-width:520px){
}
@media(max-width:360px){}
@media(max-width:520px){}

/* retained layout and functional rules: assets/site-tools.css */
.group-card--compact { position: relative; }
.group-card--compact .group-card__title-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.group-card--compact .group-card__poster-link, .group-card--compact button, .group-card--compact .group-card__actions a { position: relative; z-index: 1; }
/* Interactive selections sit above the card's stretched destination link. */
:root body .group-card .group-card-selections{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;min-width:0}
:root body .group-card .group-card-selections>button{width:100%;min-width:0;min-height:44px;margin:0;padding:8px 4px;font-size:14px;line-height:1.3;white-space:normal;overflow-wrap:normal;box-sizing:border-box;align-self:stretch}
:root body .group-card .group-card-selections>[data-similar-group],:root body .group-card .group-card-selections>[data-share-feedback],:root body .group-card .group-card-selections>[data-share-manual]{grid-column:1/-1;min-width:0;max-width:100%;margin:0;box-sizing:border-box}
:root body .group-card .group-card-selections>[data-similar-group]{margin-top:2px;white-space:normal;text-align:center;padding:10px 8px}
:root body .program-card h2 .program-payment-suffix{display:block;white-space:nowrap;font-size:14px;line-height:1.5;font-weight:400;margin-top:5px}
.group-card--compact:has(:focus-visible) { outline: 3px solid #174f61; outline-offset: 4px; }
.group-page-tools { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.group-page-tools .button, .poster-viewer .button { min-height: 44px; }
.group-tools-status { margin: 10px 0 0; }
.group-tools-status:empty { display: none; }
.guide-copy-fallback { width: 100%; box-sizing: border-box;; padding: 12px; }
.back-to-top { margin: 20px; min-height: 44px; }
.catalog-information {;; padding-block: 12px; }
.catalog-information p { display:block; max-width: 85ch; margin-block: 8px; }
.catalog-information a { text-decoration: underline; text-underline-offset: .18em; }
:root body footer .back-to-top{display:flex;width:max-content;max-width:calc(100% - 40px);margin:20px auto 0}
.catalog-select-options[aria-multiselectable="true"] [role="option"]{display:flex;align-items:flex-start;gap:10px}
.catalog-select-options[aria-multiselectable="true"] [role="option"]::before{content:"";display:block;flex:0 0 18px;width:18px;height:18px;margin-top:2px;border:1px solid #809a91;border-radius:4px;background:#fffdf8;box-sizing:border-box}
.catalog-select-options[aria-multiselectable="true"] [role="option"][aria-selected="true"]::before{content:"✓";color:#fff;background:#245955;border-color:#245955;text-align:center;font:500 14px/16px var(--ui-font)}
.group-link-fallback:not([hidden]) { display: grid; gap: 8px; margin-top: 12px; }
.group-link-fallback input { width: 100%; min-height: 44px; padding: 10px;; box-sizing: border-box; }
.poster-viewer-open { overflow: hidden; }
.poster-viewer { padding: 0; width: min(1180px, 96vw); max-width: 96vw; max-height: 96vh; max-height: 96dvh; border: 0; border-radius: 16px; color: #172f34; background: #f7f5ef; }
.poster-viewer::backdrop { background: rgb(4 17 23 / 82%); }
.poster-viewer__toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 14px 18px; border-bottom: 1px solid #c5c7c3; }
.poster-viewer__toolbar h2 { flex: 1 1 220px; min-width: 0;;; margin: 0; overflow-wrap: anywhere; }
.poster-viewer__canvas { overflow: auto; max-height: calc(96vh - 130px); max-height: calc(96dvh - 130px); overscroll-behavior: contain; padding: 12px; background: #102c34; }
.poster-viewer__canvas img { display: block; width: auto; max-width: 100%; height: auto; max-height: calc(96vh - 160px); max-height: calc(96dvh - 160px); object-fit: contain; margin-inline: auto; }
.poster-viewer--zoomed .poster-viewer__canvas img { max-width: none; max-height: none; margin: 0 auto; }
.poster-viewer__error { padding: 16px; }
.poster-viewer [hidden] { display: none ; }
.poster-viewer button:focus-visible, .poster-viewer__canvas:focus-visible { outline: 3px solid #cc8800; outline-offset: -3px; }
@media(max-width: 480px) { .poster-viewer__toolbar { gap: 8px; padding: 12px; } .poster-viewer__toolbar h2 { flex-basis: 100%; } .poster-viewer__toolbar .button { flex: 1; } }
@media print {
  header.site-header, body > header, footer, nav, .group-card__poster-link, .poster-frame, .group-page-tools, .group-tools-status, .group-link-fallback, .help-panel, .group-card__actions, .registration-guide__actions, .group-card__description, .guide-copy-status, .guide-copy-fallback, .poster-viewer, button { display: none ; }
  html, body, main, .program-detail, .detail-groups, .detail-groups__grid, .group-card--full, .group-card__body, .registration-guide { display: block ; background: white ; color: black ; border: 0 ; box-shadow: none ; margin: 0 ; padding: 0 ; max-width: none ; }
  .group-detail-header { margin: 0 0 18px; }
  .group-facts > div, .group-schedule li, .registration-guide { break-inside: avoid; }
  .registration-guide { margin-top: 18px ; }
  .registration-guide__gosuslugi a::after { content: " (" attr(href) ")"; overflow-wrap: anywhere; }
}

/* retained layout and functional rules: assets/catalog-background.css */
/* Homepage only: exact owner-selected maintenance background. */
body.catalog-art-background{background:#f8f1df;isolation:isolate}
body.catalog-art-background::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(rgba(255,248,230,.10),rgba(255,248,230,.10)),url(/assets/catalog-maintenance-background.png) center center/cover no-repeat;background:linear-gradient(rgba(255,248,230,.10),rgba(255,248,230,.10)),image-set(url('/assets/catalog-maintenance-background.webp') type('image/webp'), url('/assets/catalog-maintenance-background.png') type('image/png')) center center/cover no-repeat}
.catalog-art-background .prototype-hero{background:transparent}
.catalog-art-background .prototype-hero>.container{background:rgba(255,253,247,.92);border:1px solid rgba(158,128,68,.25);border-radius:24px;padding-block:28px;box-shadow:0 8px 28px rgba(56,74,58,.06)}
.catalog-art-background .finder{background:rgba(255,253,247,.96);border:1px solid rgba(158,128,68,.36);box-shadow:0 10px 32px rgba(38,62,59,.10)}
.catalog-art-background :is(#program-heading,#group-results-heading){background:rgba(255,253,247,.95);border-radius:14px;padding:14px 18px}
.catalog-art-background .prototype-footer{background:rgba(255,253,247,.97)}
@media(max-width:640px){
 .catalog-art-background .prototype-hero{padding-block:22px}
 .catalog-art-background .prototype-hero>.container{width:calc(100% - 24px);padding:20px 16px;border-radius:18px}
 .catalog-art-background .finder{background:rgba(255,253,247,.98)}
 body.catalog-art-background::before{background-position:center top}
}

/* Reopened review: light hero surface requires explicit dark typography. */
.catalog-art-background .prototype-hero :is(h1,h1 em,h1 span,p,.eyebrow,.prototype-hero__lead,a){color:#153f43;-webkit-text-fill-color:#153f43;text-shadow:none;opacity:1}
.catalog-art-background .prototype-hero :is(h1,h1 em,h1 span){background:none;-webkit-background-clip:initial;background-clip:initial}
.catalog-art-background .prototype-hero a{text-decoration:underline;text-underline-offset:.2em}

/* Owner review: one compact introduction and selector, no oversized hero. */
.catalog-art-background .prototype-hero{padding:24px 0 0;margin:0}
.catalog-art-background .prototype-hero>.container{width:min(calc(100% - 40px),1320px);padding:24px 28px 18px;border-radius:20px 20px 0 0;border-bottom:0;background:rgba(255,253,247,.96);box-shadow:none}
.catalog-art-background .prototype-hero h1{;;max-width:100%;margin:0;padding:4px 0;;text-wrap:balance}
.catalog-art-background .prototype-hero h1 :is(em,span){display:inline;;;font-style:normal;white-space:normal}
.catalog-art-background .prototype-hero .eyebrow{;;;;margin:0 0 10px}
.catalog-art-background .prototype-hero .prototype-hero__lead{;;max-width:64ch;margin:10px 0 0}
.catalog-art-background #catalog-form{border-radius:0 0 20px 20px;border-top:0;padding:10px 28px 24px;box-shadow:0 12px 26px rgba(38,62,59,.07);background:rgba(255,253,247,.96)}
.catalog-art-background .finder__heading h2{;;margin-bottom:16px}
@media(max-width:640px){
 .catalog-art-background .prototype-hero{padding-top:16px}
 .catalog-art-background .prototype-hero>.container{width:min(calc(100% - 40px),1320px);padding:20px 20px 14px;border-radius:16px 16px 0 0}
 .catalog-art-background .prototype-hero h1{;}
 .catalog-art-background .prototype-hero .prototype-hero__lead{;margin-top:12px}
 .catalog-art-background #catalog-form{padding:8px 20px 20px;border-radius:0 0 16px 16px}
 .catalog-art-background .finder__heading h2{}
}

/* Teacher is a primary, always-visible control at every viewport. */
.catalog-art-background .finder__teacher-controls{grid-template-columns:minmax(0,1fr);margin-top:14px}

/* retained layout and functional rules: assets/catalog-preferences.css */
.favorite-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;margin-top:12px;border:1px solid #557675;border-radius:12px;color:#153f43;background:#fffdf7;;cursor:pointer}.favorite-button[aria-pressed="true"]{background:#e0efea;border-color:#175b54}.favorite-button:focus-visible{outline:3px solid #175b54;outline-offset:3px}.favorites-toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}.favorites-toolbar [aria-pressed="true"]{background:#174f48;color:#fff}.favorites-storage-status:empty,.favorites-unavailable:empty{display:none}.favorites-unavailable{padding:12px;background:#fff8e7;border-radius:12px}.favorites-unavailable button{margin:4px}.favorites-storage-status{;;color:#4d5250}
.compare-button,.comparison-remove{min-height:44px;padding:8px 14px;border:1px solid #557675;border-radius:12px;background:#fffdf7;color:#153f43;cursor:pointer;;margin:12px 0 0 8px}.compare-button[aria-pressed="true"]{background:#e0efea}.comparison-panel{padding:20px;margin:18px 0;border-radius:18px;background:#fffdf7}.comparison-panel[hidden]{display:none}.comparison-table-scroll{max-width:100%;overflow-x:auto}.comparison-table{border-collapse:collapse;min-width:650px;width:100%;}.comparison-table th,.comparison-table td{padding:12px;border:1px solid #d4dfd7;text-align:left;vertical-align:top;min-width:160px;max-width:260px;overflow-wrap:anywhere}.comparison-table th:first-child{min-width:100px}.comparison-remove{display:block;margin-left:0}.comparison-feedback:empty{display:none}

/* retained layout and functional rules: assets/enrollment11.css */
.registration-guide__steps .enrollment-steps{list-style:none;margin:18px 0;padding:0;display:grid;gap:12px}.registration-guide__steps .enrollment-steps>li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;}.enrollment-step-number{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#e0eee8;color:#153f43;}.registration-guide__steps a{color:#145c66;text-decoration:underline}.registration-guide__steps ul{padding-left:20px;margin:8px 0}.enrollment-warning{padding:12px 14px;border-left:3px solid #8d671f;background:#fff7e0;}@media print{.registration-guide__steps{display:block}.registration-guide__steps li{break-inside:avoid}.enrollment-warning{display:block}}
/* retained layout and functional rules: assets/description-paragraphs.css */
.group-card__description > p + p { margin-block-start: .8em; }


:root{--ui-ink:#173d42;--ui-muted:#56676a;--ui-line:#d7dfdc;--ui-paper:#fffdf8;--ui-font:"Manrope",Arial,sans-serif;--ui-heading-font:"Manrope",Arial,sans-serif;--ui-accent-font:"Great Vibes",cursive}
:root body{;color:var(--ui-ink);}
:root body h1,:root body h2,:root body h3,:root body h4,:root body .registration-guide .registration-guide__title,:root body .program-catalog-heading h2,:root body .group-results-heading h2{;font-style:normal;;;color:var(--ui-ink);text-shadow:none}
:root body h1{;}:root body h2{;}:root body h3{;}
:root body .eyebrow,:root body .group-card__eyebrow{;;;color:var(--ui-muted)}
:root body .program-card,:root body .group-card,:root body .program-detail__intro{background:var(--ui-paper);border:1px solid var(--ui-line);border-radius:10px;box-shadow:none}
:root body .program-card::after,:root body .group-card::after,:root body .program-detail__intro::after{display:none}
:root body .program-card,:root body .group-card{min-width:0}:root body .program-card h2{;}
:root body .program-card__overview{padding:24px;gap:24px}:root body .program-card__groups{border-top:1px solid var(--ui-line)}
:root body .poster-frame{border-radius:4px;box-shadow:none;background:transparent}
:root body .button,:root body .favorite-button,:root body .compare-button,:root body .comparison-remove,:root body button{;;;border-radius:14px;box-shadow:none;text-shadow:none;min-height:44px}
:root body .button-primary,:root body .department-surface .button-primary{background:#205b59;color:#fff;border:1px solid #205b59}
:root body .button-secondary,:root body .favorite-button,:root body .compare-button,:root body .comparison-remove{background:#fffdf8;color:#204f51;border:1px solid #9fbbb4}
:root body .button:hover,:root body .favorite-button:hover,:root body .compare-button:hover{transform:none}
:root body input,:root body select,:root body textarea{;;border-radius:11px;box-shadow:none}
:root body .finder__controls label{;;gap:6px}:root body .finder__controls{gap:16px}
:root body .catalog-art-background .prototype-hero>.container{border-radius:10px 10px 0 0;border-color:var(--ui-line)}
:root body .catalog-art-background #catalog-form{border-radius:0 0 10px 10px;box-shadow:none;border-color:var(--ui-line)}
:root body .catalog-art-background :is(#program-heading,#group-results-heading){border-radius:6px;padding:16px 20px}
:root body .program-catalog-heading h2,:root body .group-results-heading h2{}
:root body .nearest-panel,:root body .comparison-panel,:root body .help-panel,:root body .teacher-contact{border-radius:6px;box-shadow:none;background:#f5f7f2;border-color:var(--ui-line)}
:root body .program-detail{max-width:1200px;margin-inline:auto}:root body .group-detail-header{max-width:960px;margin-bottom:28px}
:root body .detail-groups--single .detail-groups__grid{max-width:none;margin-inline:0}
:root body .group-card--full{padding:28px;grid-template-columns:minmax(240px,.85fr) minmax(0,1.15fr);gap:32px;overflow:visible;container-type:normal}
:root body .group-card--full .group-card__body{min-width:0}:root body .group-card--full .group-facts{gap:0 24px}
:root body .group-facts>div,:root body .availability__facts>div{background:transparent;border:0;border-bottom:1px solid var(--ui-line);border-radius:0;padding:12px 0}
:root body .group-facts dt{;;color:var(--ui-muted);}:root body .group-facts dd{;;color:var(--ui-ink)}
:root body .group-card__description{background:transparent;border:0;border-top:1px solid var(--ui-line);border-radius:0;padding:20px 0 0}
:root body .group-card__description p{;}:root body .group-schedule,:root body .availability{box-shadow:none;border-radius:6px;background:#f3f6f2;border-color:var(--ui-line)}
:root body .group-card--full>.registration-guide{grid-column:1/-1;margin:8px 0 0;padding:28px 0 0;border-top:1px solid var(--ui-line);min-width:0}
:root body .registration-guide .registration-guide__title{;;margin:0 0 12px}
:root body .registration-guide__instruction{max-width:82ch;color:var(--ui-muted);}
:root body .registration-guide__steps .enrollment-steps{display:block;max-width:none;margin:24px 0;padding:0;list-style:none}
:root body .registration-guide__steps .enrollment-steps>li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:16px;margin:0;padding:16px 0;border:0;border-bottom:1px solid var(--ui-line);background:transparent;border-radius:0;box-shadow:none;min-height:0;align-items:start}
:root body .registration-guide__steps .enrollment-steps>li>div{min-width:0;max-width:88ch;;}
:root body .enrollment-step-number{width:28px;height:28px;background:transparent;border-radius:0;color:#436966;;}
:root body .registration-guide__steps p{margin:4px 0}:root body .registration-guide__steps ul{margin:8px 0 0}:root body .enrollment-warning{border-radius:0;box-shadow:none;background:#f7f2e4;padding:12px 16px;}
:root body .registration-guide__actions{padding:4px 0 12px}:root body .teacher-contact{padding:16px 0;background:transparent;border-top:1px solid var(--ui-line)}
:root body .help-panel{max-width:800px}:root body .help-panel summary{}:root body .help-form{gap:16px}
:root body .favorites-toolbar{align-items:center;gap:10px}:root body .favorite-button,:root body .compare-button{margin-top:12px}:root body .comparison-panel h2{}
@media(max-width:760px){:root body .group-card--full{display:grid;grid-template-columns:minmax(0,1fr);padding:20px;gap:24px}:root body .group-card--full .group-card__body{margin:0}:root body .group-card--full>.registration-guide{padding-top:24px}:root body .registration-guide .registration-guide__title{}:root body .registration-guide__steps .enrollment-steps>li{grid-template-columns:24px minmax(0,1fr);gap:12px;padding:14px 0}:root body .registration-guide__steps .enrollment-steps>li>div{}:root body .program-card__overview{padding:18px;gap:18px}:root body .program-card h2{}:root body .program-catalog-heading h2,:root body .group-results-heading h2{}:root body .group-facts{grid-template-columns:minmax(0,1fr)}}
@media print{.group-card--full>.registration-guide{display:block}:root body .registration-guide__steps .enrollment-steps>li{break-inside:avoid}}

html body a:visited{color:inherit}html body .group-card__title-link,html body .group-card__title-link:visited{color:#173d42}
html body .finder__controls--primary{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr)}
html body .finder__teacher-controls{margin-top:14px;grid-template-columns:minmax(0,1fr)}
html body .values-strip{display:none}

/* Scoped corrections after rendered review. */
html body .site-header{background:#fffdf8;color:#173d42;border-bottom:1px solid #d7dfdc;box-shadow:none;height:auto;min-height:72px;padding-block:10px}
:root body .site-header .header-inner{flex-wrap:wrap;row-gap:10px;min-width:0}
html body .site-header a,html body .site-header a:visited,html body .site-header .header-utility a{color:#173d42}
html body .site-header a:hover{text-decoration:underline}html body .home-ticker{display:none}
html body .group-detail-header{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:28px}
html body .group-detail-header h1{flex:1 0 100%;margin:0 0 8px}html body .group-page-tools{display:contents}
html body .group-detail-header .button{margin:0}html body .group-tools-status:empty{display:none}
html body .group-detail-header .group-link-fallback{flex:1 0 100%}

@media(max-width:760px){:root body .group-card--full .group-card__body{width:100%;max-width:100%;min-width:0}:root body .group-card--full .group-card__body>.favorite-button,:root body .group-card--full .group-card__body>.compare-button{position:static;float:none;max-width:100%;white-space:normal;vertical-align:top;margin:12px 8px 0 0}}
/* The complete filter layout: mobile first, explicit placement only above 900px. */
:root body #catalog-form{display:block}
:root body #catalog-form>.finder__controls--primary,
:root body #catalog-form>.finder__teacher-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;min-width:0;width:100%}
:root body #catalog-form>.finder__teacher-controls{margin-top:14px}
:root body #catalog-form>.finder__controls--primary>label,
:root body #catalog-form>.finder__teacher-controls>label{grid-area:auto;min-width:0;width:100%;display:grid;gap:6px}
:root body #catalog-form .finder__search-row{display:block;min-width:0;width:100%}
:root body #catalog-form input,:root body #catalog-form select{width:100%;min-width:0;max-width:100%;box-sizing:border-box;border-radius:11px}
:root body #catalog-form>.finder__search-actions,:root body #catalog-form>.finder__actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}
:root body #catalog-form>.finder__search-actions .button{width:auto;flex:1 1 auto}
@media(min-width:901px){
 :root body #catalog-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px}
 :root body #catalog-form>.finder__controls--primary{display:contents}
 :root body #catalog-form>.finder__heading{grid-column:1/-1;grid-row:1}
 :root body #catalog-form>.finder__controls--primary>.finder__search{grid-column:1;grid-row:2}
 :root body #catalog-form>.finder__teacher-controls{display:contents;margin:0}
 :root body #catalog-form>.finder__teacher-controls>label{grid-row:2}
 :root body #catalog-form>.finder__teacher-controls>label:first-child{grid-column:2}
 :root body #catalog-form>.finder__teacher-controls>label:last-child{grid-column:3}
 :root body #catalog-form>.finder__controls--primary>label:not(.finder__search){grid-row:3}
 :root body #catalog-form>.finder__search-actions{grid-column:1/3;grid-row:4;margin:0}
 :root body #catalog-form>.finder__actions{grid-column:3;grid-row:4;margin:0;align-items:start}
 :root body #catalog-form>.favorites-toolbar{grid-column:1/-1;grid-row:5}
 :root body #catalog-form>.finder__chips,:root body #catalog-form>.finder__result,:root body #catalog-form>.favorites-unavailable{grid-column:1/-1}
}
@media(min-width:1024px){
 :root body #catalog-form>.finder__search-actions,:root body #catalog-form>.finder__actions{grid-column:1/-1;grid-row:4;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:calc(50% - 6px);margin:0;align-self:start;align-items:start}
 :root body #catalog-form>.finder__search-actions{justify-self:start}
 :root body #catalog-form>.finder__actions{justify-self:end}
 :root body #catalog-form>.finder__search-actions>.button,:root body #catalog-form>.finder__actions>.button{height:52px;min-height:52px;max-height:52px;width:100%;min-width:0;margin:0;padding:8px;font-size:14px;line-height:1.3;white-space:normal;box-sizing:border-box}
 :root body #catalog-form>.finder__actions>.finder__result{grid-column:1/-1;margin:0;text-align:right;justify-self:end}
 :root body #catalog-form>.finder__actions>.nearest-panel{grid-column:1/-1;grid-row:3;width:100%;margin:0}
 :root body #catalog-form>.favorites-toolbar{gap:8px;margin:0;align-items:center}
 :root body #catalog-form>.favorites-toolbar :is(button,.button){min-height:44px;height:44px;padding:8px 12px;font-size:14px;margin:0}
}

/* Welcome belongs only to the initial catalog visit in this tab session. */
:root body .catalog-welcome{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:32px 24px;background:linear-gradient(rgba(255,253,247,.88),rgba(255,253,247,.93)),url('/assets/catalog-maintenance-background.png') center/cover no-repeat;background:linear-gradient(rgba(255,253,247,.88),rgba(255,253,247,.93)),image-set(url('/assets/catalog-maintenance-background.webp') type('image/webp'), url('/assets/catalog-maintenance-background.png') type('image/png')) center/cover no-repeat;color:#173d42;opacity:1;transition:opacity 2.5s ease-in-out;overflow-y:auto}
:root body .catalog-welcome__inner{width:min(100%,820px);text-align:center;margin:auto}
:root body .catalog-welcome__brand{;;margin:0 0 24px}
:root body .catalog-welcome__heading{;;;;;margin:0 0 32px;text-wrap:balance}
:root body .catalog-welcome--leaving{opacity:0}
@media(prefers-reduced-motion:reduce){:root body .catalog-welcome{transition:none}}

:root body .program-card:hover,:root body .group-card:hover,:root body .button:hover{transform:none;animation:none}

/* Contacts and community: one complete layout owns their surfaces and spacing. */
:root body .prototype-brand__title{;;;;;color:#173d42}
:root body .header-utility a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid transparent;border-radius:14px;background:transparent;color:#173d42;;text-decoration:none;transition:background-color .3s ease}
:root body .header-utility a:hover,:root body .header-utility a:active{background:#f4eddf;border-color:#e2d5bd;border-radius:14px;color:#173d42}
:root body .header-utility a:visited{color:#173d42}
:root body .header-utility a:focus-visible{background:#f4eddf;border-radius:14px;outline:3px solid #175b59;outline-offset:2px}
:root body #contacts,:root body #reviews{margin-top:32px;padding:28px;background:#fffaf0;border:1px solid #e4ddce;border-radius:24px;box-shadow:none;min-width:0;scroll-margin-top:calc(var(--header-height,100px) + 16px)}
:root body #contacts .section-head,:root body #reviews .section-head{display:block;min-width:0;margin:0 0 24px;padding:0;background:transparent}
:root body #contacts .section-head .eyebrow,:root body #reviews .section-head .eyebrow{display:none}
:root body #contacts .section-head h2,:root body #reviews .section-head h2{;;;;;margin:0;color:#173d42;overflow-wrap:normal;word-break:normal;text-wrap:balance}
:root body #contacts .section-head>p,:root body #reviews .section-head>p{max-width:72ch;margin:12px 0 0;;color:#526363}
:root body .contact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:stretch}
:root body .contact-card{display:flex;flex-direction:column;min-width:0;padding:22px;background:#fffdf8;border:1px solid #e4ddce;border-radius:18px;box-shadow:none}
:root body .contact-card h3{;margin:0 0 10px;color:#173d42}
:root body .contact-card p{;;color:#526363;margin:0 0 12px}
:root body .contact-card a{display:inline-flex;align-items:center;min-height:44px;margin-top:auto;color:#245955;;;white-space:normal;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:3px;border-radius:12px}
:root body .contact-card__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
:root body .community-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
:root body .community-social-stack{display:grid;gap:16px;align-content:start;min-width:0}
:root body .community-card--reviews{grid-column:2;grid-row:1}
:root body .community-card{display:flex;flex-direction:column;gap:12px;min-width:0;padding:24px;border:1px solid #e4ddce;border-radius:18px;background:#fffdf8;color:#173d42;box-shadow:none;text-decoration:none}
:root body .community-card>strong{}
:root body .community-card>span{;color:#526363}
:root body a.community-card:hover{background:#f8f2e6;border-color:#cbbb9c;transform:none}
:root body .review-links{display:grid;grid-template-columns:1fr;gap:8px;min-width:0;margin:0}
:root body .review-link-item{display:flex;flex-flow:row wrap;align-items:center;gap:12px;min-width:0}
:root body .review-link-item a{flex:1 1 180px;min-width:0;max-width:100%;align-self:stretch}
:root body .review-rating-badge{display:block;width:150px;height:50px;min-width:150px;min-height:50px;flex:none;border:0}
:root body .review-links a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:10px 14px;background:#f6f0e5;border:1px solid #e4ddce;border-radius:14px;color:#245955;;text-decoration:none;transform:none}
:root body .review-links a:hover{background:#efe5d2;transform:none}
:root body .contact-card a:focus-visible,:root body .community-card:focus-visible,:root body .review-links a:focus-visible{outline:3px solid #175b59;outline-offset:3px}
:root body .prototype-footer{margin-top:32px;padding:28px 0;background:#fffaf0;color:#526363;border:0;border-top:1px solid #e4ddce;border-radius:24px 24px 0 0}
:root body .prototype-footer__credit{color:#526363;margin-bottom:12px}
:root body .prototype-footer a,:root body .prototype-footer a:visited{color:#245955;text-decoration:underline;text-underline-offset:3px}
@media(max-width:1000px){:root body .contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}:root body .review-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){:root body #contacts,:root body #reviews{padding:20px;margin-top:24px;border-radius:20px}:root body #contacts .section-head h2,:root body #reviews .section-head h2{}:root body .contact-grid,:root body .community-grid{grid-template-columns:minmax(0,1fr)}:root body .contact-card,:root body .community-card{padding:20px;border-radius:16px}:root body .community-card--reviews{grid-column:auto;grid-row:auto}:root body .review-links{grid-template-columns:minmax(0,1fr)}:root body .prototype-brand__title{}:root body .header-utility a{padding:7px 8px;}:root body .prototype-footer{padding:24px 0}}

/* Calligraphic headings: genuine regular face, room for ascenders and swashes. */
:root body h1,:root body h2,:root body h3,:root body h4,:root body .prototype-brand__title,:root body .catalog-welcome__heading{font-synthesis:none;;overflow:visible;}
:root body .prototype-brand__title{;}
:root body .catalog-welcome__heading{;;padding:8px 10px}
:root body .program-card h2{;}
@media(max-width:640px){:root body .prototype-brand__title{}:root body .program-card h2{}}

@media(max-width:900px){:root body .community-grid{grid-template-columns:minmax(0,1fr)}:root body .community-card--vk,:root body .community-card--max,:root body .community-card--reviews{grid-column:auto;grid-row:auto;min-height:0}}

:root body main[id]{scroll-margin-top:calc(var(--header-height,100px) + 16px)}

:root body .catalog-art-background .prototype-hero__lead{;;;;color:#526b68;-webkit-text-fill-color:#526b68;max-width:66ch;margin-top:12px}
:root body #catalog-form label{;;color:#526363}

/* Font roles: content names must remain readable, including source ALL CAPS. */
:root body h1,:root body h2,:root body h3,:root body h4,:root body .registration-guide__title,:root body .community-card>strong{;;font-synthesis:none}
:root body .program-card h2,:root body .group-card h2,:root body .group-card h3,:root body .program-detail h1{;;;text-transform:none;;hyphens:auto;overflow-wrap:anywhere;word-break:normal}
:root body.catalog-art-background .prototype-hero h1,:root body .prototype-brand__title,:root body .catalog-welcome__heading{;;font-synthesis:none}
:root body.catalog-art-background .prototype-hero__lead{;;;;color:#526b68;-webkit-text-fill-color:#526b68}

:root body .header-utility a[data-header-favorites]{border:1px solid #a9bdb4;border-radius:14px;background:#f4f0e5;color:#245955;padding-inline:14px}
:root body .header-utility a[data-header-favorites][aria-current="page"]{background:#e7eee7;border-color:#5e8a7c}

/* Single typography owner: modern Cyrillic sans, restrained real weights. */
:root body{font-family:var(--ui-font);font-size:16px;font-weight:400;line-height:1.5;font-synthesis:none}
:root body :is(p,li,dt,dd){font-family:var(--ui-font);font-size:16px;font-weight:400;line-height:1.5}
:root body :is(strong,b){font-family:inherit;font-weight:600}
:root body :is(h1,h2,h3,h4){font-family:var(--ui-heading-font);font-weight:500;line-height:1.25;letter-spacing:0;font-synthesis:none}
:root body h1{font-size:38px}:root body h2{font-size:28px}:root body h3{font-size:24px}:root body h4{font-size:21px}
:root body :is(.program-card h2,.group-card h2,.group-card h3,.program-detail h1){font-family:var(--ui-heading-font);font-weight:500;hyphens:auto;overflow-wrap:anywhere;word-break:normal;text-transform:none}
:root body :is(.program-card h2,.group-card h3){font-size:25px;line-height:1.3}
:root body :is(label,input,select,textarea,.eyebrow,.group-card__eyebrow,.group-card__program,.group-card__department,.program-card__meta,.program-card__facts,.finder__result,.availability,.catalog-information,.prototype-footer,.group-facts dt){font-family:var(--ui-font);font-size:14px;font-weight:400;line-height:1.4;letter-spacing:0}
:root body :is(button,.button,[role="button"],summary,.favorite-button,.compare-button,.comparison-remove,.header-utility a,.review-links a,.contact-card a){font-family:var(--ui-font);font-size:16px;font-weight:500;line-height:1.3;font-synthesis:none;min-height:44px;letter-spacing:0}
:root body :is(button,.button,[role="button"]){padding:10px 16px;border-radius:14px}
:root body :is(input,select,textarea){font-size:16px;border-radius:11px}
:root body #catalog-form :is(label,.finder__result){font-size:14px;font-weight:400;line-height:1.4}
:root body #catalog-form :is(button,.button,summary,[role="button"]){font-size:16px;font-weight:500;line-height:1.3}
:root body :is(.group-card__quickfacts,.group-card__quickfacts li,.group-card__description p,.registration-guide__steps .enrollment-steps>li>div){font-size:16px;font-weight:400;line-height:1.5}
:root body :is(.group-facts dd,.teacher-contact__name){font-size:16px;font-weight:500;line-height:1.45}
:root body.catalog-art-background .prototype-hero h1{font-family:var(--ui-heading-font);font-size:42px;font-weight:500;line-height:1.2;letter-spacing:-.015em}
:root body .prototype-brand__title{font-family:var(--ui-accent-font);font-size:48px;font-weight:400;line-height:1.15;min-width:0;white-space:normal}
:root body .catalog-welcome__heading{font-family:var(--ui-accent-font);font-size:clamp(42px,6vw,76px);font-weight:400;line-height:1.28}
:root body .catalog-welcome__brand{font-family:var(--ui-accent-font);font-size:clamp(28px,4vw,38px);font-weight:400;line-height:1.3;font-synthesis:none}
:root body.catalog-art-background .prototype-hero__lead{font-family:var(--ui-font);font-size:16px;font-weight:400;line-height:1.5;color:#526b68;-webkit-text-fill-color:#526b68}
:root body.catalog-art-background .prototype-hero .eyebrow{font-size:12px;font-weight:400;line-height:1.4;letter-spacing:0}
:root body .site-header .header-inner{display:flex;flex-wrap:wrap;gap:8px;width:100%;max-width:1320px}
:root body .site-header .prototype-brand{flex:1 0 100%;min-width:0}
:root body .site-header .header-utility{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;max-width:100%;flex:1 0 100%;margin:0;gap:8px}
:root body .site-header .header-utility a{width:100%;min-width:44px;box-sizing:border-box;white-space:nowrap;text-align:center;font-size:16px;font-weight:500;line-height:1.3;padding:8px 12px;border-radius:14px}
@media(min-width:1024px){
 :root body .site-header{height:auto;min-height:88px;padding-block:6px}
 :root body .site-header .header-inner{flex-wrap:nowrap;gap:24px;align-items:center}
 :root body .site-header .prototype-brand{flex:1 1 auto;width:auto;gap:12px}
 :root body .site-header .prototype-brand img{width:76px;height:76px;flex:0 0 76px}
 :root body .site-header .prototype-brand__title{font-size:clamp(32px,3vw,42px);line-height:1.15;white-space:nowrap}
 :root body .site-header .header-utility{flex:0 0 352px;width:352px;max-width:352px;gap:8px}
 :root body .site-header .header-utility a{padding:8px;font-size:14px}
}
@media(max-width:760px){
 :root body :is(h2,.program-card h2,.group-card h3){font-size:24px}
 :root body h1{font-size:30px}
 :root body.catalog-art-background .prototype-hero h1{font-size:34px}
 :root body .prototype-brand__title{font-size:clamp(18px,calc(8vw - 7px),30px);line-height:1.2;white-space:nowrap;flex:0 1 auto}
 :root body .site-header .header-utility{gap:4px}
 :root body .site-header .header-utility a{font-size:14px;padding:8px 4px}
 :root body .site-header .header-utility a[data-header-favorites]{padding:8px 4px;grid-column:auto}
}

/* Floating saved groups; no duplicate header control. */
:root body .header-utility [data-header-favorites]{display:none}
:root body{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}
:root body .floating-favorites{position:relative;display:flex;align-items:center;justify-content:center;width:52px;height:52px;border:1px solid #92aaa0;border-radius:50%;background:#fffaf0;color:#245955;box-shadow:0 3px 12px rgba(23,61,66,.14);text-decoration:none}
:root body .floating-favorites svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7}
:root body .floating-favorites__count{position:absolute;right:-3px;top:-3px;display:flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 4px;border-radius:10px;background:#245955;color:#fff;font:500 11px/1 var(--ui-font)}
:root body .floating-favorites:focus-visible{outline:3px solid #175b59;outline-offset:3px}
:root body .route-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;min-width:0}
:root body .route-choices{flex:1 0 100%;display:flex;flex-wrap:wrap;gap:10px;padding:12px;border:1px solid #d8dfd5;border-radius:16px;background:#f5f0e6;min-width:0}
:root body .route-choices[hidden]{display:none}
:root body .route-choices a{flex:1 1 140px;min-width:0;text-align:center;white-space:normal}
:root body .route-address-note{font-size:14px;font-weight:400;line-height:1.4;margin:8px 0;color:#526363}

/* Saved groups are a separate view, with no hidden active search conditions. */
:root.favorites-initial body #catalog-form,:root.favorites-initial body .prototype-hero,
:root body.favorites-page #catalog-form,:root body.favorites-page .prototype-hero,
:root body.favorites-page #contacts,:root body.favorites-page #reviews,:root body.favorites-page #group-results-heading,:root body.favorites-page #empty-reset{display:none}
:root body .favorites-page-heading{padding:24px;margin:24px 0;background:#fffaf0;border:1px solid #e4ddce;border-radius:20px}
:root body .favorites-page-heading h1{margin:0 0 10px;font-family:var(--ui-heading-font);font-size:32px;font-weight:500;line-height:1.25}
:root body .favorites-page-heading p{margin:0 0 16px}
:root body .favorites-page-heading>.button{margin:0 10px 10px 0}
:root body [data-favorites-empty-return]{margin-top:16px}

/* Program selection: groups first, source details retained below. */
:root body .program-detail__header--compact{margin:0 0 24px;padding:0;max-width:none}
:root body .program-detail__header--compact h1{margin:12px 0 0;font-size:clamp(26px,3vw,36px);line-height:1.25}
:root body .program-information{margin:28px 0;padding:18px 22px;border:1px solid #d8dfd5;border-radius:18px;background:#fffaf0}
:root body .program-information>summary{cursor:pointer;display:list-item;padding:8px 0}
:root body .program-information .program-detail__intro{margin-top:20px}
:root body .program-card__teacher p{margin:0 0 5px;font-size:14px;color:#526b68}
:root body .program-card__teacher ul{list-style:none;padding:0;margin:0}
:root body .program-card__teacher li{margin:4px 0;font-size:15px;line-height:1.45;overflow-wrap:anywhere}
:root body .program-card__teacher summary{cursor:pointer;padding:10px 0;font-size:14px}

:root body .floating-selections{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:50;display:flex;gap:12px}
:root body .floating-selections[hidden],:root body .floating-favorites[hidden]{display:none}

/* One select presentation: native values/events preserved; direction follows space. */
:root body #catalog-form select[data-presentation="combobox"]{display:none}
:root body #catalog-form .catalog-select{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;height:46px;padding:10px 12px;border:1px solid #b9c7bf;border-radius:11px;background:#fffdf7;color:#173d42;text-align:left;font:400 16px/1.4 var(--ui-font)}
:root body .catalog-select:not(#filter-teacher-presentation) span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root body #catalog-form #filter-teacher-presentation{height:auto;min-height:46px}
:root body #filter-teacher-presentation span{min-width:0;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
:root body .catalog-select svg{width:16px;height:16px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5}
:root body .catalog-select-options{position:fixed;z-index:1201;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;padding:6px;border:1px solid #b9c7bf;border-radius:12px;background:#fffdf7;color:#173d42;box-shadow:0 5px 18px rgba(23,61,66,.12);opacity:0;transition:opacity 220ms ease-in-out;font:400 16px/1.4 var(--ui-font)}
:root body .catalog-select-options.is-open{opacity:1}
:root body .catalog-select-options[hidden]{display:none}
:root body .catalog-select-options [role="option"]{min-height:44px;padding:10px;box-sizing:border-box;border-radius:8px;cursor:pointer;overflow-wrap:anywhere}
:root body .catalog-select-options [role="option"].is-active,:root body .catalog-select-options [role="option"]:hover{background:#eaf0e9}
:root body .catalog-select-options [aria-selected="true"]{font-weight:500;color:#174f48}
:root body .catalog-select-options [aria-disabled="true"]{opacity:.5;cursor:default}
@media(prefers-reduced-motion:reduce){:root body .catalog-select-options{transition:none}}

/* Group entry prioritizes the exact poster; no automatic scrolling or zoom. */
:root body.group-poster-first .program-detail{padding-top:18px}
:root body.group-poster-first .program-detail>.breadcrumbs{margin-bottom:12px}
:root body.group-poster-first .group-detail-header{margin-bottom:24px;gap:0}
:root body.group-poster-first .group-detail-header h1{font-size:clamp(25px,3vw,34px);line-height:1.25;margin:0}
:root body.group-poster-first .detail-groups__grid{margin-top:0}
:root body .group-detail-utilities{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}
:root body .group-detail-utilities .group-page-tools{display:contents}
:root body .group-detail-utilities .group-tools-status,:root body .group-detail-utilities .group-link-fallback{flex:1 0 100%}

/* Catalog actions: native golden material; quiet magic on intentional interaction. */
:root body #catalog-form :is([data-nearest-trigger],#catalog-submit){position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 22% 15%,rgba(255,255,255,.9),transparent 65%) padding-box,linear-gradient(120deg,#fffdf7,#eee8db 52%,#faf9ed) padding-box,linear-gradient(120deg,#b69a5a,#e7d8a7,#a58a4a) border-box;border:1px solid transparent;color:#174f48;box-shadow:0 0 13px rgba(190,162,103,.25),inset 0 1px 0 #fff;transition:box-shadow 800ms ease-in-out}
:root body #catalog-form :is([data-nearest-trigger],#catalog-submit)::before{content:"";display:inline-block;flex:0 0 26px;width:26px;height:26px;margin-right:8px;vertical-align:middle;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22none%22%20stroke%3D%22%23987331%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m5%2024%2014-14%203%203L8%2027Z%22%2F%3E%3Cpath%20d%3D%22m17%2012%203%203M20%202l1.2%203.8L25%207l-3.8%201.2L20%2012l-1.2-3.8L15%207l3.8-1.2ZM7%205l.8%202.2L10%208l-2.2.8L7%2011l-.8-2.2L4%208l2.2-.8Z%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat}

:root body #catalog-form :is([data-nearest-trigger],#catalog-submit):is(:hover,:focus-visible,:active){box-shadow:0 0 20px rgba(190,162,103,.4),inset 0 1px 0 #fff}



:root body #catalog-form #catalog-submit{background:radial-gradient(ellipse at 22% 0%,rgba(255,255,255,.13),transparent 65%) padding-box,linear-gradient(135deg,#286d62,#174f48) padding-box,linear-gradient(120deg,#b69a5a,#ead9a5,#a58a4a) border-box;color:#fffdf5;box-shadow:0 4px 15px rgba(23,79,72,.19),0 0 14px rgba(190,162,103,.26),inset 0 1px 0 rgba(255,255,255,.2);padding-inline:28px}
:root body #catalog-form #catalog-submit::before{filter:brightness(1.85)}
:root body #catalog-form #catalog-submit::after{content:"";position:absolute;right:11px;top:7px;width:22px;height:25px;pointer-events:none;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2022%2025%22%3E%3Cpath%20fill%3D%22%23f8dfa2%22%20d%3D%22m7%202%201.7%204.3L13%208l-4.3%201.7L7%2014l-1.7-4.3L1%208l4.3-1.7ZM17%2014l1%202.7%202.7%201-2.7%201L17%2021.4l-1-2.7-2.7-1%202.7-1Z%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;opacity:.25;transition:opacity 240ms ease}
:root body #catalog-form #catalog-submit:is(:hover,:focus-visible):not(:disabled){box-shadow:0 4px 18px rgba(23,79,72,.22),0 0 23px rgba(190,162,103,.43),inset 0 1px 0 rgba(255,255,255,.25)}
:root body #catalog-form #catalog-submit:is(:hover,:focus-visible):not(:disabled)::after{opacity:.9}
@media(prefers-reduced-motion:reduce){:root body #catalog-form :is([data-nearest-trigger],#catalog-submit),:root body #catalog-form #catalog-submit::after{transition:none}}

/* Programmatic result destinations remain focusable; interactive focus rings are unchanged. */
:root body :is(#group-results-heading,#program-heading,#empty-state) h2[tabindex="-1"]:focus,
:root body :is(#group-results-heading,#program-heading,#empty-state)[tabindex="-1"]:focus{outline:none}
