/* tokens */
:root {
  --pillar: #fecb03;
  --focus: #feba03;
  --accent-strong: #db9501;
  --base-plane: #2d1236;
  --bg-elevated: #3a1a44;
  --body: #ffffff;
  --muted: #bebebe;
  --border: rgba(255, 255, 255, .14);
  --stroke-heavy: rgba(255, 255, 255, .32);
  --gradient-light: #22102b;
  --grad-2: #392740;
  --warn-band: #8c1c13;

  --g-hair: 6px;
  --g-tiny: 14px;
  --g-snug: 20px;
  --g-base: 32px;
  --g-wide: 48px;
  --g-roomy: 72px;
  --g-vast: 112px;
  --g-huge: 160px;

  --pill: 9999px;
  --orb: 50%;
  --r-hair: 1px;
  --r-tiny: 2px;
  --r-snug: 6px;
  --r-base: 8px;
  --r-wide: 14px;
  --r-roomy: 20px;
  --r-vast: 26px;
  --r-huge: 34px;

  --heading: "Poppins", Arial, sans-serif;
  --copy: "Poppins", Arial, sans-serif;

  --title: clamp(24px, 4.4vw, 52px);
  --head: clamp(21px, 2.7vw, 32px);
  --h3: clamp(19px, 1.9vw, 24px);
  --h4: 19px;
  --h5: 16px;
  --xs-2: 14px;
  --normal: 17px;
  --sm: 14px;
  --legal: 12px;

  --tight: 1.15;
  --default: 1.55;
  --open: 1.7;
  --regular: 400;
  --mid: 500;
  --strong: 700;
  --narrow: 0;
  --e-normal: 0;
  --loose: .02em;

  --d-hair: 0 1px 1px rgba(0, 0, 0, .04);
  --d-tiny: 0 1px 2px rgba(0, 0, 0, .05);
  --d-snug: 0 2px 4px rgba(0, 0, 0, .08);
  --d-base: 0 4px 10px rgba(0, 0, 0, .1);
  --d-wide: 0 8px 20px rgba(0, 0, 0, .14);
  --d-roomy: 0 12px 28px rgba(0, 0, 0, .18);
  --d-vast: 0 18px 40px rgba(0, 0, 0, .22);
  --d-huge: 0 26px 60px rgba(0, 0, 0, .28);

  --fast: 107ms;
  --t-mid: 220ms;
  --calm: 393ms;
  --settle: cubic-bezier(0.25, 0.86, 0.52, 1);
  --take-off: cubic-bezier(0.46, 0.02, 0.32, 0.93);
  --even: cubic-bezier(0.46, 0.02, 0.32, 0.93);
  --bounce: cubic-bezier(0.32, 1, 0.67, 1.05);

  --full: 1400px;
  --column: 630px;
  --padding-desktop: 48px;
  --pad-md: 32px;
  --padding-mobile: 16px;

  --light: 1px;
  --b-regular: 2px;
  --b-strong: 3px;

  --height-desktop: 68px;
  --size-mobile: 60px;
  --band-h: 34px;
  --isle-h: 68px;
  --isle-gap: 20px;
}

@media (max-width: 800px) {
  :root {
    --h4: 17px;
    --h5: 15px;
    --xs-2: 13px;
    --normal: 16px;
    --sm: 13px;
    --legal: 11px;
    --padding-desktop: 20px;
    --isle-h: 60px;
    --isle-gap: 10px;
  }
}

/* reset + base */
*,
*::before,
*::after { box-sizing: border-box; }

html,
body { overflow-x: clip; }

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

body {
  margin: 0;
  background: var(--base-plane);
  color: var(--body);
  font-family: var(--copy);
  font-size: var(--normal);
  font-weight: var(--regular);
  line-height: var(--default);
  padding-top: calc(var(--band-h) + var(--isle-h) + var(--isle-gap) * 2 + var(--g-tiny));
}

h1, h2, h3, h4, h5, h6 { margin: 0; overflow-wrap: anywhere; }

h1 { font-family: var(--heading); font-weight: var(--strong); font-size: var(--title); line-height: var(--tight); letter-spacing: var(--narrow); }
h2 { font-family: var(--heading); font-weight: var(--strong); font-size: var(--head); line-height: var(--tight); }
h3 { font-family: var(--copy); font-weight: var(--mid); font-style: italic; font-size: var(--h3); line-height: var(--tight); }
h4 { font-family: var(--copy); font-weight: var(--mid); font-size: var(--h4); }
h5 { font-family: var(--copy); font-weight: var(--mid); font-size: var(--h5); }

p { margin: 0; }
ul, ol { margin: 0; }
img { max-width: 100%; height: auto; display: block; }
table { border-collapse: collapse; }

a { color: var(--focus); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: text-decoration-thickness var(--fast) var(--settle), color var(--fast) var(--settle); }
a:hover { color: var(--accent-strong); text-decoration-thickness: 3px; }
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
textarea:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }

strong { font-weight: var(--strong); }

/* a11y helpers */
.skip-jump {
  position: absolute;
  left: var(--g-snug);
  z-index: 200;
  padding: var(--g-hair) var(--g-snug);
  border-radius: var(--r-snug);
  background: var(--focus);
  color: var(--gradient-light);
  font-family: var(--heading);
  font-weight: var(--strong);
  font-size: var(--sm);
  text-decoration: none;
}

.skip-jump:not(:focus) { top: -200px !important; }
.skip-jump:focus { top: calc(var(--band-h) + var(--g-hair)); }

.off-screen {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

[data-cue] {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity var(--calm) var(--settle), transform var(--calm) var(--settle);
}

[data-cue].is-live { opacity: 1; transform: none; }

/* rg-banner RG-04 */
.guard-band {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: 120;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--g-hair);
  min-height: var(--band-h);
  padding: var(--g-hair) var(--g-snug);
  background: var(--gradient-light);
  border-block-end: var(--b-strong) solid var(--warn-band);
  color: var(--body);
  font-size: var(--legal);
  line-height: 1.35;
  text-align: center;
}

.guard-band-jump {
  color: var(--body);
  text-decoration: underline;
  text-decoration-color: var(--warn-band);
  text-decoration-thickness: 2px;
}

.guard-band-jump:hover { color: var(--focus); text-decoration-color: var(--focus); }

/* header HEAD-INSET */
.window-raw {
  position: fixed;
  inset-block-start: calc(var(--band-h) + var(--isle-gap));
  inset-inline: var(--isle-gap);
  z-index: 100;
  background: var(--grad-2);
  border-radius: var(--r-wide);
  box-shadow: var(--d-wide);
  transition: transform var(--t-mid) var(--settle);
}

.window-raw.is-hidden { transform: translateY(calc(-100% - var(--band-h) - var(--isle-gap) * 2)); }

.window-raw-core {
  display: flex;
  align-items: center;
  gap: var(--g-snug);
  height: var(--height-desktop);
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--g-snug);
}

.window-raw-crest { display: flex; align-items: center; flex-shrink: 0; }
.window-raw-crest-img { height: 52px; width: auto; flex-shrink: 0; }

.window-raw-nav { min-width: 0; flex: 1 1 auto; }

.window-raw-chain {
  display: flex;
  align-items: center;
  gap: var(--g-tiny);
  list-style: none;
  padding: 0;
  margin: 0;
}

.window-raw-unit { position: relative; display: flex; align-items: center; }
.window-raw-unit[hidden] { display: none; }

.window-raw-unit + .window-raw-unit::before {
  content: "·";
  margin-inline-end: var(--g-tiny);
  color: var(--muted);
  opacity: .6;
}

.window-raw-jump,
.window-raw-lever {
  display: inline-flex;
  align-items: center;
  gap: var(--g-hair);
  min-height: 44px;
  padding: 0 2px;
  border: 0;
  background: none;
  color: var(--body);
  font-family: var(--copy);
  font-size: 16px;
  font-weight: 400;
  line-height: var(--default);
  text-transform: none;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--fast) var(--settle);
}

.window-raw-jump:hover,
.window-raw-lever:hover { color: var(--focus); }

.window-raw-jump[aria-current="page"] { color: var(--focus); font-weight: var(--mid); }

.window-raw-lever::after {
  content: "";
  width: 7px;
  height: 7px;
  border-inline-end: var(--b-regular) solid currentColor;
  border-block-end: var(--b-regular) solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform var(--fast) var(--settle);
}

.window-raw-lever[aria-expanded="true"]::after { transform: translateY(1px) rotate(225deg); }

.window-raw-pouch {
  position: absolute;
  inset-block-start: calc(100% + var(--g-hair));
  inset-inline-start: 0;
  z-index: 10;
  display: none;
  min-width: 220px;
  max-height: 60vh;
  overflow-y: auto;
  padding: var(--g-hair);
  margin: 0;
  list-style: none;
  background: var(--bg-elevated);
  border: var(--light) solid var(--border);
  border-radius: var(--r-base);
  box-shadow: var(--d-roomy);
}

.window-raw-pouch.is-open { display: block; }
.window-raw-pouch--tail { inset-inline-start: auto; inset-inline-end: 0; }

.window-raw-pouch .window-raw-jump {
  display: flex;
  width: 100%;
  padding: var(--g-hair) var(--g-snug);
  border-radius: var(--r-snug);
  white-space: normal;
}

.window-raw-pouch .window-raw-jump:hover { background: var(--grad-2); }
.window-raw-mate { display: block; }
.window-raw-lever[data-here="true"] { color: var(--focus); }

.window-raw-tools { display: flex; align-items: center; gap: var(--g-snug); margin-inline-start: auto; flex-shrink: 0; }

.window-raw-prompt { display: flex; align-items: center; gap: var(--g-snug); }

.window-raw-sheet-lever {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 44px;
  min-height: 44px;
  margin-inline-start: auto;
  padding: 0 var(--g-hair);
  border: 0;
  border-radius: var(--r-snug);
  background: none;
  color: var(--body);
  cursor: pointer;
}

.window-raw-sheet-lever span {
  width: 5px;
  height: 5px;
  border-radius: var(--orb);
  background: currentColor;
}

.window-raw-sheet {
  display: none;
  padding: var(--g-snug);
  border-block-start: var(--light) solid var(--border);
  max-height: calc(100vh - var(--band-h) - var(--size-mobile) - var(--g-roomy));
  overflow-y: auto;
}

.window-raw-sheet.is-open { display: block; }

.window-raw-sheet-chain {
  display: flex;
  flex-direction: column;
  gap: var(--g-hair);
  list-style: none;
  padding: 0;
  margin: 0;
}

.window-raw-sheet-chain .window-raw-jump {
  display: flex;
  width: 100%;
  min-height: 44px;
  padding: var(--g-hair) var(--g-hair);
  white-space: normal;
}


/* breadcrumbs BREAD-06 */
.dossier-grave { background: var(--bg-elevated); }

.dossier-grave-core {
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-snug);
}

.dossier-grave-chain {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--g-hair);
  list-style: none;
  padding: 0;
  margin: 0;
  font-family: var(--copy);
  font-size: var(--sm);
}

.dossier-grave-unit + .dossier-grave-unit::before { content: "›"; margin-inline-end: var(--g-hair); color: var(--muted); }
.dossier-grave-jump { color: var(--muted); }
.dossier-grave-jump:hover { color: var(--focus); }
.dossier-grave-here { color: var(--body); }

/* hero HERO-06 */
.linteau-keen { position: relative; overflow: visible; background: linear-gradient(160deg, var(--gradient-light), var(--base-plane) 60%); }

.linteau-keen-core {
  position: relative;
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-roomy);
  min-height: 560px;
  display: flex;
  align-items: center;
}

.linteau-keen-fill { position: relative; z-index: 2; width: 52%; display: flex; flex-direction: column; gap: var(--g-base); }

.linteau-keen-tagline { max-width: var(--column); color: var(--muted); font-size: var(--h5); line-height: var(--open); }

.linteau-keen-photo {
  position: absolute;
  inset-block-start: -40px;
  inset-inline-end: 0;
  z-index: 1;
  width: 46%;
  height: calc(100% + 80px);
  margin: 0;
  border-radius: var(--r-wide);
  overflow: hidden;
  box-shadow: var(--d-wide);
  transform: rotate(2deg);
  transition: transform var(--calm) var(--settle);
}

.linteau-keen-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--calm) var(--settle); }
.linteau-keen-photo:hover { transform: rotate(0deg) scale(1.02); }
.linteau-keen-photo:hover img { transform: scale(1.04); }

.linteau-keen-fine { color: var(--muted); font-size: var(--legal); }

/* page-header PHEAD-06 */
.pulpit-core { background: var(--base-plane); }

.pulpit-core-core {
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-wide);
  display: flex;
  flex-direction: column;
  gap: var(--g-snug);
}

.pulpit-core-lede { color: var(--body); }

.pulpit-core-body {
  position: relative;
  padding-block-start: var(--g-snug);
  max-width: 640px;
  color: var(--muted);
  font-family: var(--copy);
  font-size: var(--h5);
  font-style: italic;
  line-height: var(--open);
}

.pulpit-core-body::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  width: 40px;
  height: 1px;
  background: rgba(255, 255, 255, .2);
}

.pulpit-core-tag { color: var(--muted); font-size: var(--sm); }

/* inline-cta INLINE-CTA-03 */
.mosaique-modern {
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-base);
  text-align: center;
}

.mosaique-modern-row { font-size: var(--h4); line-height: var(--default); }
.mosaique-modern-row strong { color: var(--body); font-weight: var(--strong); }
.mosaique-modern-jump { color: var(--focus); text-decoration: underline; text-decoration-thickness: 1px; }
.mosaique-modern-jump:hover { color: var(--accent-strong); text-decoration-thickness: 3px; }

/* prose PROSE-17 */
.coffre-grand {
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-wide);
}

.coffre-grand-fill { display: flex; flex-direction: column; gap: var(--g-snug); }

.coffre-grand-fill h2 {
  position: relative;
  margin-block-start: var(--g-base);
  padding-block-end: var(--g-hair);
  font-weight: 600;
  font-size: var(--head);
}

.coffre-grand-fill h2:first-child { margin-block-start: 0; }

.coffre-grand-fill h2::after {
  content: "";
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 0;
  width: 64px;
  height: var(--b-strong);
  background: var(--focus);
  border-style: solid;
  border-width: 0;
}

.coffre-grand-fill h3 { margin-block-start: var(--g-snug); color: var(--body); }
.coffre-grand-fill p { color: var(--muted); line-height: var(--open); }
.coffre-grand-fill ul,
.coffre-grand-fill ol { display: flex; flex-direction: column; gap: var(--g-hair); padding-inline-start: var(--g-base); color: var(--muted); line-height: var(--open); }
.coffre-grand-fill strong { color: var(--body); }
.coffre-grand-fill a { color: var(--focus); }

/* items-grid GRID-01 */
.bandeau-sleek {
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-wide);
}

.bandeau-sleek-lede { margin-block-end: var(--g-base); }

.bandeau-sleek-chain {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--g-wide);
  list-style: none;
  padding: 0;
  margin: 0;
}

.bandeau-sleek-unit {
  display: flex;
  flex-direction: column;
  gap: var(--g-snug);
  padding: var(--g-wide);
  background: var(--bg-elevated);
  border: var(--light) solid var(--border);
  border-radius: var(--r-base);
  transition: border-color var(--t-mid) var(--settle);
}

.bandeau-sleek-unit:hover { border-color: var(--focus); }
.bandeau-sleek-glyph { width: 34px; height: 34px; fill: var(--focus); }
.bandeau-sleek-unit-banner { font-family: var(--heading); font-weight: var(--strong); font-size: var(--h4); line-height: var(--tight); color: var(--body); font-style: normal; }
.bandeau-sleek-unit-body { color: var(--muted); font-size: var(--normal); line-height: var(--default); }

/* data-table TABLE-07 */
.loft-grand {
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-wide);
}

.loft-grand-lede { margin-block-end: var(--g-base); }
.loft-grand-scroll { overflow-x: auto; border-radius: var(--r-base); border: var(--light) solid var(--border); }
.loft-grand-slab { width: 100%; min-width: 560px; font-size: var(--sm); }
.loft-grand-slab thead { background: var(--pillar); }
.loft-grand-slab th { padding: var(--g-base); color: var(--gradient-light); font-family: var(--heading); font-weight: var(--strong); text-align: start; }
.loft-grand-slab td { padding: var(--g-base); color: var(--muted); border-block-start: var(--light) solid var(--border); }
.loft-grand-slab td:nth-child(even) { background: rgba(255, 255, 255, .03); }
.loft-grand-slab td:first-child { color: var(--body); font-weight: var(--mid); }

/* faq FAQ-09 */
.quai-classic {
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-wide);
}

.quai-classic-lede { margin-block-end: var(--g-base); }
.quai-classic-chain { display: flex; flex-direction: column; gap: var(--g-base); }
.quai-classic-unit { padding-block: var(--g-snug); }
.quai-classic-mark { display: inline-block; margin-inline-end: var(--g-tiny); color: var(--focus); font-family: var(--heading); font-weight: var(--strong); font-size: var(--h5); font-style: normal; }
.quai-classic-ask { margin: 0; color: var(--body); font-family: var(--heading); font-weight: var(--strong); font-size: var(--h5); font-style: italic; }
.quai-classic-lever { display: block; width: 100%; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: start; cursor: pointer; }
.quai-classic-reply { overflow: hidden; color: var(--muted); font-size: var(--normal); line-height: var(--open); }
.quai-classic-reply[hidden] { display: none; }
.quai-classic-fold { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows var(--t-mid) var(--settle), opacity var(--t-mid) var(--settle); }
.quai-classic-fold.is-open { grid-template-rows: 1fr; opacity: 1; }
.quai-classic-fold > div { min-height: 0; overflow: hidden; padding-block-start: var(--g-snug); }

/* reviews REV-10 */
.tympan-raw {
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-wide);
}

.tympan-raw-lede { margin-block-end: var(--g-base); }
.tympan-raw-chain { display: flex; flex-direction: column; list-style: none; padding: 0; margin: 0; }
.tympan-raw-unit { padding-block: var(--g-base); border-block-end: var(--light) dotted var(--stroke-heavy); }
.tympan-raw-row { font-size: var(--normal); }
.tympan-raw-person { font-weight: var(--mid); color: var(--body); }
.tympan-raw-score { color: var(--muted); }
.tympan-raw-when { color: var(--muted); }
.tympan-raw-body { margin-block-start: var(--g-hair); color: var(--muted); font-size: var(--normal); line-height: var(--open); }

/* cta-block CTA-03 */
.pillar-grave {
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-wide);
}

.pillar-grave-shell { display: grid; grid-template-columns: 1fr 1fr; border: var(--light) solid var(--border); border-radius: var(--r-wide); overflow: hidden; }
.pillar-grave-fill { display: flex; flex-direction: column; gap: var(--g-snug); padding: var(--g-wide); background: var(--base-plane); }
.pillar-grave-banner { font-family: var(--heading); font-weight: var(--strong); font-size: var(--head); line-height: var(--tight); }
.pillar-grave-body { color: var(--muted); line-height: var(--open); }
.pillar-grave-fine { color: var(--muted); font-size: var(--legal); }

.pillar-grave-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 400px;
  padding: var(--g-base);
  background: var(--focus);
}

.pillar-grave-mark { background: var(--focus); color: var(--gradient-light); font-family: var(--heading); font-weight: var(--strong); font-size: clamp(48px, 8vw, 96px); line-height: 1; text-align: center; }

/* legal-section LEGAL-02 */
.pavillon-prime {
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-wide);
}

.pavillon-prime-body { counter-reset: legal-part; display: flex; flex-direction: column; gap: var(--g-base); }
.pavillon-prime-lead { color: var(--muted); font-size: var(--h5); line-height: var(--open); }
.pavillon-prime-part { counter-increment: legal-part; }

.pavillon-prime-part h3 {
  color: var(--body);
  font-family: var(--heading);
  font-weight: var(--strong);
  font-style: normal;
  font-size: var(--h3);
  margin-block-end: var(--g-snug);
}

.pavillon-prime-part h3::before {
  content: counter(legal-part) ". ";
  color: var(--focus);
  font-family: var(--heading);
  font-weight: var(--strong);
  margin-inline-end: var(--g-hair);
}

.pavillon-prime-part p { padding-inline-start: var(--g-base); color: var(--muted); line-height: var(--open); }
.pavillon-prime-part p + p { margin-block-start: var(--g-snug); }
.pavillon-prime-aid { display: flex; flex-direction: column; gap: var(--g-hair); padding-inline-start: var(--g-base); color: var(--muted); line-height: var(--open); }
.pavillon-prime-fine { padding: var(--g-base); background: var(--bg-elevated); border-radius: var(--r-base); color: var(--muted); font-size: var(--sm); line-height: var(--open); }

/* contact-form FORM-08 */
.portal-smart {
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-wide);
}

.portal-smart-shell { display: flex; flex-direction: column; gap: var(--g-base); padding: var(--g-wide); background: var(--bg-elevated); border-radius: var(--r-base); }
.portal-smart-lead { color: var(--muted); line-height: var(--open); }
.portal-smart-box { display: flex; flex-direction: column; gap: var(--g-hair); }
.portal-smart-chip { color: var(--body); font-size: var(--sm); font-weight: var(--mid); }

.portal-smart-box input,
.portal-smart-box textarea {
  width: 100%;
  padding: var(--g-snug);
  background: var(--base-plane);
  border: var(--light) solid var(--stroke-heavy);
  border-radius: var(--r-snug);
  color: var(--body);
  font-family: var(--copy);
  font-size: var(--normal);
}

.portal-smart-box textarea { min-height: 160px; resize: vertical; }

.portal-smart-send {
  width: 100%;
  min-height: 72px;
  border: 0;
  border-radius: var(--r-snug);
  background: var(--focus);
  color: var(--gradient-light);
  font-family: var(--heading);
  font-size: var(--h4);
  font-weight: var(--strong);
  letter-spacing: var(--loose);
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--fast) var(--settle), color var(--fast) var(--settle);
}

.portal-smart-send:hover { background: var(--accent-strong); color: var(--gradient-light); }
.portal-smart-note { padding: var(--g-base); background: var(--base-plane); border: var(--light) solid var(--focus); border-radius: var(--r-snug); color: var(--body); line-height: var(--open); }
.portal-smart-note[hidden] { display: none; }

/* author-byline BYLINE-07 */
.encart-modern {
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-base);
}

.encart-modern-card { display: flex; flex-direction: column; gap: var(--g-snug); padding: var(--g-wide); background: var(--bg-elevated); border-radius: var(--r-base); box-shadow: var(--d-snug); }
.encart-modern-top { display: flex; align-items: center; gap: var(--g-snug); }
.encart-modern-photo { width: 72px; height: 72px; border-radius: var(--orb); object-fit: cover; object-position: center top; }
.encart-modern-person { font-family: var(--heading); font-weight: var(--strong); font-size: var(--h4); font-style: normal; }
.encart-modern-person a { color: var(--body); text-decoration: none; }
.encart-modern-person a:hover { color: var(--focus); }
.encart-modern-job { color: var(--muted); font-size: var(--sm); }
.encart-modern-when { color: var(--muted); font-size: var(--sm); }
.encart-modern-bio { color: var(--muted); line-height: var(--open); }
.encart-modern-skills { display: flex; flex-wrap: wrap; gap: var(--g-tiny); }
.encart-modern-chip { padding: var(--g-hair) var(--g-snug); background: var(--pillar); color: var(--gradient-light); border-radius: var(--pill); font-size: var(--legal); font-weight: var(--mid); text-transform: uppercase; letter-spacing: var(--loose); }
.encart-modern-jump { color: var(--focus); text-decoration: underline; }

/* author-card AUTH-01 */
.medallion-modern {
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-roomy);
}

.medallion-modern-card { display: grid; grid-template-columns: 160px 1fr; gap: var(--g-roomy); padding: var(--g-roomy) var(--g-wide); background: var(--bg-elevated); border-radius: var(--r-wide); box-shadow: var(--d-snug); }
.medallion-modern-photo { width: 160px; height: 160px; border-radius: var(--orb); overflow: hidden; }
.medallion-modern-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.medallion-modern-fill { display: flex; flex-direction: column; gap: var(--g-base); }
.medallion-modern-job { color: var(--focus); font-family: var(--copy); font-weight: var(--mid); font-size: var(--sm); text-transform: uppercase; letter-spacing: var(--loose); }
.medallion-modern-person { font-family: var(--heading); font-weight: var(--strong); font-size: var(--head); }
.medallion-modern-bio { color: var(--muted); line-height: var(--open); }
.medallion-modern-skills { display: flex; flex-wrap: wrap; gap: var(--g-tiny); list-style: none; padding: 0; margin: 0; }
.medallion-modern-chip { padding: var(--g-hair) var(--g-snug); background: var(--pillar); color: var(--gradient-light); border-radius: var(--pill); font-size: var(--legal); text-transform: uppercase; letter-spacing: var(--loose); }
.medallion-modern-writings { display: flex; flex-direction: column; gap: var(--g-snug); margin-block-start: var(--g-base); }
.medallion-modern-writings-lede { font-family: var(--heading); font-weight: var(--strong); font-size: var(--h3); font-style: normal; }
.medallion-modern-writings-chain { display: flex; flex-direction: column; gap: var(--g-hair); list-style: none; padding: 0; margin: 0; }
.medallion-modern-writings-unit { color: var(--muted); line-height: var(--open); }
.medallion-modern-writings-unit a { color: var(--focus); }

/* error-block ERR-06 */
.registre-cool {
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-roomy);
}

.registre-cool-card { display: flex; flex-direction: column; align-items: center; gap: var(--g-base); max-width: var(--column); margin-inline: auto; padding: var(--g-roomy) var(--g-wide); background: var(--bg-elevated); border: var(--b-regular) solid var(--focus); border-radius: var(--r-wide); box-shadow: var(--d-base); text-align: center; }
.registre-cool-banner { font-family: var(--heading); font-weight: var(--strong); font-size: var(--head); }
.registre-cool-body { color: var(--muted); line-height: var(--open); }

.registre-cool-jump {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding-inline: var(--g-base);
  border-radius: var(--pill);
  background: var(--focus);
  color: var(--gradient-light);
  font-family: var(--heading);
  font-weight: var(--strong);
  text-decoration: none;
  transition: background var(--fast) var(--settle), color var(--fast) var(--settle);
}

.registre-cool-jump:hover { background: var(--accent-strong); color: var(--gradient-light); }

/* cookie-banner COOK-03 */
.vignette-edge {
  position: fixed;
  inset-block-end: var(--g-base);
  inset-inline-end: var(--g-base);
  z-index: 90;
  width: 360px;
  max-width: calc(100vw - 2 * var(--g-base));
  display: flex;
  flex-direction: column;
  gap: var(--g-base);
  padding: var(--g-wide);
  background: var(--bg-elevated);
  border: var(--light) solid var(--border);
  border-radius: var(--r-wide);
  box-shadow: var(--d-wide);
}

.vignette-edge[hidden] { display: none; }
.vignette-edge-lede { color: var(--focus); font-family: var(--heading); font-weight: var(--strong); font-size: var(--h5); text-transform: uppercase; letter-spacing: var(--loose); }
.vignette-edge-note { color: var(--muted); font-size: var(--sm); line-height: var(--default); }
.vignette-edge-tools { display: flex; gap: var(--g-tiny); }

.vignette-edge-accept,
.vignette-edge-decline {
  flex: 1 1 50%;
  min-height: 44px;
  padding-inline: var(--g-tiny);
  border-radius: var(--r-snug);
  font-family: var(--heading);
  font-size: var(--sm);
  font-weight: var(--strong);
  cursor: pointer;
  transition: background var(--fast) var(--settle), color var(--fast) var(--settle);
}

.vignette-edge-accept { border: 0; background: var(--focus); color: var(--gradient-light); }
.vignette-edge-accept:hover { background: var(--accent-strong); color: var(--gradient-light); }
.vignette-edge-decline { border: var(--light) solid var(--stroke-heavy); background: none; color: var(--body); }
.vignette-edge-decline:hover { background: var(--body); color: var(--gradient-light); }

/* footer FOOT-03 */
.lobby-zone { background: var(--base-plane); border-block-start: var(--light) solid var(--border); }

.lobby-zone-core {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--g-wide);
  max-width: calc(var(--full) + 2 * var(--padding-desktop));
  margin-inline: auto;
  padding-inline: var(--padding-desktop);
  padding-block: var(--g-roomy);
  text-align: center;
}

.lobby-zone-crest img { height: 88px; width: auto; }
.lobby-zone-nav { width: 100%; }
.lobby-zone-chain { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--g-wide); list-style: none; padding: 0; margin: 0; }
.lobby-zone-jump { color: var(--body); font-family: var(--heading); font-weight: var(--mid); font-size: var(--normal); text-decoration: none; }
.lobby-zone-jump:hover { color: var(--focus); }
.lobby-zone-tagline { max-width: 480px; color: var(--muted); font-size: var(--sm); line-height: var(--open); }
.lobby-zone-rule { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--g-snug); list-style: none; padding: 0; margin: 0; }
.lobby-zone-rule-unit + .lobby-zone-rule-unit::before { content: "·"; margin-inline-end: var(--g-snug); color: var(--muted); }
.lobby-zone-rule-jump { color: var(--muted); font-size: var(--legal); letter-spacing: var(--loose); text-transform: uppercase; }
.lobby-zone-rule-jump:hover { color: var(--focus); }
.lobby-zone-mark { color: var(--muted); font-size: var(--legal); }

.page-fill { display: block; }
.lobby-zone-unit { display: inline-flex; }
.pavillon-prime-aid-unit { list-style: disc; }
.portal-smart-form { display: flex; flex-direction: column; gap: var(--g-base); }

/* offer cta shared */
.stake-note { display: block; color: var(--muted); font-size: var(--legal); line-height: var(--default); }
.stake-perch { display: flex; flex-direction: column; align-items: flex-start; gap: var(--g-hair); }
.stake-perch--mid { align-items: center; text-align: center; }

/* wide screens */
@media (min-width: 1481px) {
  .linteau-keen-core { min-height: 620px; }
}

/* narrow desktop */
@media (max-width: 1100px) {
  .bandeau-sleek-chain { grid-template-columns: repeat(2, 1fr); }
  .linteau-keen-fill { width: 58%; }
  .linteau-keen-photo { width: 40%; }
}

/* tablet + mobile */
@media (max-width: 800px) {
  .window-raw-core { height: var(--size-mobile); padding-inline: var(--g-tiny); }
  .window-raw-crest-img { height: 44px; }
  .window-raw-nav { display: none; }
  .window-raw-sheet-lever { display: inline-flex; }
  .window-raw-tools { gap: var(--g-tiny); margin-inline-start: auto; }
  .window-raw-sheet-lever { margin-inline-start: 0; }

  .linteau-keen-core { flex-direction: column; align-items: stretch; padding-block: var(--g-wide); min-height: 0; }
  .linteau-keen-fill { width: 100%; }
  .linteau-keen-photo { position: static; width: 100%; height: auto; margin-block-start: var(--g-base); transform: none; }
  .linteau-keen-photo img { height: auto; }
  .linteau-keen-photo:hover { transform: none; }

  .bandeau-sleek-chain { grid-template-columns: 1fr; gap: var(--g-base); }
  .bandeau-sleek-unit { padding: var(--g-base); }

  .pillar-grave-shell { grid-template-columns: 1fr; }
  .pillar-grave-fill { padding: var(--g-base); }
  .pillar-grave-panel { min-height: 200px; }

  .medallion-modern-card { grid-template-columns: 1fr; gap: var(--g-base); justify-items: center; padding: var(--g-base); text-align: center; }
  .medallion-modern-photo { width: 120px; height: 120px; }
  .medallion-modern-skills { justify-content: center; }

  .pavillon-prime-part p { padding-inline-start: 0; }
  .pavillon-prime-aid { padding-inline-start: 0; }

  .portal-smart-shell { padding: var(--g-base); }
  .encart-modern-card { padding: var(--g-base); }
  .registre-cool-card { padding: var(--g-base); }
  .lobby-zone-core { padding-block: var(--g-roomy); gap: var(--g-base); }
  .lobby-zone-chain { gap: var(--g-snug); }
  .lobby-zone-crest img { height: 64px; }
  .coffre-grand, .quai-classic, .tympan-raw, .loft-grand, .bandeau-sleek, .pillar-grave, .pavillon-prime, .portal-smart, .encart-modern, .medallion-modern, .registre-cool, .mosaique-modern { padding-block: var(--g-base); }
}

@media (max-width: 720px) {
  .vignette-edge { inset-inline: var(--g-snug); inset-block-end: var(--g-snug); width: auto; max-width: none; padding: 12px 14px; gap: 8px; font-size: 13px; line-height: 1.35; }
  .vignette-edge-lede { display: none; }
  .vignette-edge-note { font-size: 12px; }
  .vignette-edge-accept, .vignette-edge-decline { min-height: 40px; font-size: 12px; }
}

@media (max-width: 620px) {
  .sxss-act { padding: 8px 14px !important; font-size: 13px !important; letter-spacing: .6px !important; white-space: normal; text-align: center; max-width: 100%; }
  .window-raw-prompt .sxss-act { padding: 8px 10px !important; font-size: 12px !important; }
}

@media (max-width: 500px) {
  .window-raw-core { gap: var(--g-hair); }
  .loft-grand-slab { min-width: 460px; }
  .loft-grand-slab th, .loft-grand-slab td { padding: var(--g-snug); }
}

/* motion off */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  *,
  *::before,
  *::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 1ms !important;
    scroll-behavior: auto !important;
  }

  [data-cue] { opacity: 1; transform: none; }
  .linteau-keen-photo:hover { transform: rotate(2deg); }
}

/* Offer CTA */
.sxss-act{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;
  min-height:52px;padding:0 34px;border:2px solid #22102B;border-radius:2px;
  background:#1989FA;color:#000000;text-decoration:none;
  font-size:15px;font-weight:600;letter-spacing:1.6px;
  box-shadow:4px 4px 0 #22102B;transition:background .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease}
.sxss-act:hover{background:#0C6AC8;color:#FFFFFF;box-shadow:2px 2px 0 #22102B;animation:none}
.sxss-act:hover::after{animation:none}
.sxss-act:active{background:#0A5AAA;color:#FFFFFF}
.sxss-act:focus-visible{outline:3px solid #22102B;outline-offset:3px}
.sxss-act{overflow:hidden;animation:breathe_sxss 2.55s linear infinite}
.sxss-act::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.42) 50%,transparent 100%);background-size:45% 100%;background-repeat:no-repeat;background-position:-70% 0;animation:shine_sxss 2.55s ease-in-out infinite}
@keyframes breathe_sxss{0%{transform:scale(1);animation-timing-function:cubic-bezier(.25,.8,.35,1)}21.569%{transform:scale(1.08);animation-timing-function:cubic-bezier(.45,.05,.55,.95)}56.863%,100%{transform:scale(1)}}
@keyframes shine_sxss{0%,6.275%{background-position:-70% 0}50.980%,100%{background-position:170% 0}}
@media (prefers-reduced-motion:reduce){.sxss-act,.sxss-act::after{animation:none!important;transition:none!important}}

@media (max-width: 811px) {
  /* .window-raw-jump — класс ссылок, общий с выдвижным ящиком: с !important
	   он гасил пункты внутри открытого ящика. Прячем только контейнеры. */
	.window-raw-nav, .window-raw-chain { display: none !important; }
  .window-raw-sheet-lever { display: flex !important; }
}


/* ---- цвет офферной кнопки ----
   Разведён по партии: у нескольких сайтов кнопки совпадали цветом до последней
   цифры. Состояния и цвет текста подобраны по контрасту (WCAG): 6.0:1 в покое. */
.sxss-act {
	background: #1989FA;
	color: #000000;
	border-color: #1989FA;
}
.sxss-act:hover {
	background: #0C6AC8;
	color: #FFFFFF;
	border-color: #0C6AC8;
}
.sxss-act:active {
	background: #0A5AAA;
	color: #FFFFFF;
	border-color: #0A5AAA;
}
