/* =========================================================
   SECTION RHYTHM
   ========================================================= */
.section{padding-block:var(--section-y)}
.section--compact{padding-block:var(--section-y-compact)}
.section--warm{background:var(--warm)}

/* One shared interval between chapters on a continuous surface.
   Surface metadata describes the full section, not its inner cards. */
.section[data-surface="paper"] + .section[data-surface="paper"],
.section[data-surface="warm"] + .section[data-surface="warm"]{
  padding-top:0;
}

.section-head{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);
  gap:var(--space-9);
  align-items:end;
  margin-bottom:var(--section-head-gap);
}

.section-head h2{
  margin:0;
  font-size:clamp(32.3px,4.25vw,54.4px);
  color:var(--ink);
}

.section-head p{
  margin:0;
  max-width:540px;
  color:var(--muted);
  font-size:16px;
}

.section-action{margin-top:var(--space-6)}

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:fixed;
  inset:0 0 auto;
  z-index:100;
  padding:var(--space-4) 0;
  transition:.25s ease;
}

.site-header.is-scrolled{
  padding:var(--space-3) 0;
  border-bottom:1px solid var(--line);
  background:rgba(255,254,251,.87);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}

.nav-shell{
  display:flex;
  align-items:center;
  gap:var(--space-5);
  padding:var(--space-3) var(--space-4) var(--space-3) var(--space-5);
  border:1px solid rgba(255,255,255,.72);
  border-radius:var(--radius-pill);
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(14px);
  box-shadow:0 10px 40px rgba(43,38,49,.07);
}

.brand{
  display:flex;
  align-items:center;
  gap:var(--space-3);
  flex:none;
}

.brand-title{
  display:block;
  font-family:var(--serif);
  font-size:20px;
  line-height:1.02;
  letter-spacing:-.02em;
}

.brand-title small{
  display:block;
  margin-top:var(--space-1);
  color:var(--muted);
  font-family:var(--sans);
  font-size:9px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.nav{
  display:flex;
  align-items:center;
  gap:2px;
  margin-left:auto;
}

.nav-direct,
.nav-trigger{
  padding:10px 11px;
  border:0;
  border-radius:var(--radius-pill);
  background:transparent;
  color:#494450;
  font-family:inherit;
  font-size:14px;
  font-weight:600;
  cursor:pointer;
  transition:.2s;
}

.nav-direct:hover,
.nav-direct[aria-current="page"],
.nav-group:hover>.nav-trigger,
.nav-group:focus-within>.nav-trigger,
.nav-group.is-active>.nav-trigger{
  background:var(--warm);
  color:var(--lavender-dark);
}

.nav-group{position:relative}

.nav-trigger{display:flex;align-items:center;gap:6px}

.nav-trigger::after{
  content:"";
  width:6px;
  height:6px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
  transition:transform .2s ease;
}

.nav-dropdown{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  display:grid;
  min-width:220px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  background:rgba(255,254,251,.98);
  box-shadow:var(--shadow);
  opacity:0;
  pointer-events:none;
  transform:translateY(-5px);
  transition:.2s ease;
}

.nav-dropdown a{
  padding:10px 12px;
  border-radius:10px;
  color:#494450;
  font-size:14px;
  font-weight:600;
}

.nav-dropdown a:hover,
.nav-dropdown a[aria-current="page"]{background:var(--warm);color:var(--lavender-dark)}

.nav-group:hover>.nav-dropdown,
.nav-group:focus-within>.nav-dropdown,
.nav-group.is-open>.nav-dropdown{opacity:1;pointer-events:auto;transform:none}

.nav-group:hover>.nav-trigger::after,
.nav-group:focus-within>.nav-trigger::after,
.nav-group.is-open>.nav-trigger::after{transform:translateY(2px) rotate(225deg)}

.header-cta{
  min-height:42px;
  padding-inline:var(--space-4);
}

.menu-toggle{
  display:none;
  width:42px;
  height:42px;
  margin-left:auto;
  border:0;
  border-radius:50%;
  background:transparent;
  cursor:pointer;
}

.menu-toggle span{
  display:block;
  width:20px;
  height:1.5px;
  margin:5px auto;
  background:var(--ink);
}

/* =========================================================
   GENERIC INNER PAGE LAYOUT
   ========================================================= */
.page-hero{
  padding:168px 0 var(--space-11);
  background:var(--warm);
}

.page-hero__grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:var(--space-9);
  align-items:end;
}

.page-hero h1{
  margin:0;
  font-size:clamp(44.2px,5.95vw,76.5px);
}

.page-hero p{
  margin:0 0 var(--space-2);
  color:var(--muted);
  font-size:17px;
}

.content-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:var(--space-10);
}

.prose{font-size:17px}

.prose h2,
.prose h3{
  font-family:var(--serif);
  font-weight:400;
}

.prose h2{
  margin:var(--space-10) 0 var(--space-5);
  font-size:35.7px;
}

.prose p{color:#45404A}

.side-card{
  position:sticky;
  top:112px;
  padding:var(--space-5);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:var(--warm);
}

/* =========================================================
   FOOTER
   ========================================================= */
.footer{
  padding:var(--space-10) 0 var(--space-6);
  background:var(--warm);
}

.footer-grid{
  display:grid;
  grid-template-columns:1.4fr repeat(3,1fr);
  gap:var(--space-7);
}

.footer-brand p{
  max-width:360px;
  margin:var(--space-4) 0 0;
  color:var(--muted);
  font-size:14px;
}

.footer h4,
.footer h3{
  margin:0 0 var(--space-4);
  color:var(--muted);
  font-size:14px;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.footer-links{
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
  font-size:14px;
}

.footer-links a:hover{color:var(--lavender-dark)}

.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:var(--space-5);
  margin-top:var(--space-9);
  padding-top:var(--space-5);
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:14px;
}

@media(max-width:1100px){
  .nav-direct,.nav-trigger{padding:9px 7px;font-size:11px}
}

@media(max-width:920px){
  .section-head{
    grid-template-columns:1fr;
    gap:20px;
  }

  .nav-shell{border-radius:var(--space-5)}
  .nav,.header-cta{display:none}
  .menu-toggle{display:block}

  .site-header.nav-open .nav{
    position:absolute;
    top:78px;
    left:var(--space-4);
    right:var(--space-4);
    display:flex;
    flex-direction:column;
    align-items:stretch;
    padding:var(--space-4);
    border:1px solid var(--line);
    border-radius:var(--space-5);
    background:rgba(255,254,251,.96);
    box-shadow:var(--shadow);
  }

  .site-header.nav-open .nav a{
    padding:11px 13px;
    font-size:13px;
  }

  .site-header.nav-open .nav-group{width:100%}
  .site-header.nav-open .nav-trigger{justify-content:space-between;width:100%;padding:11px 13px;font-size:13px}
  .site-header.nav-open .nav-dropdown{
    position:static;
    display:none;
    min-width:0;
    margin:2px 0 8px;
    padding:4px 0 4px 12px;
    border:0;
    border-left:1px solid var(--line);
    border-radius:0;
    background:transparent;
    box-shadow:none;
    opacity:1;
    pointer-events:auto;
    transform:none;
  }
  .site-header.nav-open .nav-group.is-open>.nav-dropdown{display:grid}

  .page-hero__grid,
  .content-grid{grid-template-columns:1fr}

  .footer-grid{
    grid-template-columns:1.4fr 1fr 1fr;
  }

  .footer-grid>div:last-child{grid-column:2/4}
  .side-card{position:static}
}

@media(max-width:640px){
  .site-header{padding:10px 0}

  .brand-title{font-size:18px}
  .brand-title small{display:none}

  .nav-shell{
    padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);
  }

  .page-hero{padding-top:128px}
  .page-hero h1{font-size:44.2px}

  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/-1}
  .footer-grid>div:last-child{grid-column:auto}
  .footer-bottom{flex-direction:column}
}

/* =========================================================
   EDITORIAL HEADER + FULL-SCREEN NAVIGATION
   Split navigation inspired by the calm, image-led approach
   of independent school websites. The visual language remains
   native to the RKSH design system.
   ========================================================= */
body.menu-open{overflow:hidden}

.site-header{
  z-index:300;
  padding:0;
  border-bottom:1px solid rgba(46,42,54,.08);
  background:rgba(255,254,251,.76);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

.site-header.is-scrolled{
  padding:0;
  border-bottom-color:rgba(46,42,54,.14);
  background:rgba(255,254,251,.94);
  box-shadow:0 8px 34px rgba(43,38,49,.06);
}

.header-frame{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  min-height:88px;
  padding-inline:max(var(--gutter),calc((100vw - var(--container))/2));
}

.header-action,
.header-menu-button{
  color:var(--ink);
  font-size:14px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.header-action{
  justify-self:start;
  position:relative;
  padding:12px 0;
}

.header-action::after{
  content:"";
  position:absolute;
  right:0;
  bottom:7px;
  left:0;
  height:1px;
  background:var(--mustard);
  transform:scaleX(.34);
  transform-origin:left;
  transition:transform .25s ease;
}

.header-action:hover::after{transform:scaleX(1)}

.header-brand{
  justify-self:center;
  display:grid;
  gap:3px;
  text-align:center;
  line-height:1;
}

.header-brand strong{
  font-family:var(--serif);
  font-size:21px;
  font-weight:400;
  letter-spacing:-.025em;
}

.header-brand small{
  color:var(--muted);
  font-size:8px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.header-menu-button{
  justify-self:end;
  display:flex;
  align-items:center;
  gap:12px;
  min-height:44px;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
}

.header-menu-mark{
  display:grid;
  grid-template-columns:repeat(2,4px);
  gap:4px;
  padding:10px;
  border:1px solid var(--line-strong);
  border-radius:50%;
  transition:.25s ease;
}

.header-menu-mark i{
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--lavender);
}

.header-menu-button:hover .header-menu-mark{
  border-color:var(--mustard);
  transform:rotate(45deg);
}

.nav-overlay[hidden]{display:none}

.nav-overlay{
  position:fixed;
  inset:0;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) min(36rem,100vw);
  background:rgba(41,38,49,.44);
  opacity:0;
  transition:opacity .42s ease;
}

.nav-overlay.is-open{opacity:1}

.nav-visual{
  --visual-position:58% center;
  position:relative;
  min-width:0;
  overflow:hidden;
  background:#5e4b75;
  transform:translateX(-4%);
  transition:transform .7s cubic-bezier(.22,.61,.36,1);
}

.nav-visual[data-theme="home"]{--visual-position:62% center}
.nav-visual[data-theme="center"]{--visual-position:57% center}
.nav-visual[data-theme="learning"]{--visual-position:56% center}
.nav-visual[data-theme="life"]{--visual-position:64% center}
.nav-visual[data-theme="parents"]{--visual-position:55% center}
.nav-visual[data-theme="online"]{--visual-position:59% center}

.nav-overlay.is-open .nav-visual{transform:none}

.nav-visual-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:var(--visual-position);
  transform:scale(1.001);
  transition:opacity .32s ease,transform .7s cubic-bezier(.22,.61,.36,1),object-position .45s ease;
}

.nav-visual.is-changing .nav-visual-image{
  opacity:.62;
  transform:scale(1.018);
}

.nav-visual::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(0deg,rgba(31,25,36,.78) 0%,rgba(31,25,36,.4) 37%,rgba(31,25,36,.06) 72%),
    linear-gradient(90deg,rgba(31,25,36,.18),transparent 48%);
}

.nav-visual::after{
  content:none;
}

.nav-visual-copy{
  position:absolute;
  z-index:2;
  right:9%;
  bottom:9%;
  left:9%;
  color:var(--warm);
  transition:opacity .28s ease,transform .28s ease;
}

.nav-visual.is-changing .nav-visual-copy{opacity:0;transform:translateY(14px)}

.nav-visual-copy small{
  display:block;
  margin-bottom:26px;
  font-size:14px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.nav-visual-copy p{
  max-width:780px;
  margin:0;
  font-family:var(--serif);
  font-size:clamp(40px,4.8vw,74px);
  line-height:1.04;
  letter-spacing:-.035em;
}

.nav-visual-copy em{color:var(--vanilla);font-style:normal}

.nav-drawer{
  display:flex;
  flex-direction:column;
  min-width:0;
  height:100dvh;
  width:min(36rem,100vw);
  padding:0 clamp(28px,3.2vw,52px) 32px;
  overflow-y:auto;
  background:var(--paper);
  transform:translateX(100%);
  transition:transform .56s cubic-bezier(.22,.61,.36,1);
}

.nav-overlay.is-open .nav-drawer{transform:none}

.nav-drawer-head{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:88px;
  border-bottom:1px solid var(--line);
  background:rgba(255,254,251,.96);
  color:var(--muted);
  font-size:14px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.nav-close{
  display:flex;
  align-items:center;
  gap:13px;
  padding:12px 0;
  border:0;
  background:transparent;
  color:var(--ink);
  font-size:14px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  cursor:pointer;
}

.nav-close i{
  position:relative;
  width:28px;
  height:28px;
  border:1px solid var(--line-strong);
  border-radius:50%;
}

.nav-close i::before,
.nav-close i::after{
  content:"";
  position:absolute;
  top:13px;
  left:7px;
  width:13px;
  height:1px;
  background:var(--ink);
  transform:rotate(45deg);
}

.nav-close i::after{transform:rotate(-45deg)}

.nav-menu{padding-top:26px}

.nav-menu-home,
.nav-menu-trigger{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  min-height:62px;
  padding:10px 0;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  color:var(--ink);
  font-family:var(--serif);
  font-size:clamp(24px,2.1vw,32px);
  line-height:1.05;
  text-align:left;
  letter-spacing:-.035em;
  cursor:pointer;
  transition:color .22s ease,opacity .22s ease;
}

.nav-menu-home>span:last-child{
  color:var(--mustard);
  font-family:var(--sans);
  font-size:20px;
}

.nav-menu-home:hover,
.nav-menu-home.is-current,
.nav-menu-group.is-current>.nav-menu-trigger,
.nav-menu-trigger:hover{color:var(--lavender-dark)}

.nav-menu-list.has-open>.nav-menu-group:not(.is-open)>.nav-menu-trigger{opacity:.3}

.nav-menu-symbol{
  position:relative;
  flex:0 0 28px;
  width:28px;
  height:28px;
  margin-left:20px;
  border:1px solid var(--line-strong);
  border-radius:50%;
}

.nav-menu-symbol::before,
.nav-menu-symbol::after{
  content:"";
  position:absolute;
  top:13px;
  left:7px;
  width:13px;
  height:1px;
  background:currentColor;
  transition:transform .25s ease;
}

.nav-menu-symbol::after{transform:rotate(90deg)}
.nav-menu-group.is-open .nav-menu-symbol::after{transform:rotate(0)}

.nav-menu-submenu{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  padding:10px 0 20px 18px;
  border-bottom:1px solid var(--line);
}

.nav-menu-submenu[hidden]{display:none}

.nav-menu-submenu a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:46px;
  border-bottom:1px solid rgba(46,42,54,.06);
  color:#595360;
  font-size:14px;
  font-weight:600;
  line-height:1.35;
  transition:.2s ease;
}

.nav-menu-submenu a span:last-child{color:var(--mustard);opacity:0;transition:.2s ease}
.nav-menu-submenu a:hover,
.nav-menu-submenu a[aria-current="page"]{color:var(--lavender-dark)}
.nav-menu-submenu a:hover span:last-child{opacity:1;transform:translate(2px,-2px)}

.nav-menu-submenu a[aria-current="page"]{
  color:var(--lavender-dark);
}

.nav-menu-submenu a[aria-current="page"] span:last-child{opacity:1}

.nav-menu-directs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}
.nav-menu-directs a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 15px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink);font-size:14px;font-weight:800;transition:.2s ease}
.nav-menu-directs a span:last-child{color:var(--mustard)}
.nav-menu-directs a:hover,.nav-menu-directs a[aria-current="page"]{border-color:var(--lavender);background:var(--lavender-soft);color:var(--lavender-dark)}

.nav-utility{
  display:grid;
  grid-template-columns:1fr 1.35fr;
  gap:12px;
  margin-top:auto;
  padding-top:34px;
}

.nav-utility a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:52px;
  padding:12px 15px;
  border:1px solid var(--line-strong);
  border-radius:var(--radius-sm);
  font-size:14px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  transition:.2s ease;
}

.nav-utility a:last-child{border-color:var(--lavender);background:var(--lavender);color:#fff}
.nav-utility a:hover{border-color:var(--mustard);transform:translateY(-2px)}

@media(max-width:1000px){
  .nav-overlay{grid-template-columns:minmax(0,1fr) min(36rem,62vw)}
  .nav-drawer{width:min(36rem,62vw)}
  .nav-visual-copy p{font-size:clamp(38px,5.2vw,58px)}
}

@media(max-width:760px){
  .header-frame{min-height:76px}
  .header-brand strong{font-size:18px}
  .nav-overlay{display:block;background:var(--paper)}
  .nav-visual{display:none}
  .nav-drawer{width:100%;padding:0 var(--gutter) 24px}
  .nav-drawer-head{min-height:76px}
  .nav-menu{padding-top:12px}
  .nav-menu-home,.nav-menu-trigger{min-height:58px;font-size:clamp(24px,7vw,32px)}
  .nav-menu-submenu{grid-template-columns:1fr;padding-top:8px}
}

@media(max-width:480px){
  .header-action{font-size:9px;letter-spacing:.1em}
  .header-brand small{display:none}
  .header-menu-button>span:first-child{display:none}
  .nav-utility{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  .nav-overlay,.nav-visual,.nav-drawer,.header-menu-mark,.nav-utility a{transition:none}
}

/* =========================================================
   UNIFIED SITE DIRECTORY FOOTER
   ========================================================= */
.footer{
  padding:0 0 var(--space-6);
  background:#efe7d5;
  color:var(--ink);
}

.footer>.container{
  padding-top:var(--space-10);
  border-top:1px solid var(--line-strong);
}

.footer-directory{
  display:grid;
  grid-template-columns:minmax(340px,1fr) minmax(0,2fr);
  gap:clamp(40px,6vw,92px);
  align-items:start;
}

.footer-intro{position:sticky;top:112px}

.footer-wordmark{
  display:grid;
  gap:7px;
  line-height:1;
}

.footer-wordmark strong{
  font-family:var(--serif);
  font-size:clamp(27px,2.5vw,37px);
  font-weight:400;
  letter-spacing:-.035em;
}

.footer-wordmark small{
  color:var(--muted);
  font-size:8px;
  font-weight:800;
  letter-spacing:.17em;
  text-transform:uppercase;
}

.footer-intro>p{
  max-width:380px;
  margin:var(--space-6) 0 0;
  color:var(--muted);
  font-size:14px;
  line-height:1.75;
}

.footer-contacts{
  display:grid;
  gap:9px;
  margin-top:var(--space-7);
  font-size:14px;
}

.footer-contacts a{color:var(--muted);transition:.2s ease}
.footer-contacts a:hover{color:var(--lavender-dark)}

.footer-menu{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--space-7) clamp(22px,3vw,46px);
}

.footer-menu-group h3{
  margin:0 0 var(--space-5);
  padding-bottom:var(--space-3);
  border-bottom:1px solid var(--line);
  color:var(--lavender-dark);
  font-family:var(--serif);
  font-size:15.3px;
  font-weight:400;
}

.footer-menu-links{display:grid;gap:11px}

.footer-menu-links a{
  color:var(--muted);
  font-size:14px;
  line-height:1.45;
  transition:.2s ease;
}

.footer-menu-links a:hover,
.footer-menu-links a[aria-current="page"]{color:var(--ink)}

.footer-menu-links a[aria-current="page"]::before{
  content:"— ";
  color:var(--mustard-dark);
}

.footer .footer-bottom{
  align-items:center;
  margin-top:var(--space-10);
  padding-top:var(--space-5);
  border-top-color:var(--line);
  color:var(--muted);
}

.footer-bottom>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-5)}
.footer-bottom a{transition:.2s ease}
.footer-bottom a:hover{color:var(--ink)}

@media(max-width:1100px){
  .footer-directory{grid-template-columns:1fr;gap:var(--space-9)}
  .footer-intro{position:static;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
  .footer-intro>p{margin:0}
  .footer-contacts{grid-column:1/-1;margin-top:0}
}

@media(max-width:760px){
  .footer>.container{padding-top:var(--space-8)}
  .footer-intro{grid-template-columns:1fr}
  .footer-intro>p{margin-top:var(--space-4)}
  .footer-menu{grid-template-columns:1fr 1fr;gap:var(--space-8) var(--space-5)}
}

@media(max-width:480px){
  .footer-menu{grid-template-columns:1fr}
  .footer .footer-bottom{align-items:flex-start;flex-direction:column}
  .footer-bottom>div{justify-content:flex-start;gap:var(--space-3) var(--space-5)}
}

/* =========================================================
   HEADER V40 — contacts, horizontal navigation and direct CTA
   ========================================================= */
:root{--operational-header-height:112px}

.site-header{
  position:fixed;
  inset:0 0 auto;
  z-index:100;
  padding:0;
  border-bottom:1px solid rgba(46,42,54,.1);
  background:rgba(255,254,251,.97);
  box-shadow:0 8px 28px rgba(43,38,49,.06);
}
.site-header.is-scrolled{padding:0;background:rgba(255,254,251,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}

.header-contact-strip{border-bottom:1px solid var(--line);background:#efe7d5}
.header-contact-inner{display:flex;min-height:34px;align-items:center;justify-content:space-between;gap:18px}
.header-contact-list,.header-socials{display:flex;align-items:center;gap:16px;min-width:0}
.header-contact-list a{color:#494450;font-size:14px;font-weight:700;white-space:nowrap}
.header-contact-list a:hover{color:var(--lavender-dark)}
.header-contact-list span{color:var(--muted);font-size:14px;font-weight:600}
.header-socials{gap:7px}
.header-social-short{display:none}
.header-socials a{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;padding:0;border:1px solid rgba(99,79,120,.22);border-radius:50%;background:rgba(255,255,255,.54);color:var(--lavender-dark);font-size:15px;transition:.2s ease}
.header-socials a:hover{border-color:var(--lavender);background:#fff;transform:translateY(-1px)}

.header-primary{background:rgba(255,254,251,.96)}
.header-primary-inner{display:grid;min-height:77px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px}
.header-logo{display:flex;align-items:center;flex:none}
.header-logo img{width:64px;height:64px;object-fit:contain}
.header-horizontal-nav{display:flex;min-width:0;align-items:center;justify-content:center;gap:2px}
.header-nav-group{position:relative}
.header-nav-link,.header-nav-trigger{display:flex;min-height:38px;align-items:center;justify-content:center;gap:6px;padding:8px 9px;border:0;border-radius:999px;background:transparent;color:#494450;font-family:inherit;font-size:14px;font-weight:700;line-height:1.15;text-align:center;white-space:nowrap;cursor:pointer;transition:.2s ease}
.header-nav-trigger::after{content:"";width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.header-nav-link:hover,.header-nav-link[aria-current="page"],.header-nav-group:hover>.header-nav-trigger,.header-nav-group:focus-within>.header-nav-trigger,.header-nav-group.is-open>.header-nav-trigger,.header-nav-group.is-current>.header-nav-trigger{background:var(--warm);color:var(--lavender-dark)}

.header-nav-dropdown{position:absolute;top:calc(100% + 8px);left:50%;z-index:120;display:grid;width:max-content;min-width:230px;max-width:320px;padding:8px;border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,254,251,.99);box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translate(-50%,-5px);transition:.2s ease}
.header-nav-dropdown a{padding:9px 11px;border-radius:9px;color:#494450;font-size:14px;font-weight:600;line-height:1.35}
.header-nav-dropdown a:hover,.header-nav-dropdown a[aria-current="page"]{background:var(--warm);color:var(--lavender-dark)}
.header-nav-group:hover>.header-nav-dropdown,.header-nav-group:focus-within>.header-nav-dropdown,.header-nav-group.is-open>.header-nav-dropdown{opacity:1;pointer-events:auto;transform:translate(-50%,0)}

.header-consultation{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:10px 17px;border-radius:999px;background:var(--lavender);color:#fff;font-size:14px;font-weight:800;line-height:1.2;text-align:center;white-space:nowrap;box-shadow:0 9px 24px rgba(99,79,120,.2);transition:.2s ease}
.header-consultation:hover{background:var(--lavender-dark);transform:translateY(-1px)}

@media(max-width:1180px){
  :root{--operational-header-height:148px}
  .header-primary-inner{min-height:113px;grid-template-columns:auto 1fr auto;grid-template-rows:66px 47px;gap:0 14px}
  .header-logo img{width:58px;height:58px}
  .header-horizontal-nav{grid-column:1/-1;grid-row:2;justify-content:space-between;border-top:1px solid var(--line)}
  .header-nav-link,.header-nav-trigger{padding-inline:10px}
}

@media(max-width:720px){
  :root{--operational-header-height:182px}
  .header-contact-inner{min-height:64px;gap:8px}
  .header-contact-list{display:grid;grid-template-columns:1fr 1fr;gap:3px 10px}
  .header-contact-list a{font-size:9px}
  .header-contact-list a:last-child{grid-column:1/-1}
  .header-contact-list span{display:none}
  .header-socials{gap:4px}
  .header-socials a{width:30px;height:30px;font-size:16px}
  .header-primary-inner{min-height:118px;grid-template-rows:67px 51px}
  .header-logo img{width:54px;height:54px}
  .header-consultation{min-height:38px;padding:8px 13px;font-size:10px;white-space:normal}
  .header-horizontal-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
  .header-nav-link,.header-nav-trigger{width:100%;min-height:25px;padding:4px 2px;border-radius:5px;font-size:9px;white-space:normal}
  .header-nav-trigger::after{display:none}
  .header-nav-dropdown{position:fixed;top:176px;right:var(--gutter);left:var(--gutter);width:auto;max-width:none;transform:translateY(-5px)}
  .header-nav-group:hover>.header-nav-dropdown,.header-nav-group:focus-within>.header-nav-dropdown,.header-nav-group.is-open>.header-nav-dropdown{transform:none}
}

/* =========================================================
   HEADER V42 — right-aligned Aroz-inspired navigation
   ========================================================= */
@media(min-width:1181px){
  .header-primary-inner{gap:24px}
  .header-horizontal-nav{justify-content:flex-end;gap:22px}
  .header-nav-group{position:static}
  .header-nav-link,.header-nav-trigger{
    position:relative;
    min-height:44px;
    padding:8px 0;
    border-radius:0;
    background:transparent;
    font-size:14px;
  }
  .header-nav-trigger{padding-right:12px}
  .header-nav-trigger::after{position:absolute;right:0}
  .header-nav-link::before,.header-nav-trigger::before{
    content:"";
    position:absolute;
    right:0;
    bottom:2px;
    left:0;
    height:2px;
    background:var(--lavender);
    transform:scaleX(0);
    transform-origin:right;
    transition:transform .22s ease;
  }
  .header-nav-link:hover,.header-nav-link[aria-current="page"],
  .header-nav-group:hover>.header-nav-trigger,.header-nav-group:focus-within>.header-nav-trigger,
  .header-nav-group.is-open>.header-nav-trigger,.header-nav-group.is-current>.header-nav-trigger{
    background:transparent;
    color:var(--lavender-dark);
  }
  .header-nav-link:hover::before,.header-nav-link[aria-current="page"]::before,
  .header-nav-group:hover>.header-nav-trigger::before,.header-nav-group:focus-within>.header-nav-trigger::before,
  .header-nav-group.is-open>.header-nav-trigger::before,.header-nav-group.is-current>.header-nav-trigger::before{
    transform:scaleX(1);
  }
  .header-nav-dropdown{
    position:fixed;
    top:var(--operational-header-height);
    right:0;
    left:0;
    display:grid;
    width:100%;
    min-width:0;
    max-width:none;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0 28px;
    padding:28px max(var(--gutter),calc((100vw - 1180px)/2));
    border:0;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    border-radius:0;
    background:#fffefb;
    box-shadow:0 24px 44px rgba(43,38,49,.1);
    transform:translateY(-8px);
  }
  .header-nav-dropdown a{
    padding:12px 0;
    border-bottom:1px solid rgba(46,42,54,.1);
    border-radius:0;
    font-size:14px;
  }
  .header-nav-dropdown a:hover,.header-nav-dropdown a[aria-current="page"]{
    padding-left:8px;
    background:transparent;
  }
  .header-nav-group:hover>.header-nav-dropdown,.header-nav-group:focus-within>.header-nav-dropdown,.header-nav-group.is-open>.header-nav-dropdown{transform:none}
}

/* =========================================================
   HEADER V43 — spacious five-column mega menu
   ========================================================= */
.header-mega-label{display:none}
.header-mega-links__grid{display:grid}
.header-mega-links__column{display:grid;align-content:start}
.header-mega-card{display:none}

@media(min-width:1181px){
  .header-nav-link,.header-nav-trigger{font-size:14px}
  .header-nav-dropdown{
    min-height:340px;
    display:block;
    padding-top:34px;
    padding-bottom:36px;
  }
  .header-mega-heading{margin-bottom:15px}
  .header-mega-label{
    display:block;
    color:var(--lavender-dark);
    font-size:14px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
  }
  .header-mega-content{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    align-items:start;
    gap:28px;
  }
  .header-mega-links{grid-column:span 2}
  .header-mega-links__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
  .header-nav-dropdown .header-mega-links a{
    min-height:44px;
    padding:11px 0;
    font-size:14px;
    line-height:1.35;
  }
  .header-mega-card{
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
    gap:10px;
    padding:0;
    border:0;
    color:var(--ink);
  }
  .header-mega-card__media{
    grid-column:1/-1;
    display:block;
    overflow:hidden;
    width:100%;
    aspect-ratio:16/9;
    margin-bottom:5px;
    border-radius:var(--radius-md);
    background:var(--warm);
  }
  .header-mega-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
  .header-mega-card--art .header-mega-card__media img{object-fit:contain;padding:8px}
  .header-mega-card strong{font-size:14px;line-height:1.35}
  .header-mega-card>span:last-child{color:var(--lavender-dark);font-size:16px}
  .header-nav-dropdown .header-mega-card:hover{padding-left:0;background:transparent;color:var(--lavender-dark)}
  .header-mega-card:hover .header-mega-card__media img{transform:scale(1.035)}
}

@media(max-width:1180px){
  .header-mega-heading{display:none}
  .header-mega-content,.header-mega-links,.header-mega-links__grid,.header-mega-links__column{display:contents}
}

/* HEADER V44 — stable hover corridor and round footer logo */
@media(min-width:1181px){
  .header-nav-group{position:relative}
  .header-nav-group::after{
    content:"";
    position:absolute;
    z-index:119;
    top:100%;
    right:-14px;
    left:-14px;
    height:30px;
  }
}

.footer-round-logo{display:inline-flex;align-items:center}
.footer-round-logo img{display:block;width:112px;height:112px;object-fit:contain}

@media(max-width:720px){
  .footer-round-logo img{width:92px;height:92px}
}

/* HEADER V45 — container alignment and navigation states */
:root{
  --nav-hover:var(--lavender);
  --nav-current:var(--mustard-dark);
  --nav-pressed:#59456f;
}

@media(min-width:1181px){
  .header-nav-dropdown{padding-right:max(var(--gutter),calc((100vw - var(--container))/2));padding-left:max(var(--gutter),calc((100vw - var(--container))/2))}
}

.header-nav-link:hover,.header-nav-trigger:hover,
.header-nav-dropdown a:hover{color:var(--nav-hover)}
.header-nav-link[aria-current="page"],.header-nav-group.is-current>.header-nav-trigger,
.header-nav-dropdown a[aria-current="page"]{color:var(--nav-current)}
.header-nav-link:active,.header-nav-trigger:active,.header-nav-dropdown a:active{color:var(--nav-pressed)}

@media(min-width:1181px){
  .header-nav-link[aria-current="page"]::before,.header-nav-group.is-current>.header-nav-trigger::before{background:var(--nav-current)}
  .header-nav-dropdown a[aria-current="page"]{font-weight:800}
}

/* Fullscreen menu demo is isolated from the operational header dimensions. */
html[data-menu-mode="fullscreen"]{--operational-header-height:88px}
.site-header.site-header--fullscreen,
.site-header.site-header--fullscreen.is-scrolled{
  z-index:300;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.menu-demo-bar{
  position:fixed;z-index:250;right:var(--gutter);bottom:var(--space-4);
  display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);
  max-width:calc(100% - 2 * var(--gutter));padding:var(--space-3) var(--space-4);
  border:1px solid var(--line-strong);border-radius:var(--radius-md);
  background:var(--paper);box-shadow:var(--shadow-soft);font-size:var(--text-caption);
}
.menu-demo-bar a{display:inline-flex;align-items:center;min-height:44px;color:var(--lavender-dark);font-weight:700;text-decoration:underline;text-underline-offset:4px}
.menu-demo-bar a:focus-visible{outline:2px solid var(--lavender-dark);outline-offset:3px}
body.menu-open .menu-demo-bar{display:none}
@media(max-width:760px){html[data-menu-mode="fullscreen"]{--operational-header-height:76px}}

/* =========================================================
   HEADER V46 — contrast navigation and collapsible contacts
   ========================================================= */
html[data-menu-mode="simple"]{--operational-header-height:121px}
html[data-menu-mode="simple"].header-contact-hidden{--operational-header-height:77px}

html[data-menu-mode="simple"] .site-header,
html[data-menu-mode="simple"] .site-header.is-scrolled{
  border-bottom-color:rgba(255,255,255,.12);
  background:var(--lavender-dark);
  box-shadow:0 10px 32px rgba(25,22,30,.18);
}

.header-contact-strip{
  overflow:hidden;
  max-height:44px;
  border-bottom-color:rgba(255,255,255,.2);
  background:var(--ink);
  opacity:1;
  transition:max-height .28s ease,opacity .2s ease,transform .28s ease;
}
.header-contact-inner{min-height:44px}
.site-header.is-contact-hidden .header-contact-strip{
  max-height:0;
  opacity:0;
  transform:translateY(-100%);
}
.header-contact-list{gap:24px}
.header-contact-list a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#fff;
  font-size:14px;
  font-weight:600;
  letter-spacing:.005em;
}
.header-contact-list a:hover{color:var(--lavender-soft)}
.header-contact-list span{color:rgba(255,255,255,.72);font-size:14px;font-weight:700}
.header-email b{
  display:inline-flex;
  width:24px;
  height:24px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.42);
  border-radius:50%;
  font-size:14px;
  font-weight:700;
  line-height:1;
}
.header-socials{gap:9px}
.header-socials a{
  width:34px;
  height:34px;
  border-color:rgba(255,255,255,.46);
  background:transparent;
  color:#fff;
  font-size:18px;
}
.header-socials a:hover{border-color:#fff;background:rgba(255,255,255,.12);color:#fff}

.header-primary{background:var(--lavender-dark)}
.header-primary-inner{min-height:77px}
.header-horizontal-nav{justify-content:flex-start}
.header-nav-link,.header-nav-trigger{
  color:#fff;
  font-weight:500;
}
.header-nav-link:hover,.header-nav-trigger:hover,
.header-nav-group:hover>.header-nav-trigger,.header-nav-group:focus-within>.header-nav-trigger,
.header-nav-group.is-open>.header-nav-trigger{color:#fff}
.header-nav-link[aria-current="page"],.header-nav-group.is-current>.header-nav-trigger{color:#fff}
.header-nav-link:active,.header-nav-trigger:active{color:#fff}
.header-nav-link::before,.header-nav-trigger::before{background:rgba(255,255,255,.62)}
.header-nav-link[aria-current="page"]::before,.header-nav-group.is-current>.header-nav-trigger::before{background:#fff}

.header-nav-dropdown{
  border-color:var(--line-strong);
  background:#fff;
}
.header-nav-dropdown a,
.header-nav-dropdown .header-mega-links a{color:var(--ink);font-weight:500}
.header-nav-dropdown a:hover{color:var(--lavender-dark)}
.header-nav-dropdown a[aria-current="page"]{color:var(--mustard-dark);font-weight:500}
.header-mega-label{color:var(--ink)}
.header-mega-card strong{font-weight:500}

.header-consultation{
  min-height:44px;
  padding:10px 20px;
  border:1px solid var(--mustard);
  background:var(--mustard);
  color:var(--ink);
  font-size:14px;
  font-weight:600;
  box-shadow:0 9px 24px rgba(246,184,90,.28);
}
.header-consultation:hover{
  border-color:var(--mustard-dark);
  background:var(--mustard-dark);
  color:#fff;
}

@media(max-width:1180px){
  html[data-menu-mode="simple"]{--operational-header-height:157px}
  html[data-menu-mode="simple"].header-contact-hidden{--operational-header-height:113px}
  .header-horizontal-nav{border-top-color:rgba(255,255,255,.16)}
}

@media(max-width:720px){
  html[data-menu-mode="simple"]{--operational-header-height:188px}
  html[data-menu-mode="simple"].header-contact-hidden{--operational-header-height:118px}
  .header-contact-strip{max-height:70px}
  .header-contact-inner{min-height:70px}
  .site-header.is-contact-hidden .header-contact-strip{max-height:0}
  .header-contact-list{gap:4px 12px}
  .header-contact-list a{font-size:11px}
  .header-email b{width:20px;height:20px;font-size:12px}
  .header-socials a{width:34px;height:34px;font-size:18px}
  .header-consultation{font-size:11px}
  .header-nav-dropdown{top:var(--operational-header-height)}
}

@media(prefers-reduced-motion:reduce){
  .header-contact-strip{transition:none}
}

/* =========================================================
   FINAL RESPONSIVE HEADER — full-width second row and compact menu
   ========================================================= */
.header-compact-menu{display:none}

@media(min-width:901px) and (max-width:1180px){
  .header-horizontal-nav{width:100%;justify-content:stretch;gap:clamp(4px,1vw,14px)}
  .header-horizontal-nav>.header-nav-group,
  .header-horizontal-nav>.header-nav-link{min-width:0;flex:1 1 0}
  .header-horizontal-nav .header-nav-trigger{width:100%}
}

@media(max-width:900px){
  html[data-menu-mode="simple"]{--operational-header-height:121px}
  html[data-menu-mode="simple"].header-contact-hidden{--operational-header-height:77px}
  .header-primary-inner{
    min-height:77px;
    grid-template-columns:auto minmax(0,1fr) auto;
    grid-template-rows:1fr;
    gap:clamp(8px,2vw,16px);
  }
  .header-horizontal-nav{display:none}
  .header-compact-menu{
    justify-self:end;
    display:inline-flex;
    min-width:96px;
    min-height:44px;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:9px 13px;
    border:1px solid rgba(255,255,255,.4);
    border-radius:var(--radius-pill);
    background:transparent;
    color:#fff;
    font-size:12px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    cursor:pointer;
  }
  .header-compact-menu__icon{display:grid;width:18px;gap:5px}
  .header-compact-menu__icon i{display:block;width:18px;height:1.5px;background:currentColor}
  .header-compact-menu:hover{border-color:#fff;background:rgba(255,255,255,.1)}
  .header-consultation{min-width:clamp(108px,20vw,136px);padding-inline:clamp(12px,2vw,18px)}
  .nav-overlay--compact{z-index:4}
}

@media(max-width:720px){
  html[data-menu-mode="simple"]{--operational-header-height:147px}
  html[data-menu-mode="simple"].header-contact-hidden{--operational-header-height:77px}
}

@media(max-width:480px){
  .header-primary-inner{gap:8px}
  .header-logo img{width:50px;height:50px}
  .header-compact-menu{min-width:86px;padding-inline:10px;font-size:11px}
  .header-compact-menu>span:first-child{display:inline}
  .header-consultation{min-width:102px;padding-inline:10px;font-size:10px;white-space:nowrap}
}

/* Footer contact directory */
.footer-legal-name{
  color:var(--ink)!important;
  font-size:14px !important;
  font-weight:750;
  letter-spacing:.035em;
  line-height:1.55!important;
  text-transform:uppercase;
}
.footer-contacts{gap:var(--space-5);font-size:var(--text-caption)}
.footer-location{display:grid;gap:6px}
.footer-contact-label{
  color:var(--ink);
  font-size:14px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.footer-location>a{color:var(--ink);font-weight:700;line-height:1.5}
.footer-location small{color:var(--muted);font-size:14px;line-height:1.55}
.footer-location small b{color:var(--ink);font-weight:700}
.footer-phone-list{display:flex;flex-wrap:wrap;gap:7px 14px;padding-top:var(--space-2);border-top:1px solid var(--line)}
.footer-phone-list a,.footer-email{color:var(--ink);font-weight:700}
.footer-socials{display:flex;gap:10px;margin-top:0}
.footer-socials a{
  display:inline-flex;
  width:36px;
  height:36px;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:50%;
  background:transparent;
  transition:transform .2s ease,filter .2s ease;
}
.footer-socials svg{display:block;width:100%;height:100%;fill:currentColor}
.footer-social--vk{color:#0077ff!important}
.footer-social--telegram{color:#229ed9!important}
.footer-social--max{color:#735cff!important}
.footer-socials a:hover{transform:translateY(-2px);filter:saturate(1.15) brightness(.92)}
.footer-menu-links a{font-size:14px}

/* Official channel icons in the header strip (inline SVG set, 2026-10-23).
   Five channels must keep circular shape: the flex row may not shrink them. */
.header-socials{flex:0 0 auto}
.header-socials a{flex:0 0 auto;min-width:0}
.header-socials svg{display:block;width:15px;height:15px;fill:currentColor}
/* Five channel icons share the strip with the phone numbers. Below 960 px the
   e-mail no longer fits next to them: it stays in the footer and contacts.html. */
@media(max-width:960px){
  .header-contact-list .header-email{display:none}
}
@media(max-width:720px){
  .header-socials{gap:4px}
  .header-socials a{width:26px;height:26px}
  .header-socials svg{width:14px;height:14px}
}
/* Extra official channels in the footer */
.footer-social--dzen{color:#202022!important}
.footer-social--rutube{color:#E5231B!important}
@media(max-width:420px){.footer-socials{gap:6px}.footer-socials a{width:32px;height:32px}}
