/* =========================================================
   THEME — GOLDEN IMAGE FOUNDATION (source of truth)
   =========================================================
   This shared file is the canonical visual system for the KFive
   webapp. New UI should extend these tokens/components first.
   Avoid page-local theme forks or one-off styling where possible.
   ========================================================= */

/* Core tokens */
:root{
  color-scheme:light;
  --bg:#ffffff; --fg:#101214; --muted:#59616d; --line:#d8d8d8; --tone-1:#f6f6f6; --tone-2:#efefef; --focus:#101214;
  --accent:#101214; --accent-soft:#efefef;
  --text:var(--fg);
  --panel:#ffffff; --panel-strong:#f8f8f8; --shadow-sm:0 1px 2px rgba(16,18,20,.06); --shadow-md:0 16px 36px rgba(16,18,20,.12);
  --media-bg:#f6f6f6;
  --media-solid:#ffffff;
  --radius:10px; --radius-sm:6px; --maxw:1320px;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px;
}
:root[data-theme="dark"]{ color-scheme:dark; --bg:#0b0c0e; --fg:#f8f8f7; --muted:#b4b8bf; --line:#30343b; --tone-1:#121418; --tone-2:#1a1d22; --focus:#ffffff; --accent:#ffffff; --accent-soft:#282c32; --panel:#111317; --panel-strong:#191c21; --shadow-sm:0 1px 2px rgba(0,0,0,.24); --shadow-md:0 18px 42px rgba(0,0,0,.34); --media-bg:#17191d; --media-solid:#ffffff; }
:root[data-theme="light"]{ color-scheme:light; }

*{ box-sizing:border-box }
[hidden]{ display:none !important }
html{ scroll-behavior:smooth; background:var(--bg); }
html,body{ margin:0; padding:0; background:var(--bg); color:var(--fg); font:16px/1.55 Akkurat, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; text-rendering:optimizeLegibility }
img{ display:block; max-width:100%; height:auto } /* prevent image warping */
img[data-k5-managed="1"]{ opacity:1; transition:opacity .24s ease }
a{ color:inherit; text-decoration:none; transition:color .18s ease, background-color .18s ease, border-color .18s ease, opacity .18s ease } a:hover{ text-decoration:underline }
button{ font:inherit; color:inherit; background:none; border:none; cursor:pointer }
button:disabled,.btn:disabled{ cursor:not-allowed; opacity:.5 }
::selection{ background:var(--accent-soft); color:var(--fg) }
:focus-visible{ outline:2px solid var(--focus); outline-offset:3px }
h1,h2,h3,h4{ font-family:"Klampenborg 2010",Akkurat,system-ui,sans-serif; font-weight:600; letter-spacing:-0.01em; line-height:1.1 }
h1{ font-size:clamp(28px, 5vw, 40px); margin:0 }
h2{ font-size:clamp(22px, 3.2vw, 28px); margin:0 }
h3{ font-size:clamp(18px, 2.6vw, 22px); margin:0 }
p{ margin:0 }

/* Layout helpers */
.container{ max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(16px, 2vw, var(--s5)) }
.row{ display:flex; gap:var(--gap, var(--s4)); align-items:center; flex-wrap:wrap }
.stack{ display:flex; flex-direction:column; gap:var(--gap, var(--s5)) }
.grid{ display:grid; gap:var(--gap, var(--s5)); grid-template-columns: repeat(12, minmax(0,1fr)) }
.col-12{ grid-column:span 12 } .col-8{ grid-column:span 8 } .col-7{ grid-column:span 7 } .col-6{ grid-column:span 6 } .col-5{ grid-column:span 5 } .col-4{ grid-column:span 4 } .col-3{ grid-column:span 3 }
@media (max-width: 960px){ .grid{ grid-template-columns: repeat(6,1fr) } .col-md-12{ grid-column:span 6 } .col-md-6{ grid-column:span 3 } .col-md-4{ grid-column:span 2 } }

/* Text helpers */
.muted{ color:var(--muted) }
.kicker{ text-transform:uppercase; font-size:12px; letter-spacing:.2em; color:var(--muted) }

/* Core UI components */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:42px; padding:9px 14px; border:1px solid var(--fg); background:transparent; cursor:pointer; font-weight:500; border-radius:var(--radius); transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease }
.btn:hover{ background:var(--fg); color:var(--bg); text-decoration:none; transform:translateY(-1px); box-shadow:var(--shadow-sm) }
.btn:active{ transform:translateY(0) }
.btn-ghost{ border-color:var(--line) }
.btn-ghost:hover{ background:var(--fg); color:var(--bg) }
.btn[aria-current="page"], .nav a.active{ background:var(--fg); color:var(--bg) }

.input,.select,.number,.textarea{ width:100%; min-height:44px; padding:10px 14px; border:1px solid var(--line); background:var(--panel); color:inherit; border-radius:var(--radius-sm); transition:border-color .18s ease, box-shadow .18s ease }
.input::placeholder,.textarea::placeholder{ color:color-mix(in srgb, var(--muted) 78%, transparent) }
.input:focus,.select:focus,.number:focus,.textarea:focus{ border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent) }
.input:focus,.select:focus,.number:focus,.textarea:focus,.btn:focus{ outline:2px solid var(--focus); outline-offset:2px }

.chip{ border:1px solid var(--line); padding:5px 10px; font-size:12px; border-radius:999px; background:var(--panel) }
.card{ background:var(--panel); border:1px solid var(--line); padding:var(--s5); border-radius:var(--radius); box-shadow:var(--shadow-sm) }
.surface{ background:var(--tone-1); border:1px solid var(--line); border-radius:var(--radius) }
.card > :first-child,
.surface > :first-child{ margin-top:0 }
.card > :last-child,
.surface > :last-child{ margin-bottom:0 }
.divider{ border-top:1px solid var(--line) }

/* App Shell */
.announce{ font-size:14px; padding:10px 0; border-bottom:1px solid var(--line); background:color-mix(in oklab, var(--bg) 92%, transparent); position:relative; z-index:240 }
[data-office="CLOSED"] .announce{ background:var(--tone-2) }
.announce > .container{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  min-height:42px;
}
.k5-office-status{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.k5-test-badge{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 9px;
  border:1px solid color-mix(in srgb, var(--accent) 58%, var(--line));
  border-radius:999px;
  color:var(--accent);
  font-size:10px;
  font-weight:700;
  letter-spacing:.13em;
  line-height:1;
  text-transform:uppercase;
  white-space:nowrap;
}

header.app{ position:sticky; top:0; z-index:230; border-bottom:1px solid var(--line); background:color-mix(in srgb, var(--bg) 92%, transparent); backdrop-filter:blur(18px) saturate(115%) }
.k5-header-shell,
.k5-header-main,
header.app > .container{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  min-height:84px;
  padding-block:18px !important;
}
.k5-header-main{
  min-height:92px;
}
.brand{
  display:inline-flex;
  align-items:center;
  gap:14px !important;
  min-width:0;
  font-weight:600;
  letter-spacing:.08em;
}
.brand .muted{
  font-size:14px;
  line-height:1.4;
}
.header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  flex-wrap:wrap;
  margin-left:auto;
}
.theme-toggle{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 6px;
  border:1px solid var(--line);
  background:var(--tone-1);
  color:var(--fg);
  cursor:pointer;
}
.theme-toggle--subtle{
  background:color-mix(in oklab, var(--bg) 88%, var(--tone-1));
  border-color:color-mix(in oklab, var(--line) 92%, transparent);
}
.theme-toggle-icon{
  font-size:13px;
  line-height:1;
  color:var(--muted);
}
.theme-toggle-track{
  position:relative;
  width:30px;
  height:16px;
  border:1px solid var(--line);
  background:color-mix(in oklab, var(--bg) 72%, var(--tone-1));
}
.theme-toggle-thumb{
  position:absolute;
  top:1px;
  left:1px;
  width:12px;
  height:12px;
  background:var(--fg);
  transition:transform .2s ease;
}
.theme-toggle[data-theme-resolved="dark"] .theme-toggle-thumb{
  transform:translateX(14px);
}
.theme-toggle[data-theme-resolved="light"] .theme-toggle-icon--sun,
.theme-toggle[data-theme-resolved="dark"] .theme-toggle-icon--moon{
  color:var(--fg);
}
.theme-toggle-label,
.theme-dock-label{
  display:none;
}
.theme-inline-slot{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
}
.theme-switcher-dock{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:280;
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border:1px solid var(--line);
  background:color-mix(in oklab, var(--bg) 90%, var(--tone-1));
  backdrop-filter:blur(16px);
  box-shadow:0 10px 30px rgba(0,0,0,.12);
}
@media (max-width: 720px){
  .theme-switcher-dock{
    right:12px;
    bottom:12px;
    padding:6px 8px;
  }
  .theme-toggle-label,
  .theme-dock-label{
    display:none;
  }
}
.nav{
  display:flex;
  align-items:center;
  gap:10px !important;
  margin-left:auto;
}
.nav a{ padding:9px 12px; border-radius:var(--radius-sm); font-size:14px; color:inherit }
.nav a:is(:hover,.active){ background:var(--tone-2); color:inherit; text-decoration:none }
.k5-search-ribbon{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:color-mix(in oklab, var(--bg) 97%, var(--tone-1));
  position:relative;
  z-index:220;
}
.k5-search-ribbon-inner{
  padding-block:12px !important;
  position:relative;
}
.k5-site-search-shell{
  position:relative;
  width:100%;
}
.k5-site-search{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:12px;
  align-items:center;
  width:100%;
}
.k5-site-search .input{
  min-width:0;
  padding-block:10px;
}
.k5-header-account{
  white-space:nowrap;
  flex:0 0 auto;
}
.k5-site-search-overlay{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 10px);
  z-index:260;
  display:none;
  padding:0;
  background:transparent;
}
.k5-site-search-overlay.is-open{
  display:block;
}
.k5-site-search-panel{
  position:relative;
  width:100%;
  max-width:min(100%, calc(100vw - 56px));
  max-height:none;
  overflow:visible;
  padding:14px 14px 16px;
  margin:0 auto;
  border:1px solid var(--line);
  border-top:1px solid var(--line);
  background:
    linear-gradient(180deg,
      color-mix(in oklab, var(--bg) 96%, var(--tone-1)),
      var(--bg) 220px);
  display:grid;
  gap:12px;
  box-shadow:0 18px 34px rgba(0,0,0,.10);
}
.k5-site-search-panel-meta{
  display:flex;
  justify-content:flex-start;
  gap:12px;
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
  padding-bottom:8px;
  border-bottom:1px solid var(--line);
}
.k5-site-search-results{ display:grid; gap:12px; }
.k5-search-result-group{
  display:grid;
  gap:0;
  border:1px solid var(--line);
  background:color-mix(in oklab, var(--bg) 98%, var(--tone-1));
}
.k5-search-result-group-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border-bottom:1px solid var(--line);
  background:color-mix(in oklab, var(--bg) 94%, var(--tone-1));
  text-align:left;
  flex-wrap:wrap;
}
.k5-search-result-group-head-meta{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  flex-wrap:wrap;
}
.k5-search-result-group-head strong{
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.k5-search-result-group-head span{
  color:var(--muted);
  font-size:13px;
}
.k5-search-result-group-head-tools{
  display:flex;
  align-items:center;
  gap:10px;
  margin-left:auto;
  min-width:0;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.k5-search-result-group-toggle{
  min-width:104px;
  height:36px;
  padding:0 10px;
  border:1px solid var(--fg);
  background:color-mix(in oklab, var(--bg) 96%, var(--tone-1));
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  cursor:pointer;
  color:var(--fg);
  flex:0 0 auto;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.k5-search-result-group-toggle::before{
  content:"+";
  font-size:15px;
  line-height:1;
}
.k5-search-result-group-toggle[aria-expanded="true"]::before{
  content:"−";
}
.k5-search-result-group-toggle-label{
  font-size:11px;
  line-height:1;
}
.k5-search-result-group.is-collapsed .k5-search-result-group-grid{
  display:none;
}
.k5-search-result-group.is-collapsed .k5-search-result-group-head{
  border-bottom:none;
}
.k5-search-result-group-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  padding:12px;
  min-width:0;
  align-items:start;
}
.k5-search-result-group-footer{
  grid-column:1 / -1;
}
.k5-search-result-card{
  border:1px solid var(--line);
  background:color-mix(in oklab, var(--bg) 98%, var(--tone-1));
  padding:14px;
  display:grid;
  gap:10px;
  align-content:start;
  min-height:100%;
}
.k5-search-result-group--product .k5-search-result-group-grid{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}
.k5-search-result-group--brand .k5-search-result-group-grid{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}
.k5-search-result-card-link{
  display:grid;
  grid-template-columns:84px minmax(0, 1fr);
  gap:14px;
  align-items:start;
  text-decoration:none;
  color:inherit;
  min-width:0;
}
.k5-search-result-card--brand .k5-search-result-card-link,
.k5-search-result-card--showroom .k5-search-result-card-link{
  grid-template-columns:92px minmax(0, 1fr);
}
.k5-search-result-group--product .k5-search-result-card-link{
  grid-template-columns:1fr;
  gap:12px;
}
.k5-search-result-media{
  width:84px;
  min-width:84px;
  height:84px;
  border:1px solid var(--line);
  background:var(--tone-1);
  display:grid;
  place-items:center;
  overflow:hidden;
}
.k5-search-result-card--brand .k5-search-result-media,
.k5-search-result-card--showroom .k5-search-result-media{
  width:92px;
  min-width:92px;
  height:92px;
}
.k5-search-result-group--product .k5-search-result-media{
  width:100%;
  min-width:0;
  height:auto;
  aspect-ratio:16 / 11;
}
.k5-search-result-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  background:var(--bg);
}
.k5-search-result-copy{
  display:grid;
  gap:10px;
  min-width:0;
}
.k5-search-result-head{
  display:grid;
  gap:6px;
}
.k5-search-result-category{
  display:inline-flex;
  width:max-content;
  padding:4px 8px;
  border:1px solid var(--line);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}
.k5-search-result-link{
  font-size:clamp(20px, 1.6vw, 24px);
  line-height:1.08;
  font-weight:600;
  letter-spacing:-0.01em;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.k5-search-result-group--product .k5-search-result-link{
  font-size:clamp(18px, 1.2vw, 21px);
}
.k5-search-result-link:hover{
  text-decoration:none;
}
.k5-search-result-summary{
  color:var(--muted);
  line-height:1.55;
  margin:0;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.k5-search-result-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  color:var(--muted);
  font-size:13px;
}
.k5-search-result-meta span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.k5-search-result-meta span::before{
  content:"";
  width:4px;
  height:4px;
  border-radius:50%;
  background:currentColor;
  opacity:.5;
}
.k5-search-result-meta span:first-child::before{
  display:none;
}
.k5-search-result-pager{
  grid-column:1 / -1;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding-top:4px;
  border-top:1px solid var(--line);
}
.k5-search-result-pager--foot{
  margin-top:6px;
}
.k5-search-result-pager span{
  color:var(--muted);
  font-size:13px;
}
.k5-search-result-pager-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.k5-search-result-page-chips{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.k5-search-result-page-gap{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  padding:0 4px;
  color:var(--muted);
  font-size:13px;
  letter-spacing:.08em;
}
.k5-search-result-page-chips .btn.is-active{
  background:var(--fg);
  color:var(--bg);
  border-color:var(--fg);
}
.k5-search-result-group-empty{
  grid-column:1 / -1;
  border:1px dashed var(--line);
  padding:18px;
  background:color-mix(in oklab, var(--bg) 99%, var(--tone-1));
  color:var(--muted);
}
.k5-search-empty{
  grid-column:1 / -1;
  border:1px solid var(--line);
  padding:18px;
  background:color-mix(in oklab, var(--bg) 98%, var(--tone-1));
  display:grid;
  gap:8px;
}
.k5-search-suggestions{
  display:grid;
  gap:14px;
}
.k5-search-suggestion-row{
  display:grid;
  gap:10px;
}
.k5-search-suggestion-row > strong{
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
}
.k5-search-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.k5-search-chip{
  background:color-mix(in oklab, var(--bg) 94%, var(--tone-1));
  cursor:pointer;
}
.k5-search-suggestion-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
}
.k5-search-suggestion-card{
  display:grid;
  gap:6px;
  padding:12px;
  border:1px solid var(--line);
  background:color-mix(in oklab, var(--bg) 98%, var(--tone-1));
}
.k5-search-suggestion-kind{
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}
.k5-search-suggestion-card strong{
  font-size:15px;
  line-height:1.15;
}
.k5-search-suggestion-card small{
  color:var(--muted);
  line-height:1.45;
}

/* --- Header logo: keep square logos square --- */
.brand img{
  width:112px;               /* desired header size */
  aspect-ratio:1 / 1;        /* enforce square box */
  height:auto;               /* let AR compute height from width */
  object-fit:contain;        /* no cropping or stretching */
}
@media (max-width: 980px){
  .k5-header-shell,
  .k5-header-main,
  header.app .container{
    align-items:flex-start;
    min-height:auto;
    padding-block:16px !important;
  }
  .brand{
    width:100%;
  }
  .nav{
    width:100%;
    justify-content:flex-start;
    gap:8px;
    margin-left:0;
  }
  .nav a{
    padding:8px 9px;
    font-size:13px;
  }
  .header-actions{
    width:100%;
    justify-content:flex-start;
  }
  .k5-site-search{
    width:100%;
    grid-template-columns:minmax(0, 1fr);
  }
  .k5-site-search-overlay{
    top:calc(100% + 8px);
  }
  .k5-site-search-panel{
    padding:16px;
    width:100%;
    max-height:none;
  }
  .k5-search-result-group-grid{
    grid-template-columns:1fr;
  }
  .k5-search-result-group--product .k5-search-result-group-grid,
  .k5-search-result-group--brand .k5-search-result-group-grid{
    grid-template-columns:1fr;
  }
  .k5-search-result-pager{
    flex-direction:column;
    align-items:flex-start;
  }
  .k5-search-result-group-head{
    align-items:flex-start;
  }
  .k5-search-result-group-head-tools{
    width:100%;
    margin-left:0;
    justify-content:space-between;
  }
  .k5-search-result-card-link{
    grid-template-columns:72px minmax(0, 1fr);
    gap:12px;
  }
  .k5-search-result-group--product .k5-search-result-card-link{
    grid-template-columns:1fr;
  }
  .k5-search-result-media{
    width:72px;
    min-width:72px;
    height:72px;
  }
  .k5-search-result-card--brand .k5-search-result-media,
  .k5-search-result-card--showroom .k5-search-result-media{
    width:80px;
    min-width:80px;
    height:80px;
  }
  .k5-search-result-group--product .k5-search-result-media{
    width:100%;
    min-width:0;
    height:auto;
  }
  .k5-search-suggestion-grid{
    grid-template-columns:1fr;
  }
}

/* Visibility + accessibility */
.sr-only{ position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0 }
.skip-link{
  position:absolute;
  left:var(--s4);
  top:var(--s3);
  z-index:1000;
  padding:10px 14px;
  border-radius:var(--radius);
  background:var(--fg);
  color:var(--bg);
  transform:translateY(-180%);
  transition:transform .18s ease;
}
.skip-link:focus{ transform:translateY(0) }
.is-hidden{ display:none !important }
.site-crumbs{
  padding:14px 0;
  border-bottom:1px solid var(--line);
  background:var(--bg);
}
.site-crumbs nav{
  font-size:14px;
  color:var(--muted);
}
.site-crumbs a:hover{ color:var(--fg); text-decoration:none }

/* Detail pages keep the visitor's current object and next action visible.
   This stays shared so product, brand, and project journeys do not each grow
   a different contact pattern. */
.k5-context-rail{
  border-bottom:1px solid var(--line);
  background:color-mix(in oklab, var(--bg) 94%, var(--tone-1));
}
.k5-context-rail-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding-block:14px;
}
.k5-context-rail-copy{
  display:grid;
  gap:3px;
  min-width:0;
}
.k5-context-rail-copy strong{
  font-size:16px;
  line-height:1.15;
  overflow-wrap:anywhere;
}
.k5-context-rail-copy .kicker{ font-size:10px; }
.k5-context-rail-copy .muted{ font-size:13px; }
.k5-context-rail-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
  flex:0 0 auto;
}
@media (max-width:720px){
  .k5-context-rail-inner{ align-items:stretch; flex-direction:column; }
  .k5-context-rail-actions{ justify-content:flex-start; }
  .k5-context-rail-actions .btn{ flex:1 1 auto; }
}
.page-intro{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:var(--s4);
  flex-wrap:wrap;
}
.page-intro p{ max-width:760px }
.section-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:var(--s4);
  flex-wrap:wrap;
}
.section-header-copy{
  display:grid;
  gap:var(--s1);
}
.section-header-copy p{
  margin:0;
  max-width:68ch;
}
.section-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.page-title-block{
  display:flex;
  flex-direction:column;
  gap:var(--s2);
}
.page-title-block p{ margin:0; max-width:760px }
.page-tools{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.page-shell{
  padding:clamp(32px, 4vw, 56px) 0;
}
.service-main{
  display:grid;
  gap:var(--s7);
  padding:clamp(32px, 4vw, 56px) 0;
}
.service-section{
  display:grid;
  gap:var(--s5);
}
.section-stack{
  display:grid;
  gap:var(--s5);
}
.service-hero{
  display:grid;
  gap:var(--s5);
  padding:clamp(24px, 3vw, 40px);
  border:1px solid var(--line);
  background:var(--tone-1);
}
.service-hero--split{
  grid-template-columns:minmax(0, 1.35fr) minmax(280px, .65fr);
  align-items:end;
}
.service-hero-copy{
  display:grid;
  gap:14px;
  align-content:end;
}
.service-hero-copy h1,
.service-hero-copy h2{
  margin:0;
  max-width:13ch;
  letter-spacing:-0.03em;
}
.service-hero-copy p{
  max-width:62ch;
  color:var(--muted);
  line-height:1.6;
}
.service-hero-copy .page-tools{
  padding-top:4px;
}
.service-hero-aside{
  display:grid;
  gap:14px;
  align-content:stretch;
}
.service-hero-card{
  display:grid;
  gap:10px;
  padding:18px;
  border:1px solid var(--line);
  background:var(--bg);
  min-height:100%;
}
.service-hero-card strong{
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
}
.service-hero-card p{
  color:var(--muted);
  line-height:1.55;
}
.service-hero-card .service-note{
  margin:0;
}
.service-meta-list{
  display:grid;
  gap:8px;
  font-size:14px;
}
.service-meta-list .row{
  justify-content:space-between;
  align-items:flex-start;
}
.service-meta-list .muted{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.service-layout-split{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(320px, .95fr);
  gap:var(--s5);
  align-items:start;
}
.service-layout-split--wide{
  grid-template-columns:minmax(0, 1.15fr) minmax(320px, .85fr);
}
.service-stack{
  display:grid;
  gap:var(--s4);
}
.service-note{
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}
.service-highlights{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}
.service-highlight{
  border:1px solid var(--line);
  background:var(--bg);
  padding:16px;
  display:grid;
  gap:8px;
  align-content:start;
}
.service-highlight strong{
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}
.service-highlight span{
  font-size:22px;
  line-height:1.05;
  font-weight:600;
}
.service-highlight p{
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}
.service-band{
  border:1px solid var(--line);
  background:var(--tone-1);
  padding:var(--s5);
  display:grid;
  gap:var(--s5);
}
.service-band-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.15fr) minmax(280px, .85fr);
  gap:var(--s5);
  align-items:start;
}
.service-story{
  display:grid;
  gap:12px;
}
.service-story p{
  color:var(--muted);
  line-height:1.65;
  max-width:68ch;
}
.service-card-list{
  display:grid;
  gap:12px;
}
.service-card-list article{
  border:1px solid var(--line);
  background:var(--bg);
  padding:16px;
  display:grid;
  gap:8px;
}
.service-card-list strong{
  font-size:14px;
}
.service-card-list p{
  color:var(--muted);
  line-height:1.55;
}
.service-summary-strip{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
}
.service-summary-item{
  border:1px solid var(--line);
  background:var(--bg);
  padding:16px;
  display:grid;
  gap:6px;
  align-content:start;
}
.service-summary-item strong{
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}
.service-summary-item span{
  font-size:clamp(24px, 2vw, 32px);
  line-height:1;
  font-weight:700;
}
.service-summary-item p{
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
}
.service-layout-rail{
  display:grid;
  grid-template-columns:minmax(0, 1.2fr) minmax(320px, .8fr);
  gap:var(--s5);
  align-items:start;
}
.service-rail{
  display:grid;
  gap:12px;
}
.service-rail-card{
  border:1px solid var(--line);
  background:var(--bg);
  padding:16px;
  display:grid;
  gap:10px;
}
.service-rail-card p{
  margin:0;
  color:var(--muted);
  line-height:1.55;
}
.service-rail-card .row{
  flex-wrap:wrap;
}
.inline-status{
  display:none;
  padding:12px 14px;
  border:1px solid var(--line);
  background:var(--tone-1);
  color:var(--muted);
  font-size:14px;
  line-height:1.5;
}
.inline-status.is-visible{ display:block }
.inline-status.is-success{
  border-color:var(--fg);
  color:var(--fg);
}
.inline-status.is-error{
  border-color:#b74a4a;
  color:inherit;
}

/* Shared account / dashboard public shell */
.subbar{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--bg);
}
.dash-shell{
  display:grid;
  gap:var(--s5);
}
.member-frame{ gap:var(--s5) }
/* Member tasks precede supporting guidance; no tools are removed. */
body[data-member-suite] .suite-bar{ position:relative; }
body[data-member-suite] .suite-bar-inner{ max-width:1360px; padding-block:24px; gap:12px; }
body[data-member-suite] .suite-body{ display:flex; flex-direction:column; max-width:1360px; margin-inline:auto; width:100%; gap:24px; }
body[data-member-suite] .suite-layout{ order:-1; display:flex; flex-direction:column; width:100%; }
body[data-member-suite] .suite-frame{ order:-1; min-height:640px; border:0; box-shadow:none; }
body[data-member-suite] .suite-rail{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); width:100%; }
body[data-member-suite] .suite-dashboard{ grid-template-columns:1fr; }
body[data-member-suite] .suite-command-grid{ grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); }
body[data-member-suite] .suite-title p{ max-width:70ch; }
body[data-member-suite] .suite-summary{ color:var(--muted); font-size:14px; }
.member-intro{
  display:grid;
  gap:12px;
  max-width:74ch;
}
.member-intro p{
  color:var(--muted);
  max-width:66ch;
}
.section-caption{
  display:grid;
  gap:2px;
}
.section-caption strong{ font-size:14px }
.section-caption span{ color:var(--muted); font-size:12px; line-height:1.5 }
.public-tabs,
.admin-tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.public-tabs a,
.admin-tabs a{
  display:inline-flex;
  align-items:center;
  padding:10px 14px;
  border:1px solid var(--line);
  background:var(--bg);
  text-decoration:none;
}
.public-tabs a[aria-current="page"],
.admin-tabs a[aria-current="page"]{
  border-color:var(--fg);
  background:var(--tone-1);
}
.mode-rail{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.mode-copy{
  display:grid;
  gap:3px;
}
.mode-copy strong{
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.member-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
  align-items:center;
}
.dash-hero{
  display:grid;
  grid-template-columns:minmax(0, 1.3fr) minmax(320px, .7fr);
  gap:var(--s5);
  padding:0 0 var(--s5);
  border-bottom:1px solid var(--line);
}
.dash-hero-copy{
  display:grid;
  gap:12px;
  align-content:end;
}
.dash-hero-copy p{ max-width:60ch; color:var(--muted) }
.dash-hero-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.dash-hero-card{
  border:1px solid var(--line);
  background:var(--tone-1);
  padding:var(--s5);
  display:grid;
  gap:14px;
  align-content:space-between;
}
.dash-hero-card strong{ font-size:14px }
.dash-hero-card p{ color:var(--muted); font-size:14px; margin:0 }
.dash-hero-meta{ display:grid; gap:10px }
.dash-hero-meta .row{ justify-content:space-between; align-items:flex-start }
.metric-strip{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:var(--s4);
}
.metric-tile{
  border:1px solid var(--line);
  background:var(--tone-1);
  padding:18px;
  display:grid;
  gap:8px;
}
.metric-tile strong{
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}
.metric-tile .value{ font-size:24px; line-height:1.05 }
.member-split{
  display:grid;
  grid-template-columns:minmax(0, 1.15fr) minmax(320px, .85fr);
  gap:var(--s4);
  align-items:start;
}
.section-stack{ display:grid; gap:var(--s4) }
.member-tab-shell{ display:grid; gap:var(--s4) }
.public-panel{
  border:1px solid var(--line);
  background:var(--bg);
  padding:20px;
  display:grid;
  gap:12px;
}
.public-panel--tight{ padding:16px; gap:10px }
.public-panel h3{ margin:0 }
.public-panel .panel-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  flex-wrap:wrap;
}
.public-panel .panel-top p{ margin:0; color:var(--muted); max-width:56ch }
.profile-public{
  border:1px solid var(--line);
  background:var(--tone-1);
  padding:var(--s5);
  display:grid;
  grid-template-columns:72px 1fr auto;
  gap:var(--s4);
  align-items:center;
}
.profile-public .avatar{ width:72px; height:72px }
.member-tab-intro{
  display:grid;
  gap:8px;
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
}
.member-tab-intro p{
  margin:0;
  color:var(--muted);
  max-width:66ch;
}
.member-resource-list{
  display:grid;
  gap:8px;
}
.member-resource-item{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  padding:12px 0;
  border-top:1px solid var(--line);
}
.member-resource-item:first-child{
  border-top:0;
  padding-top:0;
}
.member-resource-item span{
  font-size:14px;
  line-height:1.5;
}
.kpi{
  padding:var(--s5);
  border:1px solid var(--line);
  background:var(--tone-1);
}
.kpi strong{
  display:block;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:6px;
}
.kpi .value{ font-size:22px }
table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
}
th,td{
  padding:10px 12px;
  border-bottom:1px solid var(--line);
  text-align:left;
  font-size:14px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
th{
  font-weight:600;
  user-select:none;
  cursor:pointer;
  position:sticky;
  top:0;
  background:var(--tone-1);
  z-index:1;
}
th .sort{ font-size:12px; opacity:.6; margin-left:6px }
.calendar{
  border:1px solid var(--line);
  background:var(--bg);
}
.calendar--compact .cal-head{ padding:6px 10px }
.cal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:8px 12px;
  border-bottom:1px solid var(--line);
}
.cal-title-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  min-width:0;
}
.cal-head-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.cal-head-status{
  font-size:12px;
  color:var(--muted);
}
.cal-weekdays{
  display:grid;
  grid-template-columns:repeat(7, minmax(0, 1fr));
  gap:1px;
  background:var(--line);
  border-bottom:1px solid var(--line);
}
.cal-weekday{
  background:color-mix(in oklab, var(--tone-1) 86%, var(--bg));
  color:var(--muted);
  padding:8px 6px;
  text-align:center;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.cal-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:1px;
  background:var(--line);
}
.cal-cell{
  background:var(--bg);
  min-height:96px;
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:6px;
  transition:background .15s ease;
}
.calendar--compact .cal-cell{
  min-height:64px;
  padding:6px;
  gap:4px;
}
.cal-cell.is-selected{
  outline:2px solid var(--text);
  outline-offset:-2px;
}
.cal-cell-badges{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  min-height:20px;
  align-items:flex-start;
}
.calendar--compact .cal-cell .d{ font-size:11px }
.calendar--compact .cal-cell button.add{ padding:1px 5px }
.cal-cell:hover{ background:color-mix(in oklab, var(--tone-2) 60%, transparent) }
.cal-cell .d{
  font-size:12px;
  color:var(--muted);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:6px;
}
.cal-cell .d strong{
  font-size:13px;
  color:var(--text);
  font-weight:600;
}
.cal-cell button.add{
  align-self:flex-start;
  border:1px solid var(--line);
  padding:2px 6px;
  font-size:12px;
  background:transparent;
}
.cal-cell button.add:hover{ background:var(--tone-2) }
.event{
  border:1px solid var(--line);
  padding:4px 6px;
  font-size:12px;
  background:var(--tone-2);
  display:flex;
  justify-content:space-between;
  gap:6px;
  width:100%;
  text-align:left;
  cursor:pointer;
}
.event:hover{ background:color-mix(in oklab, var(--tone-2) 70%, var(--bg)) }
.event span{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.event-confirmed{ border-color:color-mix(in oklab, var(--line) 72%, var(--text)) }
.calendar--compact .event{ padding:3px 5px; font-size:11px }
.event .x{ font-size:12px; opacity:.7 }
.cal-footer{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  flex-wrap:wrap;
  padding:10px 12px;
  border-top:1px solid var(--line);
  background:color-mix(in oklab, var(--bg) 97%, var(--tone-1));
}
.cal-legend{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.cal-footer-note{
  max-width:40ch;
  font-size:12px;
  color:var(--muted);
  line-height:1.45;
}
.avatar{
  width:64px;
  height:64px;
  border-radius:50%;
  border:1px solid var(--line);
  object-fit:cover;
  background:var(--tone-2);
}
.presence{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:13px;
}
.presence .dot{
  width:10px;
  height:10px;
  border-radius:999px;
}
.p-online{ background:oklch(0.72 0.1 150) }
.p-office{ background:oklch(0.72 0.17 75) }
.p-unavail{ background:oklch(0.68 0.2 30) }
.p-busy{ background:oklch(0.68 0.07 250) }
.muted-sm{ font-size:12px; color:var(--muted) }
.member-side-rail{ gap:var(--s4) }
.availability-board--compact{ gap:8px }
.availability-card--member{
  padding:10px 12px;
  gap:8px;
}
.availability-card--member header{ align-items:center }
.availability-card--member .availability-meta{
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:4px 8px;
}
.availability-card--member p{
  font-size:12px;
  line-height:1.4;
}
.availability-summary{
  padding-top:8px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:12px;
}

/* --- Generic utilities so HTML never needs inline style --- */
/* gap scale for .row/.stack/.grid via CSS var */
.g-s1{ --gap:var(--s1) } .g-s2{ --gap:var(--s2) } .g-s3{ --gap:var(--s3) } .g-s4{ --gap:var(--s4) } .g-s5{ --gap:var(--s5) } .g-s6{ --gap:var(--s6) } .g-s7{ --gap:var(--s7) } .g-s8{ --gap:var(--s8) }

/* flex alignment */
.justify-between{ justify-content:space-between } .justify-center{ justify-content:center } .justify-start{ justify-content:flex-start } .justify-end{ justify-content:flex-end }

/* padding & margin block utilities */
.py-s6{ padding-block:var(--s6) } .py-s7{ padding-block:var(--s7) } .py-s8{ padding-block:var(--s8) }
.mt-s6{ margin-top:var(--s6) } .mt-s7{ margin-top:var(--s7) } .mt-s8{ margin-top:var(--s8) }

/* aspect-ratio helpers for placeholders/media */
.ar-16x9{ aspect-ratio:16/9 } .ar-4x3{ aspect-ratio:4/3 } .ar-21x9{ aspect-ratio:21/9 } .ar-1x1{ aspect-ratio:1/1 } /* added for squares */

/* common placeholders */
.frame{
  background:var(--media-bg);
  border:1px solid var(--line);
  border-radius:var(--radius);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  overflow:hidden
}
.frame img{
  width:100%;
  height:100%;
  display:block;
}
.frame-placeholder{
  border-style:dashed;
}
.media-on-white{
  background:var(--media-solid) !important;
}
.media-on-white,
.media-on-white.frame{
  background:var(--media-solid) !important;
}
.media-on-white img{
  background:var(--media-solid) !important;
}
.store-media,
.store-mini-card .frame,
.store-feature-card .frame,
.splash-products-card .splash-product-media{
  background:var(--media-solid) !important;
}
.store-media img,
.store-mini-card .frame img,
.store-feature-card .frame img{
  background:var(--media-solid) !important;
}

/* niceties */
html{ scroll-behavior:smooth }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto } }
.row-scroll{
  display:flex;
  flex-wrap:nowrap;
  align-items:stretch;
  overflow-x:auto;
  overflow-y:hidden;
  gap:var(--s4);
  scrollbar-width:thin;
  scrollbar-color:var(--line) transparent;
}
.row-scroll > *{
  flex:0 0 clamp(280px, 30vw, 380px);
  width:clamp(280px, 30vw, 380px);
}
.row-scroll::-webkit-scrollbar{
  height:8px;
}
.row-scroll::-webkit-scrollbar-thumb{
  background:var(--line);
}
@media (max-width: 980px){
  .dash-hero,
  .member-split,
  .service-hero--split,
  .service-band-grid,
  .service-layout-rail,
  .service-layout-split,
  .service-layout-split--wide{ grid-template-columns:1fr }
  .metric-strip{ grid-template-columns:1fr }
  .service-highlights{ grid-template-columns:1fr }
  .service-summary-strip{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .member-actions{ justify-content:flex-start }
  .profile-public{ grid-template-columns:72px 1fr }
  .mode-rail{ align-items:flex-start }
  .availability-card--member .availability-meta{ grid-template-columns:1fr }
}
@media (max-width: 960px){
  table thead th{ top:0 }
}
@media (max-width: 720px){
  :root{
    --s5:20px;
    --s6:24px;
    --s7:36px;
    --s8:48px;
  }
  .container{
    padding-inline:var(--s4);
  }
  .announce{
    font-size:13px;
  }
  .site-crumbs{
    padding:12px 0;
  }
  .site-crumbs nav{
    font-size:13px;
    line-height:1.45;
  }
  .page-shell,
  .service-main{
    padding:var(--s5) 0;
    gap:var(--s6);
  }
  .page-intro,
  .section-header,
  .service-hero{
    gap:var(--s4);
  }
  .service-hero{
    padding:18px;
  }
  .service-hero-copy{
    gap:10px;
  }
  .service-hero-copy h1,
  .service-hero-copy h2{
    max-width:none;
  }
  .service-summary-strip{ grid-template-columns:1fr; }
  .page-tools{
    width:100%;
  }
  .section-actions{
    width:100%;
    justify-content:flex-start;
  }
  .page-tools > *{
    flex:1 1 auto;
    min-width:min(100%, 220px);
  }
  .public-tabs,
  .admin-tabs{
    width:100%;
  }
  .public-tabs a,
  .admin-tabs a{
    flex:1 1 calc(50% - 8px);
    justify-content:center;
    text-align:center;
  }
  .member-actions{
    width:100%;
  }
  .member-resource-item,
  .profile-public{
    grid-template-columns:1fr;
  }
  .profile-public{
    gap:12px;
  }
  .profile-public .avatar{
    width:56px;
    height:56px;
  }
  .cal-head{
    gap:10px;
    align-items:flex-start;
    flex-direction:column;
  }
  .calendar--compact .cal-cell,
  .cal-cell{
    min-height:72px;
  }
  footer{
    padding:var(--s7) 0;
  }
  .site-footer-grid{ grid-template-columns:1fr; }
  .site-footer-meta{ flex-direction:column; align-items:flex-start; }
}
@media (max-width: 560px){
  .nav a{
    flex:1 1 calc(50% - 8px);
    text-align:center;
  }
  .public-tabs a,
  .admin-tabs a{
    flex-basis:100%;
  }
}

/* All public destinations remain visible on narrow screens. */
@media (max-width: 960px){
  header.app > .container{
    flex-wrap:wrap;
    align-items:flex-start;
  }
  header.app .nav{
    width:100%;
    margin-left:0;
    flex-wrap:wrap !important;
    overflow:visible;
    gap:4px !important;
    padding-bottom:3px;
  }
  header.app .nav::-webkit-scrollbar{ display:none; }
  header.app .nav a{ flex:0 0 auto; white-space:nowrap; text-align:left; }
  header.app .brand img{ width:64px; }
  header.app .brand .muted{ font-size:12px; }
  .k5-site-search-shell .k5-site-search{ grid-template-columns:minmax(0,1fr) auto; }
}

/* Footer */
footer,
.site-footer{ border-top:1px solid var(--line); margin-top: var(--s7); padding: var(--s8) 0; font-size:13px; line-height:1.4; background:var(--bg) }
footer .brand,
.site-footer .brand{ font-size:14px }
footer a,
.site-footer a{ font-size:13px }
.site-footer-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.2fr) repeat(2,minmax(0, .55fr));
  gap:var(--s5);
  align-items:start;
}
@media(max-width:720px){ .site-footer .site-footer-grid{ grid-template-columns:1fr; } }
.site-footer-brand{
  display:grid;
  gap:10px;
  max-width:42ch;
}
.site-footer-list{
  display:grid;
  gap:8px;
  align-content:start;
}
.site-footer-list strong{
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:2px;
}
.site-footer-meta{
  padding-top:var(--s5);
  margin-top:var(--s5);
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:13px;
}

/* In-app feedback */
.ui-toast-stack{
  position:fixed;
  right:var(--s4);
  bottom:var(--s4);
  z-index:120;
  display:grid;
  gap:10px;
  width:min(360px, calc(100vw - 32px));
}
.ui-toast{
  border:1px solid var(--line);
  background:var(--bg);
  padding:12px 14px;
  display:grid;
  gap:4px;
}
.ui-toast strong{ font-size:14px }
.ui-toast p{ margin:0; color:var(--muted); font-size:13px; line-height:1.45 }
.ui-toast.is-success{ border-color:var(--fg) }
.ui-toast.is-error{ border-color:#b74a4a }
.ui-dialog-backdrop{
  position:fixed;
  inset:0;
  z-index:130;
  display:none;
  align-items:center;
  justify-content:center;
  background:color-mix(in oklab, var(--bg) 45%, transparent);
  backdrop-filter:blur(4px);
}
.ui-dialog-backdrop.is-open{ display:flex }
.ui-dialog{
  width:min(520px, calc(100vw - 32px));
  border:1px solid var(--line);
  background:var(--bg);
  display:grid;
  gap:14px;
  padding:var(--s5);
}
.ui-dialog h3{ margin:0 }
.ui-dialog p{ margin:0; color:var(--muted) }
.ui-dialog-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}

/* Carousel */
.k5-carousel{ padding:var(--s5) 0 var(--s6) }
.k5-carousel.k5-carousel-hero{ padding:0 0 var(--s7) }
.k5-carousel.k5-carousel-ribbon{ padding:0 0 var(--s5) }
.k5-carousel.k5-carousel-hero .container,
.k5-carousel.k5-carousel-ribbon .container{ max-width:none; padding-inline:0 }
.k5-carousel-shell{ display:grid; gap:var(--s3); width:100% }
.k5-carousel-stage{
  position:relative;
  width:100%;
  border:1px solid var(--line);
  background:var(--tone-1);
  overflow:hidden;
}
.k5-carousel.k5-carousel-hero .k5-carousel-stage{
  height:clamp(560px, 72vh, 820px);
  border-left:0;
  border-right:0;
}
.k5-carousel.k5-carousel-ribbon .k5-carousel-stage{
  height:340px;
  border-left:0;
  border-right:0;
}
.k5-carousel-slide{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns:minmax(0, 1.35fr) minmax(320px, 0.65fr);
  height:100%;
  min-height:0;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .45s ease, visibility .45s ease;
}
.k5-carousel-slide.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.k5-carousel.k5-carousel-ribbon .k5-carousel-slide{
  grid-template-columns:minmax(0, 1.6fr) minmax(280px, 0.7fr);
}
.k5-carousel-shell[data-carousel-page="home"] .k5-carousel-slide{
  grid-template-columns:minmax(0, 1.72fr) minmax(320px, 0.58fr);
}
.k5-carousel-shell[data-carousel-page="products"] .k5-carousel-slide{
  grid-template-columns:minmax(0, 1.48fr) minmax(300px, 0.74fr);
}
.k5-carousel-shell[data-carousel-page="brands"] .k5-carousel-slide{
  grid-template-columns:minmax(0, 1.58fr) minmax(290px, 0.72fr);
}
.k5-carousel-shell[data-carousel-page="projects"] .k5-carousel-slide{
  grid-template-columns:minmax(0, 1.68fr) minmax(280px, 0.66fr);
}
.k5-carousel-shell[data-carousel-page="news"] .k5-carousel-slide{
  grid-template-columns:minmax(0, 1.52fr) minmax(300px, 0.78fr);
}
.k5-carousel-media{
  min-height:100%;
  background:#fff;
  border-right:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.k5-carousel-media img,.k5-carousel-slot-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  background:#fff;
}
.k5-carousel-slide[data-source-type="product"] .k5-carousel-media img{
  object-fit:contain;
  padding:clamp(16px,3vw,40px);
}
.k5-carousel-copy{
  display:grid;
  align-content:end;
  gap:14px;
  padding:clamp(20px, 3vw, 40px);
  background:var(--bg);
}
.k5-carousel-shell[data-carousel-page="home"] .k5-carousel-copy{
  gap:18px;
  padding:clamp(36px, 4.2vw, 64px) clamp(28px, 3.4vw, 52px) clamp(30px, 3vw, 44px);
}
.k5-carousel-shell[data-carousel-page="products"] .k5-carousel-copy{
  gap:12px;
  padding:22px 24px 20px;
}
.k5-carousel-shell[data-carousel-page="brands"] .k5-carousel-copy{
  gap:12px;
  padding:24px 24px 22px;
}
.k5-carousel-shell[data-carousel-page="projects"] .k5-carousel-copy{
  gap:12px;
  padding:22px 24px 20px;
}
.k5-carousel-shell[data-carousel-page="news"] .k5-carousel-copy{
  gap:12px;
  padding:24px 26px 22px;
}
.k5-carousel.k5-carousel-hero .k5-carousel-copy{
  padding:clamp(28px, 3.8vw, 52px);
  align-content:center;
}
.k5-carousel.k5-carousel-ribbon .k5-carousel-copy{
  padding:24px 26px;
  align-content:center;
}
.k5-carousel-copy h2{ margin:0; font-size:clamp(30px, 3.8vw, 54px); line-height:1.05; max-width:10ch }
.k5-carousel-copy .muted{ font-size:clamp(15px, 1.3vw, 19px); line-height:1.45; max-width:24ch }
.k5-carousel.k5-carousel-hero .k5-carousel-copy h2{ font-size:clamp(38px, 4.8vw, 72px); max-width:9ch }
.k5-carousel.k5-carousel-hero .k5-carousel-copy .muted{ font-size:clamp(16px, 1.3vw, 20px); max-width:28ch }
.k5-carousel.k5-carousel-ribbon .k5-carousel-copy h2{ font-size:clamp(24px, 2.4vw, 38px); max-width:12ch }
.k5-carousel.k5-carousel-ribbon .k5-carousel-copy .muted{ font-size:14px; max-width:34ch }
.k5-carousel-shell[data-carousel-page="home"] .k5-carousel-copy h2{ max-width:8ch; letter-spacing:-0.03em }
.k5-carousel-shell[data-carousel-page="home"] .k5-carousel-copy .muted{ max-width:24ch }
.k5-carousel-shell[data-carousel-page="products"] .k5-carousel-copy h2{ max-width:11ch }
.k5-carousel-shell[data-carousel-page="store"] .k5-carousel-copy h2{ max-width:11ch }
.k5-carousel-shell[data-carousel-page="brands"] .k5-carousel-copy h2{ max-width:13ch }
.k5-carousel-shell[data-carousel-page="projects"] .k5-carousel-copy h2{ max-width:11ch }
.k5-carousel-shell[data-carousel-page="news"] .k5-carousel-copy h2{ max-width:12ch }
.k5-carousel-meta{ font-size:13px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em }
.k5-carousel-placeholder{ display:grid; place-items:center; width:100%; height:100%; padding:var(--s5); color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:12px; text-align:center; background:#fff }
.k5-carousel-controls{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:var(--s3);
  flex-wrap:wrap;
  padding-top:6px;
}
.k5-carousel.k5-carousel-hero .k5-carousel-controls,
.k5-carousel.k5-carousel-hero .k5-carousel-rail,
.k5-carousel.k5-carousel-ribbon .k5-carousel-controls,
.k5-carousel.k5-carousel-ribbon .k5-carousel-rail{ padding-inline:var(--s5) }
.editor-chip-list{ display:flex; flex-wrap:wrap; gap:8px }
.k5-carousel-controls .chip{ background:transparent; cursor:pointer }
.k5-carousel-controls .chip.is-active{ background:var(--fg); color:var(--bg); border-color:var(--fg) }
.k5-carousel-rail{ display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:10px }
.k5-carousel-rail.is-collapsed{ display:none }
.k5-carousel-slot{ display:grid; grid-template-rows:120px auto; border:1px solid var(--line); background:var(--bg); padding:0; cursor:pointer; text-align:left }
.k5-carousel-slot.is-active{ border-color:var(--fg) }
.k5-carousel-slot-media{ display:block; border-bottom:1px solid var(--line); background:#fff; overflow:hidden }
.k5-carousel-slot-copy{ display:grid; gap:6px; padding:12px }
.k5-carousel-slot-copy strong{ font-size:14px; line-height:1.25 }
.k5-carousel-shell[data-carousel-page="home"] .k5-carousel-media img{ object-position:50% 46% }
.k5-carousel-shell[data-carousel-page="products"] .k5-carousel-media img{ object-position:50% 48% }
.k5-carousel-shell[data-carousel-page="store"] .k5-carousel-media img{ object-position:50% 48% }
.k5-carousel-shell[data-carousel-page="brands"] .k5-carousel-media img{ object-position:50% 38% }
.k5-carousel-shell[data-carousel-page="projects"] .k5-carousel-media img{ object-position:50% 40% }
.k5-carousel-shell[data-carousel-page="news"] .k5-carousel-media img{ object-position:50% 30% }
.k5-carousel-shell[data-carousel-page="projects"] .k5-carousel-slide[data-source-type="product"] .k5-carousel-media img{ object-position:50% 48% }
.k5-carousel-shell[data-carousel-page="home"] .k5-carousel-slide[data-source-type="article"] .k5-carousel-media img{ object-position:50% 28% }
.k5-carousel-shell[data-carousel-page="home"] .k5-carousel-slide[data-source-type="project"] .k5-carousel-media img{ object-position:50% 40% }
.k5-carousel-shell[data-carousel-page="home"] .k5-carousel-slide[data-source-type="brand"] .k5-carousel-media img{ object-position:50% 36% }
.pdf-turn-shell{
  position:relative;
  overflow:hidden;
  perspective:1800px;
  transform-style:preserve-3d;
  background:var(--bg);
}
.pdf-turn-canvas{
  position:relative;
  z-index:1;
  transform-origin:left center;
  backface-visibility:hidden;
}
.pdf-flip-nav{
  position:absolute;
  top:0;
  bottom:0;
  width:18%;
  min-width:72px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:transparent;
  background:linear-gradient(90deg, rgba(0,0,0,.06), transparent);
  opacity:0;
  transition:opacity .18s ease, background .18s ease;
  z-index:4;
}
.pdf-flip-nav::after{
  content:attr(data-label);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--fg);
  opacity:.78;
}
.pdf-flip-nav:hover,
.pdf-turn-shell:hover .pdf-flip-nav{
  opacity:1;
}
.pdf-flip-nav.is-disabled{
  opacity:0 !important;
  pointer-events:none;
}
.pdf-flip-nav-prev{
  left:0;
  border-right:1px solid rgba(0,0,0,.06);
}
.pdf-flip-nav-next{
  right:0;
  justify-content:flex-end;
  padding-right:18px;
  background:linear-gradient(270deg, rgba(0,0,0,.06), transparent);
  border-left:1px solid rgba(0,0,0,.06);
}
.pdf-turn-ghost{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  background:var(--bg);
  pointer-events:none;
  z-index:2;
  transform-origin:left center;
  backface-visibility:hidden;
  box-shadow:0 12px 28px rgba(0,0,0,.08);
}
.pdf-turn-next .pdf-turn-ghost-next{
  animation:pdf-turn-next-out .52s cubic-bezier(.22,.61,.36,1) forwards;
}
.pdf-turn-prev .pdf-turn-ghost-prev{
  transform-origin:right center;
  animation:pdf-turn-prev-out .52s cubic-bezier(.22,.61,.36,1) forwards;
}
.pdf-turn-refresh .pdf-turn-ghost-refresh{
  animation:pdf-turn-refresh-out .38s ease forwards;
}
.pdf-turn-next .pdf-turn-canvas.is-turn-enter{
  animation:pdf-turn-next-in .52s cubic-bezier(.22,.61,.36,1);
}
.pdf-turn-prev .pdf-turn-canvas.is-turn-enter{
  transform-origin:right center;
  animation:pdf-turn-prev-in .52s cubic-bezier(.22,.61,.36,1);
}
.pdf-turn-refresh .pdf-turn-canvas.is-turn-enter{
  animation:pdf-turn-refresh-in .38s ease;
}
@keyframes pdf-turn-next-out{
  0%{ opacity:1; transform:rotateY(0deg) scale(1); filter:brightness(1) }
  100%{ opacity:0; transform:rotateY(-68deg) translateX(-4%); filter:brightness(.9) }
}
@keyframes pdf-turn-prev-out{
  0%{ opacity:1; transform:rotateY(0deg) scale(1); filter:brightness(1) }
  100%{ opacity:0; transform:rotateY(68deg) translateX(4%); filter:brightness(.9) }
}
@keyframes pdf-turn-next-in{
  0%{ opacity:.38; transform:translateX(2.5%) scale(.992) }
  100%{ opacity:1; transform:translateX(0) scale(1) }
}
@keyframes pdf-turn-prev-in{
  0%{ opacity:.38; transform:translateX(-2.5%) scale(.992) }
  100%{ opacity:1; transform:translateX(0) scale(1) }
}
@keyframes pdf-turn-refresh-out{
  0%{ opacity:.75 }
  100%{ opacity:0 }
}
@keyframes pdf-turn-refresh-in{
  0%{ opacity:.65; transform:scale(.996) }
  100%{ opacity:1; transform:scale(1) }
}
@media (max-width: 900px){
  .k5-carousel-shell[data-carousel-page] .k5-carousel-slide{ grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) auto; }
  .k5-carousel .k5-carousel-media{ min-height:0; border-right:none; border-bottom:1px solid var(--line) }
  .k5-carousel-shell[data-carousel-page] .k5-carousel-copy{ padding:20px; gap:10px; }
  .k5-carousel-copy .muted{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .k5-carousel-copy h2{ max-width:none }
  .k5-carousel-copy .muted{ max-width:none }
  .k5-carousel-rail{ grid-template-columns:1fr; }
  .k5-carousel-slot{ grid-template-columns:96px 1fr; grid-template-rows:none }
  .k5-carousel-slot-media{ border-bottom:none; border-right:1px solid var(--line); min-height:96px }
  .k5-carousel.k5-carousel-hero .k5-carousel-stage{ height:clamp(420px, 66vh, 620px) }
  .k5-carousel.k5-carousel-ribbon .k5-carousel-stage{ height:460px }
  .k5-carousel.k5-carousel-hero .k5-carousel-controls,
  .k5-carousel.k5-carousel-hero .k5-carousel-rail,
  .k5-carousel.k5-carousel-ribbon .k5-carousel-controls,
  .k5-carousel.k5-carousel-ribbon .k5-carousel-rail{ padding-inline:var(--s4) }
  .projects-page #grid > .card{
    grid-column:1 / -1;
    min-width:0;
  }
  .projects-page #grid .row{
    min-width:0;
  }
  .projects-page #grid h3,
  .projects-page #grid .muted{
    overflow-wrap:anywhere;
  }
}
@media (max-width: 720px){
  .k5-carousel.k5-carousel-hero{
    padding-bottom:var(--s6);
  }
  .k5-carousel.k5-carousel-hero .k5-carousel-stage{
    height:clamp(460px, 76vh, 620px);
  }
  .k5-carousel.k5-carousel-ribbon .k5-carousel-stage{
    height:460px;
  }
  .k5-carousel-copy{
    padding:18px 18px 20px;
    gap:10px;
  }
  .k5-carousel.k5-carousel-hero .k5-carousel-copy{
    padding:20px 18px 24px;
    align-content:end;
  }
  .k5-carousel.k5-carousel-hero .k5-carousel-copy h2{
    font-size:clamp(30px, 10vw, 46px);
  }
  .k5-carousel.k5-carousel-hero .k5-carousel-copy .muted{
    font-size:14px;
  }
  .k5-carousel.k5-carousel-ribbon .k5-carousel-copy h2{
    font-size:clamp(22px, 7vw, 30px);
  }
  .k5-carousel-controls{
    justify-content:center;
  }
}
@media (max-width: 560px){
  .k5-carousel-media{
    min-height:200px;
  }
  .k5-carousel.k5-carousel-hero .k5-carousel-stage{
    height:clamp(420px, 74vh, 540px);
  }
  .k5-carousel.k5-carousel-ribbon .k5-carousel-stage{
    height:460px;
  }
  .k5-carousel-slot{
    grid-template-columns:80px 1fr;
  }
  .k5-carousel-slot-media{
    min-height:80px;
  }
  .pdf-flip-nav{
    width:22%;
    min-width:56px;
  }
  .pdf-flip-nav::after{
    font-size:10px;
    letter-spacing:.14em;
  }
}

/* Shared Brands Page */
.brands-shell{ display:grid; gap:var(--s6); }
.brands-hero{ display:grid; gap:4px; }
.brands-hero-copy{ display:grid; gap:2px; max-width:18ch; }
.brands-metrics{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}
.brands-map-section{
  display:grid;
  gap:14px;
  border:1px solid var(--line);
  background:var(--bg);
  padding:18px;
}
.brands-map-summary{
  display:flex;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  align-items:center;
}
.brands-map-head{
  display:grid;
  gap:4px;
  max-width:14ch;
}
.brands-map-head h1,
.brands-map-head h2,
.brands-map-head p{ margin:0; }
.brands-map-head h1,
.brands-map-head h2{
  font-size:clamp(34px, 4vw, 56px);
  line-height:.95;
}
.brands-map-summary #brandsMapHint{
  max-width:none;
  text-align:right;
  font-size:14px;
}
#brandsWorldMap{ display:grid; position:relative; z-index:0; }
.brands-map-section .k5-map-stage{
  border-color:color-mix(in oklab, var(--line) 92%, var(--fg));
  background:color-mix(in oklab, var(--tone-1) 76%, var(--bg));
}
.brands-map-section .k5-map-stage.is-brands{
  min-height:34vh;
  max-height:400px;
}
.brands-map-section .k5-map-stage.is-brands .k5-map-canvas{
  min-height:34vh;
}
.brands-map-section .k5-map-footer{
  padding:8px 0 0;
  gap:10px;
  border:0;
  background:transparent;
}
.brands-map-section .k5-map-footer-head{
  align-items:center;
  justify-content:space-between;
}
.brands-map-section .k5-map-toolbar{
  top:16px;
  right:16px;
  left:auto;
  max-width:none;
}
.brands-map-section .k5-map-toggle{
  padding:8px 12px;
}
.brands-map-section .leaflet-control-zoom{
  margin:12px !important;
}
.brands-map-section .k5-map-stage .leaflet-container{
  background:transparent;
}
.brands-map-section .k5-map-chip-row{
  gap:10px;
  flex-wrap:nowrap;
  overflow:auto;
  padding-bottom:4px;
  scrollbar-width:thin;
}
.brands-map-section .k5-map-chip{
  padding:9px 12px;
  white-space:nowrap;
}
.brands-map-section .k5-map-statline{
  gap:12px;
}
.brands-map-section .k5-map-statline strong{
  font-size:40px;
}
.brands-map-section .k5-map-statline span{
  color:var(--muted);
}
.brands-metric{
  border:1px solid var(--line);
  background:var(--tone-1);
  padding:14px;
  display:grid;
  gap:4px;
}
.brands-metric strong{
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
}
.brands-metric .value{
  font-size:26px;
  line-height:1;
  font-weight:700;
}
.brands-toolbar{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 220px auto;
  gap:12px;
  align-items:end;
}
.brands-toolbar .field{ display:grid; gap:6px; }
.brands-toolbar label{
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.brands-summary{
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
  color:var(--muted);
  font-size:13px;
}
.brands-toolbar-actions{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.featured-brands{ display:grid; gap:var(--s4); }
.featured-brands-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}
.brand-feature-card,
.brand-directory-card{
  border:1px solid var(--line);
  background:var(--bg);
  display:grid;
  gap:14px;
  padding:18px;
}
.brand-feature-card{ background:color-mix(in oklab, var(--bg) 96%, var(--tone-1)); }
.brand-directory-card{
  cursor:pointer;
  transition:background .18s ease, border-color .18s ease;
}
.brand-directory-card:hover{ background:var(--tone-1); }
.brand-directory-card:focus-visible{
  outline:2px solid var(--fg);
  outline-offset:2px;
}
.brand-card-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.brand-mark{
  width:68px;
  height:68px;
  border:1px solid var(--line);
  background:var(--tone-1);
  display:grid;
  place-items:center;
  overflow:hidden;
  flex:0 0 auto;
}
.brand-mark img{
  width:100%;
  height:100%;
  object-fit:contain;
  background:var(--bg);
}
.brand-mark span{
  font-size:24px;
  font-weight:700;
  color:var(--muted);
}
.brand-copy{ display:grid; gap:6px; min-width:0; }
.brand-copy h2,
.brand-copy h3{
  margin:0;
  font-size:clamp(18px, 2vw, 24px);
  line-height:1.05;
}
.brand-copy p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.5;
}
.brand-meta-row,
.brand-chip-row{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.brand-chip-row .chip{ background:var(--tone-1); }
.brand-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.brands-directory{ display:grid; gap:var(--s4); }
.brands-directory-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-end;
  flex-wrap:wrap;
}
.brands-directory-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}
.brand-directory-card{ gap:12px; min-height:100%; }
.brand-directory-card .brand-card-top{ align-items:center; }
.brand-directory-card h3{ margin:0; font-size:18px; line-height:1.1; }
.brand-directory-card .brand-meta-row{ color:var(--muted); font-size:13px; }
.brand-directory-card .brand-actions{ justify-content:space-between; align-items:center; }
.brands-empty{
  border:1px dashed var(--line);
  padding:32px 20px;
  color:var(--muted);
  text-align:center;
  background:var(--tone-1);
}

/* Shared Store Page */
.store-shell{ display:grid; gap:var(--s6); }
.store-hero{
  display:grid;
  grid-template-columns:minmax(0, 1.4fr) minmax(280px, .8fr);
  gap:18px;
  align-items:stretch;
}
.store-hero-card,
.store-side-card,
.store-metric,
.store-panel,
.store-item{
  border:1px solid var(--line);
  background:var(--bg);
}
.store-hero-card,
.store-side-card,
.store-panel{ padding:18px; }
.store-panel p{ margin:0; }
.store-micro-carousel-wrap{ display:none; gap:12px; }
.store-micro-carousel-wrap.is-live{ display:grid; }
.store-micro-carousel .k5-carousel-stage{ height:280px; min-height:280px; max-height:280px; }
.store-micro-carousel .k5-carousel-copy{ padding:18px; gap:10px; }
.store-micro-carousel .k5-carousel-copy h2{
  font-size:clamp(22px, 2.4vw, 34px);
  line-height:1.02;
  max-width:12ch;
}
.store-micro-carousel .k5-carousel-copy .muted{ font-size:14px; max-width:34ch; }
.store-micro-carousel .k5-carousel-controls,
.store-micro-carousel .k5-carousel-rail{ padding-inline:0; }
.store-hero-copy{ display:grid; gap:10px; max-width:64ch; }
.store-release-bar{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:4px;
}
.store-hero-actions,
.store-filter-row,
.store-item-actions,
.store-meta-row{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.store-side-stack,
.store-copy{ display:grid; gap:12px; }
.store-metrics{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
}
.store-metric{ display:grid; gap:6px; padding:16px; }
.store-metric strong{
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
}
.store-metric .value{ font-size:28px; line-height:1; font-weight:700; }
.store-toolbar{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:12px;
  align-items:end;
}
.store-toolbar .row{ align-items:center; }
.store-toolbar .field{ display:grid; gap:6px; }
.store-toolbar label{
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.store-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}
.store-item{ display:grid; gap:12px; padding:16px; align-content:start; }
.store-item p{
  margin:0;
  color:var(--muted);
  line-height:1.55;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.store-media{
  aspect-ratio:1/1;
  background:#fff;
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:16px;
}
.store-media img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:#fff;
}
.store-summary{
  color:var(--muted);
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
}
.store-drop-grid{ display:grid; grid-template-columns:1fr; gap:18px; align-items:start; }
.store-note-strip{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.store-spotlight{
  display:grid;
  grid-template-columns:minmax(320px, .9fr) minmax(0, 1.1fr);
  gap:18px;
  align-items:stretch;
}
.store-spotlight-media{
  aspect-ratio:1/1;
  background:#fff;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid var(--line);
  padding:18px;
}
.store-spotlight-media img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:#fff;
}
.store-spotlight-copy{
  display:grid;
  gap:12px;
  border:1px solid var(--line);
  background:var(--bg);
  padding:18px;
}
.store-mini-strip{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}
.store-mini-card{
  border:1px solid var(--line);
  background:var(--tone-1);
  padding:12px;
  display:grid;
  gap:8px;
  cursor:pointer;
}
.store-mini-card.is-active{ background:var(--bg); border-color:var(--fg); }
.store-mini-card .frame{
  aspect-ratio:1/1;
  background:#fff;
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:12px;
}
.store-mini-card .frame img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:#fff;
}
.store-signup{
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(260px, .9fr);
  gap:18px;
  align-items:start;
}
.store-feature-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}
.store-feature-card{
  border:1px solid var(--line);
  background:var(--bg);
  padding:16px;
  display:grid;
  gap:12px;
}
.store-feature-card .frame{
  aspect-ratio:1/1;
  background:#fff;
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:14px;
}
.store-feature-card .frame img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:#fff;
}
.store-editorial{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(280px, .8fr);
  gap:18px;
  align-items:start;
}
.store-empty{
  border:1px dashed var(--line);
  background:var(--tone-1);
  color:var(--muted);
  text-align:center;
  padding:28px 20px;
}

/* Shared About Page */
.viewer-shell{
  position:relative;
  border:1px solid var(--line);
  background:var(--bg);
  border-radius:var(--radius);
  overflow:hidden;
  min-height:78vh;
  max-height:88vh;
  box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--line) 55%, transparent);
}
#pdfViewer{
  width:100%;
  height:auto;
  display:block;
  background:var(--bg);
  aspect-ratio:1.38/1;
}
.viewer-toolbar{
  padding-top:12px;
  border-top:1px solid var(--line);
}
.viewer-toolbar .btn{ min-width:auto; padding:10px 12px; }
.doc-meta{ font-size:.9rem; color:var(--muted); }
.loading{
  position:absolute;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  background:color-mix(in oklab, var(--bg) 35%, transparent);
}
.loading.is-active{ display:flex; }
.chip.is-active{ outline:1px solid var(--fg); }
.team-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:16px;
}
.team-card{
  border:1px solid var(--line);
  background:var(--bg);
  padding:18px;
  display:grid;
  gap:10px;
  align-content:start;
  min-width:0;
}
.team-card p{ margin:0; color:var(--muted); line-height:1.6; }
.team-meta{ display:grid; gap:6px; font-size:.95rem; min-width:0; }
.team-meta span{ color:var(--muted); min-width:0; overflow-wrap:anywhere; }
.chip-row{ display:flex; flex-wrap:wrap; gap:8px; }
.doc-focus{
  display:grid;
  gap:8px;
  padding:0 0 4px;
  background:transparent;
  border:none;
}
.doc-focus-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  flex-wrap:wrap;
}
.doc-focus-meta{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.doc-focus-meta .chip{ background:var(--bg); }
.doc-focus p{ margin:0; color:var(--muted); line-height:1.6; }
.doc-focus-head > .stack{ gap:4px; }
.doc-focus-head strong{
  font-size:clamp(1.1rem, 1.3vw, 1.35rem);
  line-height:1.2;
}
.doc-feature-grid{ display:grid; grid-template-columns:1fr; gap:12px; }
.doc-feature-card{
  border:1px solid var(--line);
  background:var(--bg);
  padding:16px;
  display:grid;
  gap:10px;
  align-content:start;
}
.doc-feature-card strong{ font-size:14px; }
.doc-feature-card p{ margin:0; color:var(--muted); line-height:1.55; }
.doc-feature-card .row{ flex-wrap:wrap; }
.doc-card.is-current{ border-color:var(--fg); background:var(--tone-1); }
.about-viewer-shell{ display:grid; gap:var(--s5); }
.doc-library-stack{ display:grid; gap:12px; }
.doc-library-stack .section-caption{
  padding-bottom:4px;
  border-bottom:1px solid var(--line);
}
.about-layout{ display:grid; gap:var(--s5); }
.about-bento{
  display:grid;
  grid-template-columns:repeat(12, minmax(0, 1fr));
  gap:var(--s4);
  align-items:start;
}
.about-bento-card{
  border:1px solid var(--line);
  background:color-mix(in oklab, var(--bg) 96%, var(--tone-1));
  padding:18px;
  display:grid;
  gap:10px;
  align-content:start;
}
.about-explorer{
  padding:0;
  overflow:hidden;
}
.about-bento-card p{ margin:0; color:var(--muted); line-height:1.6; }
.about-bento-card--feature{ grid-column:span 6; }
.about-bento-card--studio{ grid-column:span 3; }
.about-bento-card--library{ grid-column:span 3; }
.about-bento-card--stats{ grid-column:span 12; display:grid; gap:12px; align-content:start; }
.about-mini-stats{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}
.about-mini-stat{
  border:1px solid var(--line);
  background:var(--bg);
  padding:14px;
  display:grid;
  gap:6px;
}
.about-mini-stat strong{
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
}
.about-mini-stat .value{ font-size:24px; font-weight:700; line-height:1; }
.about-bento-actions{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.about-bento-card .section-caption{
  padding-bottom:6px;
  border-bottom:1px solid var(--line);
}
.about-explorer > summary,
.about-library-toggle > summary,
.about-team-toggle > summary{
  list-style:none;
  cursor:pointer;
  padding:18px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.about-explorer > summary::-webkit-details-marker,
.about-library-toggle > summary::-webkit-details-marker,
.about-team-toggle > summary::-webkit-details-marker{ display:none; }
.about-explorer > summary::after,
.about-library-toggle > summary::after,
.about-team-toggle > summary::after{
  content:'+';
  color:var(--muted);
  font-weight:700;
  font-size:20px;
  line-height:1;
}
.about-explorer[open] > summary::after,
.about-library-toggle[open] > summary::after,
.about-team-toggle[open] > summary::after{ content:'−'; }
.about-explorer-body,
.about-library-body,
.about-team-body{
  padding:0 18px 18px;
  display:grid;
  gap:12px;
}
.about-explorer-body p,
.about-library-body p,
.about-team-body p{ margin:0; }
.about-main-grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:var(--s5);
  align-items:stretch;
}
.about-content-stack,
.about-sidebar-stack{
  display:grid;
  gap:var(--s5);
  align-content:start;
}
.about-sidebar-stack{ height:auto; }
.about-team-section{ display:grid; gap:var(--s4); margin-top:var(--s5); }
.about-panel{
  border:1px solid var(--line);
  background:color-mix(in oklab, var(--bg) 97%, var(--tone-1));
  padding:var(--s5);
  display:grid;
  gap:var(--s4);
  align-content:start;
}
.about-sidebar-stack > .about-panel{ min-height:auto; }
.about-panel .section-caption{
  padding-bottom:6px;
  border-bottom:1px solid var(--line);
}
.about-viewer-card{
  border:1px solid var(--line);
  background:color-mix(in oklab, var(--bg) 97%, var(--tone-1));
  padding:var(--s5);
  display:grid;
  gap:var(--s4);
}
.about-viewer-card .section-caption{
  padding-bottom:6px;
  border-bottom:1px solid var(--line);
}
.about-doc-actions{ display:grid; gap:12px; }
.about-doc-actions-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.about-rail-stack{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  align-content:start;
}
.about-sidebar-stack{ grid-auto-rows:min-content; }
.about-rail-card{
  border:1px solid var(--line);
  background:var(--bg);
  padding:16px;
  display:grid;
  gap:10px;
}
.about-rail-card p{ margin:0; color:var(--muted); line-height:1.55; }
.about-doc-library-card{
  border:1px solid var(--line);
  background:color-mix(in oklab, var(--bg) 97%, var(--tone-1));
  padding:0;
  display:grid;
  gap:12px;
}
#docGrid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
  align-items:start;
}
.doc-card{
  min-width:0;
  padding:16px;
  display:grid;
  gap:12px;
  align-content:start;
}
.doc-card strong{ line-height:1.3; overflow-wrap:anywhere; }
.doc-card .doc-meta{ line-height:1.5; overflow-wrap:anywhere; }
.doc-card-actions{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.about-library-grid{
  display:grid;
  grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr);
  gap:var(--s5);
  align-items:start;
}
.about-library-intro{
  border:1px solid var(--line);
  background:var(--bg);
  padding:16px;
  display:grid;
  gap:10px;
  align-content:start;
}
.about-library-intro p{ margin:0; color:var(--muted); line-height:1.6; }
.about-team-shell{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  align-items:start;
}
.about-team-section .about-team-shell,
.about-team-section .about-team-card{ grid-column:1 / -1; }
.about-team-stack{ display:grid; gap:12px; align-content:start; }
.about-team-note{
  border:1px solid var(--line);
  background:var(--bg);
  padding:16px;
  display:grid;
  gap:10px;
  align-content:start;
}
.about-team-note p{ margin:0; color:var(--muted); line-height:1.55; }
.about-doc-library-card .section-caption,
.about-team-card .section-caption{
  padding-bottom:6px;
  border-bottom:1px solid var(--line);
}
.about-team-card{
  border:1px solid var(--line);
  background:color-mix(in oklab, var(--bg) 97%, var(--tone-1));
  padding:0;
  display:grid;
  gap:var(--s4);
}
.about-team-card .section-caption span{ line-height:1.55; }
.about-rail-toggle,
.doc-feature-toggle,
.doc-card-toggle{
  border:1px solid var(--line);
  background:var(--bg);
}
.about-rail-toggle summary,
.doc-feature-toggle summary,
.doc-card-toggle summary{
  list-style:none;
  cursor:pointer;
  padding:16px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.about-rail-toggle summary::-webkit-details-marker,
.doc-feature-toggle summary::-webkit-details-marker,
.doc-card-toggle summary::-webkit-details-marker{ display:none; }
.about-rail-toggle summary::after,
.doc-feature-toggle summary::after,
.doc-card-toggle summary::after{
  content:'+';
  color:var(--muted);
  font-weight:700;
}
.about-rail-toggle[open] summary::after,
.doc-feature-toggle[open] summary::after,
.doc-card-toggle[open] summary::after{ content:'−'; }
.about-rail-toggle .about-rail-body,
.doc-feature-toggle .doc-feature-body,
.doc-card-toggle .doc-card-body{
  padding:0 16px 16px;
  display:grid;
  gap:10px;
}
.doc-card-toggle.is-current{
  border-color:var(--fg);
  background:var(--tone-1);
}
.surface-pad{ padding:var(--s5); }
.topline-summary{
  padding-top:14px;
  border-top:1px solid var(--line);
  margin-top:14px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:baseline;
}
.title-reset{ margin:0; }
.input-compact{ max-width:260px; }
.items-center{ align-items:center; }
.items-baseline{ align-items:baseline; }
.wrap{ flex-wrap:wrap; }
.grid-span-full{ grid-column:1 / -1; }
.stack-tight{ gap:8px; }
.surface-inline{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
}

@media (max-width: 1080px){
  .brands-hero,
  .brands-toolbar,
  .featured-brands-grid,
  .brands-directory-grid,
  .store-hero,
  .store-drop-grid,
  .store-spotlight,
  .store-feature-grid,
  .store-editorial,
  .store-signup,
  .store-toolbar,
  .store-grid{ grid-template-columns:1fr; }
  .brands-metrics,
  .store-metrics{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .brands-map-section .k5-map-stage.is-brands,
  .brands-map-section .k5-map-stage.is-brands .k5-map-canvas{ min-height:42vh; }
  .brands-map-summary #brandsMapHint{ text-align:left; max-width:none; }
  .store-mini-strip{ grid-template-columns:1fr; }
  .about-bento{ grid-template-columns:repeat(6, minmax(0, 1fr)); }
  .about-bento-card--feature{ grid-column:span 6; }
  .about-bento-card--studio,
  .about-bento-card--library{ grid-column:span 3; }
  .about-bento-card--stats{ grid-column:span 6; }
  .about-library-grid{ grid-template-columns:1fr; }
  .about-rail-stack{ grid-template-columns:1fr; }
  .team-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .about-team-shell{ grid-template-columns:1fr; }
  #docGrid{ grid-template-columns:1fr; }
  .about-explorer > summary,
  .about-library-toggle > summary,
  .about-team-toggle > summary,
  .about-explorer-body,
  .about-library-body,
  .about-team-body{
    padding-left:16px;
    padding-right:16px;
  }
}
@media (max-width: 768px){
  .brands-map-section{ padding:16px; }
  .brands-map-head{ max-width:none; }
  .brands-map-section .k5-map-stage.is-brands,
  .brands-map-section .k5-map-stage.is-brands .k5-map-canvas{ min-height:28vh; }
  .viewer-shell{
    min-height:58vh;
    max-height:72vh;
  }
  .about-bento,
  .about-mini-stats,
  .about-doc-actions-grid,
  .about-library-grid,
  .team-grid,
  .doc-feature-grid{ grid-template-columns:1fr; }
  .about-bento-card--feature,
  .about-bento-card--studio,
  .about-bento-card--library,
  .about-bento-card--stats{ grid-column:auto; }
  .team-card,
  .doc-card{ padding:16px; }
  .team-grid,
  .brands-metrics,
  .store-metrics{ grid-template-columns:1fr; }
}

.service-hero-toggle{ padding:0; }
.service-hero-toggle summary{ list-style:none; cursor:pointer; padding:16px; display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.service-hero-toggle summary::-webkit-details-marker{ display:none; }
.service-hero-toggle summary::after{ content:"+"; color:var(--muted); font-weight:700; font-size:18px; line-height:1; }
.service-hero-toggle[open] summary::after{ content:"−"; }
.service-hero-toggle > :not(summary){ padding:0 16px 16px; display:grid; gap:10px; }
.store-copy{ display:grid; gap:10px; }
.store-copy strong{ line-height:1.25; }
.store-note-strip .chip{ background:var(--tone-1); }


:root[data-theme="dark"] .brands-map-section,
:root[data-theme="dark"] .brands-metric,
:root[data-theme="dark"] .brand-feature-card,
:root[data-theme="dark"] .brand-directory-card{
  background:color-mix(in oklab, var(--panel-strong) 88%, var(--bg));
  border-color:color-mix(in oklab, var(--line) 92%, var(--fg));
}
:root[data-theme="dark"] .brand-mark,
:root[data-theme="dark"] .brand-chip-row .chip,
:root[data-theme="dark"] .brands-map-section .k5-map-chip{
  background:var(--tone-2);
  border-color:color-mix(in oklab, var(--line) 88%, var(--fg));
}
:root[data-theme="dark"] .brands-map-section .k5-map-stage{
  background:color-mix(in oklab, var(--tone-2) 78%, var(--bg));
}
:root[data-theme="dark"] .brands-summary,
:root[data-theme="dark"] .brand-copy p,
:root[data-theme="dark"] .brand-directory-card .brand-meta-row{
  color:var(--muted);
}

.theme-switcher{display:none !important;}

/* Keep binary choices usable for touch, tremor, low vision, and attention needs. */
input[type="checkbox"],
input[type="radio"]{
  inline-size:24px;
  block-size:24px;
  min-inline-size:24px;
  min-block-size:24px;
  margin:0;
  vertical-align:middle;
}
