/* OVAL Co. — story chapters. Each block styles one templates/front/scenes/*.php partial. */

/* Reveal states. Hidden only while motion is on; the engine shows them as they scroll in.
   Chapters set to "static" (or visitors who reduce motion) see everything immediately. */
.js:not(.motion-off) [data-reveal],
.js:not(.motion-off) [data-hero-in] { opacity: 0; visibility: hidden; }
[data-mode="static"] [data-reveal],
[data-mode="static"] [data-hero-in] { opacity: 1 !important; visibility: visible !important; transform: none !important; clip-path: none !important; }
[data-mode="static"] .line { transform: none !important; }

/* Chapter shell */
.scene { position: relative; }
[data-theme="light"] { --scene-bg: var(--c-paper); }
[data-theme="mist"] { --scene-bg: var(--c-mist); }
[data-theme="dark"], [data-theme="gradient"] { --scene-bg: var(--c-navy); }
[data-theme="teal"] { --scene-bg: var(--c-aqua); }
.scene-pad { padding-block: clamp(88px, 11vw, 168px); }
.scene--space-tight .scene-pad { padding-block: clamp(56px, 7vw, 104px); }
.scene--space-none .scene-pad { padding-block: 0; }
.scene[data-theme="light"] + .scene[data-theme="light"] .scene-pad,
.scene[data-theme="mist"] + .scene[data-theme="mist"] .scene-pad,
.scene[data-theme="dark"] + .scene[data-theme="dark"] .scene-pad { padding-top: 0; }

.scene-head { max-width: 780px; margin-bottom: clamp(48px, 6vw, 88px); }
.scene-head--center { margin-inline: auto; text-align: center; }
.scene-head--center .eyebrow, .scene-head--center .actions { justify-content: center; }
.scene-head__title { margin-bottom: .45em; }
.scene-head__title:last-child { margin-bottom: 0; }
.scene-head__text { max-width: 58ch; }
.scene-head--center .scene-head__text { margin-inline: auto; }
.scene-head .actions { margin-top: 28px; }
.actions--center { justify-content: center; margin-top: clamp(56px, 7vw, 96px); }

.media-fallback { position: absolute; inset: 0; background: var(--grad-brand); }
.media-fallback::after { content: ""; position: absolute; inset: 0; background: #fff; opacity: .14; -webkit-mask: url("../brand/pattern-stars-white.svg") 0 0 / 48px repeat; mask: url("../brand/pattern-stars-white.svg") 0 0 / 48px repeat; }

.pill { display: inline-flex; align-items: center; gap: .55em; padding: .45em .95em; border-radius: 999px; font-size: .74rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; line-height: 1.2; background: color-mix(in srgb, var(--c-meadow) 14%, transparent); color: var(--c-aqua); }
.pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.pill--under_construction { background: rgba(232, 150, 30, .14); color: #a86200; }
.pill--planned { background: color-mix(in srgb, var(--c-navy) 9%, transparent); color: var(--c-navy); }
:is([data-theme="dark"], [data-theme="teal"], [data-theme="gradient"]) .pill { background: rgba(255, 255, 255, .14); color: #fff; }
[dir="rtl"] .pill { letter-spacing: 0; font-size: .85rem; }

/* ── 1. Opening: film revealed through the mark ───────────────────────────── */
.hero-oval { --veil-h: min(72vh, 46vw); --veil-x: 71%; --veil-y: 53%; background: var(--c-navy); color: #fff; }
[dir="rtl"] .hero-oval { --veil-x: 29%; }
.hero-oval__stage { position: relative; height: 100vh; height: 100svh; min-height: 560px; overflow: hidden; isolation: isolate; }
.hero-oval__media { position: absolute; inset: 0; z-index: 0; background: var(--c-navy); transform-origin: 50% 50%; }
.hero-oval__media > img, .hero-oval__media > video, .hero-oval__media > canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-oval__canvas { opacity: 0; transition: opacity .6s; }
.hero-oval__canvas.is-ready { opacity: 1; }
.hero-oval__shade { position: absolute; inset: 0; background: var(--c-navy); opacity: var(--shade, .35); }
.hero-oval__veil, .hero-oval__probe { position: absolute; z-index: 1; height: var(--veil-h); aspect-ratio: var(--ratio, .82); left: var(--veil-x); top: var(--veil-y); translate: -50% -50%; pointer-events: none; }
.hero-oval__probe { visibility: hidden; z-index: -1; }
.hero-oval__veil.is-live { left: 0; top: 0; width: 100%; height: 100%; aspect-ratio: auto; translate: none; }
.hero-oval__veil-svg { width: 100%; height: 100%; overflow: visible; color: var(--c-aqua); }
.hero-oval__veil.is-live .hero-oval__veil-svg { overflow: hidden; }
.hero-oval__veil-edge { fill: none; stroke: var(--c-meadow); stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.hero-oval__intro { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; justify-content: center; padding-top: var(--header-h); pointer-events: none; }
.hero-oval__copy { max-width: min(56%, 820px); pointer-events: auto; }
.hero-oval__title { font-size: calc(clamp(2.7rem, 5.6vw, 6.6rem) * var(--scale-display, 1)); margin-bottom: .45em; }
.hero-oval__eyebrow { color: var(--c-meadow); }
.hero-oval__lead { display: none; max-width: 44ch; color: rgba(255, 255, 255, .82); margin-bottom: 1.6em; }
.no-js .hero-oval__lead, .motion-off .hero-oval__lead, .hero-oval[data-mode="static"] .hero-oval__lead { display: block; }
.hero-oval__hint { position: absolute; bottom: clamp(24px, 5vh, 48px); pointer-events: auto; color: rgba(255, 255, 255, .86); }
.hero-oval__outro { position: absolute; inset: 0; z-index: 2; display: flex; align-items: flex-end; padding-bottom: clamp(72px, 14vh, 160px); pointer-events: none; }
.hero-oval__outro::before { content: ""; position: absolute; inset: 40% 0 0; z-index: -1; background: linear-gradient(to bottom, transparent, color-mix(in srgb, var(--c-navy) 70%, transparent)); }
.js:not(.motion-off) .hero-oval__outro { opacity: 0; visibility: hidden; }
.no-js .hero-oval__outro, .motion-off .hero-oval__outro, .hero-oval[data-mode="static"] .hero-oval__outro { display: none; }
.hero-oval__statement { position: relative; max-width: 24ch; margin: 0; color: #fff; text-wrap: balance; }
@media (max-width: 991px) {
  .hero-oval { --veil-h: min(44svh, 84vw); --veil-x: 50%; --veil-y: 35%; }
  [dir="rtl"] .hero-oval { --veil-x: 50%; }
  .hero-oval__intro { justify-content: flex-end; padding-bottom: clamp(72px, 12svh, 110px); }
  .hero-oval__copy { max-width: none; }
  .hero-oval__title { font-size: calc(clamp(2.3rem, 9.6vw, 4.2rem) * var(--scale-display, 1)); }
  .hero-oval__hint { bottom: 22px; }
  .hero-oval__hint .scroll-hint__line { height: 28px; }
  .hero-oval__statement { font-size: clamp(1.7rem, 7vw, 2.6rem); }
}

/* ── 2. Brand story: from mark to pattern ────────────────────────────────── */
.pattern-story { --ps-color: var(--c-aqua); }
.pattern-story--meadow { --ps-color: var(--c-meadow); }
.pattern-story--navy { --ps-color: var(--c-navy); }
.pattern-story__stage { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: center; overflow: hidden; padding-block: calc(var(--header-h) + 24px) 48px; }
.pattern-story__field { --pattern-color: var(--ps-color); --pattern-opacity: .13; --pattern-size: 72px; inset: -10%; }
.js:not(.motion-off) .pattern-story:not([data-mode="static"]) .pattern-story__field { opacity: 0; }
.pattern-story__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.pattern-story__steps { display: grid; }
.pattern-story__step { grid-area: 1 / 1; }
.js:not(.motion-off) .pattern-story__step:not(:first-child) { opacity: 0; visibility: hidden; }
.pattern-story__num { display: block; margin-bottom: 1.1rem; font-size: .8rem; font-weight: 600; letter-spacing: .2em; color: var(--ps-color); }
.pattern-story__title { margin-bottom: .45em; }
.pattern-story__body { max-width: 40ch; }
.pattern-story__progress { display: flex; align-items: center; gap: 18px; margin-top: clamp(32px, 5vh, 56px); font-size: .82rem; font-weight: 600; letter-spacing: .12em; color: var(--fg-muted); }
.pattern-story__progress b { color: var(--c-ink); }
.pattern-story__bar { position: relative; flex: 0 0 160px; height: 2px; overflow: hidden; border-radius: 2px; background: var(--surface-line); }
.pattern-story__bar i { position: absolute; inset: 0; background: var(--grad-word); transform: scaleX(0); transform-origin: var(--origin-start); }
.pattern-story__art { position: relative; justify-self: center; width: min(100%, 70vh); aspect-ratio: 1; }
.pattern-story__svg { width: 100%; height: 100%; overflow: visible; color: var(--ps-color); }
.pattern-story__ring { stroke: var(--ps-color); stroke-width: 1.2; opacity: .45; vector-effect: non-scaling-stroke; }
.pattern-story[data-mode="static"] .pattern-story__stage { min-height: 0; padding-block: clamp(88px, 11vw, 168px); }
.pattern-story[data-mode="static"] .pattern-story__steps { gap: 48px; }
.pattern-story[data-mode="static"] .pattern-story__step { grid-area: auto; opacity: 1 !important; visibility: visible !important; }
.pattern-story[data-mode="static"] .pattern-story__progress { display: none; }
.motion-off .pattern-story__steps { gap: 48px; }
.motion-off .pattern-story__step { grid-area: auto; }
.motion-off .pattern-story__progress { display: none; }
@media (max-width: 991px) {
  .pattern-story__grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .pattern-story__art { order: -1; width: min(72vw, 38svh); }
  .pattern-story__stage { padding-block: calc(var(--header-h) + 8px) 32px; }
  .pattern-story__progress { margin-top: 24px; }
  .pattern-story__title { font-size: clamp(1.8rem, 7vw, 2.6rem); }
}

/* ── 3. Services: sideways scroll in pebble frames ───────────────────────── */
.hz { overflow: hidden; }
.hz__stage { position: relative; min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; justify-content: center; padding-block: calc(var(--header-h) + 16px) 40px; }
.hz__viewport { overflow: hidden; }
.hz__track { display: flex; align-items: center; gap: clamp(28px, 3.4vw, 56px); width: max-content; padding-inline: max(var(--gutter), calc((100vw - var(--container)) / 2)); }
.hz__panel { flex: 0 0 auto; }
.hz__panel--intro { width: min(560px, 38vw); padding-inline-end: clamp(8px, 3vw, 48px); }
.hz__panel--intro .scene-head { margin-bottom: 0; }
.hz__card { width: clamp(300px, 29vw, 460px); }
.hz__link { display: block; }
.hz__media { position: relative; aspect-ratio: 1.22; }
.hz__shape, .hz__unflip { position: absolute; inset: 0; overflow: hidden; }
.hz__shape { background: color-mix(in srgb, var(--c-aqua) 12%, transparent); }
.hz__card--1 .hz__shape, .hz__card--1 .hz__unflip { transform: scaleX(-1); }
.hz__card--2 .hz__shape, .hz__card--2 .hz__unflip { transform: scaleY(-1); }
.hz__img { position: absolute; inset: 0 -10%; }
.hz__img img { width: 100%; height: 100%; object-fit: cover; transition: filter .6s; }
.hz__link:hover .hz__img img { filter: saturate(1.15) brightness(1.04); }
.hz__body { padding-top: 26px; max-width: 40ch; }
.hz__num { display: block; margin-bottom: .7rem; font-size: .8rem; font-weight: 600; letter-spacing: .2em; color: var(--c-aqua); }
[data-theme="mist"] .hz__num { color: color-mix(in srgb, var(--c-aqua) 82%, var(--c-navy)); }
[data-theme="dark"] .hz__num { color: var(--c-meadow); }
:is([data-theme="teal"], [data-theme="gradient"]) .hz__num { color: #fff; }
.hz__title { margin-bottom: .45em; }
.hz__summary { color: var(--fg-muted); }
.hz__foot { margin-top: clamp(24px, 4vh, 48px); }
.hz__bar { position: relative; display: block; max-width: 320px; height: 2px; overflow: hidden; border-radius: 2px; background: var(--surface-line); }
.hz__bar i { position: absolute; inset: 0; background: var(--grad-word); transform: scaleX(0); transform-origin: var(--origin-start); }
.hz:is([data-mode="lite"], [data-mode="static"]) .hz__stage { min-height: 0; padding-block: clamp(88px, 11vw, 168px) clamp(56px, 8vw, 120px); }
.hz:is([data-mode="lite"], [data-mode="static"]) .hz__viewport { overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: max(var(--gutter), calc((100vw - var(--container)) / 2)); overscroll-behavior-x: contain; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.hz:is([data-mode="lite"], [data-mode="static"]) .hz__viewport::-webkit-scrollbar { display: none; }
.hz:is([data-mode="lite"], [data-mode="static"]) .hz__track { align-items: flex-start; }
.hz:is([data-mode="lite"], [data-mode="static"]) .hz__panel { scroll-snap-align: start; }
.hz:is([data-mode="lite"], [data-mode="static"]) .hz__card .hz__body { opacity: 1 !important; visibility: visible !important; transform: none !important; }
.motion-off .hz__viewport { overflow-x: auto; }
@media (max-width: 991px) {
  .hz__panel--intro { width: min(86vw, 520px); }
  .hz__card { width: min(78vw, 380px); }
}

/* ── 4. Projects timeline ───────────────────────────────────────────────── */
.tl { position: relative; margin-top: clamp(16px, 3vw, 40px); }
.tl__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.tl__track { fill: none; stroke: var(--surface-line); stroke-width: 1.5; }
.tl__draw { fill: none; stroke-width: 3; stroke-linecap: round; }
.tl__list { position: relative; display: grid; gap: clamp(80px, 11vw, 168px); }
.tl__item { display: grid; grid-template-columns: minmax(0, 1fr) clamp(110px, 13vw, 180px) minmax(0, 1fr); align-items: center; }
.tl__media { position: relative; display: block; grid-column: 1; grid-row: 1; }
.tl__marker { position: relative; z-index: 1; grid-column: 2; grid-row: 1; justify-self: center; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.tl__body { grid-column: 3; grid-row: 1; max-width: 520px; }
.tl__item--b .tl__media { grid-column: 3; }
.tl__item--b .tl__body { grid-column: 1; justify-self: end; text-align: end; }
.tl__item--b .tl__location, .tl__item--b .tl__facts { justify-content: flex-end; }
.tl__item--b .tl__summary { margin-inline-start: auto; }
.tl__dot { width: 18px; height: 18px; border-radius: 50%; background: var(--scene-bg, var(--c-paper)); box-shadow: inset 0 0 0 2px var(--surface-line); transition: background-color .5s, box-shadow .5s, transform .6s var(--ease-out); }
.tl__item.is-active .tl__dot { background: var(--c-meadow); box-shadow: 0 0 0 7px color-mix(in srgb, var(--c-meadow) 20%, transparent); transform: scale(1.12); }
.tl__year { padding: 4px 12px; border-radius: 999px; background: var(--scene-bg, var(--c-paper)); font-family: var(--font-display); font-size: 1.05rem; font-weight: 700; color: var(--fg-muted); transition: color .4s; }
.tl__item.is-active .tl__year { color: var(--c-ink); }
.tl__frame { box-shadow: 0 34px 70px -36px rgba(14, 31, 67, .45); }
.tl__canvas { opacity: 0; transition: opacity .6s; }
.tl__canvas.is-ready { opacity: 1; }
.tl__logo { position: absolute; z-index: 1; inset-inline-start: 24px; bottom: -28px; width: 108px; height: 108px; display: grid; place-items: center; padding: 20px; border-radius: 50%; background: #fff; box-shadow: 0 18px 40px -20px rgba(14, 31, 67, .45); }
.tl__item--b .tl__logo { inset-inline-start: auto; inset-inline-end: 24px; }
.tl__logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.tl__title { margin: 16px 0 10px; }
.tl__title a { background: linear-gradient(currentColor, currentColor) var(--origin-start) 100% / 0 2px no-repeat; transition: background-size .5s var(--ease-out); }
.tl__title a:hover { background-size: 100% 2px; }
.tl__location { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; color: var(--fg-muted); }
.tl__location .icon { color: var(--c-meadow); }
.tl__summary { max-width: 46ch; color: var(--fg-muted); }
.tl__facts { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 26px; }
.tl__facts li { padding: .45em .95em; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--surface-line); font-size: .88rem; font-weight: 600; }
@media (max-width: 991px) {
  .tl__item, .tl__item--b { grid-template-columns: 48px minmax(0, 1fr); row-gap: 22px; align-items: start; }
  .tl__marker { grid-column: 1; grid-row: 1 / span 2; justify-self: start; padding-top: 6px; gap: 8px; }
  .tl__year { padding: 2px 4px; font-size: .82rem; }
  .tl__media, .tl__item--b .tl__media { grid-column: 2; grid-row: 1; }
  .tl__body, .tl__item--b .tl__body { grid-column: 2; grid-row: 2; justify-self: start; text-align: start; }
  .tl__item--b .tl__location, .tl__item--b .tl__facts { justify-content: flex-start; }
  .tl__item--b .tl__summary { margin-inline-start: 0; }
  .tl__logo, .tl__item--b .tl__logo { width: 76px; height: 76px; padding: 13px; inset-inline-start: auto; inset-inline-end: 14px; bottom: -16px; }
  .tl__list { gap: 72px; }
}

/* ── 5. Numbers ─────────────────────────────────────────────────────────── */
.stats { overflow: hidden; }
.stats__bg { position: absolute; inset: 0; overflow: hidden; }
.stats__bg-inner { position: absolute; inset: 0; }
.stats__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, color-mix(in srgb, var(--c-navy) 84%, transparent), color-mix(in srgb, var(--c-navy) 94%, transparent)); }
.stats__pattern { --pattern-color: var(--c-meadow); --pattern-opacity: .1; inset: -12% 0; }
.stats__inner { position: relative; }
.stats__head { max-width: 900px; }
.stats__grid { --cols: 3; display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); border-top: 1px solid var(--surface-line); }
.stats__grid--1 { --cols: 1; }
.stats__grid--2 { --cols: 2; }
.stats__grid--4 { --cols: 4; }
.stats__item { position: relative; padding: clamp(28px, 4vw, 56px) clamp(16px, 2.5vw, 40px) 0; border-inline-end: 1px solid var(--surface-line); }
.stats__item:first-child { padding-inline-start: 0; }
.stats__item:last-child { border-inline-end: 0; }
.stats__item::before { content: ""; position: absolute; top: -7px; inset-inline-start: 0; width: 14px; height: 14px; background: var(--c-meadow); -webkit-mask: url("../brand/sparkle-white.svg") center / contain no-repeat; mask: url("../brand/sparkle-white.svg") center / contain no-repeat; }
.stats__item:not(:first-child)::before { inset-inline-start: clamp(16px, 2.5vw, 40px); }
.stats__value { display: flex; align-items: baseline; margin: 0 0 .3em; font-family: var(--font-display); font-size: calc(clamp(3.2rem, 7.4vw, 7.4rem) * var(--scale-display, 1)); font-weight: 800; line-height: 1; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; background: var(--grad-word); -webkit-background-clip: text; background-clip: text; color: transparent; }
:is([data-theme="dark"], [data-theme="teal"], [data-theme="gradient"]) .stats__value { background: linear-gradient(180deg, #fff 35%, var(--c-meadow)); -webkit-background-clip: text; background-clip: text; }
[dir="rtl"] .stats__value { justify-content: flex-end; }
.stats__affix { font-size: .5em; margin-inline: .04em; }
.stats__label { max-width: 24ch; color: var(--fg-muted); font-size: 1.02rem; }
@media (max-width: 991px) {
  .stats__grid, .stats__grid--4 { --cols: 2; }
  .stats__item:nth-child(2n) { border-inline-end: 0; }
  .stats__item:nth-child(2n + 1) { padding-inline-start: 0; }
  .stats__item:nth-child(2n + 1)::before { inset-inline-start: 0; }
}
@media (max-width: 575px) {
  .stats__grid, .stats__grid--2, .stats__grid--4 { --cols: 1; border-top: 0; }
  .stats__item, .stats__item:not(:first-child) { padding: 28px 0 24px; border-inline-end: 0; border-top: 1px solid var(--surface-line); }
  .stats__item:not(:first-child)::before { inset-inline-start: 0; }
}

/* ── 6a. Client quotes ──────────────────────────────────────────────────── */
.quotes__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 7vw, 120px); align-items: start; }
.quotes__aside { position: sticky; top: calc(var(--header-h) + 32px); }
.quotes__aside .scene-head { margin-bottom: 36px; }
.quotes__nav { display: flex; align-items: center; gap: 16px; }
.quotes__btn { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--surface-line); transition: background-color .3s, color .3s, box-shadow .3s; }
.quotes__btn:hover { background: var(--c-navy); color: #fff; box-shadow: none; }
.quotes__btn--prev .icon { transform: scaleX(-1); }
[dir="rtl"] .quotes__btn--prev .icon { transform: none; }
.quotes__count { font-size: .9rem; font-weight: 600; letter-spacing: .1em; color: var(--fg-muted); }
.quotes__count b { color: var(--c-ink); }
.quotes__stage { display: grid; }
.quote { grid-area: 1 / 1; }
.js:not(.motion-off) .quote:not(.is-active) { opacity: 0; visibility: hidden; }
.motion-off .quote:not(.is-active), .quotes[data-mode="static"] .quote:not(.is-active) { display: none; }
.no-js .quote { grid-area: auto; margin-bottom: 64px; }
.quote__mark { width: 40px; height: 40px; margin-bottom: 28px; color: var(--c-meadow); }
.quote__text { margin: 0; font-family: var(--font-display); font-size: calc(clamp(1.6rem, 3vw, 2.9rem) * var(--scale-display, 1)); font-weight: 600; line-height: 1.24; letter-spacing: -0.02em; }
[dir="rtl"] .quote__text { letter-spacing: 0; line-height: 1.65; }
.quote__by { display: flex; align-items: center; gap: 16px; margin-top: 36px; }
.quote__photo { flex: 0 0 auto; width: 60px; height: 60px; overflow: hidden; border-radius: 50%; background: var(--c-mist); }
.quote__photo img { width: 100%; height: 100%; object-fit: cover; }
.quote__who strong { display: block; font-weight: 700; }
.quote__who span { color: var(--fg-muted); font-size: .95rem; }
@media (max-width: 991px) {
  .quotes__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .quotes__aside { position: static; display: flex; flex-direction: column; }
  .quotes__nav { order: 2; margin-top: 8px; }
}

/* ── 6b. News ───────────────────────────────────────────────────────────── */
.news__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: clamp(40px, 5vw, 72px); }
.news__head .scene-head { margin-bottom: 0; }
.news__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 3vw, 44px); }
.news__grid--1 { grid-template-columns: minmax(0, 560px); }
.news__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.post-card__link { display: flex; flex-direction: column; height: 100%; }
.post-card__media { margin-bottom: 22px; }
.post-card__body { display: flex; flex: 1; flex-direction: column; }
.post-card__date { display: block; margin-bottom: 10px; font-size: .8rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--c-aqua); }
[dir="rtl"] .post-card__date { letter-spacing: 0; font-size: .9rem; }
.post-card__title { margin-bottom: .6em; transition: color .3s; }
.post-card__link:hover .post-card__title { color: var(--c-aqua); }
.post-card__excerpt { color: var(--fg-muted); font-size: .98rem; }
.post-card .link-arrow { align-self: flex-start; margin-top: auto; }
@media (max-width: 991px) { .news__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .news__grid, .news__grid--2 { grid-template-columns: minmax(0, 1fr); } }

/* ── 7. Closing invitation + form ───────────────────────────────────────── */
.cta { overflow: hidden; }
.cta__bg { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.cta__pattern { --pattern-color: currentColor; --pattern-opacity: .09; --pattern-size: 64px; inset: -15%; }
.cta__glow { position: absolute; left: 50%; top: 50%; width: 64vmax; height: 64vmax; margin: -32vmax 0 0 -32vmax; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--c-meadow) 55%, transparent), transparent); opacity: .5; }
.cta__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 110px); align-items: center; }
.cta__grid--solo { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; }
.cta__grid--solo .cta__intro { max-width: 980px; }
.cta__grid--solo .eyebrow, .cta__grid--solo .actions { justify-content: center; }
.cta__title { margin-bottom: .4em; }
.cta__text { max-width: 44ch; }
.cta__grid--solo .cta__text { margin-inline: auto; }
.cta .actions { margin-top: 32px; }
.cta__contacts { display: grid; gap: 14px; margin-top: 40px; }
.cta__grid--solo .cta__contacts { justify-content: center; }
.cta__contacts a { display: inline-flex; align-items: center; gap: 14px; font-size: 1.08rem; font-weight: 600; }
.cta__contacts .icon { width: 46px; height: 46px; padding: 12px; border-radius: 50%; background: color-mix(in srgb, currentColor 14%, transparent); transition: background-color .3s, color .3s; }
.cta__contacts a:hover .icon { background: #fff; color: var(--c-navy); }
.cta__panel { padding: clamp(28px, 4vw, 52px); border-radius: var(--radius); background: color-mix(in srgb, currentColor 8%, transparent); box-shadow: inset 0 0 0 1px var(--surface-line); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }
.contact-form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 32px; }
.contact-form__foot .form-status { flex: 1 1 260px; }
@media (max-width: 991px) { .cta__grid { grid-template-columns: minmax(0, 1fr); } }
