/* Layout: bridal-house editorial — full-bleed photography, centred wide-tracked logo, one light geometric sans in uppercase, black on white, portrait image grids */
:root {
  /* brand: espresso and cream from the Étincelle logo */
  --bg: #f8f4ef;
  --soft: #ede5db;
  --fg: #2f261f;
  --muted: #7d6e61;
  --line: #ddd2c4;
  --invert-bg: #2f261f;
  --invert-fg: #ede5db;
  --sans: "Jost", "Futura", "Century Gothic", "Helvetica Neue", Arial, sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #2f261f; --soft: #3a3029; --fg: #ede5db; --muted: #b4a697; --line: #4b4037;
    --invert-bg: #ddd2c4; --invert-fg: #2f261f;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #2f261f; --soft: #3a3029; --fg: #ede5db; --muted: #b4a697; --line: #4b4037;
  --invert-bg: #ddd2c4; --invert-fg: #2f261f;
  color-scheme: dark;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
body { background: var(--bg); color: var(--fg); font: 300 16px/1.7 var(--sans); }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 30; background: var(--invert-bg); }
img { display: block; max-width: 100%; height: auto; }
p { margin: 0; }
a { color: inherit; text-decoration: none; }
h1, h2, h3 { margin: 0; font-weight: 300; text-transform: uppercase; letter-spacing: .12em; line-height: 1.25; text-wrap: balance; }
h2 { font-size: clamp(1.4rem, 2.6vw, 2rem); }
:focus-visible { outline: 1px solid var(--fg); outline-offset: 4px; }

.wrap {
  max-width: 1320px; margin: 0 auto;
  padding-left: max(16px, env(safe-area-inset-left, 0px));
  padding-right: max(16px, env(safe-area-inset-right, 0px));
}
.label { font-size: .72rem; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; }
.muted { color: var(--muted); }
.center { text-align: center; }
.link { display: inline-block; font-size: .72rem; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; padding-bottom: .35em; border-bottom: 1px solid currentColor; background: none; border-top: 0; border-left: 0; border-right: 0; color: inherit; cursor: pointer; font-family: var(--sans); }
.link:hover { opacity: .6; }
.btn { display: inline-block; font: 400 .72rem/1 var(--sans); letter-spacing: .22em; text-transform: uppercase; padding: 1.35em 2.6em; background: var(--invert-bg); color: var(--invert-fg); border: 1px solid var(--invert-bg); cursor: pointer; }
.btn:hover { opacity: .85; }

/* announcement */
.announce { background: var(--invert-bg); color: var(--invert-fg); }
.announce .wrap { padding-block: .6rem; text-align: center; font-size: .66rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 400; }

/* header */
header.top { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20; background: var(--bg); border-bottom: 1px solid var(--line); }
header.top .wrap { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding-block: 1.3rem; gap: 1rem; }
header nav { display: flex; gap: 2rem; align-items: center; }
header nav.right { justify-content: flex-end; }
header nav a, .cart-btn, .menu-btn { font: 400 .7rem var(--sans); letter-spacing: .2em; text-transform: uppercase; background: none; border: 0; color: var(--fg); cursor: pointer; padding: 0; }
header nav a:hover { opacity: .6; }
.logo { display: block; justify-self: center; color: var(--fg); }
/* own logo, drawn through a mask so it takes the text colour: black on light, white in dark mode and in the footer */
.logo-mark { --logo: url("data:image/png;base64,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"); display: block; width: clamp(150px, 16vw, 210px); aspect-ratio: 720 / 204; max-width: 100%; background: currentColor; -webkit-mask: var(--logo) center / contain no-repeat; mask: var(--logo) center / contain no-repeat; }
.menu-btn { display: none; justify-self: start; }
.mobile-nav { border-top: 1px solid var(--line); }
.mobile-nav .wrap { display: grid; gap: 1.1rem; padding-block: 1.4rem; }
.mobile-nav a { font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 400; }
@media (max-width: 1000px) {
  header nav.left, header nav.right .hide-sm { display: none; }
  .menu-btn { display: block; }
}

/* hero: white text in both themes, over a soft dark fade at the bottom of the photo so it stays readable */
.hero { position: relative; min-height: clamp(540px, 86vh, 940px); background: #6b5d51 url("hero-training-zoom.jpg") 50% center / cover no-repeat; display: flex; align-items: center; justify-content: center; color: #f8f4ef; }
.hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 70% 60% at 50% 50%, rgb(47 38 31 / .42), rgb(47 38 31 / .2) 70%, rgb(47 38 31 / .12)); }
.hero h1, .hero .label { text-shadow: 0 1px 18px rgb(47 38 31 / .18); }
.hero .inner { position: relative; text-align: center; padding: 3rem max(16px, env(safe-area-inset-right, 0px)) 3rem max(16px, env(safe-area-inset-left, 0px)); }
.hero h1 { font-size: clamp(1.9rem, 4.6vw, 3.6rem); letter-spacing: .14em; max-width: 18ch; margin: .9rem auto 0; }
.hero .link { margin-top: 2rem; }
@media (max-width: 640px) { .hero { background-position: 42% center; } }

/* two collection tiles */
.tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding-top: 6px; }
.tile { display: block; }
.tile img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.tile .cap { text-align: center; padding-block: 1.6rem 2.4rem; display: grid; gap: .7rem; justify-items: center; }
.tile:hover img { opacity: .92; }
.tiles.single { grid-template-columns: minmax(0, 560px); justify-content: center; padding: 1rem max(16px, env(safe-area-inset-right, 0px)) 0 max(16px, env(safe-area-inset-left, 0px)); }
@media (max-width: 640px) { .tiles { grid-template-columns: 1fr; gap: 2.5rem; } }

section { padding-block: 7rem; }
/* alternate bands: soft grey-white sections between white ones, so the page reads in calm blocks */
.band { background: var(--soft); }
.sec-title { text-align: center; display: grid; gap: 1rem; justify-items: center; margin-bottom: 3.5rem; }
.sec-title p { max-width: 34rem; color: var(--muted); }

.statement p { font-size: clamp(1.2rem, 2.2vw, 1.6rem); line-height: 1.6; text-align: center; max-width: 40ch; margin: 0 auto; letter-spacing: .02em; }

/* courses */
.courses { max-width: 980px; margin: 0 auto; list-style: none; padding: 0; border-top: 1px solid var(--line); }
.course { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto auto; gap: 1.5rem; align-items: center; padding-block: 1.8rem; border-bottom: 1px solid var(--line); }
.course h3 { font-size: 1rem; letter-spacing: .18em; font-weight: 400; }
.course h3 small { display: block; text-transform: none; letter-spacing: .01em; font-size: .92rem; font-weight: 300; color: var(--muted); margin-top: .35rem; }
.course .meta { font-size: .85rem; color: var(--muted); }
.course .price { font-size: 1rem; letter-spacing: .08em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tag { display: inline-block; margin-left: .8rem; font-size: .58rem; letter-spacing: .2em; border: 1px solid var(--line); padding: .25em .6em; vertical-align: middle; color: var(--muted); }
@media (max-width: 760px) { .course { grid-template-columns: 1fr auto; } .course .meta { grid-column: 1 / -1; order: 3; } .course .link { grid-column: 1 / -1; order: 4; justify-self: start; } }
.included { text-align: center; color: var(--muted); font-size: .9rem; margin-top: 2rem; }

/* marketing pillars */
.pillars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem; max-width: 1100px; margin: 0 auto; }
.pillar { text-align: center; display: grid; gap: .8rem; justify-items: center; align-content: start; padding-top: 1.6rem; border-top: 1px solid var(--line); }
.pillar h3 { font-size: .85rem; letter-spacing: .2em; font-weight: 400; }
.pillar p { color: var(--muted); font-size: .92rem; max-width: 26ch; }
@media (max-width: 860px) { .pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 460px) { .pillars { grid-template-columns: 1fr; } }

/* what's included */
.incl { max-width: 980px; margin: 4rem auto 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 2rem 4rem; padding-top: 2.4rem; border-top: 1px solid var(--line); }
.incl ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 2.5rem; }
.incl li { padding-left: 1.4rem; position: relative; }
.incl li::before { content: ""; position: absolute; left: 0; top: .78em; width: .55rem; height: 1px; background: var(--fg); }
.incl .pay { grid-column: 2; color: var(--muted); font-size: .92rem; }
@media (max-width: 760px) { .incl { grid-template-columns: 1fr; } .incl ul { grid-template-columns: 1fr; } .incl .pay { grid-column: 1; } }

/* studio split */
.studio { background: var(--soft); }
.studio .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 7vw, 7rem); align-items: center; }
.studio img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.studio .copy { display: grid; gap: 1.3rem; max-width: 30rem; }
.studio .copy p { color: var(--muted); }
.facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1.4rem; padding-top: 1.6rem; border-top: 1px solid var(--line); }
.facts b { display: block; font-weight: 300; font-size: 1.5rem; letter-spacing: .06em; }
.facts span { font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); font-weight: 400; }
@media (max-width: 820px) { .studio .wrap { grid-template-columns: 1fr; } }

/* steps */
.steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem; counter-reset: s; }
.step { counter-increment: s; text-align: center; display: grid; gap: .8rem; justify-items: center; }
.step::before { content: counter(s, decimal-leading-zero); font-size: .72rem; letter-spacing: .2em; color: var(--muted); font-weight: 400; }
.step h3 { font-size: .85rem; letter-spacing: .2em; font-weight: 400; }
.step p { color: var(--muted); font-size: .92rem; max-width: 26ch; }
@media (max-width: 860px) { .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 460px) { .steps { grid-template-columns: 1fr; } }

/* shop */
#webshop { border-top: 1px solid var(--line); }
.filters { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem 2rem; margin: -1.5rem 0 3rem; }
.filters button { font: 400 .7rem var(--sans); letter-spacing: .2em; text-transform: uppercase; background: none; border: 0; border-bottom: 1px solid transparent; padding: .3em 0; color: var(--muted); cursor: pointer; }
.filters button[aria-pressed="true"] { color: var(--fg); border-bottom-color: var(--fg); }
.grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.6rem 1.2rem; max-width: 1000px; margin: 0 auto; }
@media (max-width: 980px) { .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.product { display: grid; gap: .45rem; text-align: center; min-width: 0; }
.product .ph { position: relative; background: var(--soft); }
.product .ph img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.product .add { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; font: 400 .66rem var(--sans); letter-spacing: .2em; text-transform: uppercase; padding: 1.1em; background: rgb(248 244 239 / .94); color: #2f261f; border: 0; cursor: pointer; opacity: 0; transition: opacity .2s; }
.product:hover .add, .product .add:focus-visible { opacity: 1; }
@media (hover: none) { .product .add { opacity: 1; } }
.product h3 { font-size: .74rem; letter-spacing: .18em; font-weight: 400; margin-top: .9rem; padding-inline: .4rem; }
.product .spec { font-size: .8rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.product .p { font-size: .85rem; letter-spacing: .06em; font-variant-numeric: tabular-nums; }
.pro-note { text-align: center; margin-top: 4rem; color: var(--muted); font-size: .9rem; }

/* certified students */
.alumni { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.alumni figure { margin: 0; display: grid; gap: .9rem; text-align: center; min-width: 0; }
.alumni img, .alumni .ph-empty { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.alumni .ph-empty { display: grid; place-items: center; background: var(--soft); color: var(--muted); font-size: .66rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 400; border: 1px dashed var(--line); }
.alumni figcaption { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 400; }
.alumni figcaption span { display: block; color: var(--muted); margin-top: .25rem; }
@media (max-width: 760px) { .alumni { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 6px; } }

/* reviews */
.quotes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem; max-width: 1100px; margin: 0 auto; }
.quotes blockquote { margin: 0; text-align: center; display: grid; gap: 1rem; }
.quotes p { font-size: 1.08rem; line-height: 1.7; }
.quotes cite { font-style: normal; font-size: .66rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); font-weight: 400; }
@media (max-width: 820px) { .quotes { grid-template-columns: 1fr; } }

/* faq */
#faq { background: var(--soft); }
.faq { max-width: 760px; margin: 0 auto; border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); padding-block: 1.3rem; }
.faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 400; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-weight: 300; font-size: 1rem; line-height: 1; }
.faq details[open] summary::after { content: "−"; }
.faq details p { margin-top: .9rem; color: var(--muted); max-width: 62ch; }

/* signup */
.signup { max-width: 760px; margin: 0 auto; }
form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.8rem 1.6rem; }
form .full { grid-column: 1 / -1; }
@media (max-width: 560px) { form { grid-template-columns: 1fr; } }
label { display: grid; gap: .4rem; font-size: .64rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); font-weight: 400; }
input, select, textarea { font: 300 1rem var(--sans); color: var(--fg); background: transparent; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: .6em 0; width: 100%; }
input:focus, select:focus, textarea:focus { outline: none; border-bottom-color: var(--fg); }
textarea { min-height: 90px; resize: vertical; }
.submit-row { text-align: center; }
.form-msg { grid-column: 1 / -1; text-align: center; font-size: .9rem; }
.contact-lines { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 2.5rem; margin-top: 3.5rem; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); font-weight: 400; }

/* footer */
footer { background: var(--invert-bg); color: var(--invert-fg); }
footer .wrap { padding-block: 5rem 2rem; display: grid; gap: 3.5rem; }
footer .logo { color: inherit; justify-self: center; }
.foot-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; }
.foot-cols div { display: grid; gap: .7rem; align-content: start; }
.foot-cols h4 { margin: 0 0 .4rem; font-size: .66rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 400; opacity: .6; }
.foot-cols a, .foot-cols span { font-size: .9rem; }
.news { display: flex; border-bottom: 1px solid currentColor; }
.news input { border: 0; color: inherit; padding: .7em 0; }
.news input::placeholder { color: inherit; opacity: .55; }
.news button { background: none; border: 0; color: inherit; font: 400 .66rem var(--sans); letter-spacing: .2em; text-transform: uppercase; cursor: pointer; }
.legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; font-size: .72rem; opacity: .6; border-top: 1px solid color-mix(in srgb, currentColor 25%, transparent); padding-top: 1.6rem; }
@media (max-width: 820px) { .foot-cols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 460px) { .foot-cols { grid-template-columns: 1fr; } }

/* cart drawer */
.scrim { position: fixed; inset: 0; background: rgb(47 38 31 / .35); z-index: 40; }
.drawer { position: fixed; top: 0; right: 0; bottom: 0; z-index: 50; width: min(420px, 100%); background: var(--bg); display: flex; flex-direction: column;
  padding: calc(1.8rem + env(safe-area-inset-top, 0px)) max(1.6rem, env(safe-area-inset-right, 0px)) calc(1.6rem + env(safe-area-inset-bottom, 0px)) 1.6rem; }
.drawer header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.6rem; }
.drawer h2 { font-size: .9rem; letter-spacing: .22em; font-weight: 400; }
.x { background: none; border: 0; color: var(--fg); font-size: 1.4rem; cursor: pointer; line-height: 1; font-weight: 300; }
.lines { flex: 1; overflow-y: auto; display: grid; align-content: start; gap: 1.2rem; }
.line { display: grid; grid-template-columns: 64px 1fr auto; gap: .2rem 1rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); align-items: start; }
.line img { grid-row: span 3; width: 64px; aspect-ratio: 4 / 5; object-fit: cover; }
.line strong { font-weight: 400; font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; }
.line .s { font-size: .8rem; color: var(--muted); grid-column: 2; }
.qty { grid-column: 2; display: flex; align-items: center; gap: .7rem; font-size: .85rem; }
.qty button { width: 1.7rem; height: 1.7rem; border: 1px solid var(--line); background: none; color: var(--fg); cursor: pointer; }
.empty { color: var(--muted); }
.totals { border-top: 1px solid var(--fg); padding-top: 1.2rem; display: grid; gap: .5rem; font-size: .9rem; }
.totals div { display: flex; justify-content: space-between; font-variant-numeric: tabular-nums; }
.totals .sum { font-weight: 400; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; }
.totals .btn { margin-top: 1rem; width: 100%; }
.checkout-msg { font-size: .82rem; color: var(--muted); text-align: center; }

.toast { position: fixed; left: 50%; bottom: calc(1.4rem + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); background: var(--invert-bg); color: var(--invert-fg); padding: .9em 1.6em; font-size: .66rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 400; z-index: 60; white-space: nowrap; }

/* academie dropdown: opens on hover, keyboard focus and tap */
.dd { position: relative; display: flex; align-items: center; }
.dd > a::after { content: ""; display: inline-block; width: .38em; height: .38em; margin-left: .55em; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-.2em) rotate(45deg); }
.dd-menu { position: absolute; left: -1.4rem; top: 100%; padding-top: 1.35rem; min-width: 15rem; visibility: hidden; opacity: 0; transition: opacity .15s; z-index: 25; }
.dd-menu div { display: grid; gap: .95rem; padding: 1.4rem; background: var(--bg); border: 1px solid var(--line); }
.dd:hover .dd-menu, .dd:focus-within .dd-menu, .dd.open .dd-menu { visibility: visible; opacity: 1; }
.dd-menu a { white-space: nowrap; }
.mobile-nav .sub { padding-left: 1rem; color: var(--muted); font-size: .7rem; }

/* student gallery page */
.alumni.wide { gap: 2.4rem 6px; }
.more { text-align: center; margin-top: 3.5rem; }
.page-head { padding-block: 5rem 3rem; }
.back { display: inline-block; margin-bottom: 2.5rem; }

/* chat assistant */
.chat { position: fixed; z-index: 35; right: max(16px, env(safe-area-inset-right, 0px)); bottom: calc(16px + env(safe-area-inset-bottom, 0px)); display: grid; justify-items: end; gap: .8rem; }
.chat-fab { display: inline-flex; align-items: center; gap: .7em; font: 400 .7rem var(--sans); letter-spacing: .2em; text-transform: uppercase; padding: 1.15em 1.6em; background: var(--invert-bg); color: var(--invert-fg); border: 0; cursor: pointer; box-shadow: 0 8px 28px rgb(47 38 31 / .14); }
.chat-fab:hover { opacity: .9; }
.chat-fab-dot { width: .5em; height: .5em; border-radius: 50%; background: currentColor; opacity: .7; }
.chat.is-open .chat-fab { display: none; }
.chat-panel { padding-block: 0; background: var(--soft) !important; width: min(380px, calc(100vw - 32px)); height: min(580px, calc(100vh - 48px)); display: flex; flex-direction: column; background: var(--bg); border: 1px solid var(--line); box-shadow: 0 18px 50px rgb(47 38 31 / .16); }
.chat-head { display: flex; justify-content: space-between; align-items: start; gap: 1rem; padding: 1.2rem 1.3rem; background: var(--invert-bg); color: var(--invert-fg); }
.chat-title { font-size: .74rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 400; }
.chat-sub { font-size: .8rem; opacity: .65; margin-top: .2rem; }
.chat-x { background: none; border: 0; color: inherit; font-size: 1.4rem; line-height: 1; cursor: pointer; font-weight: 300; }
.chat-log { flex: 1; overflow-y: auto; padding: 1.2rem 1.3rem; display: grid; align-content: start; gap: .8rem; background: var(--soft); }
.chat-msg { max-width: 85%; padding: .75em 1em; font-size: .9rem; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.chat-msg.bot { justify-self: start; background: var(--bg); border: 1px solid var(--line); }
.chat-msg.user { justify-self: end; background: var(--invert-bg); color: var(--invert-fg); }
.chat-msg.pending { color: var(--muted); }
.chat-chips { display: flex; flex-wrap: wrap; gap: .45rem; padding: .9rem 1.3rem 0; background: var(--soft); }
.chat-chips button { font: 300 .8rem var(--sans); padding: .5em .9em; background: var(--bg); color: var(--fg); border: 1px solid var(--line); cursor: pointer; text-align: left; }
.chat-chips button:hover { border-color: var(--fg); }
.chat-form { display: flex; gap: .6rem; padding: .9rem 1.3rem; border-top: 1px solid var(--line); background: var(--soft); }
.chat-form input { flex: 1; min-width: 0; border: 0; border-bottom: 1px solid var(--line); padding: .55em 0; }
.chat-send { font: 400 .66rem var(--sans); letter-spacing: .2em; text-transform: uppercase; background: var(--invert-bg); color: var(--invert-fg); border: 0; padding: 0 1.1em; cursor: pointer; }
.chat-send:disabled { opacity: .4; cursor: default; }
.chat-foot { font-size: .74rem; color: var(--muted); padding: .7rem 1.3rem .9rem; background: var(--soft); }
.chat-foot a { text-decoration: underline; }


/* over ons: an editorial story page */
.about-head h1 { font-size: clamp(1.9rem, 4.4vw, 3.4rem); letter-spacing: .1em; max-width: 20ch; margin-inline: auto; }
.about-head .lead { font-size: clamp(1.05rem, 1.6vw, 1.2rem); color: var(--muted); max-width: 36rem; margin: 1.4rem auto 0; }
.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; text-align: center; max-width: 1100px; margin: 0 auto; }
.stats b { display: block; font-weight: 300; font-size: clamp(2rem, 4vw, 3rem); letter-spacing: .04em; line-height: 1.1; }
.stats span { display: block; margin-top: .7rem; font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); font-weight: 400; }
@media (max-width: 760px) { .stats { grid-template-columns: 1fr 1fr; gap: 2.6rem 1.5rem; } }
.story { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; max-width: 1160px; margin: 0 auto; }
.story figure { margin: 0; position: sticky; top: 9rem; }
.story img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.story figcaption { margin-top: .8rem; font-size: .66rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.story .text { display: grid; gap: 1.4rem; max-width: 36rem; }
.story .text p { font-size: 1.06rem; line-height: 1.85; }
.story .text p.open { font-size: clamp(1.2rem, 2vw, 1.45rem); line-height: 1.6; }
.pull { margin: 1.2rem 0; padding: 1.6rem 0; border-top: 1px solid var(--fg); border-bottom: 1px solid var(--line); font-size: clamp(1.25rem, 2.2vw, 1.6rem); line-height: 1.45; letter-spacing: .02em; }
@media (max-width: 820px) { .story { grid-template-columns: 1fr; } .story figure { position: static; } }
.pillars.three { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1000px; }
@media (max-width: 760px) { .pillars.three { grid-template-columns: 1fr; } }
.closing { max-width: 40rem; margin: 0 auto; text-align: center; display: grid; gap: 1.4rem; justify-items: center; }
.closing p { font-size: clamp(1.15rem, 2vw, 1.4rem); line-height: 1.6; }
.closing .sig { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }
.closing .sig b { display: block; font-weight: 400; color: var(--fg); font-size: .9rem; margin-bottom: .3rem; }
.closing p.label { font-size: .72rem; line-height: 1.7; }

/* business module callout under the course list */
.biz { max-width: 980px; margin: 3rem auto 0; padding: 2.6rem clamp(1.4rem, 4vw, 3rem); background: var(--bg); border: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 2rem 3.5rem; align-items: center; }
.biz h3 { font-size: clamp(1.05rem, 2vw, 1.35rem); letter-spacing: .14em; font-weight: 300; margin-top: .7rem; }
.biz .intro p { color: var(--muted); margin-top: 1rem; font-size: .95rem; }
.biz ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1.3rem 2rem; }
.biz li b { display: block; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 400; }
.biz li span { display: block; color: var(--muted); font-size: .88rem; margin-top: .3rem; line-height: 1.5; }
.biz .link { margin-top: 1.4rem; }
@media (max-width: 760px) { .biz { grid-template-columns: 1fr; } .biz ul { grid-template-columns: 1fr; } }
.biz .intro p.label { font-size: .72rem; margin-top: 0; }

header nav a, .dd > a { white-space: nowrap; }
@media (max-width: 1180px) { header nav { gap: 1.3rem; } }
