
  :root{
    --accent:#1F6B4D;
    --accent-dark:#17513A;
    --accent-light:#EAF3EC;
    --ink:#1C1C1A;
    --muted:#6B6B63;
    --paper:#FAFAF8;
    --line:#ECECE6;
    --good:#1F6B4D;
    --danger:#B0392C;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter', sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{ font-family:'Inter', sans-serif; margin:0; font-weight:700; letter-spacing:-0.01em; }
  .mono{ font-family:'IBM Plex Mono', monospace; }
  a{ color:inherit; }
  .wrap{ max-width:1120px; margin:0 auto; padding:0 32px; }
  @media (max-width:640px){ .wrap{ padding:0 20px; } }

  header{ background:#fff; color:var(--ink); border-bottom:1px solid var(--line); }
  .header-inner{ display:flex; align-items:center; justify-content:space-between; padding:20px 0; }
  .logo{ display:flex; align-items:center; gap:11px; font-family:'Inter', sans-serif; font-size:18px; font-weight:700; }
  .logo-mark{ width:26px;height:26px; background:var(--accent); border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-family:'Inter', sans-serif; font-size:11px; font-weight:700; flex-shrink:0; }
  nav{ display:flex; gap:32px; font-size:14px; font-weight:500; color:var(--muted); }
  nav a{ text-decoration:none; transition:color .15s; }
  nav a:hover{ color:var(--ink); }
  @media (max-width:760px){ nav{ display:none; } }
  .btn{ display:inline-flex; align-items:center; gap:8px; background:var(--accent); color:#fff; border:none; padding:12px 24px; border-radius:24px; font-family:'Inter', sans-serif; font-weight:600; font-size:14.5px; cursor:pointer; text-decoration:none; transition:transform .15s ease, background .15s ease; }
  .btn:hover{ background:var(--accent-dark); transform:translateY(-1px); }
  .btn:disabled{ opacity:0.5; cursor:not-allowed; transform:none; }
  .btn-ghost{ background:transparent; color:var(--ink); border:1px solid var(--line); }
  .btn-ghost:hover{ background:var(--accent-light); border-color:var(--accent); }

  .hero{ background:#fff; color:var(--ink); padding:56px 0 48px; text-align:center; border-bottom:1px solid var(--line); }
  .lede{ font-size:17px; color:var(--muted); max-width:560px; margin:0 auto; line-height:1.6; }
  .hero .product-line{ font-size:14px; color:var(--muted); margin-top:14px; max-width:720px; margin-left:auto; margin-right:auto; }

  /* ---------- Product tiles (homepage, compliance category cards) ---------- */
  .tile-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  @media (max-width:760px){ .tile-grid{ grid-template-columns:1fr; } }
  .product-tile{
    background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden;
    cursor:pointer; padding:0; text-align:left; font-family:'Inter', sans-serif;
    transition:all .15s; display:block; width:100%;
  }
  .product-tile:hover{ border-color:var(--accent); box-shadow:0 12px 28px -14px rgba(29,34,38,0.25); transform:translateY(-2px); }
  .product-tile img{ display:block; width:100%; height:180px; object-fit:cover; }
  .product-tile-label{ padding:14px 16px; font-weight:700; font-size:15px; color:var(--ink); }

  .eyebrow{ font-family:'Inter', sans-serif; font-size:12px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--accent); display:flex; align-items:center; justify-content:center; gap:10px; margin-bottom:16px; }
  .hero h1{ font-size:31px; line-height:1.25; max-width:950px; margin:0 auto; }
  @media (max-width:640px){ .hero h1{ font-size:24px; } }
  .hero p.lede{ font-size:16px; line-height:1.6; max-width:680px; margin:16px auto 0; color:var(--muted); font-weight:400; }

  /* ---------- Gallery ---------- */
  .gallery{ padding:76px 0; border-bottom:1px solid var(--line); }
  .gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  @media (max-width:760px){ .gallery-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:480px){ .gallery-grid{ grid-template-columns:1fr; } }
  .gallery-item{ border-radius:8px; overflow:hidden; border:1px solid var(--line); }
  .gallery-item img{ display:block; width:100%; height:220px; object-fit:cover; transition:transform .3s; }
  .gallery-item:hover img{ transform:scale(1.04); }

  /* ---------- Configurator ---------- */
  .configurator{ padding:56px 0 92px; border-bottom:1px solid var(--line); background:var(--paper); }
  .config-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px; align-items:start; }
  @media (max-width:900px){ .config-grid{ grid-template-columns:1fr; } }

  .tabs{ display:flex; gap:4px; border-bottom:1px solid var(--line); margin-bottom:28px; }
  .tab{ flex:1; text-align:center; padding:14px 10px; background:transparent; font-weight:600; font-size:14px; cursor:pointer; border:none; border-bottom:2px solid transparent; font-family:'Inter', sans-serif; color:var(--muted); transition:all .15s; margin-bottom:-1px; }
  .tab.active{ background:transparent; color:var(--accent); border-bottom-color:var(--accent); }
  .tab.coming-soon{ cursor:default; opacity:0.55; }
  .tab .soon-badge{ display:block; font-size:10px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; color:var(--accent); margin-top:3px; }

  .panel{ background:#fff; border:1px solid var(--line); border-radius:10px; padding:32px; }
  .field{ margin-bottom:22px; }
  .field label{ display:block; font-size:13px; font-weight:600; margin-bottom:8px; }
  .field .hint{ font-size:12px; color:var(--muted); margin-top:6px; font-weight:400; }
  .field input[type="text"]{
    width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:6px;
    font-family:'Inter', sans-serif; font-size:15px; background:var(--paper);
  }
  .field input[type="text"]:focus{ outline:none; border-color:var(--accent); }
  .row2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }

  .pill-group{ display:flex; gap:8px; flex-wrap:wrap; }
  .pill{
    padding:10px 16px; border:1px solid var(--line); border-radius:20px;
    font-size:13.5px; font-weight:600; cursor:pointer; background:#fff; color:var(--ink);
    transition:all .15s; font-family:'Inter', sans-serif;
  }
  .pill.active{ background:var(--accent); color:#fff; border-color:var(--accent); }

  .choice-cards{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  @media (max-width:520px){ .choice-cards{ grid-template-columns:1fr; } }
  .choice-cards-3{ grid-template-columns:1fr 1fr 1fr; }
  @media (max-width:760px){ .choice-cards-3{ grid-template-columns:1fr; } }
  .choice-card{
    text-align:left; padding:16px 18px; border:1.5px solid var(--line); border-radius:8px;
    background:#fff; cursor:pointer; transition:all .15s; font-family:'Inter', sans-serif;
  }
  .choice-card:hover{ border-color:var(--accent); }
  .choice-card.active{ border-color:var(--accent); background:var(--accent-light); }
  .choice-title{ font-weight:700; font-size:14.5px; margin-bottom:4px; color:var(--ink); }
  .choice-sub{ font-size:12.5px; color:var(--muted); line-height:1.4; }

  .font-preview{
    background:var(--paper); border:1px solid var(--line); border-radius:8px;
    padding:26px 20px; text-align:center; font-size:32px; word-break:break-word;
    margin:-6px 0 22px; min-height:70px; display:flex; align-items:center; justify-content:center;
    color:var(--ink);
  }

  .dimension-note{
    background:var(--accent-light); border:1px solid var(--accent); border-radius:8px;
    padding:12px 16px; font-size:13px; color:var(--accent-dark); font-weight:500;
    margin-top:-6px; margin-bottom:0;
  }
  .dimension-note strong{ font-weight:700; }

  .upload-status{ font-size:13px; margin-top:8px; }
  .upload-status.ok{ color:var(--good); }
  .upload-status.err{ color:var(--danger); }
  .detected-size{ font-size:12.5px; color:var(--muted); margin-top:6px; line-height:1.5; }
  .remove-link{
    background:none; border:none; color:var(--danger); text-decoration:underline;
    font-size:12.5px; cursor:pointer; padding:0; margin-left:8px; font-family:'Inter', sans-serif;
  }
  .remove-link:hover{ opacity:0.75; }
  input[type="file"]{
    width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:6px;
    font-family:'Inter', sans-serif; font-size:13.5px; background:var(--paper);
  }

  .dim-input{ position:relative; }
  .dim-input input{ width:100%; padding:12px 40px 12px 14px; border:1px solid var(--line); border-radius:6px; font-family:'IBM Plex Mono', monospace; font-size:15px; background:var(--paper); }
  .dim-input span{ position:absolute; right:14px; top:50%; transform:translateY(-50%); font-size:12px; color:var(--muted); font-family:'IBM Plex Mono', monospace; }

  .field textarea{
    width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:6px;
    font-family:'Inter', sans-serif; font-size:14px; background:var(--paper); resize:vertical;
    line-height:1.5;
  }
  .field textarea:focus{ outline:none; border-color:var(--accent); }

  .font-preview.multiline{
    font-size:20px; line-height:1.5; white-space:pre-line; padding:20px; text-align:center;
    transition:transform .2s ease;
  }
  .font-preview.mirrored{ transform:scaleX(-1); }

  .swatch-group{ display:flex; gap:10px; flex-wrap:wrap; }
  .color-swatch{
    width:34px; height:34px; border-radius:50%; border:2px solid var(--line);
    cursor:pointer; transition:all .15s; padding:0; position:relative;
  }
  .color-swatch.active{ border-color:var(--accent); box-shadow:0 0 0 2px var(--accent-light); }
  .color-swatch.active::after{
    content:"✓"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    color:#fff; font-size:14px; font-weight:700; text-shadow:0 0 2px rgba(0,0,0,0.6);
  }
  .color-swatch.light-swatch.active::after{ text-shadow:none; color:#1C1C1A; }

  .size-diagram{ margin:14px 0; }

  .bulk-table-wrap{ overflow-x:auto; border:1px solid var(--line); border-radius:8px; max-height:280px; overflow-y:auto; }
  .bulk-table{ width:100%; border-collapse:collapse; font-size:13px; }
  .bulk-table th{ text-align:left; padding:8px 10px; background:var(--paper); font-size:11px; text-transform:uppercase; letter-spacing:0.04em; color:var(--muted); position:sticky; top:0; }
  .bulk-table td{ padding:7px 10px; border-top:1px solid var(--line); }
  .bulk-table tr.bulk-row-error td{ background:rgba(176,57,44,0.06); color:var(--danger); }

  .compliance-group{ margin-bottom:10px; min-width:0; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
  .compliance-group-header{
    width:100%; display:flex; align-items:center; gap:10px; padding:12px 14px; background:#fff;
    border:none; cursor:pointer; text-align:left; font-family:'Inter', sans-serif; transition:background .15s;
    text-decoration:none; color:inherit;
  }
  .compliance-group-header:hover{ background:var(--accent-light); }
  .compliance-group-chevron{
    font-size:18px; color:var(--muted); transition:transform .15s; display:inline-block; transform:rotate(0deg);
  }
  .compliance-group-chevron.open{ transform:rotate(90deg); color:var(--accent); }
  .compliance-group-title{ font-size:13.5px; font-weight:700; color:var(--ink); flex:1; }
  .compliance-group-count{ font-size:12px; font-weight:600; color:var(--muted); background:var(--paper); padding:2px 8px; border-radius:10px; }
  .compliance-grid{
    display:grid; grid-template-columns:repeat(auto-fill, minmax(84px, 1fr)); gap:10px;
    max-height:340px; overflow-y:auto; overflow-x:hidden; padding:10px;
    border-top:1px solid var(--line); background:var(--paper); margin:0;
  }
  .compliance-card{
    width:100%; aspect-ratio:1/1; background:#fff; border:2px solid var(--line); border-radius:8px;
    cursor:pointer; padding:4px; transition:all .15s; overflow:hidden; min-width:0;
  }
  .compliance-card:hover{ border-color:var(--accent); }
  .compliance-card.active{ border-color:var(--accent); box-shadow:0 0 0 2px var(--accent-light); }
  .compliance-card img{ display:block; width:100%; height:100%; object-fit:contain; }

  .compliance-viewer-overlay{
    position:fixed; inset:0; background:rgba(28,28,26,0.55); z-index:95;
    display:flex; align-items:center; justify-content:center; padding:24px;
    opacity:0; visibility:hidden; transition:opacity .2s;
  }
  .compliance-viewer-overlay.open{ opacity:1; visibility:visible; }
  .compliance-viewer-box{
    background:#fff; border-radius:12px; padding:24px; max-width:520px; width:100%;
    max-height:90vh; overflow-y:auto; text-align:center; position:relative;
  }
  .compliance-viewer-close{
    position:absolute; top:12px; right:14px; background:none; border:none; font-size:26px;
    line-height:1; color:var(--muted); cursor:pointer; padding:4px;
  }
  .compliance-viewer-close:hover{ color:var(--ink); }
  .compliance-viewer-box img{ max-width:100%; max-height:60vh; border:1px solid var(--line); border-radius:6px; }
  .compliance-viewer-caption{ margin-top:14px; font-size:14px; color:var(--muted); line-height:1.5; }

  .label-color-group{ margin-bottom:16px; }
  .label-color-group-title{ font-size:11.5px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
  .label-color-swatches{ display:flex; gap:8px; flex-wrap:wrap; }

  .label-swatch{
    width:38px; height:38px; padding:0; border-radius:6px; overflow:hidden;
    border:2px solid var(--line); cursor:pointer; display:flex; flex-direction:column;
    transition:all .15s;
  }
  .label-swatch:hover{ border-color:var(--muted); }
  .label-swatch.active{ border-color:var(--accent); box-shadow:0 0 0 2px var(--accent-light); }
  .label-swatch-face{ flex:3; }
  .label-swatch-base{ flex:1; border-top:1px solid rgba(0,0,0,0.08); }

  /* ---------- Price card ---------- */
  .price-panel{ position:sticky; top:24px; background:#fff; color:var(--ink); border:1px solid var(--line); border-radius:10px; padding:32px; }
  .price-panel.price-updating #summaryLines,
  .price-panel.price-updating #priceAmount{ opacity:0.35; transition:opacity .15s; }

  /* ---------- Header cart button + drawer ---------- */
  .cart-btn{ position:relative; background:none; border:none; cursor:pointer; padding:6px; display:flex; align-items:center; }
  .cart-badge{
    position:absolute; top:-4px; right:-4px; background:var(--accent); color:#fff;
    font-size:10.5px; font-weight:700; min-width:16px; height:16px; border-radius:8px;
    display:flex; align-items:center; justify-content:center; padding:0 4px; font-family:'Inter', sans-serif;
  }
  .cart-drawer-overlay{
    position:fixed; inset:0; background:rgba(28,28,26,0.4); z-index:90;
    opacity:0; visibility:hidden; transition:opacity .2s;
  }
  .cart-drawer-overlay.open{ opacity:1; visibility:visible; }
  .cart-drawer{
    position:fixed; top:0; right:0; bottom:0; width:400px; max-width:92vw; background:#fff;
    z-index:91; box-shadow:-12px 0 40px -12px rgba(28,28,26,0.3);
    transform:translateX(100%); transition:transform .25s ease; display:flex; flex-direction:column;
  }
  .cart-drawer.open{ transform:translateX(0); }
  .cart-drawer-header{ display:flex; align-items:center; justify-content:space-between; padding:22px 24px; border-bottom:1px solid var(--line); }
  .cart-drawer-header h3{ font-size:17px; margin:0; }
  .cart-drawer-header button{ background:none; border:none; font-size:24px; line-height:1; color:var(--muted); cursor:pointer; padding:0 4px; }
  .cart-drawer-header button:hover{ color:var(--ink); }
  .cart-drawer-body{ flex:1; overflow-y:auto; padding:20px 24px; }
  .cart-drawer-empty{ color:var(--muted); font-size:14px; text-align:center; padding:60px 20px; }
  .cart-drawer-footer{ padding:20px 24px; border-top:1px solid var(--line); }
  .cart-drawer-footer .btn{ width:100%; justify-content:center; }
  .price-panel .eyebrow{ margin-bottom:10px; justify-content:flex-start; }
  .price-summary-line{ display:flex; justify-content:space-between; font-size:13.5px; padding:9px 0; border-top:1px solid var(--line); color:var(--muted); }
  .price-summary-line:first-of-type{ border-top:none; }
  .price-total{ display:flex; align-items:baseline; justify-content:space-between; margin-top:20px; padding-top:20px; border-top:1px solid var(--line); }
  .price-total .label{ font-size:14px; color:var(--muted); }
  .price-total .amount{ font-family:'Inter', sans-serif; font-size:34px; font-weight:800; color:var(--accent); }
  .price-note{ font-size:12px; color:var(--muted); margin-top:10px; }
  .price-panel .btn{ width:100%; justify-content:center; margin-top:22px; }

  .qty-stepper{ display:flex; align-items:stretch; border:1px solid var(--line); border-radius:6px; overflow:hidden; width:140px; }
  .qty-stepper button{
    background:var(--paper); border:none; width:38px; font-size:18px; font-weight:700; color:var(--ink);
    cursor:pointer; transition:background .15s;
  }
  .qty-stepper button:hover{ background:var(--accent-light); color:var(--accent); }
  .qty-stepper input{
    flex:1; border:none; border-left:1px solid var(--line); border-right:1px solid var(--line);
    text-align:center; font-family:'IBM Plex Mono', monospace; font-size:15px; font-weight:600;
    color:var(--ink); background:#fff; min-width:0;
  }
  .qty-stepper input:focus{ outline:none; }
  .btn-secondary{ background:#fff; color:var(--accent); border:1.5px solid var(--accent); margin-top:12px; }
  .btn-secondary:hover{ background:var(--accent-light); }

  .cart-total{ display:flex; justify-content:space-between; align-items:baseline; margin-top:12px; padding-top:12px; border-top:1px solid var(--line); font-weight:700; font-size:15px; color:var(--accent); }
  .cart-line{ display:flex; justify-content:space-between; align-items:flex-start; gap:10px; padding:10px 0; border-bottom:1px solid var(--line); }
  .cart-line:last-child{ border-bottom:none; }
  .cart-line-desc{ font-size:13px; color:var(--ink); line-height:1.4; flex:1; }
  .cart-line-price{ font-family:'IBM Plex Mono', monospace; font-size:13px; font-weight:600; color:var(--ink); white-space:nowrap; }
  .cart-line-remove{ background:none; border:none; color:var(--danger); font-size:12px; cursor:pointer; padding:0; text-decoration:underline; margin-top:2px; }
  .cart-line-controls{ display:flex; align-items:center; gap:12px; margin-top:6px; }
  .qty-stepper-sm{ width:78px; height:26px; }
  .qty-stepper-sm button{ width:24px; font-size:14px; }
  .qty-stepper-sm span{ flex:1; text-align:center; font-family:'IBM Plex Mono', monospace; font-size:12.5px; font-weight:600; border-left:1px solid var(--line); border-right:1px solid var(--line); }

  /* ---------- Quote form (modal-ish inline) ---------- */
  .quote-form{ margin-top:22px; padding-top:22px; border-top:1px solid var(--line); display:none; }
  .quote-form.open{ display:block; }
  .quote-form input{
    width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:6px;
    font-family:'Inter', sans-serif; font-size:14px; background:var(--paper); color:var(--ink);
    margin-bottom:10px;
  }
  .quote-form input::placeholder{ color:var(--muted); }
  .quote-form input:focus{ outline:none; border-color:var(--accent); }
  .confirm-box{ display:none; background:var(--accent-light); border:1px solid var(--accent); border-radius:8px; padding:16px; font-size:13.5px; line-height:1.5; margin-top:16px; }
  .confirm-box.open{ display:block; }
  .confirm-box .ref{ font-family:'IBM Plex Mono', monospace; color:var(--accent-dark); font-weight:600; }

  /* ---------- Checkout ---------- */
  .checkout-section{ display:none; padding:56px 0 92px; border-bottom:1px solid var(--line); background:var(--paper); }
  .checkout-section.open{ display:block; }
  .checkout-head{ margin-bottom:32px; }
  .back-link{ display:inline-block; font-size:13.5px; font-weight:600; color:var(--accent); text-decoration:none; margin-bottom:24px; }
  .back-link:hover{ text-decoration:underline; }
  .checkout-steps{ display:flex; align-items:center; gap:14px; margin-top:10px; flex-wrap:wrap; }
  .cstep{ font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:var(--muted); cursor:pointer; font-weight:500; }
  .cstep.active{ color:var(--accent); font-weight:700; }
  .cstep-sep{ color:var(--muted); font-size:12px; }
  .checkout-grid{ display:grid; grid-template-columns:1.3fr 0.7fr; gap:32px; align-items:start; }
  @media (max-width:860px){ .checkout-grid{ grid-template-columns:1fr; } }
  .cpanel{ background:#fff; border:1px solid var(--line); border-radius:10px; padding:32px; }
  .cpanel-title{ font-size:20px; margin-bottom:22px; }
  .cpanel input, .cpanel select{
    width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:6px;
    font-family:'Inter', sans-serif; font-size:14.5px; background:var(--paper); margin-bottom:12px;
  }
  .cpanel input:focus, .cpanel select:focus{ outline:none; border-color:var(--accent); }
  .cpanel .row2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .vat-note{ font-size:12.5px; color:var(--muted); margin:-2px 0 16px; line-height:1.5; }
  .pay-methods{ display:flex; gap:12px; margin-bottom:20px; flex-wrap:wrap; }
  .pay-method{
    display:flex; align-items:center; gap:8px; padding:12px 18px; border:1px solid var(--line);
    border-radius:20px; font-size:14px; font-weight:600; cursor:pointer; transition:all .15s;
  }
  .pay-method.active{ border-color:var(--accent); background:var(--accent-light); }
  .pay-method[style*="display:none"]{ display:none; }
  .demo-notice{ font-size:12.5px; color:var(--muted); line-height:1.55; background:var(--paper); border:1px dashed var(--line); border-radius:8px; padding:14px; margin-bottom:20px; }
  .side-card{ background:var(--accent-light); color:var(--ink); border:1px solid var(--line); border-radius:10px; padding:26px; position:sticky; top:24px; }
  .side-card .eyebrow{ color:var(--accent-dark); }
  .side-card .price-summary-line{ font-size:13px; color:var(--ink); opacity:0.75; }
  .side-total{ display:flex; justify-content:space-between; align-items:baseline; margin-top:16px; padding-top:16px; border-top:1px solid var(--accent); font-family:'Inter', sans-serif; font-size:24px; font-weight:800; color:var(--accent-dark); }
  .confirm-box{ font-size:14px; line-height:1.6; }

  section.info{ padding:76px 0; border-bottom:1px solid var(--line); }
  .section-head{ max-width:560px; margin-bottom:44px; }
  .section-head h2{ font-size:28px; line-height:1.2; }
  .section-head p{ font-size:15.5px; color:var(--muted); margin-top:12px; line-height:1.55; font-weight:400; }

  /* Product summary block under the configurator — centred, wider heading
     column than the default .section-head, so short headings sit on one
     line instead of wrapping and looking left-heavy against the centred
     hero/hero-style sections elsewhere on the page. */
  #productSummary .section-head{ max-width:720px; margin-left:auto; margin-right:auto; text-align:center; }
  .steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
  @media (max-width:760px){ .steps{ grid-template-columns:1fr; } }
  .step{ background:#fff; padding:28px 24px; }
  .step-num{ font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:var(--accent); margin-bottom:14px; }
  .step h3{ font-size:16.5px; margin-bottom:8px; font-weight:700; }
  .step p{ font-size:13.5px; color:var(--muted); line-height:1.5; margin:0; font-weight:400; }

  footer{ padding:30px 0 44px; font-size:13px; color:var(--muted); }
  .footer-main{ display:flex; justify-content:space-between; align-items:center; }
  .footer-legal{ margin-top:14px; padding-top:14px; border-top:1px solid var(--line); font-size:12px; opacity:0.75; line-height:1.5; }
  @media (max-width:640px){ .footer-main{ flex-direction:column; gap:10px; text-align:center; } .footer-legal{ text-align:center; } }
