/* ============================================================
   International Driver Licence — design system
   Implemented from the Claude Design handoff (idl-tokens.css + idl.css):
   Trustee Navy authority · Forest charge · Gold seal accent
   Instrument Serif display · Geist UI · Geist Mono credentials
   Tinted near-white surfaces · hairline ledger layouts
   Fonts are loaded via next/font (variables set in layout.tsx).
   ============================================================ */

:root {
  --bg:          #FCFCFC;
  --bg-2:        #F4F5F8;
  --surface:     #FFFFFE;
  --surface-mute:#F1F2F4;
  --surface-mute-2:#E5E7EC;

  --navy-900:    #070C1B;
  --navy-700:    #0F1D35;
  --navy-600:    #142540;
  --navy-500:    #1B2A4A;
  --navy-400:    #2C3D63;
  --navy-300:    #4A5879;
  --navy-200:    #7A86A1;
  --navy-100:    #C2C9D8;
  --navy-50:     #E5E8EE;

  --forest-700:  #1F4A12;
  --forest-500:  #2D5016;
  --forest-400:  #3F6526;
  --forest-300:  #587E3C;
  --forest-wash: #EFF3EC;

  --gold-500:    #BC9A40;
  --gold-400:    #D8BD75;
  --gold-wash:   #F7F2E2;

  --rose-500:    #BB2828;
  --rose-400:    #DD3838;
  --rose-wash:   #F8E9E9;

  --ink:         #1B2A4A;
  --ink-mute:    #525660;
  --ink-subtle:  #5B5E66;
  --ink-faint:   #6A6D75;
  /* Dark gold for gold-toned text on light surfaces (WCAG AA ≥4.5:1);
     the brighter --gold-500 stays for accents/lines/dark-bg text. */
  --gold-ink:    #806413;

  --hair:        #E5E7EC;
  --hair-strong: #C2C9D8;

  --forest:      var(--forest-500);
  --crimson:     var(--rose-500);
  --saffron:     var(--gold-500);

  --r-1: 6px;  --r-2: 10px;  --r-3: 14px;  --r-4: 18px;  --r-pill: 999px;

  --serif:  var(--font-serif), "Source Serif 4", Georgia, serif;
  --sans:   var(--font-sans), -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
  --mono:   var(--font-mono), "JetBrains Mono", ui-monospace, monospace;

  --shadow-1: 0 1px 0 rgba(27,42,74,0.04), 0 1px 2px rgba(27,42,74,0.04);
  --shadow-2: 0 1px 0 rgba(27,42,74,0.04), 0 6px 18px -8px rgba(27,42,74,0.18);
  --shadow-action: 0 8px 24px -10px rgba(45,80,22,0.45);
  --shadow-up: 0 -10px 30px -12px rgba(27,42,74,0.18);
}

.idl {
  --pad: 72px;
  font-family: var(--sans);
  color: var(--ink);
  background: var(--bg);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  position: relative;
  text-rendering: optimizeLegibility;
}
.idl *, .idl *::before, .idl *::after { box-sizing: border-box; }
.idl p { margin: 0; }
.idl h1, .idl h2, .idl h3, .idl h4 { margin: 0; font-weight: 500; }
.idl a { color: inherit; text-decoration: none; }
.idl img { display: block; max-width: 100%; }

.idl .serif { font-family: var(--serif); font-weight: 400; letter-spacing: -0.01em; line-height: 1.04; }
.idl .mono { font-family: var(--mono); text-transform: uppercase; letter-spacing: 0.16em; font-size: 11px; font-weight: 500; color: var(--ink-subtle); }
.idl .eyebrow { font-family: var(--mono); text-transform: uppercase; letter-spacing: 0.22em; font-size: 11px; font-weight: 500; color: var(--gold-500); display: inline-flex; align-items: center; gap: 10px; }
.idl .eyebrow::before { content: ""; width: 18px; height: 1px; background: var(--gold-500); display: inline-block; }
.idl .eyebrow--ink { color: var(--ink-subtle); }
.idl .eyebrow--ink::before { background: var(--hair-strong); }

.idl .wrap { padding-left: var(--pad); padding-right: var(--pad); }
.idl .section { padding-top: 76px; padding-bottom: 76px; }
.idl .rule { height: 1px; background: var(--hair); border: 0; }
.idl .rule-strong { height: 1px; background: var(--hair-strong); border: 0; }
.idl .rule-node { display: flex; align-items: center; gap: 14px; color: var(--ink-faint); }
.idl .rule-node::before, .idl .rule-node::after { content: ""; flex: 1; height: 1px; background: var(--hair); }
.idl .rule-node i { width: 6px; height: 6px; transform: rotate(45deg); background: var(--gold-500); display: block; }

.idl .btn { font-family: var(--sans); font-size: 14px; font-weight: 600; letter-spacing: 0.01em; padding: 13px 22px; border-radius: var(--r-1); border: 1px solid transparent; display: inline-flex; align-items: center; gap: 9px; cursor: pointer; transition: filter .15s, background .15s, border-color .15s; white-space: nowrap; text-align: center; justify-content: center; max-width: 100%; }
/* Forest CTA: force bright text on green in every state (no cascade can darken it). */
.idl .btn--forest, .idl a.btn--forest, .idl .btn--forest:link, .idl .btn--forest:hover, .idl .btn--forest:focus, .idl .btn--forest:visited { background: var(--forest-500); color: #FFFFFF !important; box-shadow: var(--shadow-action); font-weight: 700; }
.idl .btn--forest:hover { filter: brightness(1.1); color: #FFFFFF !important; }
.idl .btn--navy { background: var(--navy-700); color: #EAEEF6; }
.idl .btn--navy:hover { background: var(--navy-600); }
.idl .btn--ghost { background: transparent; color: var(--navy-600); border-color: var(--hair-strong); }
.idl .btn--ghost:hover { border-color: var(--navy-300); background: var(--surface-mute); }
.idl .btn--gold { background: var(--gold-wash); color: var(--navy-700); border-color: var(--gold-400); }
.idl .btn--lg { padding: 16px 28px; font-size: 15px; }
.idl .btn--block { width: 100%; justify-content: center; }
.idl .btn[disabled] { opacity: 0.5; cursor: not-allowed; }

/* Invalid form control — red border + soft ring (set by the apply wizard when a
   required field is missing). Works on inputs, selects and the country button. */
.idl .input--err, .idl .input--err:focus { border-color: var(--rose-500) !important; box-shadow: 0 0 0 3px rgba(192,57,43,0.14) !important; }
.idl .destgrid.input--err { border-color: var(--rose-500) !important; box-shadow: 0 0 0 3px rgba(192,57,43,0.14) !important; }

.idl .notice { background: var(--navy-900); color: #C9D2E4; font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; display: flex; align-items: center; justify-content: center; gap: 14px; padding: 5px 24px; text-align: center; line-height: 1.3; }
.idl .notice .gold { color: var(--gold-400); }
.idl .notice .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--navy-300); display: inline-block; }
@media (max-width: 760px) {
  /* Keep each phrase intact and let them wrap as whole units; drop the leading
     bullet + the separator dots (they strand when wrapping). */
  .idl .notice { flex-wrap: wrap; gap: 4px 10px; font-size: 9px; letter-spacing: 0.08em; padding: 6px 14px; }
  .idl .notice > span:not(.dot) { white-space: nowrap; }
  .idl .notice .dot { display: none; }
  .idl .notice > .gold:first-child { display: none; }
}

.idl .head { display: flex; align-items: center; justify-content: space-between; height: 78px; border-bottom: 1px solid var(--hair); background: var(--surface); position: sticky; top: 0; z-index: 40; }
.idl .brand { display: flex; align-items: center; gap: 14px; }
.idl .brand__seal { width: 42px; height: 42px; flex: none; }
.idl .brand__txt { display: flex; flex-direction: column; line-height: 1.05; }
.idl .brand__name { font-family: var(--serif); font-size: 21px; color: var(--navy-700); letter-spacing: -0.01em; }
.idl .brand__sub { font-family: var(--mono); font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink-mute); margin-top: 3px; white-space: nowrap; }
.idl .nav { display: flex; align-items: center; gap: 30px; }
.idl .nav a { font-size: 13.5px; font-weight: 500; color: var(--ink-mute); transition: color .15s; }
.idl .nav a:hover { color: var(--navy-700); }
.idl .nav .actions { display: flex; align-items: center; gap: 12px; margin-left: 8px; }
.idl .navtoggle { display: none; background: none; border: 1px solid var(--hair-strong); border-radius: var(--r-1); padding: 8px; color: var(--navy-700); cursor: pointer; }

.idl .crumb { display: flex; align-items: center; gap: 9px; font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-faint); padding-top: 16px; padding-bottom: 16px; flex-wrap: wrap; }
.idl .crumb a:hover { color: var(--navy-500); }
.idl .crumb .sep { color: var(--hair-strong); }
.idl .crumb .here { color: var(--navy-500); }

.idl .hero { display: grid; grid-template-columns: 1.08fr 0.92fr; background: var(--navy-700); color: #E7ECF5; position: relative; overflow: hidden; }
.idl .hero__l { padding: 78px var(--pad) 72px; display: flex; flex-direction: column; justify-content: center; position: relative; z-index: 2; }
.idl .hero__r { position: relative; border-left: 1px solid rgba(255,255,255,0.07); display: flex; align-items: center; justify-content: center; padding: 56px; }
.idl .hero h1 { font-family: var(--serif); font-size: 62px; line-height: 1.0; letter-spacing: -0.015em; color: #F6F8FC; margin: 22px 0 0; }
.idl .hero h1 em { font-style: italic; color: var(--gold-400); }
.idl .hero .lede { font-size: 17px; line-height: 1.62; color: #AEB9CF; max-width: 30em; margin-top: 22px; }
.idl .hero .cta-row { display: flex; align-items: center; gap: 14px; margin-top: 34px; flex-wrap: wrap; }
.idl .hero .meta { display: flex; gap: 30px; margin-top: 42px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,0.09); flex-wrap: wrap; }
.idl .hero .meta__i { display: flex; flex-direction: column; gap: 5px; }
.idl .hero .meta__n { font-family: var(--serif); font-size: 28px; color: #F6F8FC; line-height: 1; }
.idl .hero .meta__l { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase; color: #7C89A6; }
.idl .hero .eyebrow { color: var(--gold-400); }
.idl .hero .eyebrow::before { background: var(--gold-400); }

.idl .mesh { position: absolute; inset: 0; background-image: repeating-linear-gradient(45deg, rgba(216,189,117,0.05) 0 1px, transparent 1px 11px), repeating-linear-gradient(-45deg, rgba(216,189,117,0.04) 0 1px, transparent 1px 11px); pointer-events: none; }

.idl .specimen { width: 100%; max-width: 380px; background: linear-gradient(160deg, #F4EFE0, #EDE6D2); border: 1px solid var(--gold-400); border-radius: var(--r-2); box-shadow: 0 30px 70px -28px rgba(0,0,0,0.6); padding: 26px; color: var(--navy-700); position: relative; aspect-ratio: 5 / 7; display: flex; flex-direction: column; }
.idl .specimen__top { display: flex; justify-content: space-between; align-items: flex-start; }
.idl .specimen__seal { width: 46px; height: 46px; }
.idl .specimen__conv { font-family: var(--mono); font-size: 8px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--navy-300); text-align: right; line-height: 1.5; }
.idl .specimen__title { font-family: var(--serif); font-size: 22px; line-height: 1.05; margin-top: 22px; }
.idl .specimen__sub { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-500); margin-top: 8px; }
.idl .specimen__guill { margin-top: auto; height: 64px; border-radius: var(--r-1); background: repeating-radial-gradient(circle at 30% 50%, transparent 0 4px, rgba(188,154,64,0.22) 4px 5px), repeating-radial-gradient(circle at 70% 50%, transparent 0 4px, rgba(20,37,64,0.13) 4px 5px); border: 1px solid rgba(188,154,64,0.4); }
.idl .specimen__foot { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; }
.idl .specimen__no { font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; color: var(--navy-500); }
.idl .specimen__qr { width: 38px; height: 38px; }
.idl .specimen__tag { position: absolute; top: 18px; left: -1px; background: var(--forest-500); color: #EFF3EC; font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.14em; text-transform: uppercase; padding: 5px 11px; border-radius: 0 var(--r-1) var(--r-1) 0; }

.idl .sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 56px; }
.idl .sec-head h2 { font-family: var(--serif); font-size: 38px; color: var(--navy-700); line-height: 1.05; letter-spacing: -0.01em; }
.idl .sec-head .lede { color: var(--ink-mute); font-size: 15px; max-width: 32em; margin-top: 10px; }
.idl .sec-head__r { text-align: right; flex: none; }

/* Home "what you're buying" answer split — full-bordered spec list, no side-stripe */
.idl .answer-split { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 48px; align-items: start; }
.idl .answer-lede { color: var(--ink-mute); font-size: 16.5px; line-height: 1.72; max-width: 34em; }
.idl .isnt { border: 1px solid var(--hair); border-radius: var(--r-2); overflow: hidden; background: var(--surface); }
.idl .isnt > div { display: grid; grid-template-columns: 84px 1fr; gap: 18px; padding: 16px 22px; }
.idl .isnt > div + div { border-top: 1px solid var(--hair); }
.idl .isnt dt { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-ink); padding-top: 3px; }
.idl .isnt dd { margin: 0; color: var(--navy-700); font-size: 14.5px; line-height: 1.55; }
@media (max-width: 900px) { .idl .answer-split { grid-template-columns: 1fr; gap: 26px; } }

.idl .steps { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--hair-strong); }
.idl .step { padding: 38px 28px 34px 0; border-right: 1px solid var(--hair); position: relative; }
.idl .step:last-child { border-right: 0; }
.idl .step__n { font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em; color: var(--gold-ink); }
.idl .step__t { font-family: var(--serif); font-size: 23px; color: var(--navy-700); margin-top: 14px; }
.idl .step__d { font-size: 14px; color: var(--ink-mute); margin-top: 10px; line-height: 1.6; }
.idl .step__ic { width: 30px; height: 30px; color: var(--navy-400); margin-top: 22px; }

.idl .panel { background: var(--surface); border: 1px solid var(--hair); border-radius: var(--r-2); }
.idl .panel--mute { background: var(--bg-2); }

.idl .price-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.idl .price { border: 1px solid var(--hair-strong); border-radius: var(--r-3); background: var(--surface); padding: 32px 30px 30px; position: relative; display: flex; flex-direction: column; }
.idl .price--best { border-color: var(--gold-400); box-shadow: var(--shadow-2); }
.idl .price__ribbon { position: absolute; top: -1px; right: 24px; background: var(--gold-500); color: #2B2207; font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase; padding: 6px 13px; border-radius: 0 0 var(--r-1) var(--r-1); }
.idl .price__kind { font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-subtle); }
.idl .price__name { font-family: var(--serif); font-size: 26px; color: var(--navy-700); margin-top: 12px; }
.idl .price__amt { display: flex; align-items: baseline; gap: 10px; margin-top: 18px; }
.idl .price__now { font-family: var(--serif); font-size: 52px; color: var(--navy-700); line-height: 1; }
.idl .price__unit { font-family: var(--mono); font-size: 12px; color: var(--ink-faint); align-self: flex-end; margin-bottom: 6px; }
.idl .addon-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.idl .addon { border: 1px solid var(--hair); border-radius: 12px; padding: 16px 18px; background: var(--bg-1); }
.idl .convtable { border: 1px solid var(--hair); border-radius: 12px; overflow: hidden; max-width: 60ch; }
.idl .convtable__row { display: grid; grid-template-columns: 1.1fr 1fr 1.2fr; gap: 12px; padding: 11px 16px; border-top: 1px solid var(--hair); font-size: 14.5px; color: var(--ink-mute); }
.idl .convtable__row:first-child { border-top: none; }
.idl .convtable__row--head { background: var(--bg-2); font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--navy-700); }
.idl .convtable__k { color: var(--navy-700); font-weight: 600; }
.idl .price__per { font-size: 13px; color: var(--ink-subtle); margin-top: 6px; }
.idl .price__list { list-style: none; padding: 0; margin: 22px 0 26px; display: flex; flex-direction: column; gap: 11px; }
.idl .price__list li { display: flex; gap: 11px; font-size: 14px; color: var(--ink-mute); align-items: flex-start; }
.idl .price__list .ck { color: var(--forest-400); flex: none; margin-top: 2px; }
.idl .price__cta { margin-top: auto; }

.idl .credstrip { background: var(--navy-700); color: #C9D2E4; }
.idl .creds { display: grid; grid-template-columns: repeat(4, 1fr); }
.idl .cred { padding: 34px 28px; border-right: 1px solid rgba(255,255,255,0.08); }
.idl .cred:last-child { border-right: 0; }
.idl .cred__ic { width: 26px; height: 26px; color: var(--gold-400); }
.idl .cred__t { font-family: var(--serif); font-size: 20px; color: #F2F5FA; margin-top: 16px; }
.idl .cred__d { font-size: 13px; color: #95A2BC; margin-top: 8px; line-height: 1.55; }

.idl .conv-row { display: flex; gap: 16px; flex-wrap: wrap; }
.idl .conv { display: flex; align-items: center; gap: 13px; border: 1px solid var(--hair-strong); border-radius: var(--r-2); padding: 14px 18px; background: var(--surface); }
.idl .conv__seal { width: 38px; height: 38px; flex: none; }
.idl .conv__t { font-size: 13px; font-weight: 600; color: var(--navy-700); }
.idl .conv__s { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-faint); margin-top: 3px; }

.idl .logos { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; }
.idl .logo-chip { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; font-weight: 600; color: var(--navy-300); text-transform: uppercase; border: 1px solid var(--hair); border-radius: var(--r-1); padding: 9px 15px; background: var(--surface); display: inline-flex; align-items: center; gap: 8px; }
.idl .logo-chip img { width: 16px; height: 16px; object-fit: contain; border-radius: 2px; }

.idl .reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--hair); border-radius: var(--r-2); overflow: hidden; }
.idl .review { padding: 28px 26px; border-right: 1px solid var(--hair); }
.idl .review:last-child { border-right: 0; }
.idl .review__stars { color: var(--gold-500); letter-spacing: 2px; font-size: 14px; }
.idl .review__q { font-size: 15px; color: var(--navy-700); margin-top: 14px; line-height: 1.55; }
.idl .review__by { font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-faint); margin-top: 16px; }

.idl .answer { border: 1px solid var(--forest-300); border-radius: var(--r-2); background: var(--forest-wash); padding: 22px 24px; display: flex; gap: 16px; align-items: flex-start; }
.idl .answer__ck { width: 30px; height: 30px; border-radius: 50%; flex: none; background: var(--forest-500); color: #EFF3EC; display: flex; align-items: center; justify-content: center; }
.idl .answer__t { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--forest-700); }
.idl .answer__d { font-size: 16px; color: var(--navy-700); margin-top: 8px; line-height: 1.55; }

.idl .facts { border-top: 1px solid var(--hair-strong); }
.idl .fact { display: grid; grid-template-columns: 0.4fr 1fr; gap: 24px; padding: 16px 0; border-bottom: 1px solid var(--hair); }
.idl .fact__k { font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-subtle); }
.idl .fact__v { font-size: 15px; color: var(--navy-700); }

.idl .faq { border-top: 1px solid var(--hair-strong); }
.idl .faq__i { padding: 24px 0; border-bottom: 1px solid var(--hair); display: grid; grid-template-columns: 28px 1fr; gap: 18px; }
.idl .faq__n { font-family: var(--mono); font-size: 11px; color: var(--gold-ink); padding-top: 3px; }
.idl .faq__q { font-family: var(--serif); font-size: 21px; color: var(--navy-700); }
.idl .faq__a { font-size: 15px; color: var(--ink-mute); margin-top: 10px; line-height: 1.62; max-width: 56em; }

.idl .foot { background: var(--navy-900); color: #9AA6C0; }
.idl .foot__top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 30px; padding: 56px var(--pad) 44px; }
.idl .foot__brand .brand__name { color: #F2F5FA; }
.idl .foot__brand p { font-size: 13px; color: #818EA8; margin-top: 16px; max-width: 26em; line-height: 1.6; }
.idl .foot__col h2 { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: #6E7B97; margin-bottom: 16px; }
.idl .foot__col a { display: block; font-size: 13.5px; color: #AEB9CF; padding: 5px 0; transition: color .15s; }
.idl .foot__col a:hover { color: #F2F5FA; }
.idl .foot__disc { border-top: 1px solid rgba(255,255,255,0.08); padding: 22px var(--pad); font-size: 11.5px; color: #6E7B97; line-height: 1.6; display: flex; gap: 30px; justify-content: space-between; align-items: flex-start; }
.idl .foot__disc p { max-width: 60em; }
.idl .foot__pay { display: flex; gap: 9px; flex: none; flex-wrap: wrap; }

.idl .stepper { display: flex; align-items: center; gap: 0; }
.idl .stepper__i { display: flex; align-items: center; gap: 12px; }
.idl .stepper__dot { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--hair-strong); display: flex; align-items: center; justify-content: center; font-family: var(--mono); font-size: 12px; color: var(--ink-subtle); background: var(--surface); flex: none; }
.idl .stepper__i.done .stepper__dot { background: var(--forest-500); color: #EFF3EC; border-color: var(--forest-500); }
.idl .stepper__i.active .stepper__dot { background: var(--navy-700); color: #EAEEF6; border-color: var(--navy-700); }
.idl .stepper__lab { font-size: 13px; font-weight: 500; color: var(--ink-subtle); }
.idl .stepper__i.active .stepper__lab { color: var(--navy-700); }
.idl .stepper__i.done .stepper__lab { color: var(--navy-500); }
.idl .stepper__bar { flex: 1; height: 1px; background: var(--hair-strong); margin: 0 18px; }

.idl .field { display: flex; flex-direction: column; gap: 7px; }
.idl .field > label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-subtle); }
.idl .field > label .req { color: var(--rose-500); margin-left: 3px; }
.idl .input { font-family: var(--sans); font-size: 15px; color: var(--navy-700); background: var(--surface); border: 1px solid var(--hair-strong); border-radius: var(--r-1); padding: 12px 14px; width: 100%; transition: border-color .15s, box-shadow .15s; }
.idl .input::placeholder { color: var(--ink-faint); }
.idl .input:focus { outline: none; border-color: var(--navy-400); box-shadow: 0 0 0 3px rgba(44,61,99,0.1); }
.idl select.input { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237A86A1' stroke-width='1.4' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }
.idl .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.idl .form-grid .col-2 { grid-column: span 2; }
.idl .fieldset { display: flex; flex-direction: column; gap: 18px; }
.idl .fieldset__head { display: flex; align-items: center; gap: 12px; padding-bottom: 4px; }
.idl .fieldset__n { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; color: var(--gold-ink); }
.idl .fieldset__t { font-family: var(--serif); font-size: 22px; color: var(--navy-700); }

.idl .opts { display: grid; gap: 12px; }
.idl .opts--3 { grid-template-columns: repeat(3, 1fr); }
.idl .opts--2 { grid-template-columns: repeat(2, 1fr); }
.idl .opt { border: 1px solid var(--hair-strong); border-radius: var(--r-2); padding: 18px 18px; background: var(--surface); cursor: pointer; display: flex; flex-direction: column; gap: 6px; position: relative; transition: border-color .15s, background .15s; text-align: left; }
.idl .opt:hover { border-color: var(--navy-300); }
.idl .opt.sel { border-color: var(--navy-600); background: var(--navy-50); box-shadow: 0 0 0 1px var(--navy-600) inset; }
.idl .opt__t { font-size: 15px; font-weight: 600; color: var(--navy-700); display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.idl .opt__p { font-family: var(--serif); font-size: 20px; color: var(--navy-700); }
.idl .opt__d { font-size: 12.5px; color: var(--ink-subtle); }
.idl .opt__check { width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--hair-strong); flex: none; }
.idl .opt.sel .opt__check { background: var(--navy-700); border-color: var(--navy-700); display: flex; align-items: center; justify-content: center; color: #fff; }

.idl .upload { border: 1.5px dashed var(--hair-strong); border-radius: var(--r-2); background: var(--bg-2); padding: 30px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px; cursor: pointer; }
.idl .upload__ic { width: 38px; height: 38px; color: var(--navy-300); }
.idl .upload__t { font-size: 14px; font-weight: 600; color: var(--navy-700); }
.idl .upload__d { font-size: 12.5px; color: var(--ink-subtle); }
.idl .photo-preview { width: 132px; height: 168px; border-radius: var(--r-1); background: linear-gradient(160deg, #E5E8EE, #D2D9E8); border: 1px solid var(--hair-strong); display: flex; align-items: center; justify-content: center; color: var(--navy-200); object-fit: cover; }

.idl .ledger { border: 1px solid var(--hair-strong); border-radius: var(--r-2); overflow: hidden; }
.idl .ledger__head { background: var(--bg-2); padding: 16px 22px; border-bottom: 1px solid var(--hair); display: flex; justify-content: space-between; align-items: center; }
.idl .ledger__title { font-family: var(--serif); font-size: 18px; color: var(--navy-700); }
.idl .ledger__edit { font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--navy-400); cursor: pointer; }
.idl .lrow { display: grid; grid-template-columns: 0.5fr 1fr; gap: 20px; padding: 12px 22px; border-bottom: 1px solid var(--hair); }
.idl .lrow:last-child { border-bottom: 0; }
.idl .lrow__k { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-subtle); }
.idl .lrow__v { font-size: 14px; color: var(--navy-700); }

.idl .bump { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border: 1px solid var(--hair-strong); border-radius: var(--r-2); background: var(--surface); cursor: pointer; transition: border-color .15s; }
.idl .bump:hover { border-color: var(--navy-300); }
.idl .bump.sel { border-color: var(--gold-400); background: var(--gold-wash); }
.idl .bump__box { width: 20px; height: 20px; border-radius: var(--r-1); border: 1px solid var(--hair-strong); flex: none; margin-top: 1px; background: var(--surface); display: flex; align-items: center; justify-content: center; color: transparent; }
.idl .bump.sel .bump__box { background: var(--forest-500); border-color: var(--forest-500); color: #EFF3EC; }
.idl .bump__t { font-size: 14px; font-weight: 600; color: var(--navy-700); display: flex; justify-content: space-between; gap: 12px; }
.idl .bump__d { font-size: 12.5px; color: var(--ink-mute); margin-top: 4px; }
.idl .bump__p { font-family: var(--serif); font-size: 17px; color: var(--forest-500); white-space: nowrap; }

.idl .totals { display: flex; flex-direction: column; gap: 9px; }
.idl .total-row { display: flex; justify-content: space-between; font-size: 14px; color: var(--ink-mute); }
.idl .total-row--grand { padding-top: 13px; border-top: 1px solid var(--hair-strong); margin-top: 5px; }
.idl .total-row--grand .k { font-size: 15px; font-weight: 600; color: var(--navy-700); }
.idl .total-row--grand .v { font-family: var(--serif); font-size: 30px; color: var(--navy-700); }

.idl .success-mark { width: 64px; height: 64px; border-radius: 50%; background: var(--forest-wash); border: 1px solid var(--forest-300); display: flex; align-items: center; justify-content: center; color: var(--forest-500); }
.idl .dl-card { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px; border: 1px solid var(--hair-strong); border-radius: var(--r-2); background: var(--surface); }
.idl .dl-card__l { display: flex; align-items: center; gap: 16px; }
.idl .dl-card__ic { width: 44px; height: 56px; border-radius: var(--r-1); background: var(--navy-50); border: 1px solid var(--hair-strong); display: flex; align-items: center; justify-content: center; color: var(--navy-400); flex: none; }
.idl .dl-card__t { font-size: 15px; font-weight: 600; color: var(--navy-700); }
.idl .dl-card__d { font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-faint); margin-top: 4px; }

.idl .vcard { border: 1px solid var(--navy-600); border-radius: var(--r-3); overflow: hidden; background: var(--surface); box-shadow: var(--shadow-2); }
.idl .vcard__head { background: var(--navy-700); color: #E7ECF5; padding: 22px 26px; display: flex; justify-content: space-between; align-items: center; position: relative; overflow: hidden; gap: 16px; }
.idl .vcard__status { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #BFE6B0; background: rgba(45,80,22,0.4); border: 1px solid var(--forest-300); border-radius: var(--r-pill); padding: 6px 14px; }
.idl .vcard__status .pulse { width: 7px; height: 7px; border-radius: 50%; background: #7FD86A; }
.idl .vcard__body { display: grid; grid-template-columns: 1fr 132px; gap: 26px; padding: 26px; }
.idl .vcard__qr { width: 132px; height: 132px; }

.idl .pill { display: inline-flex; align-items: center; gap: 7px; font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; padding: 5px 11px; border-radius: var(--r-pill); }
.idl .pill--ok { background: var(--forest-wash); color: var(--forest-700); border: 1px solid var(--forest-300); }
.idl .pill--gold { background: var(--gold-wash); color: #6E5717; border: 1px solid var(--gold-400); }

.idl .muted { color: var(--ink-mute); }
.idl .small { font-size: 13px; }
.idl .stack { display: flex; flex-direction: column; }
.idl .row { display: flex; align-items: center; }
.idl .between { justify-content: space-between; }
.idl .grow { flex: 1; }
.idl .disclosure { font-size: 12px; color: var(--ink-subtle); line-height: 1.6; background: var(--surface-mute); border: 1px solid var(--hair); border-radius: var(--r-1); padding: 14px 16px; }
.idl .flag { width: 22px; height: 16px; border-radius: 2px; object-fit: cover; box-shadow: 0 0 0 1px rgba(0,0,0,0.08); flex: none; }
.idl .cgrid-hero { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 48px; align-items: start; }
.idl .cgrid-body { display: grid; grid-template-columns: 1fr 320px; gap: 56px; align-items: start; }
.idl .vgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }

/* ── Responsive (artboards are 1280px desktop; production must adapt) ── */
@media (max-width: 1024px) {
  .idl { --pad: 40px; }
  .idl .hero { grid-template-columns: 1fr; }
  .idl .hero__r { border-left: 0; border-top: 1px solid rgba(255,255,255,0.07); }
  .idl .hero h1 { font-size: 48px; }
  .idl .creds { grid-template-columns: repeat(2, 1fr); }
  .idl .cred { border-bottom: 1px solid rgba(255,255,255,0.08); }
  .idl .foot__top { grid-template-columns: 1fr 1fr; }
  /* Tablet: slimmer header, never let CTAs get clipped */
  .idl .head { height: 64px; }
  .idl .brand__seal { width: 36px; height: 36px; }
  .idl .brand__name { font-size: 18px; }
  .idl .nav { gap: 20px; }
  .idl .nav a { font-size: 13px; }
  .idl .btn--lg { padding: 14px 22px; font-size: 14.5px; }
  .idl .btn { white-space: normal; }
}
@media (max-width: 760px) {
  .idl { --pad: 22px; }
  .idl .nav { display: none; }
  .idl .navtoggle { display: inline-flex; }
  .idl .nav.open { display: flex; position: absolute; top: 60px; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; background: var(--surface); border-bottom: 1px solid var(--hair); padding: 8px 22px 16px; z-index: 39; box-shadow: var(--shadow-2); }
  .idl .nav.open a { padding: 12px 0; border-bottom: 1px solid var(--hair); }
  .idl .nav.open .actions { margin: 12px 0 0; }
  .idl .nav.open .actions .btn { width: 100%; }
  /* Mobile: compact sticky header sized so the seal + wordmark fit */
  .idl .head { position: sticky; top: 0; height: 60px; }
  .idl .brand__seal { width: 32px; height: 32px; }
  .idl .brand__name { font-size: 16px; }
  .idl .brand__sub { display: none; }
  .idl .btn { white-space: normal; padding: 12px 18px; }
  .idl .btn--lg { padding: 14px 20px; font-size: 14px; }
  .idl .hero h1 { font-size: 38px; }
  .idl .hero__l { padding: 48px var(--pad); }
  .idl .hero__r { padding: 40px var(--pad) 56px; }
  .idl .steps, .idl .creds, .idl .reviews, .idl .price-grid, .idl .opts--3, .idl .opts--2, .idl .form-grid,
  .idl .cgrid-hero, .idl .cgrid-body, .idl .vgrid { grid-template-columns: 1fr; gap: 28px; }
  .idl .cgrid-body aside { position: static; }
  .idl .form-grid .col-2 { grid-column: span 1; }
  .idl .step { border-right: 0; border-bottom: 1px solid var(--hair); padding: 24px 0; }
  .idl .review { border-right: 0; border-bottom: 1px solid var(--hair); }
  .idl .sec-head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .idl .sec-head h2 { font-size: 30px; }
  .idl .sec-head__r { text-align: left; }
  .idl .foot__top { grid-template-columns: 1fr; }
  .idl .foot__disc { flex-direction: column; gap: 16px; }
  .idl .vcard__body { grid-template-columns: 1fr; }
  .idl .lrow, .idl .fact { grid-template-columns: 1fr; gap: 4px; }
  .idl .price__now { font-size: 44px; }
  .idl .hero h1 em { font-style: italic; }
}

/* ============================================================
   Striking upgrade — hero v2, search, stat band, showcase
   ============================================================ */
.idl .brand__name { white-space: nowrap; }
.idl .accent-line { width: 40px; height: 3px; background: var(--gold-500); border-radius: 2px; margin-bottom: 18px; }
.idl .sec-head h2.big { font-size: 46px; }

.idl .herox { position: relative; overflow: hidden; background: radial-gradient(120% 130% at 78% -10%, #1d3057 0%, #11203b 46%, #0a1426 100%); color: #E7ECF5; display: grid; grid-template-columns: 1.04fr 0.96fr; }
.idl .herox__glow { position: absolute; z-index: 0; width: 720px; height: 720px; right: -120px; top: -160px; background: radial-gradient(circle, rgba(216,189,117,0.22), rgba(216,189,117,0.05) 42%, transparent 66%); pointer-events: none; }
.idl .herox__rosette { position: absolute; z-index: 0; right: -80px; top: -40px; opacity: 0.5; pointer-events: none; }
.idl .herox__l { position: relative; z-index: 3; padding: 84px var(--pad) 76px; display: flex; flex-direction: column; justify-content: center; }
.idl .herox h1 { font-family: var(--serif); font-size: 76px; line-height: 0.98; letter-spacing: -0.02em; color: #F8FAFE; margin: 24px 0 0; }
.idl .herox h1 em { font-style: italic; color: var(--gold-400); }
.idl .herox .lede { font-size: 18px; line-height: 1.62; color: #B6C0D6; max-width: 31em; margin-top: 22px; }
.idl .herox .eyebrow { color: var(--gold-400); } .idl .herox .eyebrow::before { background: var(--gold-400); }
.idl .herox__r { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; padding: 40px; }

.idl .trustline { display: flex; align-items: center; gap: 18px; margin-top: 26px; flex-wrap: wrap; }
.idl .trustline .ti { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #C6D0E4; }
.idl .trustline .sep { width: 4px; height: 4px; border-radius: 50%; background: rgba(255,255,255,0.25); }
.idl .trustline strong { color: #F2F5FA; font-weight: 600; }

.idl .csearch { margin-top: 30px; background: var(--surface); border-radius: var(--r-3); box-shadow: 0 30px 60px -28px rgba(0,0,0,0.6); padding: 14px; max-width: 560px; border: 1px solid rgba(216,189,117,0.4); }
.idl .csearch__lab { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-mute); padding: 4px 8px 10px; display: flex; align-items: center; gap: 8px; }
.idl .csearch__row { display: flex; gap: 10px; }
.idl .csearch__field { flex: 1; position: relative; display: flex; align-items: center; min-width: 0; }
.idl .csearch__field .pin { position: absolute; left: 14px; color: var(--gold-500); pointer-events: none; display: flex; }
.idl .csearch__field select { appearance: none; width: 100%; font-family: var(--sans); font-size: 16px; font-weight: 500; color: var(--navy-700); background: var(--bg-2); border: 1px solid var(--hair-strong); border-radius: var(--r-2); padding: 16px 16px 16px 42px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237A86A1' stroke-width='1.4' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; }
.idl .csearch__field select:focus { outline: none; border-color: var(--navy-400); }
.idl .csearch__stack { display: flex; flex-direction: column; gap: 10px; }
.idl .csearch__line { display: flex; align-items: center; gap: 10px; }
.idl .csearch__cap { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-mute); width: 86px; flex: none; text-align: right; }
.idl .csearch__sel { flex: 1; min-width: 0; }
.idl .csearch__rm { flex: none; width: 30px; height: 30px; border: 1px solid var(--hair-strong); background: var(--surface); border-radius: var(--r-1); color: var(--ink-subtle); font-size: 18px; line-height: 1; cursor: pointer; }
.idl .csearch__rm:hover { border-color: var(--rose-400); color: var(--rose-500); }
.idl .csearch__actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 4px; flex-wrap: wrap; }
.idl .csearch__add { background: none; border: 0; color: var(--navy-600); font-family: var(--sans); font-size: 13px; font-weight: 600; cursor: pointer; padding: 6px 0; }
.idl .csearch__add:hover { color: var(--forest-500); }
@media (max-width: 760px) { .idl .csearch__cap { width: 70px; font-size: 9px; } .idl .csearch__actions .btn { flex: 1; } }

.idl .specfloat { position: relative; }
.idl .float-badge { position: absolute; background: var(--surface); border-radius: var(--r-2); box-shadow: 0 16px 36px -16px rgba(0,0,0,0.55); padding: 12px 15px; display: flex; align-items: center; gap: 11px; z-index: 5; border: 1px solid var(--hair); }
.idl .float-badge__ic { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex: none; }
.idl .float-badge__t { font-size: 13px; font-weight: 600; color: var(--navy-700); line-height: 1.2; }
.idl .float-badge__d { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-faint); margin-top: 3px; }

.idl .statband { position: relative; overflow: hidden; background: var(--navy-900); color: #E7ECF5; }
.idl .statband__mesh { position: absolute; inset: 0; opacity: 0.5; }
.idl .statband__inner { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, 1fr); }
.idl .stat { padding: 46px 34px; border-right: 1px solid rgba(255,255,255,0.08); position: relative; }
.idl .stat:last-child { border-right: 0; }
.idl .stat__n { font-family: var(--serif); font-size: 54px; line-height: 1; color: #F8FAFE; letter-spacing: -0.01em; }
.idl .stat__n em { font-style: normal; color: var(--gold-400); }
.idl .stat__l { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: #8593AE; margin-top: 12px; }
.idl .stat__node { position: absolute; right: -4px; top: 50%; width: 7px; height: 7px; transform: translateY(-50%) rotate(45deg); background: var(--gold-500); }
.idl .stat:last-child .stat__node { display: none; }

.idl .showcase { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%); }
.idl .showcase__stage { position: relative; height: 560px; display: flex; align-items: center; justify-content: center; margin-top: 12px; }
.idl .showcase__glow { position: absolute; width: 620px; height: 480px; background: radial-gradient(ellipse, rgba(188,154,64,0.18), transparent 66%); }
.idl .annot { position: absolute; z-index: 6; display: flex; align-items: center; gap: 12px; }
.idl .annot__line { width: 44px; height: 1px; background: var(--gold-400); position: relative; }
.idl .annot__line::after { content: ""; position: absolute; width: 6px; height: 6px; border-radius: 50%; background: var(--gold-500); right: -1px; top: -3px; }
.idl .annot__txt { max-width: 180px; }
.idl .annot__t { font-size: 14px; font-weight: 600; color: var(--navy-700); }
.idl .annot__d { font-size: 12px; color: var(--ink-mute); margin-top: 3px; line-height: 1.45; }
.idl .annot--r { flex-direction: row-reverse; text-align: right; }
.idl .annot--r .annot__line { transform: scaleX(-1); }

.idl .cdir { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.idl .cchip { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 18px; border: 1px solid var(--hair); border-radius: var(--r-2); background: var(--surface); transition: border-color .15s, transform .12s, box-shadow .15s; }
.idl .cchip:hover { border-color: var(--navy-300); transform: translateY(-2px); box-shadow: var(--shadow-2); }
.idl .cchip__l { display: flex; align-items: center; gap: 12px; min-width: 0; }
.idl .cchip__flag { width: 30px; height: 22px; border-radius: 3px; object-fit: cover; flex: none; box-shadow: 0 0 0 1px rgba(0,0,0,0.08); }
.idl .cchip__n { font-size: 14.5px; font-weight: 500; color: var(--navy-700); }
.idl .cchip__req { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--forest-400); margin-top: 2px; }
.idl .cchip__arr { color: var(--ink-faint); flex: none; }

@media (max-width: 1024px) {
  .idl .herox { grid-template-columns: 1fr; }
  .idl .herox h1 { font-size: 54px; }
  .idl .statband__inner { grid-template-columns: repeat(2, 1fr); }
  .idl .stat { border-bottom: 1px solid rgba(255,255,255,0.08); }
  .idl .cdir { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .idl .herox h1 { font-size: 34px; margin-top: 4px; }
  /* Tighter hero: drop the eyebrow (redundant with the notice bar), clamp the
     lede, and cut padding so the CountrySearch CTA lands above the fold. */
  .idl .herox__l { padding: 20px var(--pad) 28px; }
  .idl .herox .eyebrow { display: none; }
  .idl .herox .lede { font-size: 15px; line-height: 1.5; margin-top: 12px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .idl .lossbadge { margin: 4px 0 12px; }
  .idl .herox__r { display: none; }
  /* Compact the /apply hero to a slim trust strip so it never eats the top of
     a wizard step — keep only Trustpilot + the guarantee. */
  .idl .applyhero { padding-top: 10px !important; }
  .idl .applyhero .eyebrow, .idl .applyhero__h, .idl .applyhero__stats { display: none !important; }
  /* The 620px rosette sprawls across full-width mobile text — hide it and
     soften the glow so nothing bleeds over the hero copy. */
  .idl .herox__rosette { display: none; }
  .idl .herox__glow { opacity: 0.6; }
  .idl .csearch__row { flex-direction: column; }
  .idl .statband__inner, .idl .cdir { grid-template-columns: 1fr; }
  .idl .stat { padding: 30px var(--pad); }
  .idl .showcase__stage { height: 420px; transform: scale(0.74); }
  .idl .annot { display: none; }
  .idl .sec-head h2.big { font-size: 32px; }
}

/* ── Country select (flag dropdown) ──────────────────────────────────────*/
.idl .cselect { position: relative; }
.idl .cselect__btn { display: flex; align-items: center; gap: 10px; width: 100%; font-family: var(--sans); font-size: 15px; color: var(--navy-700); background: var(--surface); border: 1px solid var(--hair-strong); border-radius: var(--r-1); padding: 11px 14px; cursor: pointer; text-align: left; }
.idl .cselect__btn:hover { border-color: var(--navy-300); }
.idl .cselect__ph { color: #6A6D75; }
.idl .cselect__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.idl .cselect__caret { transform: rotate(90deg); margin-left: auto; color: var(--ink-faint); flex: none; }
.idl .cselect__pop { position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; right: 0; background: var(--surface); border: 1px solid var(--hair-strong); border-radius: var(--r-2); box-shadow: var(--shadow-2); padding: 10px; }
.idl .cselect__list { max-height: 240px; overflow: auto; margin-top: 8px; display: flex; flex-direction: column; gap: 2px; }
.idl .cselect__opt { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border: 0; background: transparent; border-radius: var(--r-1); cursor: pointer; font-size: 14px; color: var(--navy-700); text-align: left; width: 100%; }
.idl .cselect__opt:hover { background: var(--surface-mute); }
.idl .cselect__opt[data-sel="true"] { background: var(--forest-wash); }

/* ── Vehicle / licence class picker ──────────────────────────────────────*/
.idl .vclass { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.idl .vclass__opt { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px 8px 12px; border: 1px solid var(--hair-strong); border-radius: var(--r-2); background: var(--surface); cursor: pointer; position: relative; transition: border-color .15s, background .15s, transform .1s; color: var(--navy-400); }
.idl .vclass__opt:hover { border-color: var(--navy-300); transform: translateY(-1px); }
.idl .vclass__opt[data-sel="true"] { border-color: var(--forest-500); background: var(--forest-wash); color: var(--forest-500); box-shadow: 0 0 0 1px var(--forest-500) inset; }
.idl .vclass__ic { display: flex; align-items: center; justify-content: center; height: 42px; }
.idl .vclass__lab { font-size: 12.5px; font-weight: 600; color: var(--navy-700); }
.idl .vclass__code { font-family: var(--mono); font-size: 9px; letter-spacing: 0.12em; color: var(--ink-faint); }
.idl .vclass__opt[data-sel="true"] .vclass__code { color: var(--forest-400); }

/* ── Selected destination chips ──────────────────────────────────────────*/
.idl .destchips { display: flex; flex-wrap: wrap; gap: 8px; }
.idl .destchip { display: inline-flex; align-items: center; gap: 8px; padding: 6px 8px 6px 10px; border: 1px solid var(--forest-300); border-radius: var(--r-pill); background: var(--forest-wash); font-size: 13px; font-weight: 600; color: var(--navy-700); }
.idl .destchip button { border: 0; background: none; cursor: pointer; color: var(--ink-subtle); font-size: 17px; line-height: 1; padding: 0 2px; }
.idl .destchip button:hover { color: var(--rose-500); }

/* ── Signature pad ───────────────────────────────────────────────────────*/
.idl .sigpad__wrap { position: relative; margin-top: 10px; }
.idl .sigpad__canvas { width: 100%; height: 140px; border: 1px solid var(--hair-strong); border-radius: var(--r-2); background: var(--surface); touch-action: none; display: block; cursor: crosshair; }
.idl .sigpad__ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--ink-faint); font-size: 13px; pointer-events: none; }
.idl .sigpad__saved { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; padding: 8px; }

/* ── Licence OCR scan ────────────────────────────────────────────────────*/
.idl .scanbox { display: flex; flex-direction: column; gap: 8px; padding: 14px; border: 1px dashed var(--gold-400); border-radius: var(--r-2); background: var(--gold-wash); }
.idl .scanbox__btn { display: flex; align-items: center; gap: 12px; cursor: pointer; font-size: 14px; font-weight: 600; color: var(--navy-700); }
.idl .scanbox__note { font-size: 8.5px; letter-spacing: 0.1em; color: var(--ink-subtle); text-transform: none; }

/* ── Photo cropper ───────────────────────────────────────────────────────*/
.idl .cropper { display: flex; flex-direction: column; gap: 14px; }
.idl .cropper__stage { position: relative; height: 380px; background: #0B1426; border-radius: var(--r-2); overflow: hidden; display: flex; align-items: center; justify-content: center; touch-action: none; user-select: none; }
.idl .cropper__img { max-width: 100%; max-height: 380px; display: block; pointer-events: none; }
.idl .cropper__frame { position: absolute; box-shadow: 0 0 0 9999px rgba(7,12,27,0.62); border: 2px solid #FFFFFF; border-radius: 3px; cursor: move; touch-action: none; }
.idl .cropper__grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,0.45) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.45) 1px, transparent 1px); background-size: 33.33% 33.33%; background-position: 0 0; pointer-events: none; }
.idl .cropper__controls { display: flex; align-items: center; gap: 16px; justify-content: space-between; flex-wrap: wrap; }
.idl .cropper__zoom { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 180px; }
.idl .cropper__zoom input[type="range"] { flex: 1; accent-color: var(--forest-500); }

/* ── Crop modal ──────────────────────────────────────────────────────────*/
.idl .cropmodal { position: fixed; inset: 0; z-index: 70; background: rgba(7,12,27,0.6); display: flex; align-items: center; justify-content: center; padding: 18px; }
.idl .cropmodal__panel { width: 100%; max-width: 460px; max-height: calc(100vh - 36px); overflow: auto; }

/* ── Embedded checkout container ─────────────────────────────────────────*/
.idl .paymethods svg { border-radius: 4px; }
.idl .checkout-embed { background: var(--surface); border: 1px solid var(--hair-strong); border-radius: var(--r-2); padding: 18px; }
.idl .paygrid { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 22px; align-items: start; }
.idl .paygrid__sum { background: var(--bg-2); border: 1px solid var(--hair); border-radius: var(--r-2); padding: 18px; position: sticky; top: 76px; min-width: 0; }
.idl .paygrid__pay { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.idl .paygrid__pay .paydiv { margin: 2px 0; }
.idl .paygrid__loading { padding: 40px; text-align: center; }
.idl .paytrust { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; font-size: 12px; color: var(--ink-mute); }
.idl .paydiv { display: flex; align-items: center; gap: 12px; color: var(--ink-faint); font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; }
.idl .paydiv::before, .idl .paydiv::after { content: ""; flex: 1; height: 1px; background: var(--hair); }
.idl .promo { display: flex; gap: 8px; margin-top: 14px; }
.idl .promo .input { flex: 1; }
@media (max-width: 760px) { .idl .paygrid { grid-template-columns: 1fr; } .idl .paygrid__sum { position: static; } }

@media (max-width: 760px) {
  .idl .vclass { grid-template-columns: repeat(3, 1fr); }
}
/* #29 wizard stepper: drop labels on narrow screens so all 4 steps fit */
@media (max-width: 560px) {
  .idl .stepper__lab { display: none; }
  .idl .stepper__bar { margin: 0 8px; }
}

/* ── Language suggestion bar (#3) ────────────────────────────────────────*/
/* Floating pill, NOT an in-flow banner: it mounts client-side after locale
   detection, so keeping it fixed means its appearance never pushes page content
   (which previously shifted the whole hero down and spiked CLS for non-English
   visitors). Fixed position also keeps the page statically renderable. */
.idl .langsuggest { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); z-index: 55; display: flex; align-items: center; justify-content: center; gap: 14px; background: var(--gold-wash); border: 1px solid var(--gold-400); border-radius: var(--r-pill); padding: 9px 10px 9px 18px; font-size: 13px; color: var(--navy-700); box-shadow: 0 16px 40px -14px rgba(7,12,27,0.42); max-width: calc(100vw - 32px); }
.idl .langsuggest button { border: 0; background: none; cursor: pointer; color: var(--ink-subtle); font-size: 18px; line-height: 1; }
.idl .langsuggest button:hover { color: var(--navy-700); }

/* ── Header language switcher ────────────────────────────────────────────*/
.idl .langsw { position: relative; }
.idl .langsw__btn { display: inline-flex; align-items: center; gap: 7px; background: var(--surface); border: 1px solid var(--hair-strong); border-radius: var(--r-1); padding: 7px 10px; cursor: pointer; color: var(--navy-600); font-size: 12px; }
.idl .langsw__btn:hover { border-color: var(--navy-300); }
.idl .langsw__code { font-family: var(--mono); font-weight: 600; letter-spacing: 0.04em; }
.idl .langsw__pop { position: absolute; top: calc(100% + 6px); right: 0; z-index: 50; background: var(--surface); border: 1px solid var(--hair-strong); border-radius: var(--r-2); box-shadow: var(--shadow-2); padding: 6px; min-width: 168px; }
.idl .langsw__opt { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: var(--r-1); font-size: 13.5px; color: var(--navy-700); }
.idl .langsw__opt:hover { background: var(--surface-mute); }
.idl .langsw__opt[data-sel="true"] { background: var(--forest-wash); }

/* ── Verdict block (drive-in money-layer pages) ──────────────────────────*/
.idl .verdict { border: 2px solid var(--forest-500); border-radius: var(--r-3); background: var(--surface); padding: 24px; box-shadow: var(--shadow-2); }
.idl .verdict__badge { display: inline-block; color: #fff; font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; padding: 6px 14px; border-radius: var(--r-pill); }
.idl .verdict__line { font-size: 18px; line-height: 1.55; color: var(--navy-700); margin: 14px 0 18px; }
.idl .verdict__grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--hair); }
.idl .verdict__cell { display: flex; flex-direction: column; gap: 3px; padding: 13px 0; border-bottom: 1px solid var(--hair); }
.idl .verdict__cell:nth-child(odd) { padding-right: 18px; border-right: 1px solid var(--hair); }
.idl .verdict__cell:nth-child(even) { padding-left: 18px; }
.idl .verdict__k { font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-subtle); }
.idl .verdict__v { font-size: 14px; color: var(--navy-700); line-height: 1.5; }
.idl .verdict__foot { display: flex; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--hair); flex-wrap: wrap; color: var(--ink-faint); }
.idl .vmatrix { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.idl .vcell { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px 15px; border: 1px solid var(--hair); border-radius: var(--r-2); background: var(--surface); transition: border-color .15s, transform .1s; }
.idl .vcell:hover { border-color: var(--navy-300); transform: translateY(-1px); }
.idl .vcell__tag { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.1em; text-transform: uppercase; padding: 3px 8px; border-radius: var(--r-pill); flex: none; }
@media (max-width: 760px) { .idl .verdict__grid { grid-template-columns: 1fr; } .idl .verdict__cell:nth-child(odd) { border-right: 0; padding-right: 0; } .idl .verdict__cell:nth-child(even) { padding-left: 0; } }

/* ── Secure support assistant (client-side, no secrets) ──────────────────*/
.idl .supportfab { position: fixed; right: 22px; bottom: 22px; z-index: 60; width: 56px; height: 56px; border-radius: 50%; border: 1px solid var(--gold-deep, var(--gold-400)); background: var(--gold-500); color: var(--navy-900); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 14px 34px -12px rgba(7,12,27,0.6); transition: transform .15s, filter .15s; }
.idl .supportfab:hover { transform: translateY(-2px); filter: brightness(1.06); }
.idl .supportpanel { position: fixed; right: 22px; bottom: 88px; z-index: 60; width: 370px; max-width: calc(100vw - 32px); height: 520px; max-height: calc(100vh - 130px); background: var(--surface); border: 1px solid var(--hair-strong); border-radius: var(--r-3); box-shadow: 0 30px 70px -28px rgba(7,12,27,0.55); display: flex; flex-direction: column; overflow: hidden; }
.idl .supportpanel__head { background: var(--navy-700); color: #E7ECF5; padding: 14px 16px; display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.idl .supportpanel__t { font-family: var(--serif); font-size: 17px; color: #F6F8FC; }
.idl .supportpanel__s { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.08em; text-transform: uppercase; color: #8E9BB8; margin-top: 4px; line-height: 1.4; }
.idl .supportpanel__body { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 12px; background: var(--bg-2); }
.idl .sbubble { font-size: 13.5px; line-height: 1.5; padding: 10px 13px; border-radius: var(--r-2); max-width: 86%; }
.idl .sbubble--bot { background: var(--surface); border: 1px solid var(--hair); color: var(--ink); align-self: flex-start; border-bottom-left-radius: 3px; }
.idl .sbubble--user { background: var(--navy-700); color: #EAEEF6; align-self: flex-end; border-bottom-right-radius: 3px; }
.idl .sbubble__links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
.idl .sbubble__links a { font-family: var(--mono); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--forest-500); border: 1px solid var(--forest-300); border-radius: var(--r-pill); padding: 4px 10px; background: var(--forest-wash); }
.idl .squick { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.idl .squick button { text-align: left; font-size: 13px; color: var(--navy-700); background: var(--surface); border: 1px solid var(--hair-strong); border-radius: var(--r-2); padding: 9px 12px; cursor: pointer; transition: border-color .15s; }
.idl .squick button:hover { border-color: var(--navy-400); }
.idl .supportpanel__foot { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--hair); background: var(--surface); }
.idl .supportpanel__foot input { flex: 1; min-width: 0; font-family: var(--sans); font-size: 14px; color: var(--navy-700); background: var(--bg-2); border: 1px solid var(--hair-strong); border-radius: var(--r-1); padding: 10px 12px; }
.idl .supportpanel__foot input:focus { outline: none; border-color: var(--navy-400); }
.idl .supportpanel__foot button { flex: none; width: 42px; border: 0; border-radius: var(--r-1); background: var(--forest-500); color: #EFF3EC; font-size: 17px; cursor: pointer; }
/* "Agent is typing" indicator — three pulsing dots inside a bot bubble. */
.idl .styping { display: inline-flex; align-items: center; gap: 4px; padding: 12px 14px; }
.idl .styping span { width: 7px; height: 7px; border-radius: 50%; background: var(--navy-400, #8E9BB8); opacity: 0.5; animation: styping 1.2s infinite; }
.idl .styping span:nth-child(2) { animation-delay: 0.18s; }
.idl .styping span:nth-child(3) { animation-delay: 0.36s; }
@keyframes styping { 0%, 60%, 100% { transform: translateY(0); opacity: 0.4; } 30% { transform: translateY(-3px); opacity: 0.95; } }
/* System line (e.g. "Connecting you to Jason…") — centered, quiet. */
.idl .ssys { align-self: center; font-family: var(--mono); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--navy-400, #8E9BB8); padding: 2px 0; }
@media (max-width: 760px) {
  .idl .supportpanel { right: 12px; left: 12px; width: auto; bottom: calc(84px + env(safe-area-inset-bottom)); }
  .idl .supportfab { right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); }
  /* Leave scroll room so the last in-page CTA clears the floating bubble. */
  .idl main { padding-bottom: calc(60px + env(safe-area-inset-bottom)); }
}

/* ── Conversion machinery (Claude Design handoff: idl-convert) ──────────── */
.idl .lossbadge { display: inline-flex; align-items: center; gap: 9px; background: rgba(192,57,43,0.14); border: 1px solid rgba(255,138,120,0.4); color: #FFC9BF; border-radius: var(--r-pill); padding: 7px 14px 7px 11px; font-size: 12.5px; font-weight: 600; margin-top: 24px; margin-bottom: 18px; align-self: flex-start; }
.idl .lossbadge__ic { width: 22px; height: 22px; border-radius: 50%; background: #C0392B; color: #fff; display: flex; align-items: center; justify-content: center; flex: none; }
.idl .sproof { display: flex; align-items: center; gap: 22px; margin-top: 26px; flex-wrap: wrap; }
.idl .sproof__i { display: flex; align-items: center; gap: 10px; }
.idl .sproof__av { display: flex; }
.idl .sproof__av span { width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--navy-700); margin-left: -8px; background-size: cover; background-position: center; }
.idl .sproof__av span:first-child { margin-left: 0; }
.idl .sproof__txt { font-size: 12.5px; color: #C6D0E4; line-height: 1.3; }
.idl .sproof__txt strong { color: #F2F5FA; }
.idl .sproof__stars { color: var(--gold-400); font-size: 13px; letter-spacing: 1px; }
.idl .sproof__src { font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; color: #8593AE; }
.idl .sproof__live { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: #C6D0E4; }
.idl .sproof__dot { width: 8px; height: 8px; border-radius: 50%; background: #7FD86A; flex: none; position: relative; }
/* Composited pulse: a scaling/fading ring (transform + opacity) instead of an
   animated box-shadow, so it runs on the GPU and never repaints on the main thread. */
.idl .sproof__dot::after, .idl .chatbub__pipdot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: rgba(127,216,106,0.5); animation: livePulse 1.8s infinite; will-change: transform, opacity; }
@keyframes livePulse { 0% { transform: scale(1); opacity: 0.55; } 70% { transform: scale(2.75); opacity: 0; } 100% { transform: scale(1); opacity: 0; } }
.idl .sproof__num { font-variant-numeric: tabular-nums; color: #F2F5FA; font-weight: 700; }
.idl .toast { position: fixed; left: 18px; bottom: 18px; z-index: 60; display: flex; align-items: center; gap: 13px; background: var(--surface); border: 1px solid var(--hair); border-radius: var(--r-2); box-shadow: 0 22px 44px -18px rgba(7,12,27,0.5); padding: 12px 16px 12px 13px; min-width: 290px; max-width: min(360px, calc(100vw - 36px)); animation: toastIn 0.5s cubic-bezier(.2,.9,.3,1.2); }
@keyframes toastIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.idl .toast__av { width: 38px; height: 38px; border-radius: 50%; background: var(--navy-50); border: 1px solid var(--hair-strong); flex: none; background-size: cover; background-position: center; }
.idl .toast__flag { position: absolute; margin: 24px 0 0 24px; width: 16px; height: 12px; border-radius: 2px; border: 1.5px solid #fff; }
.idl .toast__t { font-size: 13px; color: var(--navy-700); line-height: 1.35; }
.idl .toast__t b { font-weight: 700; }
.idl .toast__d { display: flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--forest-500); margin-top: 4px; }
.idl .toast__d .ck { width: 13px; height: 13px; border-radius: 50%; background: var(--forest-wash); color: var(--forest-500); display: flex; align-items: center; justify-content: center; }
.idl .toast__verified { font-family: var(--mono); font-size: 8px; letter-spacing: 0.1em; color: var(--ink-faint); text-transform: uppercase; }
.idl .trustbadges { padding: 30px var(--pad); display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; background: var(--surface); border-bottom: 1px solid var(--hair); }
.idl .tb-group { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.idl .tb-seal { display: flex; align-items: center; gap: 10px; border: 1px solid var(--hair-strong); border-radius: var(--r-2); padding: 9px 14px; }
.idl .tb-seal__ic { width: 26px; height: 26px; color: var(--forest-500); flex: none; }
.idl .tb-seal__t { font-size: 12px; font-weight: 700; color: var(--navy-700); line-height: 1.1; }
.idl .tb-seal__d { font-family: var(--mono); font-size: 8px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-faint); margin-top: 2px; }
.idl .tb-pays { display: flex; align-items: center; gap: 8px; }
.idl .tb-label { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-faint); margin-right: 4px; }
.idl .chatfaces { display: flex; margin-right: 2px; }
.idl .chatfaces span { width: 26px; height: 26px; border-radius: 50%; border: 2px solid #fff; margin-left: -9px; background-size: cover; background-position: center; }
.idl .chatfaces span:first-child { margin-left: 0; }
@media (max-width: 640px) { .idl .toast { display: none; } }
.idl .chatbub { position: fixed; right: 18px; bottom: 18px; z-index: 60; display: flex; align-items: center; gap: 11px; background: var(--navy-700); color: #E7ECF5; border-radius: var(--r-pill); padding: 10px 18px 10px 12px; box-shadow: 0 18px 40px -14px rgba(7,12,27,0.6); border: 1px solid rgba(216,189,117,0.45); cursor: pointer; text-align: left; }
.idl .chatbub:hover { filter: brightness(1.08); }
.idl .chatbub__t { display: block; font-size: 13.5px; font-weight: 600; color: #F2F5FA; }
.idl .chatbub__d { display: flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; color: #AAB6CC; margin-top: 2px; }
.idl .chatbub__pipdot { width: 8px; height: 8px; border-radius: 50%; background: #7FD86A; position: relative; }

/* ============================================================
   Mobile polish — programmatic country / rental / guide pages.
   Inline fixed font sizes can't be touched by media queries, so
   these tag+class rules use !important to make headings fluid and
   tighten spacing for a stunning phone layout. (<=760px only.)
   ============================================================ */
@media (max-width: 760px) {
  /* Collapse the wide "Chat with support" pill to a compact faces-only bubble
     (placed after the base .chatbub rules so it wins on source order). */
  .idl .chatbub { gap: 0; padding: 7px; right: 14px; bottom: calc(14px + env(safe-area-inset-bottom)); }
  .idl .chatbub__t, .idl .chatbub__d { display: none; }
  /* Apply step 0: taller, momentum-scrolled country list instead of a cramped
     260px nested-scroll box that's hard to swipe on touch. (!important beats
     the inline max-height.) */
  .idl .destgrid { max-height: 62vh !important; -webkit-overflow-scrolling: touch; }
  .idl h1.serif { font-size: clamp(26px, 7.4vw, 40px) !important; line-height: 1.1 !important; }
  .idl h2.serif { font-size: clamp(21px, 5.8vw, 30px) !important; line-height: 1.16 !important; }
  .idl h3.serif { font-size: clamp(17px, 4.6vw, 21px) !important; line-height: 1.25 !important; }
  /* Answer/callout block: roomier on small screens */
  .idl .answer { padding: 18px 16px !important; gap: 12px !important; }
  /* Hero CTAs: full-width, thumb-friendly, stacked */
  .idl .cgrid-hero .row .btn, .idl .cgrid-hero .row .btn--lg { flex: 1 1 100%; width: 100%; justify-content: center; }
  .idl .cgrid-hero .row { gap: 10px; }
  /* Facts + chips: tighter rhythm */
  .idl .facts .fact { padding: 13px 0; }
  .idl .logos { gap: 10px; }
  .idl .logo-chip { font-size: 11px; padding: 8px 12px; }
  /* Prevent any long token (URLs, codes) from forcing horizontal scroll */
  .idl p, .idl li, .idl .faq__a, .idl .answer__d { overflow-wrap: anywhere; }
  /* FAQ number column narrower so question text gets room */
  .idl .faq__i { grid-template-columns: 20px 1fr; gap: 12px; }
  .idl .faq__q { font-size: 17px !important; }
}

/* International Driver Licence — permit specimen styles (the physical product:
   booklet + QR identity card). Engraved guilloché, security mesh, microtext, foil.
   Scoped under .idl; tokens from idl.css. */

.idl .doc { position: relative; box-shadow: 0 40px 90px -40px rgba(7,12,27,0.7), 0 8px 24px -12px rgba(7,12,27,0.4); overflow: hidden; }
.idl .sec-mesh { position: absolute; inset: 0; pointer-events: none; background-image: repeating-linear-gradient(45deg, rgba(216,189,117,0.06) 0 1px, transparent 1px 9px), repeating-linear-gradient(-45deg, rgba(216,189,117,0.045) 0 1px, transparent 1px 9px); }
.idl .sec-mesh--ink { background-image: repeating-linear-gradient(45deg, rgba(20,37,64,0.05) 0 1px, transparent 1px 8px), repeating-linear-gradient(-45deg, rgba(20,37,64,0.04) 0 1px, transparent 1px 8px); }
.idl .guilloche-wrap { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.idl .guilloche-wrap svg { position: absolute; }
.idl .microtext { font-family: var(--mono); font-size: 5.2px; letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap; overflow: hidden; line-height: 1; opacity: 0.62; }

/* booklet cover */
.idl .cover { width: 480px; height: 680px; background: radial-gradient(120% 80% at 50% 12%, #19294a 0%, #0f1d35 55%, #0a1325 100%); color: #E7ECF5; padding: 26px; display: flex; flex-direction: column; align-items: center; }
.idl .cover__frame { position: absolute; inset: 16px; border: 1px solid rgba(216,189,117,0.55); border-radius: 4px; pointer-events: none; }
.idl .cover__frame::after { content: ""; position: absolute; inset: 5px; border: 1px solid rgba(216,189,117,0.22); border-radius: 3px; }
.idl .cover__oval { margin-top: 14px; border: 1.4px solid rgba(216,189,117,0.7); border-radius: 999px; padding: 5px 16px; display: inline-flex; align-items: center; gap: 9px; font-family: var(--mono); font-size: 10px; letter-spacing: 0.2em; color: #D8BD75; position: relative; z-index: 2; }
.idl .cover__country { font-family: var(--mono); font-size: 9px; letter-spacing: 0.34em; color: #8E9BB8; margin-top: 14px; position: relative; z-index: 2; text-align: center; }
.idl .cover__seal { margin-top: 30px; position: relative; z-index: 2; filter: drop-shadow(0 6px 16px rgba(0,0,0,0.5)); }
.idl .cover__title { font-family: var(--serif); font-size: 38px; line-height: 1.0; text-align: center; color: #F6F8FC; margin-top: 26px; position: relative; z-index: 2; letter-spacing: -0.01em; }
.idl .cover__title em { display: block; font-style: italic; font-size: 22px; color: #D8BD75; margin-top: 6px; }
.idl .cover__conv { font-family: var(--mono); font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; color: #95A2BC; text-align: center; margin-top: 18px; line-height: 1.7; position: relative; z-index: 2; }
.idl .cover__rule { width: 60px; height: 1px; background: rgba(216,189,117,0.6); margin: 20px auto; position: relative; z-index: 2; }
.idl .cover__foot { margin-top: auto; width: 100%; position: relative; z-index: 2; }
.idl .cover__no { display: flex; justify-content: space-between; align-items: flex-end; }
.idl .cover__no .k { font-family: var(--mono); font-size: 8px; letter-spacing: 0.16em; text-transform: uppercase; color: #6E7B97; }
.idl .cover__no .v { font-family: var(--mono); font-size: 13px; letter-spacing: 0.06em; color: #D8BD75; margin-top: 4px; }

/* booklet data spread */
.idl .spread { display: flex; width: 920px; height: 640px; background: #F6F3EA; }
.idl .page { flex: 1; padding: 30px; position: relative; background: linear-gradient(180deg, #F8F5EC, #F1ECDD); color: var(--navy-700); }
.idl .page--l { border-right: 2px solid #DAD2BC; box-shadow: inset -14px 0 24px -18px rgba(120,105,60,0.5); }
.idl .page--r { box-shadow: inset 14px 0 24px -18px rgba(120,105,60,0.5); }
.idl .page__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; position: relative; z-index: 2; }
.idl .page__ttl { font-family: var(--serif); font-size: 20px; color: var(--navy-700); white-space: nowrap; }
.idl .page__sub { font-family: var(--mono); font-size: 7.5px; letter-spacing: 0.14em; text-transform: uppercase; color: #9a8e6a; margin-top: 3px; }
.idl .page__no { font-family: var(--mono); font-size: 8px; letter-spacing: 0.12em; color: #b3a880; }
.idl .page__rule { height: 1px; background: linear-gradient(90deg, #C9BE98, transparent); margin: 14px 0 18px; position: relative; z-index: 2; }
.idl .partics { position: relative; z-index: 2; display: grid; grid-template-columns: 124px 1fr; gap: 22px; }
.idl .partic-photo { width: 124px; height: 156px; border-radius: 3px; background: linear-gradient(160deg, #DfDccb, #cfc8af); border: 1px solid #BCB089; position: relative; display: flex; align-items: flex-end; justify-content: center; overflow: hidden; }
.idl .partic-photo__ph { color: #A99E76; margin-bottom: 22px; }
.idl .partic-photo__stamp { position: absolute; right: -10px; bottom: 16px; width: 72px; height: 72px; opacity: 0.5; transform: rotate(-12deg); }
.idl .partic-list { display: flex; flex-direction: column; }
.idl .partic { padding: 7px 0; border-bottom: 1px dotted #CFC4A0; }
.idl .partic .k { font-family: var(--mono); font-size: 7.5px; letter-spacing: 0.12em; text-transform: uppercase; color: #9a8e6a; display: flex; gap: 6px; }
.idl .partic .k b { color: #b9ad84; font-weight: 600; }
.idl .partic .v { font-size: 13.5px; color: var(--navy-700); margin-top: 2px; }
.idl .partic .v.mono { font-family: var(--mono); font-size: 12px; letter-spacing: 0.04em; }
.idl .sign-row { position: relative; z-index: 2; margin-top: 16px; display: flex; justify-content: space-between; align-items: flex-end; }
.idl .sign-box .ln { width: 180px; border-bottom: 1px solid #B6AA80; padding-bottom: 4px; font-family: var(--serif); font-style: italic; font-size: 22px; color: var(--navy-600); }
.idl .sign-box .cap { font-family: var(--mono); font-size: 7px; letter-spacing: 0.12em; text-transform: uppercase; color: #9a8e6a; margin-top: 5px; }
.idl .cats { position: relative; z-index: 2; display: flex; flex-direction: column; }
.idl .cat { display: grid; grid-template-columns: 34px 1fr 56px; gap: 14px; align-items: center; padding: 10px 0; border-bottom: 1px dotted #CFC4A0; }
.idl .cat__a { font-family: var(--serif); font-size: 24px; color: var(--navy-700); text-align: center; }
.idl .cat__t { font-size: 12px; color: var(--navy-600); line-height: 1.4; }
.idl .cat__mark { display: flex; align-items: center; justify-content: center; }
.idl .cat__stamp { width: 42px; height: 42px; border: 1.6px solid var(--forest-500); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--forest-500); transform: rotate(-9deg); opacity: 0.9; font-family: var(--mono); font-size: 6px; letter-spacing: 0.06em; text-align: center; line-height: 1.1; }
.idl .cat__x { color: #b9ad84; font-size: 18px; }
.idl .page__seal-emboss { position: absolute; right: 26px; bottom: 22px; z-index: 2; opacity: 0.5; filter: grayscale(0.3); }
.idl .page__note { position: relative; z-index: 2; font-size: 9.5px; color: #8c815f; margin-top: 14px; line-height: 1.5; }

/* ID card */
.idl .card-cr { width: 760px; height: 480px; border-radius: 22px; position: relative; color: #E7ECF5; background: radial-gradient(130% 130% at 80% 6%, #1e3158 0%, #14264a 40%, #0c182e 100%); padding: 30px 34px; display: flex; flex-direction: column; border: 1px solid rgba(216,189,117,0.35); }
.idl .card-cr__frame { position: absolute; inset: 12px; border: 1px solid rgba(216,189,117,0.28); border-radius: 16px; pointer-events: none; }
.idl .card-head { display: flex; justify-content: space-between; align-items: flex-start; position: relative; z-index: 3; }
.idl .card-head__l { display: flex; gap: 13px; align-items: center; }
.idl .card-head__ttl { font-family: var(--serif); font-size: 19px; color: #F6F8FC; line-height: 1.05; white-space: nowrap; }
.idl .card-head__sub { font-family: var(--mono); font-size: 7.5px; letter-spacing: 0.18em; text-transform: uppercase; color: #8E9BB8; margin-top: 4px; }
.idl .card-oval { border: 1.3px solid rgba(216,189,117,0.7); border-radius: 999px; padding: 4px 12px; font-family: var(--mono); font-size: 9px; letter-spacing: 0.18em; color: #D8BD75; }
.idl .card-body { display: grid; grid-template-columns: 132px 1fr; gap: 22px; margin-top: 22px; position: relative; z-index: 3; }
.idl .card-photo { width: 132px; height: 166px; border-radius: 6px; overflow: hidden; background: linear-gradient(160deg, #33415f, #1b2a4a); border: 1px solid rgba(216,189,117,0.5); position: relative; display: flex; align-items: flex-end; justify-content: center; }
.idl .card-photo__ph { color: #6E7B97; margin-bottom: 22px; }
.idl .card-photo__foil { position: absolute; right: 6px; bottom: 6px; width: 30px; height: 30px; border-radius: 50%; background: conic-gradient(from 0deg, #D8BD75, #BFE6B0, #9ec3ff, #D8BD75, #f0d9a0, #D8BD75); opacity: 0.85; mix-blend-mode: screen; }
.idl .card-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 11px 18px; align-content: start; }
.idl .cf .k { font-family: var(--mono); font-size: 7.5px; letter-spacing: 0.14em; text-transform: uppercase; color: #7C89A6; }
.idl .cf .v { font-size: 14px; color: #F2F5FA; margin-top: 3px; }
.idl .cf .v.mono { font-family: var(--mono); font-size: 13px; letter-spacing: 0.05em; color: #D8BD75; }
.idl .cf--wide { grid-column: span 2; }
.idl .card-foot { margin-top: auto; display: flex; justify-content: space-between; align-items: flex-end; position: relative; z-index: 3; }
.idl .card-sign { font-family: var(--serif); font-style: italic; font-size: 22px; color: #C9D2E4; border-bottom: 1px solid rgba(216,189,117,0.4); padding: 0 26px 3px 2px; }
.idl .card-sign .cap { font-family: var(--mono); font-style: normal; font-size: 6.5px; letter-spacing: 0.14em; text-transform: uppercase; color: #6E7B97; margin-top: 4px; }
.idl .card-qr { background: #F6F3EA; border-radius: 8px; padding: 7px; line-height: 0; border: 1px solid rgba(216,189,117,0.5); }
.idl .card-back { justify-content: flex-start; padding: 0; }
.idl .card-back__stripe { height: 64px; background: linear-gradient(180deg, #060b16, #0a1426); margin-top: 30px; border-top: 1px solid rgba(216,189,117,0.18); border-bottom: 1px solid rgba(216,189,117,0.18); position: relative; z-index: 3; }
.idl .card-back__body { padding: 22px 34px 28px; display: grid; grid-template-columns: 1fr 150px; gap: 24px; position: relative; z-index: 3; }
.idl .card-back__ttl { font-family: var(--mono); font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; color: #D8BD75; }
.idl .card-back__p { font-size: 11px; color: #AEB9CF; line-height: 1.55; margin-top: 8px; max-width: 30em; }
.idl .card-back__langs { display: flex; flex-wrap: wrap; gap: 5px 9px; margin-top: 12px; }
.idl .card-back__langs span { font-family: var(--mono); font-size: 8px; letter-spacing: 0.08em; color: #7C89A6; }
.idl .card-back__verify { display: flex; flex-direction: column; align-items: center; gap: 7px; }
.idl .card-back__verify .cap { font-family: var(--mono); font-size: 7px; letter-spacing: 0.12em; text-transform: uppercase; color: #7C89A6; text-align: center; }
.idl .card-back__no { font-family: var(--mono); font-size: 9px; letter-spacing: 0.06em; color: #6E7B97; margin-top: 4px; }
.idl .card-back__micro { position: absolute; left: 0; right: 0; bottom: 9px; text-align: center; color: #4A5879; }
