/* ============================================================
   MASTERS CLUB — Editorial landing
   Norbekov Design System · Unbounded + Manrope
   ============================================================ */

@font-face {
  font-family: "Unbounded";
  src: url("fonts/Unbounded-Variable.ttf") format("truetype");
  font-weight: 200 900;
  font-display: swap;
}
@font-face {
  font-family: "Manrope";
  src: url("fonts/Manrope-Variable.ttf") format("truetype");
  font-weight: 200 800;
  font-display: swap;
}

:root {
  --paper:   #F1EDE4;   /* warm cream background            */
  --paper-2: #ECE7DC;   /* slightly deeper panel            */
  --ink:     #14213D;   /* brand navy — text / lines        */
  --ink-2:   #4D5366;   /* muted navy-grey body             */
  --ink-3:   #8A8F9E;   /* faint captions                   */
  --blue:    #FCA311;   /* gold accent — underlines & hero numbers */
  --red:     #14213D;   /* quiet navy — squares, bullets, marks     */
  --line:    #14213D;   /* hard rule colour                 */

  /* brand fonts: Manrope for technical labels, Unbounded for display */
  --mono: "Manrope", "Helvetica Neue", Arial, sans-serif;
  --grot: "Unbounded", "Helvetica Neue", Arial, sans-serif;

  --maxw: 1320px;
  --pad: 40px;

  /* ----------------------------------------------------------
     TYPE SCALE  —  editorial modular scale.
     The Hero H1 (--fs-hero, max 54px) is the ceiling: nothing
     on the page is larger. Display numbers sit just beneath it,
     then section headings, titles, subheads, body, captions.
     ---------------------------------------------------------- */
  --fs-hero:    clamp(30px, 4vw,   54px);  /* hero H1 — the cap        */
  --fs-num:     clamp(34px, 4.4vw, 48px);  /* big display numbers      */
  --fs-num-sm:  clamp(30px, 3.4vw, 40px);  /* secondary stat band      */
  --fs-h2:      clamp(27px, 3.4vw, 44px);  /* section headings         */
  --fs-title:   clamp(21px, 2.2vw, 27px);  /* module / reason / faq    */
  --fs-sub:     clamp(19px, 1.7vw, 22px);  /* mentor name, review, faq */
  --fs-lead:    clamp(18px, 1.7vw, 21px);  /* leads / intro paragraphs */
  --fs-body:    18px;                      /* default body             */
  --fs-body-sm: 16px;                      /* dense body               */
  --fs-cap:     13px;                      /* labels / eyebrows        */
  --fs-micro:   12px;                      /* micro meta               */
}

body { font-family: "Manrope", "Helvetica Neue", Arial, sans-serif; }

/* ============================================================
   MASTERS-SPECIFIC COMPONENTS (appended)
   ============================================================ */

/* four-up stat band (no % superscript) */
.statband {
  margin-top: 64px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 2px solid var(--ink);
}
.statband .sb {
  padding: 40px 32px 36px;
  border-left: 2px solid var(--ink);
}
.statband .sb:first-child { border-left: 0; }
.statband .sb-n {
  font-family: var(--grot);
  font-weight: 700;
  font-size: var(--fs-num-sm);
  line-height: 0.9;
  letter-spacing: -0.03em;
}
.statband .sb-n .plus { color: var(--red); }
.statband .sb-l {
  margin-top: 18px;
  font-family: var(--mono);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-2);
}

/* about prose two-column */
.about-prose p { font-size: 18px; line-height: 1.6; margin: 0 0 22px; max-width: 40ch; }

/* video frame */
.videoframe {
  margin: 64px 0 0;
  border: 2px solid var(--ink);
}
.video-embed {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: var(--ink);
}
.video-embed iframe,
.video-embed video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.video-cap {
  font-family: var(--mono);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-2);
  padding: 16px 20px;
  border-top: 2px solid var(--ink);
}
.fact-list { list-style: none; margin: 0; padding: 0; }
.fact-list li {
  display: flex; gap: 16px;
  padding: 22px 0;
  border-top: 1.5px solid var(--ink);
  font-size: 18px; line-height: 1.4;
}
.fact-list li:last-child { border-bottom: 1.5px solid var(--ink); }
.fact-list li::before {
  content: ""; flex: 0 0 11px;
  width: 11px; height: 11px; margin-top: 7px;
  background: var(--blue);
}
.fact-list b { font-weight: 700; }

/* mentor cards */
.mentors {
  margin-top: 64px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 2px solid var(--ink);
}
.mentor {
  border-left: 2px solid var(--ink);
  display: flex;
  flex-direction: column;
}
.mentor:first-child { border-left: 0; }
.mentor image-slot {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  border-bottom: 2px solid var(--ink);
  background: var(--paper-2);
}
.mentor-body { padding: 28px 30px 34px; }
.mentor-name {
  font-family: var(--grot);
  font-weight: 700;
  font-size: var(--fs-sub);
  letter-spacing: -0.015em;
  margin: 0;
}
.mentor-role {
  font-family: var(--mono);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue);
  margin: 10px 0 20px;
}
.mentor-reg { list-style: none; margin: 0; padding: 0; }
.mentor-reg li {
  padding: 11px 0;
  border-top: 1.5px solid var(--ink);
  font-size: 15.5px;
  color: var(--ink-2);
}

/* review cards */
.reviews {
  margin-top: 64px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 2px solid var(--ink);
  border-left: 2px solid var(--ink);
}
.review {
  margin: 0;
  padding: 36px 34px 32px;
  border-right: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  display: flex;
  flex-direction: column;
}
.review-q {
  margin: 0;
  font-size: var(--fs-sub);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.01em;
}
.review-q::before { content: "\201C"; color: var(--red); }

/* video review cards */
.review--vid { padding: 0; }
.review--vid .video-embed {
  width: 100%;
  aspect-ratio: 16 / 9;
}
.review--vid .review-who {
  margin-top: 0;
  padding: 16px 20px;
  border-top: 2px solid var(--ink);
}
.review-who {
  margin-top: auto;
  padding-top: 26px;
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.review-name { color: var(--ink); font-weight: 600; }
.review-meta { color: var(--ink-3); display: block; margin-top: 4px; }

@media (max-width: 1040px) {
  .mentors { grid-template-columns: repeat(2, 1fr); }
  .mentor { border-left: 2px solid var(--ink); border-top: 0; }
  .mentor:nth-child(odd) { border-left: 0; }
  .mentor:nth-child(n+3) { border-top: 2px solid var(--ink); }
}

@media (max-width: 900px) {
  .statband { grid-template-columns: repeat(2, 1fr); }
  .statband .sb:nth-child(3) { border-left: 0; }
  .statband .sb:nth-child(n+3) { border-top: 2px solid var(--ink); }
  .reviews { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .mentors { grid-template-columns: 1fr; }
  .mentor { border-left: 0; border-top: 2px solid var(--ink); }
  .mentor:first-child { border-top: 0; }
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; interpolate-size: allow-keywords; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 18px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection { background: var(--blue); color: #fff; }

a { color: inherit; text-decoration: none; }

/* ---------- shared layout ---------- */
.wrap {
  max-width: var(--maxw);
  margin: 0 auto;
  padding-left: var(--pad);
  padding-right: var(--pad);
}

/* ---------- type helpers ---------- */
.mono {
  font-family: var(--mono);
  font-weight: 500;
  letter-spacing: 0.02em;
}

.eyebrow {
  font-family: var(--mono);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.eyebrow .sq {
  width: 11px; height: 11px;
  background: var(--red);
  display: inline-block;
}

/* dashed rule under eyebrows */
.dashrule {
  height: 0;
  border: 0;
  border-top: 2px dotted var(--ink);
  margin: 18px 0 0;
}

.display {
  font-family: var(--grot);
  font-weight: 700;
  line-height: 0.96;
  letter-spacing: -0.022em;
  margin: 0;
}

/* electric-blue thick underline behind chosen words */
.ul {
  background-image: linear-gradient(var(--blue), var(--blue));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 0.09em;
  padding-bottom: 0.04em;
}
.h2 .ul { background-size: 100% 0.07em; }

/* ---------- buttons ---------- */
.btn {
  font-family: var(--mono);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 20px 28px;
  cursor: pointer;
  border: 2px solid var(--ink);
  transition: transform .12s ease, background .15s ease, color .15s ease, box-shadow .12s ease;
}
.btn .arr { font-family: var(--grot); font-weight: 700; }

.btn-primary {
  background: var(--ink);
  color: var(--paper);
  box-shadow: 7px 9px 0 0 var(--ink);
}
.btn-primary:hover { transform: translate(2px, 2px); box-shadow: 4px 5px 0 0 var(--ink); }
.btn-primary:active { transform: translate(7px, 9px); box-shadow: 0 0 0 0 var(--ink); }

.btn-ghost {
  background: transparent;
  color: var(--ink);
}
.btn-ghost:hover { background: var(--ink); color: var(--paper); }

.btn-block { width: 100%; }

/* ============================================================
   HEADER
   ============================================================ */
.site-head {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--paper);
  border-bottom: 2px solid var(--ink);
}
.site-head .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 66px;
}
.brand {
  display: inline-flex;
  align-items: center;
}
.brand img { height: 34px; width: auto; display: block; }
.nav {
  display: flex;
  align-items: center;
  gap: 28px;
}
.nav a.navlink {
  font-family: var(--mono);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-2);
  white-space: nowrap;
  transition: color .15s ease;
}
.brand, .nav .nav-cta { white-space: nowrap; }
.nav a.navlink:hover { color: var(--ink); }
.nav .nav-cta {
  font-family: var(--mono);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border: 2px solid var(--ink);
  padding: 9px 15px;
  transition: background .15s ease, color .15s ease;
}
.nav .nav-cta:hover { background: var(--ink); color: var(--paper); }

/* ============================================================
   HERO
   ============================================================ */
.hero { border-bottom: 2px solid var(--ink); }
.hero-grid {
  max-width: var(--maxw);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.06fr 0.94fr;
}
.hero-left  { padding: 64px var(--pad) 72px var(--pad); min-width: 0; }
.hero-right {
  padding: 64px var(--pad) 40px var(--pad);
  border-left: 2px solid var(--ink);
  min-width: 0;
}

.hero h1 {
  font-size: clamp(30px, 4vw, 54px);
  margin: 24px 0 0;
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
}
.hero h1 .line { display: block; }

.hero-lead {
  font-family: var(--mono);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
  max-width: 32em;
  margin: 28px 0 0;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 40px;
}

/* ---- spec panel (right) ---- */
.alert {
  font-family: var(--mono);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--red);
  border: 1.5px solid var(--red);
  background: rgba(20, 33, 61, 0.05);
  padding: 16px 18px;
  margin-bottom: 8px;
}
.specs { margin-top: 4px; }
.spec-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 0;
  border-top: 1.5px solid var(--ink);
}
.spec-row:last-of-type { border-bottom: 1.5px solid var(--ink); }
.spec-label {
  font-family: var(--mono);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.spec-val {
  font-weight: 600;
  font-size: 19px;
  text-align: right;
}
.spec-val.num { font-family: var(--mono); font-weight: 500; }
.spec-val.blue { color: var(--blue); font-family: var(--mono); }
.hero-right .btn-block { margin-top: 28px; }

/* ============================================================
   GENERIC SECTION
   ============================================================ */
.section { padding: 104px 0; scroll-margin-top: 78px; }
.section--alt { background: var(--paper-2); }
.section-head { max-width: 980px; }
.section h2.h2 {
  font-family: var(--grot);
  font-weight: 700;
  line-height: 0.98;
  letter-spacing: -0.02em;
  font-size: var(--fs-h2);
  margin: 26px 0 0;
}
.section-lead {
  font-size: var(--fs-lead);
  font-weight: 500;
  line-height: 1.4;
  color: var(--ink);
  max-width: 24em;
  margin: 30px 0 0;
}

/* ============================================================
   STATS  (BUGUNGI HAQIQAT)
   ============================================================ */
.stats {
  margin-top: 64px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 2px solid var(--ink);
}
.stat {
  padding: 44px 40px 40px;
  border-left: 2px solid var(--ink);
  display: flex;
  flex-direction: column;
  min-height: 360px;
}
.stat:first-child { border-left: 0; }
.stat-num {
  font-family: var(--grot);
  font-weight: 700;
  font-size: var(--fs-num);
  line-height: 0.9;
  letter-spacing: -0.03em;
}
.stat-num sup {
  color: var(--red);
  font-size: 0.42em;
  vertical-align: super;
  margin-left: 2px;
}
.stat-desc {
  margin-top: 28px;
  font-size: 18px;
  line-height: 1.5;
  color: var(--ink);
  max-width: 22em;
}
.stat-src {
  margin-top: auto;
  padding-top: 28px;
  font-family: var(--mono);
  font-weight: 500;
  font-size: 12.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.sources {
  margin-top: 26px;
  font-family: var(--mono);
  font-size: 14px;
  color: var(--ink-2);
}
.sources a {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ============================================================
   TWO PATHS  (IKKI YO'L)
   ============================================================ */
.twocol {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}
.paths { font-size: var(--fs-lead); line-height: 1.45; }
.paths p { margin: 0 0 26px; font-weight: 500; }
.paths .num { font-family: var(--mono); font-weight: 500; }
.paths .hl {
  font-weight: 700;
  background-image: linear-gradient(var(--blue), var(--blue));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 0.09em;
}
.paths .note {
  font-size: 18px;
  color: var(--ink-2);
  font-weight: 400;
  margin-top: 34px;
}

/* numbered reason list */
.rlist { margin-top: 96px; border-top: 2px solid var(--ink); }
.ritem {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 28px;
  padding: 38px 0 40px;
  border-bottom: 2px solid var(--ink);
}
.ritem .rnum {
  font-family: var(--grot);
  font-weight: 700;
  font-size: 34px;
  letter-spacing: -0.02em;
  color: var(--blue);
  line-height: 1;
}
.ritem h3 {
  margin: 0;
  font-weight: 700;
  font-size: var(--fs-title);
  letter-spacing: -0.015em;
  line-height: 1.08;
}
.ritem p {
  margin: 16px 0 0;
  color: var(--ink-2);
  font-size: 18px;
  max-width: 60ch;
}

/* ============================================================
   MODULES  (DASTUR)
   ============================================================ */
.modules { margin-top: 64px; border-top: 2px solid var(--ink); }
.module {
  display: grid;
  grid-template-columns: 150px 1fr 1.15fr;
  gap: 32px;
  align-items: start;
  padding: 34px 28px 36px;
  border-bottom: 2px solid var(--ink);
  cursor: default;
  transition: background .2s ease, color .2s ease;
}
.module:hover { background: var(--ink); }
.module:hover .mnum { color: #FFFFFF; }
.module:hover .mtitle { color: var(--paper); }
.module:hover .mdesc { color: rgba(255,255,255,0.72); }
.module .mnum {
  font-family: var(--grot);
  font-weight: 700;
  font-size: 38px;
  letter-spacing: -0.02em;
  color: var(--blue);
  line-height: 0.9;
  transition: color .2s ease;
}
.module .mtitle {
  font-weight: 700;
  font-size: var(--fs-title);
  letter-spacing: -0.015em;
  line-height: 1.05;
  transition: color .2s ease;
}
.module .mdesc {
  color: var(--ink-2);
  font-size: 17px;
  line-height: 1.55;
  max-width: 52ch;
  transition: color .2s ease;
}

/* ============================================================
   NARX / BOOKING
   ============================================================ */
.booking {
  margin-top: 64px;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  border: 2px solid var(--ink);
}
.booking-main { padding: 52px 48px; }
.booking-side {
  padding: 52px 48px;
  border-left: 2px solid var(--ink);
  background: var(--ink);
  color: var(--paper);
  position: relative;
  overflow: hidden;
}
.booking-side::after {
  content: "";
  position: absolute;
  right: -70px;
  bottom: -70px;
  width: 280px;
  height: 280px;
  background: url("assets/mark-white.svg") no-repeat center / contain;
  opacity: 0.07;
  pointer-events: none;
}
.booking-side > * { position: relative; z-index: 1; }
.price-tag {
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.price-big {
  font-family: var(--grot);
  font-weight: 700;
  font-size: var(--fs-num);
  letter-spacing: -0.03em;
  line-height: 0.95;
  margin: 14px 0 0;
}
.price-big .cur { color: var(--blue); }
.price-sub {
  font-family: var(--mono);
  font-size: 15px;
  color: var(--ink-2);
  margin-top: 18px;
}
.incl {
  list-style: none;
  margin: 30px 0 0;
  padding: 0;
}
.incl li {
  display: flex;
  gap: 14px;
  padding: 16px 0;
  border-top: 1.5px solid var(--ink);
  font-size: 17px;
  font-weight: 500;
}
.incl li::before {
  content: "→";
  color: var(--blue);
  font-weight: 700;
}
.booking-side .eyebrow { color: #fff; }
.booking-side .alert-w {
  font-family: var(--mono);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  border: 1.5px solid rgba(255,255,255,0.4);
  padding: 16px 18px;
}
.booking-side .s-row {
  display: flex;
  justify-content: space-between;
  padding: 18px 0;
  border-top: 1.5px solid rgba(255,255,255,0.18);
  font-size: 16px;
}
.booking-side .s-row span:first-child {
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
}
.booking-side .btn-light {
  background: var(--paper);
  color: var(--ink);
  border-color: var(--paper);
  box-shadow: 7px 9px 0 0 rgba(0,0,0,0.45);
  margin-top: 30px;
}
.booking-side .btn-light:hover { transform: translate(2px,2px); box-shadow: 4px 5px 0 0 rgba(0,0,0,0.45); }

/* ============================================================
   FOOTER
   ============================================================ */
.site-foot {
  border-top: 2px solid var(--ink);
  padding: 56px 0 48px;
}
.foot-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 40px;
  align-items: start;
}
.foot-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.foot-col--brand { gap: 22px; }
.foot-brand {
  display: inline-flex;
  align-items: center;
}
.foot-brand img {
  height: clamp(40px, 5vw, 60px);
  width: auto;
  display: block;
}
.foot-legal {
  font-family: var(--mono);
  font-size: var(--fs-micro);
  line-height: 1.8;
  letter-spacing: 0.02em;
  color: var(--ink-3);
  margin: 0;
}
.foot-h {
  font-family: var(--mono);
  font-weight: 600;
  font-size: var(--fs-micro);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: 4px;
}
.foot-col a {
  font-family: var(--mono);
  font-size: var(--fs-body-sm);
  color: var(--ink-2);
  width: fit-content;
  transition: color .15s ease;
}
.foot-col a:hover { color: var(--ink); }
.foot-bottom {
  margin-top: 56px;
  padding-top: 22px;
  border-top: 1.5px solid var(--ink);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 28px;
  font-family: var(--mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.foot-docs {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.foot-docs a {
  color: var(--ink-2);
  transition: color .15s ease;
}
.foot-docs a:hover { color: var(--ink); }
.foot-docs .foot-sep { color: var(--ink-3); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
/* hero collapses earlier — long RU display words can't fit two columns */
@media (max-width: 1100px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-right { border-left: 0; border-top: 2px solid var(--ink); }
}

/* ============================================================
   PLATFORM — resident platform promo (dark)
   ============================================================ */
.platform {
  background: var(--ink);
  color: var(--paper);
  padding: 104px 0 110px;
  border-bottom: 2px solid var(--ink);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.platform::after {
  content: "";
  position: absolute;
  top: -120px;
  right: -140px;
  width: 460px;
  height: 460px;
  background: url("assets/mark-white.svg") no-repeat center / contain;
  opacity: 0.05;
  z-index: -1;
  pointer-events: none;
}
.dashrule--light { border-top-color: rgba(255,255,255,0.5); }
.platform-head {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 48px;
  align-items: end;
}
.platform-eyebrow { color: #fff; }
.platform-eyebrow .sq { background: var(--amber); }
.platform-title { color: #fff; }
.platform-title .ul {
  background-image: linear-gradient(var(--amber), var(--amber));
}
.platform-lead {
  font-size: var(--fs-lead);
  line-height: 1.55;
  color: var(--on-dark-2, rgba(255,255,255,0.74));
  margin: 0;
  padding-bottom: 8px;
}
.platform-shot {
  margin: 56px 0 0;
}
.platform-shot img {
  width: 100%;
  height: auto;
  display: block;
}

/* composed showcase — grid */
.pshow {
  max-width: 1080px;
  margin: 60px auto 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}
.ps-card { margin: 0; }
.ps-main { grid-column: 1 / -1; }
.ps-card img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
  box-shadow: 0 24px 50px -20px rgba(0,0,0,0.55);
}
.ps-card figcaption {
  margin-top: 14px;
  font-family: var(--mono);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.ps-i { color: rgba(255,255,255,0.62); }
.ps-i::before { content: "· "; color: var(--amber); }
.platform-feats {
  margin-top: 72px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid rgba(255,255,255,0.16);
  border-left: 1px solid rgba(255,255,255,0.16);
}
.pfeat {
  padding: 36px 34px 38px;
  border-right: 1px solid rgba(255,255,255,0.16);
  border-bottom: 1px solid rgba(255,255,255,0.16);
  position: relative;
}
.pfeat::before {
  content: "";
  position: absolute;
  top: -1px; left: 0;
  width: 40px; height: 2px;
  background: var(--amber);
}
.pfeat-k {
  font-family: var(--mono);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.14em;
  color: var(--amber);
}
.pfeat-t {
  font-family: var(--grot);
  font-weight: 700;
  font-size: clamp(18px, 1.9vw, 23px);
  letter-spacing: -0.015em;
  line-height: 1.12;
  color: #fff;
  margin: 18px 0 0;
}
.pfeat-d {
  margin: 12px 0 0;
  font-size: 15.5px;
  line-height: 1.55;
  color: rgba(255,255,255,0.66);
}
@media (max-width: 900px) {
  .platform { padding: 72px 0 76px; }
  .platform-head { grid-template-columns: 1fr; gap: 24px; align-items: start; }
  .platform-feats { grid-template-columns: 1fr; }
  .pshow {
    grid-template-columns: 1fr;
    max-width: 620px;
    gap: 26px;
    margin-top: 44px;
  }
  .ps-main { grid-column: auto; }
  .ps-back figcaption, .ps-front figcaption { text-align: left; }
}

/* ============================================================
   VIDEO BANNER — full-width ambient strip (1500x350)
   ============================================================ */
.bannervid {
  display: block;
  width: 100%;
  padding: 80px 0;
}
.bannervid .wrap {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}
.bannervid-frame {
  margin: 0;
  border: 2px solid var(--ink);
}
.bannervid-media {
  line-height: 0;
  background: var(--ink);
  overflow: hidden;
}
.bannervid-media video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1500 / 350;
  object-fit: cover;
}

/* ============================================================
   ANNOUNCE — upcoming meeting band
   ============================================================ */
.announce {
  position: relative;
  border-bottom: 2px solid var(--ink);
  overflow: hidden;
  isolation: isolate;
  scroll-margin-top: 78px;
}
.announce-media {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.announce-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
  display: block;
}
.announce-overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(20,33,61,0.86) 0%, rgba(20,33,61,0.6) 38%, rgba(20,33,61,0.2) 66%, rgba(20,33,61,0.05) 100%),
    linear-gradient(0deg, rgba(20,33,61,0.4) 0%, rgba(20,33,61,0) 50%);
}
.announce-inner {
  padding: 108px 0 112px;
}
.announce-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 56px;
  align-items: end;
}
.announce-eyebrow { color: #fff; }
.announce-eyebrow .sq { background: var(--amber); }
.announce-dates {
  font-family: var(--grot);
  font-weight: 700;
  color: #fff;
  font-size: var(--fs-num);
  line-height: 0.94;
  letter-spacing: -0.03em;
  margin: 22px 0 0;
}
.announce-dates .ndash { color: var(--amber); padding: 0 0.06em; }
.announce-where {
  display: flex;
  flex-direction: column;
  margin-top: 32px;
  max-width: 460px;
}
.aw-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 0;
  border-top: 1px solid rgba(255,255,255,0.22);
}
.aw-row:last-child { border-bottom: 1px solid rgba(255,255,255,0.22); }
.aw-k {
  font-family: var(--mono);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.62);
}
.aw-v {
  font-family: var(--grot);
  font-weight: 600;
  font-size: clamp(16px, 1.7vw, 20px);
  color: #fff;
  text-align: right;
}
.announce-cta {
  background: rgba(20,33,61,0.42);
  border: 1px solid rgba(255,255,255,0.16);
  backdrop-filter: blur(3px);
  padding: 32px 30px 30px;
}
.announce-note {
  font-size: 17px;
  line-height: 1.55;
  color: rgba(255,255,255,0.86);
  margin: 0 0 24px;
}
.announce-cta .btn-light {
  background: var(--paper);
  color: var(--ink);
  border-color: var(--paper);
  box-shadow: 6px 8px 0 0 rgba(0,0,0,0.4);
}
.announce-cta .btn-light:hover { transform: translate(2px,2px); box-shadow: 3px 4px 0 0 rgba(0,0,0,0.4); }
.announce-meta {
  margin-top: 18px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  text-align: center;
}
@media (max-width: 900px) {
  .announce-inner { padding: 64px 0 68px; }
  .announce-grid { grid-template-columns: 1fr; gap: 36px; }
  .announce-overlay {
    background:
      linear-gradient(0deg, rgba(20,33,61,0.92) 0%, rgba(20,33,61,0.66) 50%, rgba(20,33,61,0.5) 100%);
  }
}

/* ============================================================
   FAQ
   ============================================================ */
.faq {
  margin: 56px 0 0;
  border-top: 1px solid var(--ink);
}
.faq-item {
  border-bottom: 1px solid var(--ink);
}
.faq-q {
  width: 100%;
  text-align: left;
  font: inherit;
  background: none;
  border: 0;
  list-style: none;
  cursor: pointer;
  display: grid;
  grid-template-columns: 64px 1fr 44px;
  align-items: center;
  gap: 24px;
  padding: 28px 26px;
  transition: background .25s ease, color .25s ease;
}
.faq-n {
  font-family: var(--grot);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.02em;
  color: var(--blue);
  line-height: 1;
  transition: color .25s ease;
}
.faq-t {
  font-family: var(--grot);
  font-weight: 700;
  font-size: var(--fs-sub);
  letter-spacing: -0.015em;
  line-height: 1.2;
  transition: color .25s ease;
}
.faq-ic {
  justify-self: end;
  width: 24px;
  height: 24px;
  position: relative;
  flex: none;
}
.faq-ic::before,
.faq-ic::after {
  content: "";
  position: absolute;
  background: var(--ink);
  border-radius: 2px;
  transition: transform .3s cubic-bezier(.4,0,.2,1), background .25s ease;
}
.faq-ic::before { top: 11px; left: 0; width: 24px; height: 2px; }
.faq-ic::after  { left: 11px; top: 0; width: 2px; height: 24px; }
.faq-item.is-open .faq-ic::after { transform: scaleY(0); }
.faq-item.is-open .faq-ic::before { transform: rotate(180deg); }
.faq-q:hover { background: var(--ink); }
.faq-q:hover .faq-t { color: var(--paper); }
.faq-q:hover .faq-n { color: #FFFFFF; }
.faq-q:hover .faq-ic::before,
.faq-q:hover .faq-ic::after { background: var(--paper); }
.faq-item.is-open .faq-n { color: var(--blue); }

/* smooth open/close via grid-rows */
.faq-a-wrap {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .4s cubic-bezier(.4,0,.2,1);
}
.faq-item.is-open .faq-a-wrap {
  grid-template-rows: 1fr;
}
.faq-a {
  overflow: hidden;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity .32s ease .04s, transform .32s ease .04s;
}
.faq-item.is-open .faq-a {
  opacity: 1;
  transform: translateY(0);
}
.faq-a > p {
  margin: 0;
  padding: 4px 26px 34px calc(64px + 26px + 24px);
  font-size: 17px;
  line-height: 1.62;
  color: var(--ink-2);
  max-width: 66ch;
}
@media (prefers-reduced-motion: reduce) {
  .faq-a-wrap, .faq-a, .faq-ic::before, .faq-ic::after { transition: none; }
}
@media (max-width: 560px) {
  .faq-q { grid-template-columns: 38px 1fr 22px; gap: 14px; padding: 22px 16px; }
  .faq-ic { width: 20px; height: 20px; }
  .faq-ic::before { top: 9px; width: 20px; }
  .faq-ic::after { left: 9px; height: 20px; }
  .faq-a > p { padding: 2px 16px 26px 16px; }
}
.modal[hidden] { display: none; }
.modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20, 33, 61, 0.55);
  backdrop-filter: blur(2px);
}
.modal-card {
  position: relative;
  width: 100%;
  max-width: 460px;
  background: var(--paper);
  border: 2px solid var(--ink);
  box-shadow: 12px 14px 0 0 var(--ink);
  padding: 40px 36px 36px;
  animation: modal-in .2s ease-out;
}
@keyframes modal-in {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) { .modal-card { animation: none; } }
.modal-x {
  position: absolute;
  top: 14px;
  right: 16px;
  width: 38px;
  height: 38px;
  border: 2px solid var(--ink);
  background: var(--paper);
  font-size: 24px;
  line-height: 1;
  font-family: var(--mono);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s ease, color .15s ease;
}
.modal-x:hover { background: var(--ink); color: var(--paper); }
.modal-title {
  font-family: var(--grot);
  font-weight: 700;
  font-size: clamp(24px, 4vw, 32px);
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 22px 0 0;
}
.modal-sub {
  font-size: 16px;
  line-height: 1.5;
  color: var(--ink-2);
  margin: 14px 0 0;
}
.modal-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 28px;
}
.field { display: flex; flex-direction: column; gap: 8px; }
.field-label {
  font-family: var(--mono);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.field input {
  font-family: var(--mono);
  font-size: 16px;
  color: var(--ink);
  background: var(--paper-2);
  border: 2px solid var(--ink);
  padding: 14px 16px;
  outline: none;
  transition: box-shadow .12s ease, border-color .12s ease;
}
.field input::placeholder { color: var(--ink-3); }
.field input:focus {
  border-color: var(--blue);
  box-shadow: inset 0 -3px 0 0 var(--blue);
}
.modal-form .btn { margin-top: 6px; }
.modal-ok {
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: 0.04em;
  color: var(--blue);
  margin: 4px 0 0;
  text-align: center;
}

@media (max-width: 900px) {
  :root { --pad: 22px; }
  .site-head .wrap { height: 58px; }
  .brand img { height: 28px; }
  .nav { gap: 16px; }
  .nav .navlink { display: none; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-left, .hero-right { padding: 44px var(--pad); }
  .hero-right { border-left: 0; border-top: 2px solid var(--ink); }
  .stats { grid-template-columns: 1fr; }
  .stat { border-left: 0; border-top: 2px solid var(--ink); min-height: 0; }
  .stat:first-child { border-top: 0; }
  .twocol { grid-template-columns: 1fr; gap: 44px; }
  .rlist { margin-top: 56px; }
  .ritem { grid-template-columns: 52px 1fr; gap: 16px; }
  .module { grid-template-columns: 60px 1fr; gap: 14px 16px; padding: 28px 18px 30px; }
  .module .mdesc { grid-column: 2; }
  .booking { grid-template-columns: 1fr; }
  .booking-side { border-left: 0; border-top: 2px solid var(--ink); }
  .booking-main, .booking-side { padding: 36px 26px; }
  .section { padding: 72px 0; }
  .foot-grid { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
  .foot-col--brand { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  body { font-size: 16px; }
  .hero-actions { flex-direction: column; }
  .hero-actions .btn { width: 100%; }
  .foot-grid { flex-direction: column; gap: 28px; }
  .foot-bottom { gap: 8px; }
  .ritem { grid-template-columns: 1fr; gap: 6px; }
  .ritem .rnum { font-size: 30px; }
  .module { grid-template-columns: 1fr; gap: 8px; }
  .module .mnum { font-size: 32px; }
}
