/* ============================================================
   LegacyApp - Foundation (layout + components + article prose)
   ------------------------------------------------------------
   Plain, portable HTML + CSS. Same class names on every screen
   size; the difference is media queries only - ONE responsive
   set, not two versions.

   Load order:
       <link rel="stylesheet" href="tokens.css">
       <link rel="stylesheet" href="foundation.css">

   BREAKPOINTS
       >= 920px  desktop  - inline navigation
       760-919px tablet   - inline navigation, tighter spacing
       <  920px           - header collapses to a hamburger + drawer
       <  760px  phone    - sections reflow to a single column,
                            wide tables/images scroll instead of
                            pushing the page wider
   ============================================================ */

/* ============================================================
   0. RESET / BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-fg);
  font-family:var(--font-body);
  font-size:var(--fs-base);
  line-height:var(--lh-normal);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg,video{max-width:100%;height:auto;display:block;}
a{color:var(--color-link);text-decoration:none;}
a:hover{color:var(--color-link-hover);}
button{font-family:inherit;}
:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px;}

/* Layout helpers */
.la-container{max-width:var(--content-max);margin-inline:auto;padding-inline:var(--gutter);}
.la-section{padding-block:clamp(40px,6vw,88px);}
.la-section--subtle{background:var(--color-bg-subtle);}
.la-section--brand{background:linear-gradient(180deg,var(--color-brand-from),var(--color-brand-to));color:var(--color-fg-on-brand);}

/* ============================================================
   1. APP SHELL  (.la-shell  /  .la-shell--bare)
   ============================================================
   .la-shell        full layout: header + main + footer
   .la-shell--bare  campaign layout: no main nav, content + footer
   ============================================================ */
.la-shell{display:flex;flex-direction:column;min-height:100vh;}
.la-shell__main{flex:1 1 auto;}

/* ---------- Header ---------- */
.la-header{position:sticky;top:0;z-index:50;background:var(--color-surface);border-bottom:1px solid var(--color-border);}
.la-header__inner{
  max-width:var(--content-max);margin-inline:auto;padding-inline:var(--gutter);
  height:66px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);
}
.la-logo{display:inline-flex;align-items:center;flex-shrink:0;}
.la-logo img{height:30px;width:auto;}
.la-header__secure{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--gray-500);}

/* primary inline nav */
.la-nav{display:flex;align-items:center;gap:var(--space-8);}
.la-nav__links{display:flex;align-items:center;gap:var(--space-8);list-style:none;margin:0;padding:0;}
.la-nav__link{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--color-fg-muted);}
.la-nav__link:hover{color:var(--color-fg);}
.la-nav__link.is-active{color:var(--color-link);font-weight:var(--fw-semibold);}
.la-nav__actions{display:flex;align-items:center;gap:var(--space-4);}

/* hamburger (pure-CSS checkbox toggle) */
.la-nav-toggle{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;}
.la-burger{
  display:none;width:44px;height:44px;border:1px solid var(--color-border);border-radius:var(--radius-sm);
  background:var(--color-surface);color:var(--color-fg);align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;
}
.la-burger svg{width:22px;height:22px;}
.la-drawer{display:none;border-top:1px solid var(--color-border);background:var(--color-surface);}
.la-drawer__inner{max-width:var(--content-max);margin-inline:auto;padding:var(--space-3) var(--gutter) var(--space-5);display:flex;flex-direction:column;gap:var(--space-1);}
.la-drawer__link{padding:11px 12px;border-radius:var(--radius-sm);font-weight:var(--fw-medium);color:var(--color-fg);}
.la-drawer__link:hover{background:var(--color-bg-subtle);}

/* ---------- Footer ---------- */
.la-footer{background:var(--color-surface);border-top:1px solid var(--color-border);}
.la-footer__inner{
  max-width:var(--content-max);margin-inline:auto;padding:clamp(40px,5vw,64px) var(--gutter) clamp(28px,3vw,40px);
  display:grid;gap:clamp(28px,4vw,48px);grid-template-columns:1.4fr repeat(3,1fr);
}
.la-footer__brand{max-width:34ch;}
.la-footer__tagline{margin:var(--space-4) 0 0;font-size:var(--fs-sm);line-height:var(--lh-loose);color:var(--color-fg-muted);}
.la-footer__col-title{font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--color-fg-strong);margin:0 0 var(--space-4);}
.la-footer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3);}
.la-footer__list a{font-size:var(--fs-sm);color:var(--color-fg-muted);}
.la-footer__list a:hover{color:var(--color-link);}
.la-footer__bar{border-top:1px solid var(--color-border);}
.la-footer__bar-inner{max-width:var(--content-max);margin-inline:auto;padding:var(--space-5) var(--gutter);display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;justify-content:space-between;font-size:var(--fs-xs);color:var(--color-fg-subtle);}

/* ============================================================
   2. BUTTONS  (.la-btn + modifiers)
   ============================================================ */
.la-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);
  font-family:var(--font-body);font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:1;
  padding:13px 20px;border-radius:var(--radius-md);border:1.5px solid transparent;cursor:pointer;
  transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out);
  text-decoration:none;white-space:nowrap;
}
.la-btn svg{width:18px;height:18px;}
.la-btn:active{transform:scale(0.98);}
.la-btn--primary{background:var(--blue-500);color:var(--color-fg-on-brand);}
.la-btn--primary:hover{background:var(--blue-600);color:var(--color-fg-on-brand);}
.la-btn--primary:active{background:var(--blue-700);}
.la-btn--secondary{background:var(--color-surface);color:var(--color-link);border-color:var(--color-border);}
.la-btn--secondary:hover{background:var(--color-bg-subtle);color:var(--color-link);}
.la-btn--text{background:transparent;color:var(--color-link);padding-inline:var(--space-2);border-radius:var(--radius-sm);}
.la-btn--text:hover{color:var(--color-link-hover);background:var(--color-bg-subtle);}
.la-btn--sm{font-size:var(--fs-xs);padding:9px 14px;}
.la-btn--lg{font-size:var(--fs-base);padding:15px 26px;border-radius:14px;}
.la-btn--block{display:flex;width:100%;}
.la-btn:disabled,.la-btn.is-disabled{background:var(--color-disabled-bg);color:var(--color-disabled-fg);border-color:transparent;cursor:not-allowed;pointer-events:none;}

/* ============================================================
   3. CARD  (.la-card)
   ============================================================ */
.la-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;}
.la-card__media{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-bottom:1px solid var(--color-border);}
.la-card__body{padding:var(--space-6);}
.la-card__eyebrow{font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--color-fg-muted);}
.la-card__title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-bold);letter-spacing:var(--ls-snug);color:var(--color-fg-strong);margin:var(--space-3) 0 0;}
.la-card__text{font-size:var(--fs-sm);line-height:var(--lh-loose);color:var(--color-fg-muted);margin:var(--space-2) 0 0;}
.la-card__footer{margin-top:var(--space-5);display:flex;align-items:center;gap:var(--space-3);}
.la-card--link{display:block;color:inherit;transition:box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out);}
.la-card--link:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);color:inherit;}

/* ============================================================
   4. TAG / BADGE  (.la-tag)
   ============================================================ */
.la-tag{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--fs-xs);font-weight:var(--fw-semibold);line-height:1;padding:5px 11px;border-radius:var(--radius-pill);background:var(--color-bg-muted);color:var(--color-fg-strong);}
.la-tag--info{background:var(--color-info-bg);color:var(--blue-700);}
.la-tag--success{background:var(--color-success-bg);color:var(--color-success);}
.la-tag--accent{background:var(--color-accent-bg);color:var(--orange-700);}
.la-tag--outline{background:transparent;border:1px solid var(--color-border);color:var(--color-fg-muted);}

/* ============================================================
   5. BREADCRUMBS  (.la-breadcrumbs)
   ============================================================ */
.la-breadcrumbs{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--fs-sm);color:var(--color-fg-muted);}
.la-breadcrumbs li{display:inline-flex;align-items:center;gap:var(--space-2);}
.la-breadcrumbs li+li::before{content:"›";color:var(--color-fg-subtle);font-size:1em;}
.la-breadcrumbs a{color:var(--color-fg-muted);}
.la-breadcrumbs a:hover{color:var(--color-link);}
.la-breadcrumbs [aria-current="page"]{color:var(--color-fg-strong);font-weight:var(--fw-semibold);}

/* ============================================================
   6. PAGINATION  (.la-pagination)
   ============================================================ */
.la-pagination{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);list-style:none;margin:0;padding:0;}
.la-pagination__item{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-fg);}
.la-pagination__item:hover{background:var(--color-bg-subtle);color:var(--color-fg);}
.la-pagination__item.is-current{background:var(--blue-500);border-color:var(--blue-500);color:var(--color-fg-on-brand);}
.la-pagination__item.is-disabled{color:var(--color-disabled-fg);pointer-events:none;}
.la-pagination__ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;color:var(--color-fg-subtle);}

/* ============================================================
   7. FORM FIELDS  (look only - no behaviour)
   ============================================================ */
.la-field{display:flex;flex-direction:column;gap:6px;}
.la-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--blue-600);}
.la-label__hint{font-weight:var(--fw-regular);color:var(--color-fg-subtle);}
.la-input,.la-textarea,.la-select{
  width:100%;font-family:var(--font-body);font-size:var(--fs-sm);color:var(--color-fg);
  background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);
  padding:13px 14px;outline:none;transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out);
}
.la-textarea{min-height:120px;resize:vertical;line-height:var(--lh-normal);}
.la-input::placeholder,.la-textarea::placeholder{color:var(--color-fg-subtle);}
.la-input:focus,.la-textarea:focus,.la-select:focus{border-color:var(--blue-500);box-shadow:var(--shadow-focus);}
.la-input:disabled,.la-textarea:disabled{background:var(--color-bg-muted);color:var(--color-disabled-fg);cursor:not-allowed;}
.la-help{font-size:var(--fs-xs);color:var(--color-fg-muted);}

/* field validation states */
.la-field--error .la-input,.la-field--error .la-textarea,.la-field--error .la-select{border-color:var(--color-danger);}
.la-field--error .la-input:focus{box-shadow:0 0 0 4px rgba(200,52,26,0.18);}
.la-field--success .la-input,.la-field--success .la-textarea{border-color:var(--color-success);}
.la-field-error{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--color-danger);}
.la-field-success{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--color-success);}
.la-field-error svg,.la-field-success svg{width:14px;height:14px;flex-shrink:0;}

/* checkbox + radio (native control, brand-tinted, with a label row) */
.la-choice{display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--fs-sm);color:var(--color-fg);cursor:pointer;}
.la-choice input[type="checkbox"],.la-choice input[type="radio"]{
  appearance:none;-webkit-appearance:none;margin:0;flex-shrink:0;width:20px;height:20px;
  border:1.5px solid var(--color-border-strong);background:var(--color-surface);cursor:pointer;
  transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out);
}
.la-choice input[type="checkbox"]{border-radius:var(--radius-xs);}
.la-choice input[type="radio"]{border-radius:var(--radius-pill);}
.la-choice input:focus-visible{box-shadow:var(--shadow-focus);}
.la-choice input[type="checkbox"]:checked{background:var(--blue-500) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7'/></svg>") center/14px no-repeat;border-color:var(--blue-500);}
.la-choice input[type="radio"]:checked{border-color:var(--blue-500);background:var(--blue-500);box-shadow:inset 0 0 0 4px var(--color-surface);}

/* ============================================================
   8. MESSAGES - block alert + notification bar
   ============================================================ */
.la-alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:13px 15px;border-radius:var(--radius-md);border:1px solid;font-size:var(--fs-sm);line-height:var(--lh-normal);}
.la-alert svg{width:18px;height:18px;flex-shrink:0;margin-top:1px;}
.la-alert__title{font-weight:var(--fw-semibold);}
.la-alert--success{background:var(--color-success-bg);border-color:#BFE0CF;color:var(--color-success);}
.la-alert--error{background:var(--color-danger-bg);border-color:#F1C9C1;color:var(--color-danger);}
.la-alert--info{background:var(--color-info-bg);border-color:var(--blue-100);color:var(--blue-700);}
.la-alert--warning{background:var(--color-warning-bg);border-color:#EBD3A6;color:var(--color-warning);}

.la-notice{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;justify-content:center;padding:11px var(--gutter);background:var(--blue-500);color:var(--color-fg-on-brand);font-size:var(--fs-sm);font-weight:var(--fw-medium);text-align:center;}
.la-notice a{color:var(--color-fg-on-brand);text-decoration:underline;font-weight:var(--fw-semibold);}
.la-notice--accent{background:var(--orange-500);}
.la-notice__close{margin-left:auto;background:transparent;border:none;color:inherit;cursor:pointer;opacity:.8;}
.la-notice__close:hover{opacity:1;}

/* ============================================================
   9. ARTICLE CONTENT  (.la-prose)
   ------------------------------------------------------------
   Drop RAW pasted HTML inside one <div class="la-prose"> … </div>.
   Headings, paragraphs, lists, quotes, images, tables and links
   are all styled from the element selectors below - no per-element
   classes needed.
   ============================================================ */
.la-prose{max-width:var(--prose-max);font-size:var(--fs-md);line-height:var(--lh-loose);color:var(--color-fg-strong);}
.la-prose>*:first-child{margin-top:0;}
.la-prose h2{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-2xl);line-height:var(--lh-snug);letter-spacing:var(--ls-snug);color:var(--color-fg-strong);margin:var(--space-10) 0 0;}
.la-prose h3{font-family:var(--font-body);font-weight:var(--fw-bold);font-size:var(--fs-xl);line-height:var(--lh-snug);color:var(--color-fg-strong);margin:var(--space-8) 0 0;}
.la-prose h4{font-weight:var(--fw-bold);font-size:var(--fs-md);color:var(--color-fg-strong);margin:var(--space-6) 0 0;}
.la-prose p{margin:var(--space-4) 0 0;}
.la-prose a{color:var(--color-link);font-weight:var(--fw-semibold);text-decoration:underline;text-underline-offset:2px;}
.la-prose a:hover{color:var(--color-link-hover);}
.la-prose strong{font-weight:var(--fw-bold);color:var(--color-fg-strong);}
.la-prose ul,.la-prose ol{margin:var(--space-4) 0 0;padding-left:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2);}
.la-prose li{padding-left:var(--space-1);}
.la-prose ul li::marker{color:var(--blue-500);}
.la-prose ol li::marker{color:var(--blue-500);font-weight:var(--fw-bold);}
.la-prose blockquote{margin:var(--space-6) 0 0;padding:var(--space-2) 0 var(--space-2) var(--space-5);border-left:3px solid var(--blue-200);color:var(--color-fg-muted);font-style:italic;font-size:var(--fs-lg);line-height:var(--lh-normal);}
.la-prose hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-8) 0 0;}
.la-prose figure{margin:var(--space-8) 0 0;}
.la-prose img{width:100%;height:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border);}
.la-prose figcaption{margin-top:var(--space-3);font-size:var(--fs-sm);color:var(--color-fg-muted);text-align:center;}

/* Tables: the wrapper scrolls on narrow screens so wide tables never
   widen the page. If you cannot wrap raw pasted tables, the @media
   rule further down makes bare <table> scroll too. */
.la-table-wrap{margin:var(--space-8) 0 0;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:var(--radius-lg);}
.la-prose table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
.la-table-wrap>table{margin:0;}
.la-prose table caption{caption-side:top;text-align:left;padding:var(--space-3) var(--space-4);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-fg-muted);}
.la-prose thead th{text-align:left;background:var(--color-bg-subtle);color:var(--color-fg-strong);font-weight:var(--fw-bold);padding:12px 16px;border-bottom:1px solid var(--color-border);white-space:nowrap;}
.la-prose tbody td{padding:12px 16px;border-bottom:1px solid var(--color-border);vertical-align:top;}
.la-prose tbody tr:last-child td{border-bottom:none;}
.la-prose tbody tr:nth-child(even){background:var(--color-bg-subtle);}

/* ============================================================
   10. RESPONSIVE  - same classes, media-query differences
   ============================================================ */

/* --- < 920px : header collapses to hamburger --- */
@media (max-width:919px){
  .la-nav{display:none;}
  .la-burger{display:inline-flex;}
  .la-nav-toggle:checked ~ .la-drawer{display:block;}
  .la-nav-toggle:checked ~ .la-header__inner .la-burger{background:var(--color-bg-subtle);}
  .la-footer__inner{grid-template-columns:1fr 1fr;}
}

/* --- < 760px : single-column reflow, scrollable wide content --- */
@media (max-width:759px){
  .la-footer__inner{grid-template-columns:1fr;}
  .la-footer__bar-inner{justify-content:flex-start;}
  .la-btn--responsive{display:flex;width:100%;}      /* opt-in: full-width buttons on phones */

  /* Bare/raw tables in prose scroll sideways instead of pushing the page */
  .la-prose table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;}
  .la-prose blockquote{font-size:var(--fs-md);}
}

/* ===== Language switcher (moved from _header.html.twig inline <style>) ===== */
.la-lang{position:relative;display:inline-flex;outline:none;cursor:pointer;}
.la-lang__btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--gray-600);padding:7px 11px;border:1px solid var(--color-border);border-radius:10px;background:#fff;white-space:nowrap;transition:color .14s ease,border-color .14s ease;}
.la-lang:hover .la-lang__btn,.la-lang:focus-within .la-lang__btn{color:var(--blue-500);border-color:#bcd3f0;}
.la-lang__chev{transition:transform .15s ease;}
.la-lang:hover .la-lang__chev,.la-lang:focus-within .la-lang__chev{transform:rotate(180deg);}
.la-lang__menu{display:block;position:absolute;top:calc(100% + 6px);right:0;min-width:154px;background:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;z-index:60;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .14s ease,transform .14s ease;}
.la-lang:hover .la-lang__menu,.la-lang:focus-within .la-lang__menu{opacity:1;visibility:visible;transform:translateY(0);}
.la-lang__opt{display:block;padding:9px 12px;border-radius:8px;font-size:14px;font-weight:600;color:var(--gray-700);text-decoration:none;white-space:nowrap;}
.la-lang__opt:hover{background:var(--blue-50);color:var(--blue-500);}
.la-lang__opt.is-active{background:var(--blue-50);color:var(--blue-500);}
.la-drawer .la-lang{display:flex;width:100%;margin-top:var(--space-3);}
.la-drawer .la-lang__btn{width:100%;justify-content:space-between;}
.la-drawer .la-lang__menu{right:auto;left:0;width:100%;}
.la-drawer__cta{margin-top:var(--space-2);}
