/* Shared layout rhythm for the LV and EN website. Hero type and motion stay original. */
:root {
  --signal-dark: var(--signal);
  --label-on-dark: #c8d0c2;
  --section-space: clamp(72px, 8vw, 120px);
  --heading-space: clamp(32px, 4vw, 56px);
  --panel-space: clamp(24px, 3.5vw, 48px);
  --cell-space: clamp(24px, 2.5vw, 32px);
  --layout-gap: 24px;
  --section-title: clamp(2.55rem, 4.5vw, 5rem);
}

/* Neutral labels contrast with their surface; brand green marks actions and accents. */
.signal-item > span, .model-heading-focus span, .pricing-heading span,
.calculator-intro > span, .step-head small,
.scorecard-metrics > div > span, .secure-label, .feed-summary span,
.fit-check > span, .fit-label, .fit-criterion > span, .audit-form-header span,
.audit-form-note strong, .form-response { color: var(--ink); }
.fure-model .model-card-kicker, .fure-model .model-points small,
.fure-model .model-result span, .corridor-explainer > span,
.map-editorial-note > span, .corridor-region-kicker, .corridor-overview-copy > span,
.pricing-side-top, .pricing-badge, .trial-promise > div > span,
.scorecard-heading > span, .communication-rules span,
.membership-includes-head > span, .membership-benefit-grid span,
.audit-assurance > span, .audit-deliverables > span, .audit-deliverables i {
  color: var(--label-on-dark);
}
.calculator-intro h3 em {
  color: var(--ink);
  text-decoration: underline;
  text-decoration-color: var(--signal);
  text-decoration-thickness: .085em;
  text-underline-offset: .13em;
}
.button-primary:hover, .corridor-overview-select:hover { background: var(--signal); }
a:focus-visible, button:focus-visible { outline-color: var(--ink); }
.brand-header a:focus-visible, .brand-header button:focus-visible, .site-footer a:focus-visible { outline-color: var(--signal); }
.map-country[data-active="true"][data-region="origin"] { fill: var(--signal); stroke: var(--signal); }
.map-country[data-active="true"][data-region="destination"] { fill: #252b27; stroke: var(--signal); }
.route-endpoint { fill: var(--signal); }
.legend-hatched { border-color: var(--signal); background: repeating-linear-gradient(120deg, #252b27 0 3px, var(--signal) 3px 4px); }

/* One section inset, including the dark sections; shared backgrounds have one gap. */
.model-section, .corridor-section, .savings-section, .process-section,
.communication-section, .fit-section, .membership-section, .audit-section {
  padding-block: var(--section-space);
}
.savings-section + .process-section,
.fit-section + .membership-section { padding-top: 0; }
.section-heading { align-items: start; gap: clamp(24px, 3vw, 48px); margin-bottom: var(--heading-space); }
.section-heading .eyebrow, .section-heading > p:last-child, .model-heading-focus { margin-top: 0; }
.section-heading .eyebrow { align-self: start; }
.section-heading h2, .corridor-title-grid h2, .communication-copy h2,
.fit-intro h2, .membership-header h2, .audit-copy h2 {
  font-size: var(--section-title); line-height: 1; letter-spacing: -.055em;
}
.corridor-heading { display: grid; grid-template-columns: 1.12fr .88fr; column-gap: clamp(36px, 7vw, 100px); row-gap: 27px; }
.corridor-heading .eyebrow { grid-column: 1; margin-bottom: 0; }
.corridor-heading .corridor-title-grid { display: contents; }
.corridor-title-grid h2 { grid-column: 1; grid-row: 2; }
.corridor-explainer { grid-column: 2; grid-row: 1 / span 2; }
.membership-header { align-items: start; }
.corridor-explorer { margin-top: var(--heading-space); }
.membership-header > p { margin: 0; }
/* Introductory notes start at the section label, with the model's green rule. */
.model-heading-focus, .section-heading > p:last-child,
.corridor-explainer, .pricing-heading > p, .calculator-intro > p,
.trial-promise > p, .membership-header > p {
  align-self: start;
  justify-self: stretch;
  margin-top: 0;
  padding: 5px 0 5px 22px;
  border-left: 4px solid var(--signal-dark);
  text-align: left;
}
.corridor-explainer, .membership-header > p { border-left-color: var(--signal); }
.corridor-explainer > p { margin-block: 12px; }
.section-heading > *, .corridor-title-grid > *, .membership-header > *,
.audit-shell > *, .communication-shell > *, .fit-section > * { min-width: 0; }

/* Consistent button height, padding and centred labels, even when a label wraps. */
.button { min-height: 50px; padding: 12px 24px; line-height: 1.4; text-align: center; }
.button > span { flex-shrink: 0; }
.button-small { min-height: 42px; padding: 10px 17px; }
.hero-actions { align-items: center; }
.hero-actions .button { align-self: stretch; }

/* Align the white benefit strip to the same content edges as the sections. */
.signal-strip { padding-inline: max(24px, calc((100% - var(--max)) / 2)); }
.signal-item { padding-inline: 32px; }
.signal-item:first-child { padding-left: 0; }
.signal-item:last-child { padding-right: 0; }

/* Equal comparison rows are shared by both procurement models. */
.model-card { padding: var(--panel-space); }
.model-card-head { min-height: 150px; padding-bottom: var(--layout-gap); }
.model-points li { padding-block: var(--layout-gap); }
.model-result { margin-top: var(--layout-gap); padding: var(--cell-space); }
.alignment-statement { margin-top: var(--layout-gap); padding: var(--cell-space); }
@supports (grid-template-rows: subgrid) {
  @media (min-width: 821px) {
    .model-comparison { grid-template-rows: auto repeat(5, auto) auto; }
    .model-card { grid-row: 1 / span 7; grid-template-rows: subgrid; }
    .old-model { grid-column: 1; }
    .fure-model { grid-column: 3; }
    .versus { grid-column: 2; grid-row: 1 / span 7; }
    .model-points { display: contents; }
  }
}

/* The atlas controls and coverage panels use matching insets and title baselines. */
.corridor-picker, .corridor-picker-context, .corridor-region,
.corridor-overview-copy { padding: var(--cell-space); }
.corridor-picker { display: flex; flex-direction: column; justify-content: flex-end; }
.corridor-region h3 { min-height: 2.2em; display: flex; align-items: center; }
.corridor-region h3.is-long { min-height: calc(clamp(2rem, 3vw, 3.2rem) * 2.2); }
.map-caption, .corridor-footnote { padding: 20px var(--cell-space); }
.corridor-overview-copy p { margin-bottom: 24px; }

/* Pricing, calculator and trial panels share their inner and outer spacing. */
.pricing-side, .pricing-heading, .savings-inputs, .savings-output,
.trial-promise, .scorecard-heading, .fit-profile-head, .audit-form,
.membership-card, .membership-includes-head { padding: var(--panel-space); }
.membership-pricing { margin-top: 32px; }
.process-grid, .pilot-scorecard { margin-top: var(--layout-gap); }
.pricing-side h3 { margin-top: 32px; }
.pricing-side p { margin-top: var(--layout-gap); }
.pricing-badge { margin-top: auto; }
.pricing-side p { margin-bottom: var(--layout-gap); }
.pricing-tier { padding: var(--cell-space); }
.pricing-disclaimer { padding: 20px var(--cell-space); }
.pricing-heading, .calculator-intro { gap: clamp(24px, 3vw, 48px); align-items: start; }
.calculator-intro { margin-top: clamp(48px, 5.5vw, 80px); }
.calculator-intro > span { align-self: start; margin-top: 0; }
.savings-calculator { margin-top: 40px; }
.savings-output { justify-content: flex-start; }
.savings-calculator .savings-output { padding-top: calc(var(--panel-space) + 64px); }
.output-kicker, .savings-calculator .output-explainer { text-align: left; }
.big-number { justify-content: center; margin-top: 32px; }
.savings-calculator .output-explainer { margin-top: var(--layout-gap); }
.savings-output .annual-number { margin-bottom: 0; }
.savings-output .button { align-self: center; margin-top: 32px; padding: 12px 24px; }
.membership-option { padding: 18px; }
.membership-option strong { min-height: 1.9rem; display: flex; align-items: center; }
.trial-promise { gap: 24px 48px; }
.trial-promise .button { justify-self: center; }
@media (min-width: 821px) {
  .trial-promise { grid-template-rows: auto 1fr; }
  .trial-promise > div:first-child { grid-column: 1; grid-row: 1 / span 2; }
  .trial-promise > p { grid-column: 2; grid-row: 1; }
  .trial-promise .button { grid-column: 2; grid-row: 2; align-self: end; margin-bottom: 32px; }
}
.process-grid li { padding: var(--cell-space); gap: var(--layout-gap); }
.process-grid h3 { min-height: 2.3em; margin-top: 0; }
.scorecard-metrics { grid-auto-rows: 1fr; }
.scorecard-metrics > div { padding: var(--cell-space); }

/* Repeated cells share heading rows, rather than relying on text length. */
.fit-criteria-grid { grid-auto-rows: 1fr; }
.fit-section { align-items: stretch; }
.fit-intro { display: flex; flex-direction: column; }
.fit-intro h2 { font-size: clamp(2.4rem, 4.2vw, 4.6rem); }
.fit-title-line { display: block; }
.fit-intro > p:not(.eyebrow) { margin-bottom: 32px; }
.fit-intro .fit-check { margin-top: auto; }
.fit-profile-head h3 { min-height: 2em; }
.fit-criterion { padding: var(--cell-space); }
.fit-criterion h4 { margin-top: 24px; line-height: 1.4; }
.membership-includes { margin-top: var(--heading-space); }
.membership-benefit-grid > div { padding: var(--cell-space); }
.membership-benefit-grid strong { margin-top: 24px; line-height: 1.4; }
.communication-rules strong { min-height: 2.7em; }
.membership-summary-terms > div { padding: var(--cell-space); justify-content: flex-start; }
.fit-check, .audit-assurance, .audit-deliverables { padding: var(--cell-space); }
.audit-form-header { margin-bottom: 32px; padding-bottom: var(--layout-gap); }
.form-row { align-items: end; gap: var(--layout-gap); }
.audit-form label { min-width: 0; margin-bottom: var(--layout-gap); gap: 8px; }
.audit-form label > span { line-height: 1.5; }
.audit-form input:not([type="checkbox"]), .audit-form select { height: 50px; }
.audit-form-note { margin-top: var(--layout-gap); padding: var(--cell-space); align-items: center; }

@supports (grid-template-rows: subgrid) {
  .pricing-tiers { grid-template-rows: auto auto 1fr; }
  .pricing-tier { display: grid; grid-row: span 3; grid-template-rows: subgrid; }
  .fit-criteria-grid { grid-template-rows: repeat(2, auto auto 1fr); grid-auto-rows: auto; }
  .fit-criterion { display: grid; grid-row: span 3; grid-template-rows: subgrid; }
  .membership-benefit-grid { grid-template-rows: auto auto 1fr; }
  .membership-benefit-grid > div { display: grid; grid-row: span 3; grid-template-rows: subgrid; }
  .membership-summary-terms { grid-template-rows: auto auto; }
  .membership-summary-terms > div { display: grid; grid-row: span 2; grid-template-rows: subgrid; }
  .form-row { grid-template-rows: auto auto; align-items: stretch; }
  .form-row > label { display: grid; grid-row: span 2; grid-template-rows: subgrid; align-items: start; }
  @media (min-width: 1081px) {
    .pricing-logic { grid-template-rows: auto auto 1fr auto; }
    .pricing-side { display: grid; grid-row: 1 / span 4; grid-template-rows: subgrid; }
    .pricing-transport { grid-column: 1; }
    .pricing-service { grid-column: 3; }
    .pricing-plus { grid-column: 2; grid-row: 1 / span 4; }
    .pricing-badge { margin-top: 0; justify-self: start; }
  }
}

@media (max-width: 1080px) {
  .pricing-tiers { grid-template-rows: repeat(2, auto auto 1fr); }
  .membership-benefit-grid { grid-template-rows: repeat(2, auto auto 1fr); }
  .fit-intro .fit-check { margin-top: 0; }
}
@media (max-width: 820px) {
  :root { --section-space: 72px; --heading-space: 32px; --panel-space: 28px; --cell-space: 24px; }
  .signal-strip { padding-inline: 16px; }
  .signal-item { padding-inline: 0; }
  .section-heading, .section-heading.compact { gap: 20px; }
  .section-heading .eyebrow { margin: 0; }
  .corridor-heading { grid-template-columns: minmax(0, 1fr); row-gap: 24px; }
  .corridor-explainer { grid-column: 1; grid-row: 3; }
  .calculator-intro { margin-top: 48px; }
  .savings-calculator { margin-top: 32px; }
  .corridor-region h3 { min-height: 2.2em; }
  .corridor-region h3.is-long { min-height: 4.4rem; }
  .pricing-badge { margin-top: 0; }
  .process-grid h3 { min-height: 2.3em; }
  .membership-header { gap: var(--layout-gap); }
  .savings-output { justify-content: flex-start; }
  .savings-calculator .savings-output { padding-top: calc(var(--panel-space) + 40px); }
}
@media (max-width: 560px) {
  :root { --section-space: 64px; --panel-space: 24px; --cell-space: 24px; --section-title: clamp(2.4rem, 10vw, 3.2rem); }
  .model-card-head { min-height: 0; }
  .alignment-statement span { white-space: normal; }
  .corridor-region h3, .corridor-region h3.is-long { min-height: 0; display: block; }
  .corridor-two-way { padding: 16px 24px; }
  .trial-promise { gap: var(--layout-gap); }
  .trial-promise .button { justify-self: stretch; }
  .fit-intro h2 { font-size: var(--section-title); }
  .fit-profile-head h3 { min-height: 0; }
  .process-grid h3 { min-height: 0; }
  .pricing-tiers, .fit-criteria-grid, .membership-benefit-grid, .membership-summary-terms { grid-template-rows: none; grid-auto-rows: auto; }
  .pricing-tier, .fit-criterion, .membership-benefit-grid > div, .membership-summary-terms > div { grid-row: auto; grid-template-rows: auto auto auto; }
  .communication-rules strong { min-height: 0; }
  .form-row { gap: 0; grid-template-rows: none; }
  .form-row > label { grid-row: auto; grid-template-rows: auto auto; }
  .audit-form-note { gap: 12px; }
  .savings-output .button { align-self: stretch; }
}

/* The audit uses ordinary equal columns: no subgrid spanning for mixed controls. */
#audit-form { container-type: inline-size; }
#audit-form .form-row { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; align-items: start; gap: 20px; }
#audit-form .form-row > label, #audit-form .audit-phone-field {
  display: flex; flex-direction: column; grid-row: auto; grid-template-rows: none;
  gap: 8px; margin: 0 0 24px; min-width: 0;
}
#audit-form label > span { font-size: 14px; line-height: 22px; letter-spacing: .025em; text-transform: none; }
#audit-form .audit-phone-field > label { margin: 0; gap: 0; }
#audit-form input:not([type="checkbox"]), #audit-form select { height: 54px; min-height: 54px; box-sizing: border-box; }
#audit-form .audit-phone-controls { grid-template-columns: 110px minmax(0, 1fr); gap: 8px; }
#audit-form #audit-phone-code { font-size: 14px; }
#audit-form #audit-phone { padding-inline: 12px; }
#audit-form textarea { width: 100%; box-sizing: border-box; }
#audit-form .form-row > label > span { min-height: 22px; }
@container (max-width: 520px) {
  #audit-form .form-row { grid-template-columns: minmax(0, 1fr); gap: 0; }
  #audit-form .audit-phone-controls { grid-template-columns: 110px minmax(0, 1fr); }
}
@media (max-width: 600px) {
  #audit-form { padding: 24px 18px; }
  #audit-form .form-row { grid-template-columns: minmax(0, 1fr); gap: 0; }
  #audit-form .audit-form-header h3 { font-size: clamp(1.7rem, 7vw, 2.3rem); line-height: 1.12; }
  #audit-form .audit-form-note { grid-template-columns: minmax(0, 1fr); }
  #audit-form .audit-scope-note { padding: 14px; font-size: 14px; }
}
