:root {
  --paper: #FAF8F4;
  --paper-2: #F2EEE7;
  --card: #FFFEFB;
  --ink: #0D1C27;
  --navy: #1E3545; /* Hive Finance blue */
  --navy-2: #24404F;
  --text: #1B2731;
  --muted: #66717C;
  --faint: #98A0A8;
  --line: rgba(13, 28, 39, .12);
  --line-strong: rgba(13, 28, 39, .22);
  --on-dark: #EEF1F3;
  --on-dark-muted: #9AA8B3;
  --line-dark: rgba(238, 241, 243, .14);
  --gold: #FFBF46; /* Hive Finance yellow */
  --gold-ink: #B07F17; /* darker yellow for use on light backgrounds */
  --hive5: #E26FFF; /* Hive5 brand pink (from logo) */
  --hive5-hover: #CF4FEF;

  /* Hive5 typography: Manrope for UI/body (xs–xl), Newsreader for display (2xl–6xl) */
  --serif: "Newsreader", Georgia, serif;
  --sans: "Manrope", system-ui, -apple-system, sans-serif;

  --text-xs: 12px;
  --text-sm: 14px;
  --text-base: 16px;
  --text-lg: 18px;
  --text-xl: 20px;
  --text-2xl: 24px;
  --text-3xl: 28px;
  --text-4xl: 36px;
  --text-5xl: 48px;
  --text-6xl: 64px;
  --leading-body: 1.5;
  --leading-snug: 1.3;
  --leading-tight: 1.1;
  --tracking-display: -0.01em;

  --wrap: 1440px;
  --gutter: clamp(16px, 4vw, 48px);
  --radius: 6px;
  --section-y: clamp(72px, 8vw, 112px);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--paper);
  color: var(--text);
  font-family: var(--sans);
  font-size: var(--text-base);
  line-height: var(--leading-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; transition: color .35s ease, border-color .35s ease, text-decoration-color .35s ease, opacity .35s ease; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }

/* ---------- type ---------- */
h1, h2, h3 { font-family: var(--serif); font-weight: 400; letter-spacing: var(--tracking-display); color: var(--ink); }
h2 { font-size: clamp(30px, 3.3vw, 42px); line-height: var(--leading-tight); }
h3 { font-size: var(--text-2xl); line-height: var(--leading-snug); font-weight: 500; }
.lead { font-size: var(--text-lg); line-height: var(--leading-body); color: var(--muted); max-width: 56ch; }
.on-dark h2, .on-dark h3 { color: var(--on-dark); }

/* ---------- buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  height: 46px; padding: 0 22px;
  border-radius: 999px;
  font-size: var(--text-sm); font-weight: 600;
  transition: background .35s ease, color .35s ease, border-color .35s ease;
  white-space: nowrap;
}
.btn-primary { background: var(--gold); color: var(--ink); }
.btn-primary:hover { background: #EBA524; }
.btn-ghost { border: 1px solid var(--line-strong); color: var(--ink); }
.btn-ghost:hover { border-color: var(--ink); }
.btn-light { background: var(--gold); color: var(--ink); }
.btn-light:hover { background: #EBA524; }
.btn-outline-light { border: 1px solid var(--line-dark); color: var(--on-dark); }
.btn-outline-light:hover { border-color: var(--gold); color: var(--gold); }
.arrow { width: 14px; height: 14px; transition: transform .45s cubic-bezier(.22,1,.36,1); }
.btn:hover .arrow, .link:hover .arrow { transform: translateX(3px); }
.link {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: var(--text-lg); font-weight: 600; color: var(--ink);
  border-bottom: 1px solid var(--line-strong); padding-bottom: 2px;
  transition: color .35s ease, border-color .35s ease;
}
.link:hover { color: var(--gold); border-color: var(--gold); }
.on-dark .link { color: var(--on-dark); border-color: var(--line-dark); }
.on-dark .link:hover { color: var(--gold); border-color: var(--gold); }

/* ---------- announcement + header ---------- */
.announce {
  background: var(--navy); color: var(--on-dark);
  font-size: var(--text-sm);
}
.announce .wrap {
  display: flex; justify-content: center; align-items: center; gap: 14px;
  min-height: 40px; text-align: center; flex-wrap: wrap; padding-top: 8px; padding-bottom: 8px;
}
.announce .tag { font-weight: 700; font-size: var(--text-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--gold); }
.announce a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--gold); transition: color .35s ease, text-decoration-color .35s ease; }
.announce a:hover { color: var(--gold); text-decoration-color: var(--gold); }

header.site {
  position: sticky; top: 0; z-index: 50;
  background: rgba(250, 248, 244, .86);
  backdrop-filter: saturate(140%) blur(12px);
  -webkit-backdrop-filter: saturate(140%) blur(12px);
  border-bottom: 1px solid transparent;
  transition: border-color .35s;
}
header.site.scrolled { border-bottom-color: var(--line); }
header.site .wrap { display: flex; align-items: center; justify-content: space-between; height: 72px; }
.logo { color: var(--ink); display: inline-flex; }
.logo svg { width: 150px; height: 26px; fill: currentColor; }
nav.main { display: flex; align-items: center; justify-content: space-between; flex: 1; margin-left: 56px; gap: 36px; }
nav.main ul { display: flex; gap: 30px; list-style: none; }
.nav-right { display: flex; align-items: center; gap: 22px; }
.nav-right .nav-link { font-size: var(--text-sm); font-weight: 500; color: var(--text); transition: color .35s ease; }
.nav-right .nav-link:hover { color: var(--gold); }
nav.main ul a { font-size: var(--text-sm); font-weight: 500; color: var(--text); opacity: .8; transition: opacity .35s ease, color .35s ease; }
nav.main ul a:hover { opacity: 1; color: var(--gold); }
nav.main .btn { height: 40px; padding: 0 18px; font-size: var(--text-sm); }
.menu-btn { display: none; background: none; border: 1px solid var(--line-strong); border-radius: 999px; height: 40px; padding: 0 16px; font: 600 var(--text-sm) var(--sans); color: var(--ink); cursor: pointer; }

/* ---------- hero ---------- */
.hero { padding: clamp(56px, 8vw, 96px) 0 0; text-align: center; overflow: hidden; }
.hero-copy { max-width: 900px; margin: 0 auto; padding: 0 var(--gutter); }
.hero h1 {
  font-size: clamp(var(--text-5xl), 6.4vw, var(--text-6xl));
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-display);
  margin: 0 0 8px;
}
.hero h1 em { font-style: italic; font-weight: 300; color: var(--navy); }
.hero .lead { margin: 0 auto 36px; max-width: 58ch; }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.hero-actions .btn-ghost { background: var(--paper-2); border-color: transparent; }
.hero-actions .btn-ghost:hover { background: #E9E4DB; }

/* auto-scrolling strip */
.reel { --h: clamp(380px, 38vw, 540px); margin-top: clamp(56px, 7vw, 96px); position: relative; text-align: left; }
.reel-track { display: flex; gap: 8px; width: max-content; animation: reel 70s linear infinite; }
.reel:hover .reel-track { animation-play-state: paused; }
@keyframes reel { to { transform: translateX(calc(-50% - 4px)); } }
.reel-set { display: flex; gap: 8px; }
.slide {
  position: relative; flex: none;
  width: calc(var(--h) * var(--r, .75));
  height: var(--h);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--paper-2);
  color: #fff;
}
.slide > img, .slide > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* placeholder until real footage is dropped in */
.slide.media:not(:has(img, video)) {
  background:
    radial-gradient(120% 80% at 20% 15%, rgba(255,255,255,.35), transparent 60%),
    linear-gradient(160deg, #B9AE9C 0%, #8E8574 45%, #4F5A5E 100%);
}
.slide.media:not(:has(img, video))::after {
  content: attr(data-slot);
  position: absolute; top: 20px; right: 20px;
  font-weight: 600; font-size: var(--text-xs); letter-spacing: .06em; text-transform: uppercase;
  color: rgba(255,255,255,.75);
}
.slide .shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(13,28,39,0) 45%, rgba(13,28,39,.72) 100%); }
.slide .over { position: absolute; left: 28px; right: 28px; bottom: 26px; }
.slide .over q { display: block; font-family: var(--serif); font-size: var(--text-2xl); line-height: var(--leading-snug); letter-spacing: var(--tracking-display); quotes: "“" "”"; margin-bottom: 18px; }
.slide .over b { display: block; font-weight: 700; font-size: var(--text-sm); }
.slide .over span { font-size: var(--text-xs); color: rgba(255,255,255,.7); }
.slide .brand { position: absolute; top: 24px; right: 24px; }

/* navy + warm tint so the gradient sits in the page palette */
.slide.glance { background: var(--navy); color: var(--on-dark); padding: 28px; display: flex; flex-direction: column; }
.glance-head { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 18px; border-bottom: 1px solid var(--line-dark); }
.glance-head span { font-weight: 600; font-size: var(--text-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--on-dark-muted); }
.glance-stats { flex: 1; display: flex; flex-direction: column; justify-content: space-between; padding-top: 28px; }
.glance-big + .glance-big { padding-top: 20px; border-top: 1px solid var(--line-dark); }
.glance-big .num { color: var(--gold); font-family: var(--serif); font-size: var(--text-5xl); line-height: var(--leading-tight); letter-spacing: var(--tracking-display); }
.glance-big .lbl { color: var(--on-dark-muted); font-size: var(--text-sm); margin-top: 6px; }
.glance-rows { list-style: none; }
.glance-rows li { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line-dark); font-size: var(--text-sm); }
.glance-rows li:last-child { border-bottom: 0; padding-bottom: 0; }
.glance-rows .k { color: var(--on-dark-muted); }
.glance-rows .v { font-weight: 600; font-size: var(--text-sm); font-variant-numeric: tabular-nums; text-align: right; }

.companies { padding-top: var(--section-y); }
@media (prefers-reduced-motion: reduce) { .reel-track { animation: none; } .reel { overflow-x: auto; } }

/* ---------- companies strip ---------- */
.pillars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.pillar > div { display: contents; }
.pillar { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; align-content: start; padding: 28px; background: #fff; border-radius: 8px; transition: transform .5s cubic-bezier(.22,1,.36,1), box-shadow .5s cubic-bezier(.22,1,.36,1); }
.pillar h3 { font-size: var(--text-2xl); margin-bottom: 12px; transition: color .35s ease; }
.pillar p { color: var(--muted); font-size: var(--text-base); line-height: 1.55; transition: color .35s ease; }
.pillar-ic { width: 36px; height: 36px; margin-bottom: 48px; color: var(--ink); overflow: visible; transition: color .4s ease, transform .5s cubic-bezier(.22,1,.36,1); }
.pillar.reveal { transition: opacity .8s ease, transform .6s cubic-bezier(.22,1,.36,1), box-shadow .6s cubic-bezier(.22,1,.36,1); }
.pillar-ic .mv { transform-box: fill-box; transform-origin: center; }
.pillar { box-shadow: 0 1px 2px rgba(13,28,39,.04), 0 0 0 1px rgba(13,28,39,.03); }
.pillar.reveal.in:hover, .pillar:hover { transform: translateY(-8px); box-shadow: 0 0 0 1px rgba(13,28,39,.03), 0 2px 6px rgba(13,28,39,.03), 0 16px 32px -12px rgba(13,28,39,.08), 0 36px 72px -28px rgba(13,28,39,.16); }
.pillar:hover .pillar-ic { color: var(--gold); transform: translateY(-2px); }
.ic-launch .mv { transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.pillar:hover .ic-launch .mv { transform: translate(3px, -3px); animation: rumble .18s linear .5s infinite alternate; }
.ic-launch .flame { transform-box: fill-box; transform-origin: 100% 0; transition: transform .4s cubic-bezier(.22,1,.36,1); }
.pillar:hover .ic-launch .flame { animation: flame .14s ease-in-out infinite alternate; }
.pillar:hover .ic-operate .mv { animation: spin 4s linear infinite; }
.pillar:hover .ic-fund .mv { animation: flip 1.2s cubic-bezier(.4,0,.2,1) infinite; }
.ic-scale .mv { stroke-dasharray: 1; stroke-dashoffset: 0; }
.pillar:hover .ic-scale .mv { animation: draw .9s cubic-bezier(.4,0,.2,1); }
@keyframes rumble { from { transform: translate(3px, -3px); } to { transform: translate(3.6px, -3.6px); } }
@keyframes flame { 0% { transform: scale(.9) rotate(-4deg); opacity: .75; } 50% { transform: scale(1.25) rotate(2deg); opacity: 1; } 100% { transform: scale(1.05) rotate(5deg); opacity: .85; } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes flip { 0%, 30% { transform: scaleX(1); } 50% { transform: scaleX(0); } 70%, 100% { transform: scaleX(1); } }
@keyframes draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .pillar.reveal, .pillar-ic .mv, .ic-launch .flame { transition: none; animation: none !important; } .pillar.reveal.in:hover { transform: none; } }
.companies { padding-bottom: var(--section-y); }
.apart { display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(32px, 6vw, 96px); align-items: start; padding-bottom: clamp(56px, 7vw, 96px); }
.apart-body { display: flex; flex-direction: column; align-items: flex-start; gap: 28px; justify-self: end; }
.apart-text {
  font-family: var(--serif);
  font-size: clamp(var(--text-2xl), 2.4vw, var(--text-3xl));
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-display);
  color: var(--ink);
  max-width: 34ch;
}
.flag { flex: none; width: 20px; height: 20px; border-radius: 50%; box-shadow: 0 0 0 1px rgba(13,28,39,.12); overflow: hidden; }

/* ---------- presence ---------- */
.presence { padding: 0 0 var(--section-y); }
.presence-map { position: relative; overflow: hidden; height: 700px; margin-bottom: clamp(56px, 6vw, 88px); background: var(--paper); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.presence-map > .wrap { position: relative; height: 100%; z-index: 1; display: flex; align-items: center; }
.presence-copy { max-width: 470px; display: flex; flex-direction: column; gap: 16px; }
.presence-copy h2 em { font-style: italic; font-weight: 300; color: var(--navy); }
.presence-copy .dot { color: var(--gold-ink); }
.map-img { position: absolute; left: calc(50% - 210px); top: -50px; width: 930px; height: 779px; max-width: none; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 78%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 78%, transparent 100%); }
  .table > .row:last-child { border-bottom: 0; }
.table-head { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; margin-bottom: 48px; }
.table-head h2 { margin: 0; }
.table-head .lead { justify-self: end; max-width: 52ch; }
.row {
  display: grid;
  grid-template-columns: 1fr 1.2fr 1.7fr 1fr 24px;
  gap: 32px;
  align-items: baseline;
  padding: 24px 0;
  border-bottom: 1px solid var(--line);
  transition: background .4s ease, padding .45s cubic-bezier(.22,1,.36,1);
}
.row.head { padding: 14px 0; font-weight: 600; font-size: var(--text-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
a.row:hover { background: var(--card); padding-left: 12px; padding-right: 12px; }
.row .country { display: flex; align-items: center; gap: 12px; font-size: var(--text-base); }
.row .entity { font-family: var(--serif); font-size: var(--text-2xl); line-height: 1.2; color: var(--ink); }
.row .focus { color: var(--muted); font-size: var(--text-base); }
.row .role { font-weight: 500; font-size: var(--text-base); color: var(--ink); }
.row .go { width: 16px; height: 16px; color: var(--faint); align-self: center; transition: color .35s ease, transform .45s cubic-bezier(.22,1,.36,1); }

/* ---------- hive5 ---------- */
.hive5 { padding-bottom: var(--section-y); }
.hive5-card {
  display: grid; grid-template-columns: 1.2fr 1fr;
  background: var(--navy);
  border-radius: var(--radius);
  overflow: hidden;
}
.hive5-main { padding: clamp(32px, 5vw, 64px); display: flex; flex-direction: column; gap: 28px; }
.vid-btn { position: absolute; top: 20px; left: 20px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(13,28,39,.45); color: #fff; display: grid; place-items: center; cursor: pointer; backdrop-filter: blur(6px); transition: background .35s; }
.vid-btn:hover { background: rgba(13,28,39,.7); }
.vid-btn svg { width: 14px; height: 14px; fill: currentColor; }
.vid-btn .i-play, .vid-btn.paused .i-pause { display: none; }
.vid-btn.paused .i-play { display: inline; }
.h5-logo { display: block; height: auto; }
.hive5-main .h5-logo { width: 128.57px; height: 30px; }
.hive5-main h2 { max-width: 14ch; }
.hive5-main p { color: var(--on-dark-muted); max-width: 52ch; }
.hive5-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px; }
.hive5-side { border-left: 1px solid var(--line-dark); display: grid; grid-template-rows: repeat(3, 1fr); }
.h5-stat { padding: 28px clamp(24px, 3vw, 40px); border-bottom: 1px solid var(--line-dark); display: flex; flex-direction: column; justify-content: center; }
.h5-stat:last-child { border-bottom: 0; }
.h5-stat .num { font-family: var(--serif); font-size: var(--text-5xl); color: var(--gold); line-height: var(--leading-tight); letter-spacing: var(--tracking-display); }
.h5-stat .lbl { color: var(--on-dark-muted); font-size: var(--text-sm); margin-top: 8px; }
.h5-disclaimer { font-size: var(--text-xs); color: var(--on-dark-muted); opacity: .75; border-top: 1px solid var(--line-dark); padding-top: 20px; margin-top: auto; }

/* ---------- FAQ ---------- */
.faq { padding: var(--section-y) 0; background: var(--paper-2); }
.faq-intro { text-align: center; margin: 0 auto clamp(40px, 5vw, 64px); max-width: 640px; }
.faq-intro h2 { margin-bottom: 16px; }
.faq-intro .lead { margin: 0 auto; }
.faq-list { max-width: 960px; margin: 0 auto; display: grid; gap: 8px; }
.faq-item { background: var(--card); border-radius: 16px; box-shadow: 0 0 0 1px var(--line); transition: box-shadow .25s; }
.faq-item[open] { box-shadow: 0 0 0 1px var(--line-strong), 0 12px 32px -20px rgba(13,28,39,.25); }
.faq-item summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 26px 32px; cursor: pointer; font-size: var(--text-lg); font-weight: 600; color: var(--ink); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: ""; flex: none; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line-strong); background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230D1C27' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / 16px no-repeat; transition: transform .25s, background-color .25s, border-color .25s; }
.faq-item summary:hover::after { border-color: var(--ink); }
.faq-item[open] summary::after { transform: rotate(180deg); background-color: var(--gold); border-color: var(--gold); }
.faq-item[open] summary { padding-bottom: 8px; }
.faq-a { padding: 0 32px 30px; max-width: 760px; }
.faq-a p { color: var(--muted); }
.checks { list-style: none; display: grid; gap: 12px; margin-top: 20px; }
.checks li { display: flex; gap: 12px; align-items: flex-start; color: var(--ink); }
.checks li::before { content: ""; flex: none; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; background: var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23FFBF46' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat; }

/* ---------- leadership ---------- */
.leaders { padding: var(--section-y) 0; }
/* honeycomb behind the CEO quote, fading out from the left edge */
.leaders { position: relative; isolation: isolate; }
.quote-grid { display: grid; grid-template-columns: 340px 1fr; gap: clamp(32px, 6vw, 96px); align-items: center; margin-bottom: clamp(72px, 8vw, 112px); }
.quote-photo { aspect-ratio: 405/520; border-radius: var(--radius); overflow: hidden; background: var(--paper-2); }
.quote-photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
blockquote { font-family: var(--serif); font-size: clamp(var(--text-3xl), 2.8vw, var(--text-4xl)); line-height: var(--leading-snug); letter-spacing: var(--tracking-display); color: var(--ink); }
blockquote { position: relative; isolation: isolate; padding-top: 64px; }
blockquote::before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; width: 48px; aspect-ratio: 48 / 36; background: var(--gold); opacity: 1; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 36'%3E%3Cpath d='M0 36V22.5C0 9.6 6.6 2.1 19.8 0l1.8 4.8C14.4 6.9 10.8 11.1 10.5 17.4H20V36zm27 0V22.5C27 9.6 33.6 2.1 46.8 0l1.2 4.8c-7.2 2.1-10.8 6.3-11.1 12.6H47V36z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 36'%3E%3Cpath d='M0 36V22.5C0 9.6 6.6 2.1 19.8 0l1.8 4.8C14.4 6.9 10.8 11.1 10.5 17.4H20V36zm27 0V22.5C27 9.6 33.6 2.1 46.8 0l1.2 4.8c-7.2 2.1-10.8 6.3-11.1 12.6H47V36z'/%3E%3C/svg%3E") center / contain no-repeat; pointer-events: none; }
.cite { margin-top: 32px; display: flex; gap: 14px; align-items: baseline; flex-wrap: wrap; }
.cite b { font-weight: 700; color: var(--ink); }
.cite span { color: var(--muted); font-size: var(--text-sm); }

.team-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 36px; flex-wrap: wrap; }
  .team { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px 24px; }
.member .ph { aspect-ratio: 4/5; border-radius: var(--radius); overflow: hidden; background: var(--paper-2); margin-bottom: 14px; }
.member .ph img { width: 100%; height: 100%; object-fit: cover; object-position: top; filter: grayscale(1) contrast(1.02); transition: filter .4s, transform .6s; }
.member:hover .ph img, .member.active .ph img { filter: grayscale(0); transform: scale(1.02); }
.member b { display: block; font-weight: 700; font-size: var(--text-lg); color: var(--ink); }
.member span { display: block; font-size: var(--text-sm); color: var(--muted); line-height: var(--leading-body); margin-top: 2px; }

.founder { margin-top: 56px; display: grid; grid-template-columns: 1fr 1.4fr; gap: 0; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--card); }
.founder .ph { min-height: 320px; background: var(--paper-2); }
.founder .ph img { width: 100%; height: 100%; object-fit: cover; }
.founder .tx { padding: clamp(28px, 4vw, 56px); display: flex; flex-direction: column; justify-content: center; gap: 20px; }
.founder .tx p.q { font-family: var(--serif); font-size: var(--text-3xl); line-height: var(--leading-snug); letter-spacing: var(--tracking-display); color: var(--ink); }
.founder .tx p.d { color: var(--muted); font-size: var(--text-base); max-width: 58ch; }

/* ---------- reports + news ---------- */
.ir { padding: var(--section-y) 0; background: var(--paper-2); }
.ir-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: stretch; }
.ir-media { position: relative; min-height: 500px; border-radius: 14px; overflow: hidden; background: var(--navy); }
.ir-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }
.ir-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(13,28,39,.55)); }
.ir-latest { position: absolute; z-index: 1; left: 20px; right: 20px; bottom: 20px; display: flex; align-items: center; gap: 16px; padding: 16px 16px 16px 22px; border-radius: 12px; color: #fff; background: rgba(13,28,39,.42); border: 1px solid rgba(255,255,255,.2); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.ir-doc { flex: none; width: 48px; height: 48px; border-radius: 10px; display: grid; place-items: center; background: var(--gold); color: var(--ink); }
.ir-latest-tx { flex: 1; min-width: 0; display: grid; gap: 2px; }
.ir-kicker { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); }
.ir-latest-tx strong { font-weight: 600; font-size: var(--text-base); line-height: 1.35; }
.ir-sub { font-size: var(--text-xs); color: rgba(238,241,243,.7); }
.ir-latest .btn { flex: none; }
.ir-body { display: flex; flex-direction: column; justify-content: center; }
.ir-body .lead { margin-bottom: 32px; }
.ir-body .tabs { align-self: flex-start; }
.leaders .quote-grid { grid-template-columns: 1fr; max-width: 920px; }
.ir h2 { margin: 0 0 24px; }
.tabs { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid var(--line-strong); border-radius: 999px; margin-bottom: 24px; }
.tabs button { font: 600 var(--text-sm) var(--sans); background: none; border: 0; padding: 7px 16px; border-radius: 999px; color: var(--muted); cursor: pointer; }
.tabs button[aria-selected="true"] { background: var(--gold); color: var(--ink); }
.reports { list-style: none; }
.reports li a { display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: center; padding: 20px 0; }
.reports li:not([hidden]) ~ li:not([hidden]) a { border-top: 1px solid var(--line); }
.reports li a:hover .rt { color: var(--gold); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 4px; }
.reports .rt { font-size: var(--text-base); font-weight: 500; color: var(--ink); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: color .35s ease, text-decoration-color .35s ease; }
.reports .rm { font-size: var(--text-xs); color: var(--muted); margin-top: 4px; }
.reports .dl { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: var(--text-xs); color: var(--ink); border: 1px solid var(--line-strong); border-radius: 999px; padding: 6px 12px; }
.reports [hidden] { display: none; }


/* ---------- responsibility ---------- */

/* ---------- CTA ---------- */
/* ---------- news rail (bleeds off the right edge) ---------- */
.newsrail { padding: 0 0 var(--section-y); overflow: hidden; }
.newsrail-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 48px; }
.newsrail-head h2 { margin: 0 0 16px; }
.rail-nav { display: flex; gap: 12px; }
.rail-btn { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--line-strong); background: none; color: var(--ink); display: grid; place-items: center; cursor: pointer; transition: background .35s, color .35s, border-color .35s, opacity .35s; }
.rail-btn:hover { background: var(--navy); border-color: var(--navy); color: #fff; }
.rail-btn:disabled { opacity: .35; pointer-events: none; }
.rail { --rail-g: max(var(--gutter), calc((100% - var(--wrap)) / 2 + var(--gutter))); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: var(--rail-g); scrollbar-width: none; overscroll-behavior-x: contain; }
.rail::-webkit-scrollbar { display: none; }
.rail-track { display: flex; gap: 24px; width: max-content; padding: 0 var(--rail-g); }
.ncard { display: block; width: clamp(280px, 34vw, 500px); scroll-snap-align: start; }
.nc-media { position: relative; height: clamp(260px, 27vw, 390px); border-radius: 14px; overflow: hidden; background: var(--paper-2); }
.nc-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.ncard:hover .nc-media img { transform: scale(1.03); }
.nc-go { position: absolute; top: 20px; right: 20px; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: rgba(13,28,39,.28); border: 1px solid rgba(255,255,255,.35); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); transform: rotate(-45deg); transition: background .35s ease, color .35s ease, border-color .35s ease; }
.ncard:hover .nc-go { background: var(--gold); color: var(--ink); border-color: var(--gold); }
.nc-meta { display: flex; gap: 12px; align-items: center; margin: 20px 0 10px; font-size: var(--text-xs); color: var(--muted); }
.nc-meta .tag { font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-ink); }
.ncard h3 { font-family: var(--serif); font-size: var(--text-2xl); line-height: var(--leading-snug); color: var(--ink); margin-bottom: 8px; max-width: 26ch; text-decoration: underline; text-decoration-color: transparent; text-decoration-thickness: 1px; text-underline-offset: 4px; transition: color .35s ease, text-decoration-color .35s ease; }
.ncard:hover h3 { color: var(--gold); text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 1px; text-underline-offset: 4px; }
.ncard p { font-size: var(--text-sm); color: var(--muted); max-width: 46ch; }

/* ---------- closing: blurred CTA + footer ---------- */
.closing { position: relative; isolation: isolate; overflow: hidden; color: var(--on-dark); background: var(--navy) url(closing-blur-poster.jpg) center / cover no-repeat; }
@media (prefers-reduced-motion: reduce) { .closing-bg { display: none; } }
.closing-bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transform: scale(1.08) translateZ(0); }
.closing::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(30,53,69,.42), rgba(13,28,39,.32) 45%, rgba(13,28,39,.7)); mix-blend-mode: multiply; }
.closing::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 50% at 50% 30%, rgba(255,191,70,.10), transparent 70%); }
.brief { text-align: center; padding: clamp(88px, 10vw, 144px) 0 clamp(80px, 9vw, 128px); }
.brief .eyebrow { font-size: var(--text-xs); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); }
.brief h2 { font-family: var(--serif); font-weight: 400; font-size: clamp(30px, 3.1vw, 42px); line-height: var(--leading-tight); letter-spacing: -0.01em; color: #fff; margin: 20px auto 32px; max-width: 18ch; }
.subscribe { display: flex; gap: 8px; align-items: center; max-width: 440px; margin: 0 auto; padding: 6px 6px 6px 22px; border-radius: 999px; background: rgba(13,28,39,.28); border: 1px solid rgba(255,255,255,.22); }
.subscribe input { flex: 1; min-width: 0; background: none; border: 0; outline: 0; color: #fff; font: inherit; font-size: var(--text-sm); }
.subscribe input::placeholder { color: rgba(238,241,243,.6); }
.subscribe button { border: 0; cursor: pointer; font: inherit; font-weight: 700; font-size: var(--text-sm); padding: 10px 18px; border-radius: 999px; background: var(--gold); color: var(--ink); transition: background .35s; }
.subscribe button:hover { background: #EBA524; }
.subscribe:focus-within { border-color: rgba(255,255,255,.45); }
.brief small { display: block; margin-top: 16px; font-size: var(--text-xs); color: rgba(238,241,243,.7); }
.brief .alt { margin-top: 28px; font-size: var(--text-sm); color: rgba(238,241,243,.8); }
.brief .alt a { color: #fff; border-bottom: 1px solid rgba(255,255,255,.35); }
.brief .alt a:hover { color: var(--gold); border-color: var(--gold); }

footer.site { color: rgba(238,241,243,.75); font-size: var(--text-sm); padding-bottom: 32px; }
.foot-grid { display: grid; grid-template-columns: 1fr auto; gap: 48px; padding: 56px 0 72px; border-top: 1px solid rgba(255,255,255,.18); }
footer .logo { color: #fff; margin-bottom: 24px; }
.foot-tag { font-size: var(--text-2xl); line-height: var(--leading-snug); color: #fff; letter-spacing: -0.01em; }
.foot-cols { display: grid; grid-template-columns: repeat(3, auto); gap: 72px; }
footer h4 { font-weight: 700; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); margin-bottom: 20px; }
footer ul { list-style: none; display: grid; gap: 10px; }
footer ul a { color: #fff; }
footer a:hover { color: var(--gold); }
.foot-bottom { display: flex; justify-content: space-between; gap: 24px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.12); font-size: var(--text-xs); flex-wrap: wrap; }
.foot-note { max-width: 72ch; font-size: var(--text-xs); line-height: var(--leading-body); color: rgba(238,241,243,.65); margin-bottom: 24px; }


/* ---------- concept 02 additions (01 components, new content) ---------- */
:root { --hex-gold: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='48.5' viewBox='0 0 84 48.5'%3E%3Cpath d='M0 24.25 14 0h28l14 24.25L42 48.5H14zM56 24.25h28' fill='none' stroke='%23E0A63A' stroke-opacity='.38' stroke-width='1'/%3E%3C/svg%3E"); }
/* honeycomb from the Hive Finance hexagon mark */
.hero { position: relative; isolation: isolate; }
.hero::before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 0; height: 620px; background: var(--hex-gold) center top / 84px 48.5px; -webkit-mask-image: radial-gradient(60% 75% at 50% 0%, #000 0%, rgba(0,0,0,.5) 45%, transparent 80%); mask-image: radial-gradient(60% 75% at 50% 0%, #000 0%, rgba(0,0,0,.5) 45%, transparent 80%); pointer-events: none; }
.hex { width: 12px; height: 11px; fill: var(--gold); flex: none; }
.slide .chip { position: absolute; left: 20px; bottom: 20px; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px 8px 12px; border-radius: 999px; font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; background: rgba(13,28,39,.42); border: 1px solid rgba(255,255,255,.22); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }

/* company logos in the table */
.table .row { align-items: center; }
.row .entity { display: flex; align-items: center; min-height: 40px; }
.row .entity img[alt="Hive5"] { height: 17px; }
.row .entity .hf-logo { width: 104px; height: 18px; }
.row .entity img { height: 22px; width: auto; max-width: 180px; object-fit: contain; object-position: left center; }
.row .entity .hf-logo { fill: var(--ink); }
a.row:hover .go { color: var(--gold); transform: translateX(3px); }

/* 2024 highlights inside the reports block */
.ir-full { align-self: flex-start; margin: -8px 0 40px; font-size: var(--text-sm); }

/* Hive5 stats as a 2x2 grid */
.hive5-side { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
.h5-stat { border-bottom: 1px solid var(--line-dark); }
.h5-stat:not(.h5-wide) + .h5-stat:not(.h5-wide) { border-left: 1px solid var(--line-dark); }
.h5-wide { grid-column: 1 / -1; }
.h5-wide:first-child .num { font-size: clamp(var(--text-5xl), 6vw, 88px); }
.h5-wide:first-child .lbl { margin: 0 0 4px; }
.h5-tp { flex-direction: row; align-items: center; justify-content: flex-start; gap: 20px; border-bottom: 0; }
.h5-tp .lbl { margin-top: 6px; }
.stars { --rate: 5; display: block; width: 120px; height: 22px; background: linear-gradient(90deg, var(--gold) calc(var(--rate) / 5 * 100%), rgba(238,241,243,.22) 0); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='22' viewBox='0 0 24 22'%3E%3Cpath d='M12 0l2.9 6.9 7.1.6-5.4 4.8 1.6 7.2L12 15.8 5.8 19.5l1.6-7.2L2 7.5l7.1-.6z'/%3E%3C/svg%3E") 0 0 / 24px 22px repeat-x; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='22' viewBox='0 0 24 22'%3E%3Cpath d='M12 0l2.9 6.9 7.1.6-5.4 4.8 1.6 7.2L12 15.8 5.8 19.5l1.6-7.2L2 7.5l7.1-.6z'/%3E%3C/svg%3E") 0 0 / 24px 22px repeat-x; }

/* closing: contact invitation */
.presence { padding-top: 0; }
.brief-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* ---------- reveal ---------- */
.reveal { opacity: 0; transform: translateY(14px); transition: opacity .8s ease, transform .8s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
  .pillars { grid-template-columns: 1fr 1fr; }
  .team { grid-template-columns: repeat(2, 1fr); row-gap: 40px; }
  .presence-map { height: auto; padding: 72px 0 0; }
  .map-img { position: relative; left: auto; top: auto; display: block; width: min(930px, 100%); height: auto; margin: 24px 0 0 auto; }
  .foot-grid { grid-template-columns: 1fr; }
  .foot-cols { justify-content: start; }
}
@media (max-width: 900px) {
  nav.main ul, nav.main .nav-right { display: none; }
  .menu-btn { display: inline-flex; align-items: center; }
  nav.main.open { position: absolute; top: 72px; left: 0; right: 0; background: var(--paper); border-bottom: 1px solid var(--line); padding: 16px var(--gutter) 24px; flex-direction: column; align-items: stretch; gap: 16px; }
  nav.main.open ul { display: grid; gap: 4px; }
  nav.main.open ul a { display: block; padding: 10px 0; font-size: var(--text-lg); }
  nav.main.open ul li + li a { border-top: 1px solid var(--line); }
  nav.main.open { margin-left: 0; }
  nav.main.open .nav-right { display: flex; justify-content: space-between; }
  header.site .wrap { position: relative; }
  .apart,
  .hive5-card,
  .quote-grid, .founder, .ir-grid, .table-head { grid-template-columns: 1fr; }
  .table-head { gap: 16px; }
  .table-head .lead { justify-self: start; }
  .ir-media { min-height: 460px; }
  .apart-body { justify-self: start; }
  .hive5-side { border-left: 0; border-top: 1px solid var(--line-dark); }
  .quote-photo { max-width: 280px; }
  .row { grid-template-columns: 1fr auto; gap: 6px 16px; }
  .row.head { display: none; }
  .row .country { grid-column: 1; }
  .row .entity { grid-column: 1; }
  .row .focus { grid-column: 1 / -1; }
  .row .role { grid-column: 2; grid-row: 1; justify-self: end; }
  .row .go { display: none; }
}
@media (max-width: 560px) {
  .rail-nav { display: none; }
  .faq-item summary { padding: 20px; font-size: var(--text-base); }
  .faq-a { padding: 0 20px 24px; }
  .ir-latest { flex-wrap: wrap; }
  .ir-latest .btn { width: 100%; justify-content: center; }
  .ncard { width: 82vw; }
  .nc-media { height: 380px; }
  .team { grid-template-columns: repeat(2, 1fr); }
    .foot-grid { grid-template-columns: 1fr; }
  .foot-cols { grid-template-columns: 1fr 1fr; gap: 40px 24px; }
  .slide.glance { padding: 22px; }
  .map-img { width: calc(100% + var(--gutter)); max-width: none; margin-right: calc(var(--gutter) * -1); }

  /* tighter mobile rhythm + type */
  .announce .wrap { font-size: 12px; gap: 8px; flex-wrap: nowrap; min-height: 36px; padding-top: 6px; padding-bottom: 6px; }
  .announce .wrap > * { white-space: nowrap; }
  :root { --section-y: 56px; --gutter: 16px; }
  body { font-size: 15px; }
  h2 { font-size: 26px; }
  h3 { font-size: 20px; }
  .lead { font-size: var(--text-base); }
  .hero { padding-top: 40px; }
  .hero h1 { font-size: 40px; }
  .hero { text-align: left; }
  .hero .lead { margin: 0 0 24px; }
  .hero-actions { justify-content: flex-start; }
  .reel { --h: 340px; margin-top: 40px; }
  .slide .over q { font-size: 20px; }
  .apart { gap: 20px; padding-bottom: 40px; }
  .apart-text { font-size: 20px; }
  .apart-body { gap: 20px; }
  .pillars { grid-template-columns: 1fr 1fr; gap: 10px; }
  .pillar { padding: 18px; }
  .pillar-ic { width: 28px; height: 28px; margin-bottom: 36px; }
  .pillar h3 { margin-bottom: 6px; }
  .pillar h3 { font-size: 20px; }
  .pillar p { font-size: var(--text-sm); }
  .presence { padding-bottom: 56px; }
  .presence-map { padding-top: 48px; margin-bottom: 48px; }
  .table-head { margin-bottom: 24px; gap: 12px; }
  .row { padding: 16px 0; }
  .row .entity { font-size: 20px; }
  .row .focus, .row .role, .row .country { font-size: var(--text-sm); }
  .hive5 { padding-bottom: 56px; }
  .hive5-main { padding: 0; gap: 20px; }
  .h5-stat { padding: 18px 24px; }
  .h5-stat .num { font-size: 34px; }
  .leaders { padding: 56px 0; }
  .quote-grid { margin-bottom: 48px; }
  blockquote { font-size: 22px; padding-top: 48px; }
  blockquote::before { width: 36px; }
  .team-head { margin-bottom: 24px; }
  .team { gap: 28px 12px; row-gap: 28px; }
  .member b { font-size: var(--text-base); }
  .founder .tx { padding: 24px; gap: 14px; }
  .founder .tx p.q { font-size: 22px; }
  .ir-grid { gap: 28px; }
  .ir-media { min-height: 320px; }
  .ir-body .lead { margin-bottom: 20px; }
  .newsrail-head { margin-bottom: 24px; }
  .nc-media { height: 280px; }
  .nc-meta { margin: 14px 0 6px; }
  .ncard h3 { font-size: 20px; }
  .faq-intro { margin-bottom: 28px; }
  .faq-list { gap: 6px; }
  .faq-item summary { padding: 16px 18px; gap: 12px; }
  .faq-item summary::after { width: 34px; height: 34px; }
  .faq-a { padding: 0 18px 20px; }
  .brief { padding: 72px 0 64px; }
  .brief h2 { font-size: 26px; margin: 14px auto 24px; }
  .foot-grid { padding: 40px 0 40px; gap: 32px; }
  .foot-tag { font-size: var(--text-xl); }
  .foot-cols { gap: 28px 16px; }
  .row .entity img { height: 18px; }
  .row .entity img[alt="Hive5"] { height: 14px; }
  .row .entity .hf-logo { width: 92px; height: 16px; }
  .ir-full { margin-bottom: 28px; }
  .h5-wide:first-child .num { font-size: 48px; }
  .brief, .faq-intro { text-align: left; }
  .brief h2 { margin-left: 0; margin-right: 0; }
  .faq-intro .lead { margin: 0; }
  .brief-actions { justify-content: flex-start; }
  .presence { padding-top: 0; }
}
/* Hive5 chat panel (from concept 03): messages appear one after another */
.hive5-side.h5-panel { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: center; min-height: 520px; padding: 48px 32px; border-left: 0; background: var(--navy) url(gradient-bg.jpg) center / cover no-repeat; }
.h5-panel::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(160deg, rgba(30,53,69,.55), rgba(13,28,39,.35) 55%, rgba(201,160,78,.2)); mix-blend-mode: color; }
.h5-panel::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(13,28,39,.3); }
.chat { width: min(420px, 100%); display: flex; flex-direction: column; gap: 12px; }
.chat .who { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(238,241,243,.7); }
.bub { align-self: flex-start; max-width: 90%; padding: 14px 20px; border-radius: 22px; color: #fff; background: rgba(238,241,243,.14); border: 1px solid rgba(238,241,243,.16); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); font-size: var(--text-sm); }
.bub.r { align-self: flex-end; background: var(--card); color: var(--ink); border-color: transparent; }
.bub.r b { display: block; font-family: var(--serif); font-weight: 400; font-size: 40px; line-height: 1.05; letter-spacing: var(--tracking-display); color: var(--ink); }
.bub.r span { font-size: var(--text-xs); color: var(--muted); }
.bub.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 0; overflow: hidden; }
.bub.duo > div { padding: 14px 20px; }
.bub.duo > div + div { border-left: 1px solid var(--line); }
.bub.duo b { font-size: 30px; }
.ask { display: flex; align-items: center; gap: 12px; margin-top: 8px; padding: 8px 8px 8px 20px; border-radius: 999px; background: var(--card); color: var(--ink); font-size: var(--text-sm); }
.ask .stars { flex: none; width: 90px; height: 16px; background: linear-gradient(90deg, var(--gold) calc(var(--rate) / 5 * 100%), rgba(13,28,39,.15) 0); -webkit-mask-size: 18px 16px; mask-size: 18px 16px; }
.ask span:not(.stars) { flex: 1; }
.ask i { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--gold); font-style: normal; transition: background .35s ease; }
.ask:hover i { background: #EBA524; }
/* Hive5, light: warm card + paper chat panel (no navy) */
.hive5-card { background: none; border-radius: 0; overflow: visible; align-items: center; gap: clamp(40px, 5vw, 80px); }
.hive5-main { padding: 0; }
.hive5-main h2 { color: var(--ink); }
.hive5-main p { color: var(--muted); }
.hive5-actions .btn-ghost { background: var(--paper-2); border-color: transparent; }
.hive5-actions .btn-ghost:hover { background: #E9E4DB; }
.h5-disclaimer { color: var(--faint); opacity: 1; border-top-color: var(--line); }
.hive5-side.h5-panel { border: 0; margin: 0; border-radius: var(--radius); overflow: hidden; min-height: 520px; padding: 48px 32px; background: radial-gradient(70% 60% at 85% 15%, rgba(255,191,70,.28), transparent 70%), radial-gradient(60% 50% at 10% 95%, rgba(255,191,70,.16), transparent 70%), var(--paper-2); }
.h5-panel::before { mix-blend-mode: normal; background: var(--hex-gold) center / 84px 48.5px; opacity: .55; -webkit-mask-image: radial-gradient(70% 70% at 80% 20%, #000, transparent 75%); mask-image: radial-gradient(70% 70% at 80% 20%, #000, transparent 75%); }
.h5-panel::after { display: none; }
.chat .who { color: var(--muted); }
.chat .bub:not(.r) { color: var(--ink); background: rgba(255,254,251,.6); border-color: var(--line); }
.chat .bub.r, .chat .ask { box-shadow: 0 1px 2px rgba(13,28,39,.06), 0 12px 32px -12px rgba(13,28,39,.18); }
/* chat rhythm: label hugs its message, reply sits close, new turn gets more air; tails point at the speaker */
.chat { gap: 0; }
.chat .who { margin: 0 0 8px 4px; }
.chat .who ~ .who { margin-top: 28px; }
.chat .bub { border-bottom-left-radius: 6px; }
.chat .bub.r { margin-top: 8px; border-radius: 22px 22px 6px 22px; }
.chat .ask { margin-top: 28px; }
.chat.js > * { opacity: 0; transform: translateY(10px) scale(.98); transform-origin: left bottom; transition: opacity .45s ease, transform .55s cubic-bezier(.22,1,.36,1); }
.chat.js > .bub.r, .chat.js > .ask { transform-origin: right bottom; }
.chat.js > .show { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .chat.js > * { opacity: 1; transform: none; transition: none; } }
@media (max-width: 560px) {
  .hive5-side.h5-panel { min-height: 0; padding: 32px 16px; }
  .bub.r b { font-size: 32px; }
  .bub.duo b { font-size: 24px; }
}

/* Hive5 section uses Hive5 brand colours (client request) */
.hive5-side.h5-panel { background: radial-gradient(70% 60% at 85% 15%, rgba(226,111,255,.24), transparent 70%), radial-gradient(60% 50% at 10% 95%, rgba(226,111,255,.14), transparent 70%), var(--paper-2); }
.h5-panel::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='48.5' viewBox='0 0 84 48.5'%3E%3Cpath d='M0 24.25 14 0h28l14 24.25L42 48.5H14zM56 24.25h28' fill='none' stroke='%23C65BE0' stroke-opacity='.38' stroke-width='1'/%3E%3C/svg%3E") center / 84px 48.5px; }
.ask .stars { background: linear-gradient(90deg, var(--hive5) calc(var(--rate) / 5 * 100%), rgba(13,28,39,.15) 0); }
/* Hive5 panel: light, with the Hive5 pink carried into the chat itself */
.hive5-side.h5-panel { background: radial-gradient(65% 60% at 88% 12%, rgba(226,111,255,.38), transparent 70%), radial-gradient(60% 55% at 6% 100%, rgba(226,111,255,.26), transparent 70%), #FBF4FD; }
.h5-panel::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='48.5' viewBox='0 0 84 48.5'%3E%3Cpath d='M0 24.25 14 0h28l14 24.25L42 48.5H14zM56 24.25h28' fill='none' stroke='%23C65BE0' stroke-opacity='.4' stroke-width='1'/%3E%3C/svg%3E") center / 84px 48.5px; opacity: .6; }
.h5-panel .chat .who { color: #A43CC4; }
.h5-panel .chat .bub:not(.r) { color: var(--ink); background: rgba(255,255,255,.6); border-color: rgba(198,91,224,.25); }
.h5-panel .chat .bub.r, .h5-panel .chat .ask { background: #fff; box-shadow: 0 1px 2px rgba(120,20,160,.08), 0 16px 40px -14px rgba(120,20,160,.35); }
.h5-panel .chat .bub.r b { color: #8E2DB0; }
.h5-panel .ask i { background: #C64FE6; color: #fff; }
.h5-panel .ask:hover i { background: #AE36D2; }

/* closing: one action with a short intro */
.brief h2 { margin-bottom: 16px; }
.brief .sub { max-width: 52ch; margin: 0 auto 32px; font-size: var(--text-lg); color: rgba(238,241,243,.8); }
@media (max-width: 560px) { .brief .sub { margin-left: 0; font-size: var(--text-base); margin-bottom: 24px; } }
/* founder + Hive5 as one zig-zag: same columns, gap, media height and spacing (no card chrome) */
:root { --pair-gap: clamp(72px, 8vw, 112px); }
.leaders { padding-bottom: var(--pair-gap); }
.founder { margin-top: var(--pair-gap); grid-template-columns: 1fr 1fr; gap: clamp(40px, 5vw, 80px); align-items: center; border: 0; border-radius: 0; overflow: visible; background: none; }
.founder .ph { position: relative; min-height: 520px; border-radius: var(--radius); overflow: hidden; }
.founder .ph img { position: absolute; inset: 0; }
.founder .tx { padding: 0; }
.hive5-card { grid-template-columns: 1fr 1fr; }
@media (max-width: 900px) { .founder, .hive5-card { grid-template-columns: 1fr; } .founder .ph { min-height: 360px; } }
@media (max-width: 560px) { .founder .tx { padding: 0; } .founder .ph { min-height: 300px; } :root { --pair-gap: 56px; } }
/* founder testimonial row + Hive5 share one 5/7 grid under the team */
.fq { margin: clamp(40px, 4vw, 56px) 0 0; padding-top: clamp(32px, 3vw, 40px); border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: clamp(32px, 6vw, 96px); }
.fq figcaption { display: flex; flex-direction: column; gap: 20px; }
.fq-who { display: flex; align-items: center; gap: 20px; }
.fq-who img { width: 170px; height: 170px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; flex: none; }
.fq-who b { display: block; font-weight: 700; color: var(--ink); }
.fq-who span { display: block; font-size: var(--text-sm); color: var(--muted); }
.fq blockquote { font-family: var(--sans); font-size: clamp(20px, 1.7vw, var(--text-2xl)); font-weight: 500; line-height: 1.5; letter-spacing: -0.005em; color: var(--ink); padding: 0; max-width: 601px; }
.fq blockquote::before { display: none; }
.hive5-card { grid-template-columns: 5fr 7fr; gap: clamp(40px, 6vw, 96px); }
@media (max-width: 900px) {
  .hive5-card { grid-template-columns: 1fr; }
  .fq { flex-direction: column; align-items: flex-start; gap: 24px; }
  .fq blockquote { order: -1; }
}
@media (max-width: 560px) { .fq blockquote { font-size: 18px; padding: 0; } .fq-who img { width: 96px; height: 96px; } }
/* team: square crops keep the grid compact; names in the serif heading style */
.member .ph { aspect-ratio: 1 / 1; margin-bottom: 18px; }
.member .ph img { object-position: 50% 12%; }
.member b { font-family: var(--serif); font-weight: 400; font-size: var(--text-2xl); line-height: 1.2; letter-spacing: var(--tracking-display); }
.member span { font-size: var(--text-base); margin-top: 4px; }
.m-name { display: flex; align-items: baseline; gap: 10px; }
.m-name .li { flex: none; display: inline-block; position: relative; top: 2px; width: 18px; height: 18px; transition: opacity .35s ease, transform .35s ease; }
.m-name .li svg { display: block; width: 100%; height: 100%; }
.m-name .li:hover { opacity: .85; transform: translateY(-1px); }
.member span { color: var(--gold-ink); font-weight: 600; }
.member p { margin-top: 12px; font-size: var(--text-sm); color: var(--muted); line-height: var(--leading-body); max-width: 46ch; }
.fq-who .m-name { gap: 8px; }
.fq-who .m-name .li { top: 1px; width: 13px; height: 13px; }
@media (max-width: 560px) { .member b { font-size: 20px; } .member span { font-size: var(--text-sm); } }
/* Hive5 as its own full-width band (pale Hive5 pink) to separate it from the sections around it */
.hive5 { background: #F6E8F9; padding: var(--section-y) 0; }
.hive5 .hive5-side.h5-panel { background: radial-gradient(65% 60% at 88% 12%, rgba(226,111,255,.45), transparent 70%), radial-gradient(60% 55% at 6% 100%, rgba(226,111,255,.32), transparent 70%), #FDF8FE; }
.hive5-actions .btn-ghost { background: var(--card); }
.hive5-actions .btn-ghost:hover { background: #fff; border-color: var(--line-strong); }
.h5-disclaimer { border-top-color: var(--line-strong); }
.newsrail { padding-top: var(--section-y); }
@media (max-width: 560px) { .hive5 { padding: 56px 0; } }
/* Hive5: headline + text on the left, Hive5 logo as the speaker label for the answers in the chat */
.hive5-main h2 { color: var(--ink); max-width: 20ch; }
.bub.r .bub-logo { display: block; height: 14px; width: auto; margin-bottom: 10px; }
.bub.duo .bub-logo { grid-column: 1 / -1; margin: 14px 20px 0; }
/* calmer, less pink Hive5 (client): logo above the headline, soft fade-in chat, pink kept to small accents */
.hive5-main .h5-logo { width: 102.857px; height: 24px; margin-bottom: 8px; }
.hive5-main h2 { margin-bottom: -12px; }
.hive5 { background: var(--paper-2); }
.hive5 .hive5-side.h5-panel { background: radial-gradient(65% 60% at 88% 12%, rgba(226,111,255,.4), transparent 70%), radial-gradient(60% 55% at 6% 100%, rgba(226,111,255,.28), transparent 70%), #FBF3FD; }
.h5-panel .chat .who { color: var(--muted); }
.h5-panel .chat .bub:not(.r) { background: var(--paper); border-color: var(--line); }
.h5-panel .chat .bub.r b { color: var(--ink); }
.h5-panel .chat .bub.r, .h5-panel .chat .ask { box-shadow: 0 1px 2px rgba(13,28,39,.06), 0 12px 32px -14px rgba(13,28,39,.18); }
.chat.js > * { transform: none; transition: opacity .8s ease; }
/* WordPress admin bar (logged-in users) */
@media (min-width: 783px) {
  .admin-bar header.site { top: 32px; }
}


/* ============================================================
   Newsroom 2026 (index.php): news index, topic pages, search and articles
   ============================================================ */
.news .sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- index ---------- */
.news-intro { padding: clamp(32px, 6vw, 88px) 0 clamp(40px, 5vw, 72px); }
.news-intro h1,
.news-search-head h1 { font-size: clamp(40px, 4.3vw, 64px); line-height: 1.1; letter-spacing: -.01em; }
.news-list { padding-bottom: clamp(72px, 8vw, 112px); }
.news-tools { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 40px; }
.news-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.news-chip {
  display: inline-flex; align-items: center; height: 40px; padding: 0 16px;
  border: 1px solid var(--line); border-radius: 999px;
  font-size: var(--text-sm); font-weight: 600; color: var(--ink); white-space: nowrap;
  transition: background-color .2s ease, border-color .2s ease;
}
.news-chip:hover { border-color: var(--line-strong); background: var(--card); }
.news-chip[aria-current="page"] { border-color: var(--gold); background: var(--gold); }
.news-filter {
  display: flex; align-items: center; gap: 10px; flex-shrink: 0; width: 280px; height: 40px; padding: 0 16px;
  border: 1px solid var(--line); border-radius: 999px; background: var(--card);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.news-filter:focus-within,
.news-search:focus-within { border-color: var(--gold); box-shadow: 0 0 0 4px rgba(255, 191, 70, .2); }
.news-search-icon { width: 16px; height: 16px; flex-shrink: 0; color: var(--muted); }
.news-filter input,
.news-search input { flex: 1; min-width: 0; height: 100%; border: 0; background: transparent; font: inherit; font-size: var(--text-sm); color: var(--ink); outline: none; }
.news-filter input::placeholder,
.news-search input::placeholder { color: var(--faint); }
.news-filter input::-webkit-search-cancel-button { cursor: pointer; }

.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 20px; }
.news-card { position: relative; display: flex; flex-direction: column; }
.news-card[hidden] { display: none; }
.news-media { aspect-ratio: 81 / 52; overflow: hidden; border-radius: 10px; background: var(--paper-2); }
.news-media img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .6s ease; }
.news-card:hover .news-media img { transform: scale(1.03); }
.news-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 18px 0 10px; font-size: var(--text-sm); line-height: 1.5; color: var(--muted); }
.news-card .news-meta { min-height: 26px; }
.news-tag {
  position: relative; z-index: 1; display: inline-flex; align-items: center; height: 26px; padding: 0 10px;
  border-radius: 999px; background: var(--paper-2); font-size: var(--text-sm); font-weight: 500; color: var(--ink);
  transition: background-color .2s ease;
}
.news-tag:hover { background: var(--gold); }
.news-card h3 { max-width: 30ch; font-family: var(--sans); font-size: var(--text-xl); font-weight: 500; line-height: 1.35; letter-spacing: -.01em; }
.news-card h3 a::after { content: ""; position: absolute; inset: 0; }
.news-card:hover h3 a { color: var(--gold-ink); }

.news-empty { padding: 56px 0 8px; text-align: center; }
.news-empty[hidden] { display: none; }
.news-empty h2,
.news-none h2 { font-size: var(--text-3xl); line-height: 1.2; }
.news-empty p,
.news-none p { margin-top: 10px; color: var(--muted); }
.news-empty a,
.news-none a { color: var(--ink); border-bottom: 1px solid var(--line-strong); }
.news-empty a:hover,
.news-none a:hover { border-color: var(--gold); }
.news-more { display: flex; justify-content: center; margin-top: 64px; }
.news-more-btn {
  height: 46px; padding: 0 22px; border: 1px solid transparent; border-radius: 999px; background: var(--paper-2);
  font: inherit; font-size: var(--text-sm); font-weight: 600; color: var(--ink); cursor: pointer;
  transition: background-color .2s ease;
}
.news-more-btn:hover { background: var(--gold); }
.news-more-btn[hidden] { display: none; }

/* ---------- search ---------- */
.news-search-head { padding: clamp(56px, 7vw, 96px) 0 64px; text-align: center; }
.news-search-head .wrap { display: flex; flex-direction: column; align-items: center; }
.news-search {
  display: flex; align-items: center; gap: 12px; width: 100%; max-width: 560px; height: 58px; margin-top: 32px; padding: 0 6px 0 22px;
  border: 1px solid var(--line); border-radius: 999px; background: var(--card);
  box-shadow: 0 1px 2px rgba(13, 28, 39, .04), 0 14px 32px -18px rgba(13, 28, 39, .18);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.news-search input { font-size: var(--text-base); }
.news-search button { display: grid; place-items: center; flex-shrink: 0; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--gold); color: var(--ink); cursor: pointer; }
.news-popular { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 16px; margin-top: 20px; font-size: var(--text-sm); color: var(--muted); }
.news-popular a { font-weight: 600; color: var(--ink); border-bottom: 1px solid var(--line-strong); }
.news-popular a:hover { border-color: var(--gold); }
.news-results { padding-bottom: clamp(72px, 8vw, 112px); }
.news-count { padding-bottom: 20px; border-bottom: 1px solid var(--line); font-size: var(--text-sm); color: var(--muted); }
.news-row { position: relative; display: grid; grid-template-columns: 200px minmax(0, 1fr) 40px; align-items: center; gap: 28px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.news-row-media { aspect-ratio: 81 / 52; overflow: hidden; border-radius: 8px; background: var(--paper-2); }
.news-row-media img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.news-row .news-meta { margin: 0; }
.news-row h3 { max-width: 36ch; margin: 10px 0 6px; font-size: var(--text-2xl); font-weight: 400; line-height: 1.33; }
.news-row h3 a::after { content: ""; position: absolute; inset: 0; }
.news-row:hover h3 a { color: var(--gold-ink); }
.news-row p { display: -webkit-box; max-width: 72ch; overflow: hidden; -webkit-line-clamp: 4; -webkit-box-orient: vertical; font-size: var(--text-sm); line-height: 1.5; color: var(--muted); }
.news-row-go { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); transition: background-color .2s ease, border-color .2s ease; }
.news-row:hover .news-row-go { border-color: var(--gold); background: var(--gold); }
.news-none { padding-top: 40px; text-align: center; }

/* ---------- article ---------- */
.news-progress { position: fixed; top: 0; left: 0; z-index: 100; width: 100%; height: 3px; background: var(--gold); transform: scaleX(0); transform-origin: left; pointer-events: none; }
.admin-bar .news-progress { top: 32px; }
.news-article-head { display: flex; flex-direction: column; align-items: center; padding-top: clamp(40px, 6vw, 88px); text-align: center; }
.news-article-head .news-meta { justify-content: center; margin: 0; }
.news-article-head h1 { max-width: 800px; margin-top: 20px; font-size: clamp(32px, 3.2vw, 40px); line-height: 1.2; letter-spacing: -.02em; text-wrap: balance; }
.news-hero { max-width: 1216px; margin: 40px auto 0; padding: 0 var(--gutter); }
.news-hero img { width: 100%; max-width: 1120px; height: auto; margin: 0 auto; aspect-ratio: 2 / 1; object-fit: cover; border-radius: 12px; background: var(--paper-2); }

.news-prose { --article-copy-size: 17px; --article-copy-leading: 1.62; --article-copy-gap: 22px; max-width: calc(700px + 2 * var(--gutter)); margin: 0 auto; padding: 40px var(--gutter) 0; font-size: var(--article-copy-size); font-weight: 400; line-height: var(--article-copy-leading); color: var(--ink); overflow-wrap: break-word; }
.news-prose > * + * { margin-top: var(--article-copy-gap); }
.news-prose > p:first-child { font-size: inherit; font-weight: inherit; line-height: inherit; }
.news-prose h2 { margin-top: 36px; font-size: 26px; line-height: 1.25; letter-spacing: -.01em; }
.news-prose h3,
.news-prose h4,
.news-prose h5,
.news-prose h6 { margin-top: 32px; font-family: var(--serif); font-weight: 400; line-height: 1.3; color: var(--ink); }
.news-prose h3 { font-size: 22px; }
.news-prose h4 { font-size: 20px; }
.news-prose h5 { font-size: 18px; }
.news-prose h6 { font-size: 17px; }
.news-prose > h2 + *,
.news-prose > h3 + *,
.news-prose > h4 + *,
.news-prose > h5 + *,
.news-prose > h6 + * { margin-top: 12px; }
.news-prose strong { font-weight: 600; }
.news-prose a { text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.news-prose a:hover { color: var(--gold-ink); }
.news-prose ul,
.news-prose ol { padding-left: 1.2em; }
.news-prose li + li { margin-top: 10px; }
.news-prose li::marker { color: var(--gold-ink); }
.news-prose img { height: auto; border-radius: 12px; }
.news-prose figure { margin-top: 48px; margin-bottom: 48px; }
.news-prose [hidden] { display: none; }
.news-prose figure img { width: 100%; }
.news-prose figcaption { margin-top: 12px; font-size: var(--text-sm); text-align: center; color: var(--muted); }
.news-prose iframe,
.news-prose video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: 12px; }
/* Quotes use the same upright Manrope copy as the article, including legacy editor markup. */
.news .news-prose :is(blockquote, q, .wp-block-pullquote, p[style*="font-style"], .wp-block-column > p) {
  font-family: var(--sans) !important;
  font-size: var(--article-copy-size) !important;
  line-height: var(--article-copy-leading) !important;
  font-weight: 400 !important;
  font-style: normal !important;
  letter-spacing: normal;
  color: var(--ink);
}
.news .news-prose :is(blockquote, .wp-block-pullquote, p[style*="font-style"], .wp-block-column > p) {
  position: static;
  margin: var(--article-copy-gap) 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  text-align: left !important;
}
.news .news-prose :is(blockquote, .wp-block-pullquote)::before,
.news .news-prose :is(blockquote, .wp-block-pullquote)::after { content: none; }
.news .news-prose :is(blockquote, q, .wp-block-pullquote, p[style*="font-style"], .wp-block-column > p) :where(p, span, a, strong, b, em, i, cite) {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: 400 !important;
  font-style: normal !important;
}
/* Older articles wrap quoted passages in strong/em rather than a quote block. */
.news .news-prose p > strong:has(> em:only-child),
.news .news-prose p > strong > em:only-child {
  font-family: var(--sans) !important;
  font-size: var(--article-copy-size) !important;
  line-height: var(--article-copy-leading) !important;
  font-weight: 400 !important;
  font-style: normal !important;
}
.news .news-prose .wp-block-columns { display: flex; flex-direction: column; gap: 32px; }
.news .news-prose .wp-block-column { flex-basis: auto; width: 100%; }
.news .news-prose .wp-block-column > * + * { margin-top: 22px; }

.news .news-prose .wp-block-columns figure { margin: 0; }

.news-related { margin-top: clamp(72px, 8vw, 112px); padding: clamp(72px, 7vw, 104px) 0; background: var(--paper-2); }
.news-related h2 { margin-bottom: 40px; font-size: 32px; line-height: 1.1; }
.news-related .news-tag { background: var(--card); }
.news-related .news-tag:hover { background: var(--gold); }

@media (min-width: 1100px) {
  .news-prose figure:not(.wp-block-columns figure) { margin: 64px -116px; }
}
@media (max-width: 1080px) {
  .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .news-tools { flex-direction: column; align-items: stretch; }
  .news-filter { width: 100%; }
}
@media (max-width: 640px) {
  .news-grid { grid-template-columns: 1fr; gap: 40px; }
  .news-tools { margin-bottom: 32px; }
  .news-chips { flex-wrap: nowrap; margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter); overflow-x: auto; scrollbar-width: none; }
  .news-chips::-webkit-scrollbar { display: none; }
  .news-search-head { padding-bottom: 40px; }
  .news-row { grid-template-columns: 112px minmax(0, 1fr); align-items: start; gap: 16px; padding: 20px 0; }
  .news-row h3 { font-size: var(--text-xl); }
  .news-row p,
  .news-row-go { display: none; }
  .news-hero img { aspect-ratio: auto; }
  .news-prose { --article-copy-size: 16px; --article-copy-leading: 1.6; --article-copy-gap: 18px; padding-top: 28px; }
  .news-prose > * + * { margin-top: var(--article-copy-gap); }
  .news-prose > p:first-child { font-size: inherit; }
  .news-prose h2 { margin-top: 32px; font-size: 24px; }
  .news-prose h3 { font-size: 21px; }
  .news-prose h4 { font-size: 19px; }
  .news-prose h5 { font-size: 17px; }
  .news-prose h6 { font-size: 16px; }
  .news-related h2 { margin-bottom: 32px; font-size: var(--text-2xl); }
}

/* article: key figures and closing note */
.news-prose .news-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin-top: 48px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--line); }
.news-stats > div { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 6px; padding: 24px 28px; background: var(--card); }
.news-stats dd { margin: 0; font-family: var(--serif); font-size: clamp(32px, 3.4vw, 44px); line-height: 1.05; letter-spacing: -.01em; color: var(--ink); }
.news-stats dt { font-size: var(--text-sm); line-height: 1.4; color: var(--muted); }
.news-prose .news-note { margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--line); font-size: var(--text-sm); line-height: 1.5; color: var(--muted); }
@media (max-width: 640px) {
  .news-stats > div { padding: 18px 16px; }
}

/* Keep all article copy at body size, including Gutenberg presets and pasted inline styles. */
.news .news-prose :where(p, li, blockquote) {
  font-family: var(--sans) !important;
  font-size: inherit !important;
  line-height: inherit !important;
}
.news .news-prose :where(p, li, blockquote) :where(span, a, b, strong, em, i) {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
}
.news .news-prose :where(h1, h2, h3, h4, h5, h6) {
  font-family: var(--serif) !important;
  font-size: var(--article-heading-size) !important;
  line-height: 1.3 !important;
  font-weight: 400;
  letter-spacing: -.01em;
  text-wrap: pretty;
}
.news-prose h1 { --article-heading-size: 30px; margin-top: 36px; }
.news-prose h2 { --article-heading-size: 26px; }
.news-prose h3 { --article-heading-size: 22px; }
.news-prose h4 { --article-heading-size: 20px; }
.news-prose h5 { --article-heading-size: 18px; }
.news-prose h6 { --article-heading-size: 17px; }
.news .news-prose :where(h1, h2, h3, h4, h5, h6) :where(span, a, b, strong, em, i) {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
}
.news .news-prose :where(ul, ol) :where(ul, ol) { margin-top: 12px; }
.news .news-prose :where(blockquote, .wp-block-column) > p + p { margin-top: 20px; }
@media (max-width: 640px) {
  .news-prose h1 { --article-heading-size: 28px; }
  .news-prose h2 { --article-heading-size: 24px; }
  .news-prose h3 { --article-heading-size: 21px; }
  .news-prose h4 { --article-heading-size: 19px; }
  .news-prose h5 { --article-heading-size: 17px; }
  .news-prose h6 { --article-heading-size: 16px; }
}

/* ---------- contact page 2026 (/contact-us/) ---------- */
.contact-hero { background: var(--paper-2); padding: 32px 0 var(--section-y); }
.contact-hero h1 { font-size: 40px; line-height: var(--leading-tight); }
.contact-grid { display: grid; gap: 24px; margin-top: 32px; }

.contact-form .wpcf7-form { display: grid; gap: 16px; }
.contact-form .cf-row { display: grid; gap: 16px; }
.contact-form .field { position: relative; display: grid; gap: 6px; }
.contact-form .wpcf7-form-control-wrap { display: block; }
.contact-form .field input,
.contact-form .field textarea {
  display: block; width: 100%;
  padding: 28px 20px 10px;
  border: 1px solid transparent; border-radius: var(--radius);
  background: #fff; color: var(--ink);
  font: inherit; font-size: var(--text-base); line-height: var(--leading-body);
  outline: none;
  transition: border-color .35s ease, box-shadow .35s ease;
}
.contact-form .field input { height: 64px; }
.contact-form .field textarea { resize: vertical; padding-top: 32px; }
.contact-form .field input:focus,
.contact-form .field textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 4px rgba(255,191,70,.2); }
/* label sits inside the field and moves up when the field is focused or filled */
.contact-form .field label {
  position: absolute; top: 20px; left: 20px;
  pointer-events: none;
  font-weight: 500; color: var(--muted);
  transition: all .35s ease;
}
.contact-form .field:focus-within label,
.contact-form .field.is-filled label { top: 10px; font-size: var(--text-xs); line-height: var(--leading-body); }
.contact-form .field:has(input:-webkit-autofill) label { top: 10px; font-size: var(--text-xs); line-height: var(--leading-body); }
.contact-form .field label .opt { font-weight: 400; color: var(--faint); }
.contact-form .field label .req { color: var(--gold-ink); }
/* errors: our own check (.is-invalid) or Contact Form 7's server check (.wpcf7-not-valid) */
.contact-form .field-error { display: none; font-size: var(--text-sm); line-height: var(--leading-body); color: #DC2626; }
.contact-form .field.is-invalid input,
.contact-form .field.is-invalid textarea,
.contact-form .field .wpcf7-not-valid { border-color: #DC2626; }
.contact-form .field.is-invalid .field-error,
.contact-form .field:has(.wpcf7-not-valid) .field-error { display: block; }
.contact-form .wpcf7-not-valid-tip,
.contact-form .wpcf7-spinner,
.contact-form .screen-reader-response { display: none; }

.contact-form .cf-foot { display: flex; flex-direction: column-reverse; gap: 24px; margin-top: 16px; }
.contact-form .cf-privacy { max-width: 52ch; font-size: var(--text-sm); line-height: 1.6; color: var(--muted); }
.contact-form .cf-privacy a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.contact-form .cf-privacy a:hover { color: var(--gold); }
.contact-form .cf-submit {
  align-self: flex-start; flex: none;
  height: 56px; padding: 0 32px;
  border: 0; cursor: pointer;
  font-family: inherit; font-size: var(--text-base);
}
.contact-form .cf-submit::after {
  content: ""; width: 14px; height: 14px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8h11M9 4l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='square'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8h11M9 4l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='square'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .45s cubic-bezier(.22,1,.36,1);
}
.contact-form .cf-submit:hover::after { transform: translateX(3px); }
.contact-form .wpcf7-form.submitting .cf-submit { opacity: .6; pointer-events: none; }
.contact-form .wpcf7-response-output { margin: 0; font-size: var(--text-sm); color: var(--text); }
.contact-form .wpcf7-response-output:not(:empty) { padding: 14px 18px; border-radius: var(--radius); background: #fff; border-left: 3px solid var(--gold); }
.contact-form .wpcf7-form.failed .wpcf7-response-output,
.contact-form .wpcf7-form.aborted .wpcf7-response-output,
.contact-form .wpcf7-form.spam .wpcf7-response-output { border-left-color: #DC2626; }
.contact-form .wpcf7-form.invalid .wpcf7-response-output,
.contact-form .wpcf7-form.sent .wpcf7-response-output { display: none; }

.contact-done { border-radius: var(--radius); background: #fff; padding: 32px; outline: none; }
.contact-done[hidden] { display: none; }
.contact-done .cd-title { font-family: var(--serif); font-size: var(--text-2xl); line-height: var(--leading-snug); color: var(--ink); }
.contact-done p + p { margin-top: 8px; color: var(--muted); }

/* details card: dividers between items only */
.contact-card { align-self: start; border-radius: var(--radius); background: #fff; padding: 0 24px; }
.contact-card dl > div { padding: 28px 0; }
.contact-card dl > div + div { border-top: 1px solid var(--line); }
.contact-card dt { font-weight: 600; color: var(--ink); }
.contact-card dd { margin-top: 6px; }
.contact-card .cc-mail { font-size: var(--text-lg); color: var(--ink); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 4px; }
.contact-card .cc-mail:hover { color: var(--gold); }
.contact-card address { font-style: normal; line-height: 1.6; color: var(--text); }
.contact-card .cc-maps {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 12px;
  font-size: var(--text-sm); font-weight: 600; color: var(--ink);
  border-bottom: 1px solid var(--line-strong); padding-bottom: 2px;
}
.contact-card .cc-maps:hover { color: var(--gold); border-color: var(--gold); }
.contact-card .cc-follow {
  display: inline-flex; align-items: center; gap: 10px; height: 44px; margin-top: 6px;
  padding: 0 20px 0 16px; border: 1px solid var(--line); border-radius: 999px;
  font-size: var(--text-sm); font-weight: 600; color: var(--ink);
  transition: border-color .35s ease, color .35s ease;
}
.contact-card .cc-follow:hover { border-color: var(--gold); color: var(--gold); }
.contact-card .cc-follow svg { width: 18px; height: 18px; }

/* visit us: map */
.contact-visit { padding: var(--section-y) 0; }
.contact-visit h2 { font-size: 26px; line-height: var(--leading-tight); }
.contact-map { position: relative; margin-top: 32px; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--radius); background: #E9E4DB; }
.contact-map.reveal.in:hover { transform: none; box-shadow: none; }
.contact-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.6); }

@media (min-width: 560px) {
  .contact-hero { padding-top: clamp(48px, 6vw, 88px); }
  .contact-hero h1 { font-size: 52px; }
  .contact-grid { margin-top: 40px; }
  .contact-form .cf-row { grid-template-columns: 1fr 1fr; }
  .contact-form .cf-foot { flex-direction: row; align-items: center; justify-content: space-between; }
  .contact-form .cf-submit { align-self: auto; }
  .contact-card { padding: 0 40px; }
  .contact-card dl > div { padding: 36px 0; }
  .contact-visit h2 { font-size: clamp(30px, 3.1vw, 42px); }
  .contact-map { margin-top: 48px; }
}
@media (min-width: 900px) {
  .contact-map { aspect-ratio: 21 / 9; }
}
@media (min-width: 1080px) {
  .contact-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: 64px; }
}
