/* Tovrana site stylesheet. */
/* Version: v1.0.2 */
@layer base {
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    :root{
      /* Light theme: Steel grey-blue. Role based tokens. */
      color-scheme: light;

      /* Surfaces */
      --page-bg:   #D4E2F1;   /* site background (steel grey-blue) */
      --surface:   #FFFFFF;   /* cards, panels, elevated surfaces */
      --surface-2: #F3F8FD;   /* subtle insets, image placeholder fills */
      --line:      #D2E0EF;   /* borders, dividers, hairlines */

      /* Text */
      --ink:       #0E1F3D;   /* headings (brand navy) */
      --body:      #44556B;   /* body copy, passes AA on the light bg */
      --muted:     #5C6B82;   /* captions, secondary text */

      /* Brand bolt and working accent (two distinct roles) */
      --brand:     #00A896;   /* Brand teal (electric): logo bolt + footer accents. Distinct from --accent UI teal. */
      --accent:    #007A6C;   /* working teal: links, eyebrows, chips, small icons, status dot */
      --accent-tint-bg:     rgba(0,122,108,0.10);
      --accent-tint-border: rgba(0,122,108,0.22);

      /* Gold CTAs (unchanged hues) */
      --gold:      #F5A623;
      --gold-deep: #B8780A;
      --gold-ink:  #3A2600;   /* text on gold buttons */
      --gold-tint: #FFFBF2;   /* pale gold wash behind the finance-preferred badge */
      --gold-tint-ink: #714D00; /* AA dark amber for text on the pale gold tint over the steel page-bg (finance-preferred badge): 5.4:1. --gold-deep (#B8780A) only reaches ~3.4:1 there */
      --info:      #5BA8E8;   /* informational tag accent (Clean Sheet .a-tag.blue) */

      /* Dark CTA band (kept dark on purpose) */
      --cta-bg:    #0E1F3D;
      --cta-bg-2:  #15294A;
      --cta-ink:   #E8EDF5;
      --cta-sub:   #B9C6DA;

      /* Restrained neutral shadows */
      --shadow:    0 1px 2px rgba(14,31,61,.06), 0 12px 28px rgba(14,31,61,.07);
      --shadow-sm: 0 1px 2px rgba(14,31,61,.05), 0 6px 16px rgba(14,31,61,.06);

      /* Legacy aliases retained only where still distinct or status-only. The
         drifted duplicates (--amber/--amber-dk/--navy/--navy-dark/--navy-mid/
         --grey-lt/--grey-md/--grey-dk/--text) were retired; every usage now
         references the canonical role tokens above. */
      --navy-deep: #0A1628;   /* retained for the dark CTA gradient only */
      --navy-grad: #15294A;
      --cta:       #F5A623;
      --cta-dk:    #D4880A;
      --white:     #FFFFFF;
      --green:     #15803D;
      --teal-tint: #E6F2EF;
      --red:       #C0392B;
      --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif
    }
    .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
    html{scroll-behavior:smooth}
    body{font-family:var(--font);color:var(--body);background:radial-gradient(120% 60% at 50% -20%, var(--white) 0%, rgba(255,255,255,0) 55%), var(--page-bg);background-attachment:fixed;line-height:1.6;-webkit-font-smoothing:antialiased}
    nav{position:fixed;top:0;left:0;right:0;height:64px;background:rgba(230,239,250,0.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 40px;z-index:100}
    .nav-logo{display:flex;align-items:center;gap:10px;cursor:pointer;text-decoration:none}
    .nav-wordmark{font-size:20px;font-weight:500;color:var(--ink);letter-spacing:-0.3px}
    .nav-links{display:flex;gap:28px;list-style:none}
    .nav-links a{text-decoration:none;color:var(--ink);opacity:0.9;font-size:15px;cursor:pointer;transition:color 0.2s,opacity 0.2s}
    .nav-links a:hover{color:var(--accent);opacity:1}
    .nav-right{display:flex;gap:12px;align-items:center}
    .nav-phone{font-size:13px;color:var(--muted);font-weight:500}
    .nav-cta{background:var(--gold);color:var(--gold-ink);border:none;padding:9px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;font-family:var(--font);transition:background 0.2s}
    .nav-cta:hover{background:var(--gold-deep)}
    section{display:none}
    section.active{display:block}
    .btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 26px;border-radius:7px;font-size:15px;font-weight:500;cursor:pointer;border:none;font-family:var(--font);text-decoration:none;transition:all 0.2s;gap:6px}
    .btn-primary{background:var(--accent);color:var(--white);box-shadow:0 4px 14px rgba(0,122,108,.25)}
    .btn-primary:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(0,122,108,.32)}
    .btn-ghost{background:none;border:1.5px solid var(--line);color:var(--ink)}
    .btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
    .btn-amber{background:var(--gold);color:var(--gold-ink);box-shadow:0 4px 14px rgba(245,166,35,.28)}
    .btn-amber:hover{background:var(--gold-deep)}
    .page-hero{padding:110px 48px 56px;text-align:center;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--white),var(--surface-2))}
    .page-hero h1{font-size:46px;font-weight:500;color:var(--ink);letter-spacing:-1.5px;margin-bottom:14px;line-height:1.1}
    .page-hero p{font-size:17px;color:var(--body);max-width:560px;margin:0 auto}
    .msrp{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:2px 0 18px;font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
    .msrp strong{font-size:26px;font-weight:600;letter-spacing:-0.5px;color:var(--ink);text-transform:none}
    .msrp-fin{margin:-10px 0 20px;font-size:13px;line-height:1.5;color:var(--body);max-width:440px}
    .msrp-fin a{color:var(--accent);font-weight:600;text-decoration:none}
    .msrp-fin a:hover{text-decoration:underline}
    .section-header{text-align:center;margin-bottom:48px}
    .section-tag{display:inline-block;font-size:11px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
    .section-header h2{font-size:34px;font-weight:500;color:var(--ink);letter-spacing:-0.8px;line-height:1.15}
    .section-header p{font-size:16px;color:var(--body);margin-top:10px;max-width:560px;margin-left:auto;margin-right:auto}
    .stats-band{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
    .stat-cell{padding:34px 20px;text-align:center;border-right:1px solid var(--line)}
    .stat-cell:last-child{border-right:none}
    .stat-cell .num{font-size:36px;font-weight:500;color:var(--ink);letter-spacing:-1px;line-height:1}
    .stat-cell .num em{font-style:normal;color:var(--accent)}
    .stat-cell .lbl{font-size:13px;color:var(--body);margin-top:5px}
    .hero-full{padding-top:64px;position:relative;min-height:90vh;display:flex;flex-direction:column;background:var(--page-bg);overflow:hidden}
    .hero-bg-img{position:absolute;inset:0;background-image:url("/images/cc1/cc1-pro-hero.webp");background-size:cover;background-position:center 30%;opacity:0.10;pointer-events:none}
    .hero-content{position:relative;z-index:2;max-width:1200px;margin:0 auto;padding:80px 48px 60px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;flex:1}
    .hero-eyebrow{display:inline-flex;align-items:center;gap:8px;background:var(--accent-tint-bg);border:1px solid var(--accent-tint-border);border-radius:100px;padding:6px 16px;font-size:13px;color:var(--accent);margin-bottom:22px}
    .hero-eyebrow .pulse{width:7px;height:7px;background:var(--accent);border-radius:50%;animation:pulse 2s infinite}
    @keyframes pulse{0%,100%{opacity:1}50%{opacity:0.3}}
    .hero-text h1{font-size:52px;font-weight:500;letter-spacing:-2px;line-height:1.06;color:var(--ink);margin-bottom:18px}
    .hero-text h1 em{font-style:normal;color:var(--accent)}
    .hero-desc{font-size:17px;color:var(--body);line-height:1.75;margin-bottom:32px;max-width:440px}
    .hero-actions{display:flex;gap:12px;flex-wrap:wrap}
    .live-widget{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:var(--shadow)}
    .live-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
    .live-badge{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--accent);font-weight:500}
    .live-dot{width:7px;height:7px;background:var(--accent);border-radius:50%;animation:pulse 2s infinite}
    .live-lbl{font-size:12px;color:var(--muted)}
    .live-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
    .ls{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:14px}
    .ls.hi{background:var(--accent-tint-bg);border-color:var(--accent-tint-border)}
    .ls-val{font-size:24px;font-weight:500;color:var(--ink);letter-spacing:-0.5px;line-height:1}
    .ls.hi .ls-val{color:var(--accent)}
    .ls-lbl{font-size:11px;color:var(--muted);margin-top:4px}
    .live-feed{background:var(--surface-2);border-radius:8px;padding:12px}
    .lf{display:flex;justify-content:space-between;font-size:12px;padding:4px 0;border-bottom:1px solid var(--line)}
    .lf:last-child{border:none}
    .lf span:first-child{color:var(--body)}
    .lf span:last-child{color:var(--accent);font-weight:500}
    .industry-strip{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 48px;display:flex;gap:14px 16px;align-items:center;justify-content:center;flex-wrap:wrap}
    .industry-strip-label{font-size:11px;color:var(--muted);letter-spacing:2px;text-transform:uppercase;white-space:nowrap}
    .ind-pill{background:var(--surface);border:1px solid var(--accent-tint-border);color:var(--ink);font-weight:500;padding:8px 18px;border-radius:100px;font-size:13px;white-space:nowrap;cursor:pointer;text-decoration:none;box-shadow:var(--shadow-sm);transition:all 0.2s}
    .ind-pill:hover{background:var(--accent);border-color:var(--accent);color:var(--white);box-shadow:none}
    /* Robots hub category pill bar (/robots). Reuses the .ind-pill look (teal-tint
       outline at rest, solid teal on hover, shared focus-visible ring; gold stays
       out). Anchors only, no JS. Below the hero; the pills center when they all fit
       and left-align with horizontal scroll when they overflow (justify-content:safe
       center + nowrap), never wrapping into a tall stack and never clipping the first
       pill. On mobile it sticks just below the fixed 64px nav, so a visitor deep in
       one category can hop to another in one tap. position:sticky needs an
       ancestor that is not a scroll container; the site-wide
       html,body{overflow-x:hidden} guard makes body one, so on the robots page ONLY
       (body.robots-hub) body's overflow-x is switched to clip, which clips the same
       way without creating a scroll container. Every other page keeps the global
       guard untouched. The other fixed elements (mobile contact bar, chat launcher,
       cookie banner) sit at the bottom of the viewport, so a top-sticky bar cannot
       overlap them. */
    .robots-pills{display:flex;flex-wrap:nowrap;justify-content:safe center;gap:10px;max-width:1160px;margin:0 auto;padding:22px 24px 6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
    .robots-pills::-webkit-scrollbar{display:none}
    /* Finder prompt under the pill bar: a plain teal text link, clearly distinct
       from the pills, no gold, centered at every width. */
    .robots-finder{text-align:center;font-size:14px;color:var(--body);margin:2px auto 0;padding:0 24px}
    .robots-finder a{color:var(--accent);font-weight:500;text-decoration:underline;text-underline-offset:2px}
    .robots-finder a:hover{text-decoration:none}
    #cleaning,#delivery-service,#industrial,#compare{scroll-margin-top:84px}
    @media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
    @media (max-width:768px){
      /* robots page only: clip (not hidden) so body is not a scroll container and
         position:sticky works; horizontal overflow is still clipped, no h-scroll. */
      body.robots-hub{overflow-x:clip}
      .robots-pills{position:sticky;top:64px;z-index:90;max-width:none;margin:0;padding:10px 16px;gap:8px;background:var(--surface-2);border-bottom:1px solid var(--line)}
      #cleaning,#delivery-service,#industrial,#compare{scroll-margin-top:124px}
    }
    .how-section{padding:80px 48px;max-width:1160px;margin:0 auto}
    .steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:48px}
    .step-line{position:absolute;top:28px;left:10%;right:10%;height:2px;background:var(--line);z-index:0}
    .feature-block{padding:80px 48px}
    .feature-block.alt{background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
    .feature-inner{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
    .feature-inner.rev{direction:rtl}
    .feature-inner.rev>*{direction:ltr}
    .feature-tag{font-size:11px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
    .feature-text h2{font-size:32px;font-weight:500;color:var(--ink);letter-spacing:-0.7px;line-height:1.2;margin-bottom:14px}
    .feature-text p{font-size:15px;color:var(--body);line-height:1.8;margin-bottom:18px}
    .feat-list{list-style:none;margin-bottom:24px}
    .feat-list li{font-size:14px;color:var(--body);padding:7px 0;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}
    .feat-list li:first-child{border-top:1px solid var(--line)}
    .feat-list li::before{content:"";width:6px;height:6px;background:var(--accent);border-radius:50%;flex-shrink:0}
    .flink{color:var(--accent);font-size:14px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:gap 0.2s;text-decoration:none;padding:5px 0;min-height:24px}
    .flink:hover{gap:10px}
    .img-frame{border-radius:14px;overflow:hidden;position:relative;background:var(--surface-2)}
    .img-frame.media-dark{background:#000}
    .img-frame img{width:100%;height:100%;object-fit:cover;display:block}
    /* Robot images linked to their product page. display:contents keeps every frame's
       sizing (aspect-ratio, object-fit, :has rules) exactly as before, since the anchor
       box is removed and the img lays out as a direct child. Keyboard focus ring is drawn
       inside the image (outline-offset:-3px) so it shows even inside overflow:hidden frames. */
    .img-link{display:contents}
    .img-link img{cursor:pointer}
    .img-link:focus-visible img{outline:3px solid var(--accent);outline-offset:-3px}
    .img-frame.tall{min-height:380px}
    .img-frame.med{min-height:300px}
    .img-frame video{width:100%;display:block;border-radius:14px}
    /* Scene photos (industry CC1 scenes, MT1 Max gallery): force 16:9, cover,
       no fixed height, so they never letterbox on phones. Product renders that
       use object-fit:contain are matched by src and left untouched. */
    .img-frame.scene,
    .img-frame:has(img[src*="cc1-scene-"]),
    .img-frame:has(img[src*="/mt1-max/"]),
    .img-frame:has(img[src*="/mt1-vac/"]),
    .img-frame:has(img[src*="/bellabot/"]),
    .img-frame:has(img[src*="/kettybot/"]),
    .img-frame:has(img[src*="kettybot-scene-"]),
    .img-frame:has(img[src*="t300-"]),
    .img-frame:has(img[src*="/bg1/"]),
    .img-frame:has(img[src*="/t600/"]),
    .img-frame:has(img[src*="/pudubot2/"]){aspect-ratio:16/9;min-height:0}
    .img-frame.scene img,
    .img-frame:has(img[src*="cc1-scene-"]) img,
    .img-frame:has(img[src*="/mt1-max/"]) img,
    .img-frame:has(img[src*="/mt1-vac/"]) img,
    .img-frame:has(img[src*="/bellabot/"]) img,
    .img-frame:has(img[src*="/kettybot/"]) img,
    .img-frame:has(img[src*="kettybot-scene-"]) img,
    .img-frame:has(img[src*="t300-"]) img,
    .img-frame:has(img[src*="/bg1/"]) img,
    .img-frame:has(img[src*="/t600/"]) img,
    .img-frame:has(img[src*="/pudubot2/"]) img{height:100%}
    .scene-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;max-width:1160px;margin:0 auto}
    /* hover-lift for recommended/product cards — replaces inline onmouseover/onmouseout
       (blocked under CSP). Matches the anchor cards that carry a 0.2s transition. */
    a.m-tr:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(14,31,61,0.1)}
    .spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px}
    .spec-card{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:12px 14px}
    .spec-card.dark{background:var(--surface-2);border-color:var(--line)}
    .spec-val{font-size:20px;font-weight:500;color:var(--ink)}
    .spec-val em{font-style:normal;color:var(--accent)}
    .spec-card.dark .spec-val{color:var(--accent)}
    .spec-key{font-size:12px;color:var(--muted);margin-top:2px}
    .spec-card.dark .spec-key{color:var(--muted)}
    .dock-feat-list{list-style:none;margin-bottom:28px}
    .dock-feat-list li{font-size:14px;color:var(--body);padding:6px 0;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}
    .dock-feat-list li:first-child{border-top:1px solid var(--line)}
    .dock-feat-list li::before{content:"";width:6px;height:6px;background:var(--accent);border-radius:50%;flex-shrink:0}
    .loop-steps{display:flex;align-items:center;justify-content:center;gap:0;max-width:900px;margin:40px auto 0;flex-wrap:wrap}
    .loop-step{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px 20px;text-align:center;flex:1;min-width:130px;box-shadow:var(--shadow-sm)}
    .loop-arrow{font-size:22px;color:var(--accent);padding:0 6px;flex-shrink:0}
    .loop-icon{font-size:26px;margin-bottom:8px}
    .loop-step h3{font-size:14px;font-weight:500;color:var(--ink);margin-bottom:4px}
    .loop-step p{font-size:12px;color:var(--muted)}
    .gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:1160px;margin:0 auto}
    .gallery-grid img{width:100%;border-radius:10px;display:block;object-fit:cover;aspect-ratio:4/3;transition:transform 0.2s}
    .gallery-grid img:hover{transform:scale(1.02)}
    .video-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:1160px;margin:40px auto 0}
    .video-card{border-radius:12px;overflow:hidden}
    .video-card video{width:100%;height:380px;object-fit:cover;background:#000;display:block;border-radius:12px}
    .video-card-lbl{font-size:13px;color:var(--muted);text-align:center;margin-top:10px}
    .accessories-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1160px;margin:0 auto}
    .acc-card{border:1px solid var(--line);border-radius:10px;padding:20px;text-align:center;background:var(--surface)}
    .acc-card h3{font-size:15px;font-weight:500;color:var(--ink);margin-bottom:6px}
    .acc-card .price{font-size:18px;font-weight:500;color:var(--accent);margin-bottom:8px;display:block;text-decoration:none}
    a.price:hover{text-decoration:underline}
    .acc-card p{font-size:13px;color:var(--body);line-height:1.5}
    .why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1160px;margin:40px auto 0}
    .why-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:28px;box-shadow:var(--shadow-sm)}
    .why-icon{width:42px;height:42px;background:var(--ink);border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
    .why-card h3{font-size:17px;font-weight:500;color:var(--ink);margin-bottom:8px}
    .why-card p{font-size:14px;color:var(--body);line-height:1.75}
    .roi-section{background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:80px 48px}
    .roi-inner{max-width:880px;margin:0 auto}
    .roi-header{text-align:center;margin-bottom:44px}
    .roi-header h2{font-size:34px;font-weight:500;color:var(--ink);letter-spacing:-0.8px;margin-bottom:10px}
    .roi-header p{font-size:16px;color:var(--body)}
    .roi-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}
    .roi-inputs{display:flex;flex-direction:column;gap:26px}
    .slider-group label{font-size:13px;font-weight:500;color:var(--body);display:flex;justify-content:space-between;margin-bottom:8px}
    .slider-group label span{color:var(--accent)}
    input[type=range]{width:100%;height:4px;border-radius:2px;cursor:pointer;background:var(--line);-webkit-appearance:none;appearance:none}
    input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer}
    .roi-result{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px;box-shadow:var(--shadow-sm)}
    .roi-tag{font-size:11px;color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:10px}
    .roi-big{font-size:48px;font-weight:500;color:var(--gold-deep);letter-spacing:-2px;line-height:1;margin-bottom:4px}
    .roi-sub{font-size:13px;color:var(--muted);margin-bottom:24px}
    .roi-rows{display:flex;flex-direction:column}
    .roi-row{display:flex;justify-content:space-between;font-size:14px;padding:10px 0;border-bottom:1px solid var(--line)}
    .roi-row:last-child{border:none}
    .roi-row span:first-child{color:var(--body)}
    .roi-row span:last-child{color:var(--ink);font-weight:500}
    .roi-row.pos span:last-child{color:var(--green)}
    .ind-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;max-width:1200px;margin:0 auto}
    .ind-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:30px 18px;cursor:pointer;transition:all 0.22s ease;text-align:center;position:relative;text-decoration:none;color:inherit;display:block}.ind-card:hover .ind-icon{transform:scale(1.12)}.ind-card:hover h3{color:var(--accent)}.ind-card::after{content:"Explore \2192";position:absolute;left:0;right:0;bottom:12px;text-align:center;font-size:11px;font-weight:500;letter-spacing:0.5px;color:var(--accent);opacity:0;transition:opacity 0.2s}.ind-card:hover::after{opacity:1}
    .ind-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}
    .ind-icon{font-size:34px;margin-bottom:12px;transition:transform 0.22s ease;display:block}
    .ind-card h3{font-size:16px;font-weight:500;color:var(--ink);margin-bottom:4px;transition:color 0.2s}
    .ind-card p{font-size:13px;color:var(--body);line-height:1.5;margin-bottom:18px}
    .ind-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:1160px;margin:0 auto}
    .ind-detail{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
    .ind-detail-img{height:200px;overflow:hidden}
    .ind-detail-img img{width:100%;height:100%;object-fit:cover;display:block}
    .ind-detail-body{padding:24px}
    .ind-detail-body h3{font-size:17px;font-weight:500;color:var(--ink);margin-bottom:8px}
    .ind-detail-body p{font-size:14px;color:var(--body);line-height:1.7;margin-bottom:12px}
    .check-list{list-style:none}
    .check-list li{font-size:13px;color:var(--body);padding:4px 0;display:flex;align-items:flex-start;gap:8px}
    .check-list li::before{content:"\2713";color:var(--accent);font-weight:600;flex-shrink:0;margin-top:1px}
    .spec-table{width:100%;border-collapse:collapse;font-size:14px}
    .spec-table tr{border-bottom:1px solid var(--line)}
    .spec-table tr:last-child{border:none}
    .spec-table td{padding:12px 16px}
    .spec-table td:first-child{color:var(--body);width:40%;font-weight:500}
    .spec-table td:last-child{color:var(--ink)}
    .spec-table tr:nth-child(even){background:var(--surface-2)}
    .faq-wrap{max-width:860px;margin:0 auto}
    .faq-item{border-bottom:1px solid var(--line)}
    .faq-item:first-of-type{border-top:1px solid var(--line)}
    .faq-q{width:100%;background:none;border:none;font-family:var(--font);font-size:16px;font-weight:500;color:var(--ink);padding:18px 0;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
    .faq-q::after{content:"+";font-size:22px;color:var(--accent);font-weight:400;transition:transform 0.2s;flex-shrink:0}
    .faq-q.open::after{transform:rotate(45deg)}
    .faq-a{font-size:15px;color:var(--body);line-height:1.8;padding-bottom:18px;display:none}
    .faq-a.open{display:block}
    .cta-banner{max-width:1060px;margin:72px auto;padding:52px 48px;text-align:center;background:linear-gradient(150deg,var(--white),var(--teal-tint));border:1.5px solid rgba(0,122,108,0.30);border-radius:20px;box-shadow:0 4px 12px rgba(14,31,61,.07),0 30px 64px rgba(0,122,108,.18)}
    .cta-banner h2{font-size:34px;font-weight:500;color:var(--ink);letter-spacing:-0.8px;margin-bottom:12px}
    .cta-banner p{font-size:16px;color:var(--body);margin-bottom:28px;max-width:600px;margin-left:auto;margin-right:auto}
    .cta-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
    .cta-note{font-size:13px;color:var(--muted);margin-top:14px}
    .contact-layout{max-width:1100px;margin:0 auto;padding:80px 48px;display:grid;grid-template-columns:1fr 1.5fr;gap:72px}
    .contact-left h2{font-size:26px;font-weight:500;color:var(--ink);letter-spacing:-0.4px;margin-bottom:12px}
    .contact-left>p{font-size:15px;color:var(--body);line-height:1.8;margin-bottom:32px}
    .c-detail{display:flex;gap:12px;margin-bottom:18px;align-items:flex-start}
    .c-icon{width:38px;height:38px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent)}
    .contact-link{font-size:14px;color:var(--accent);text-decoration:none;font-weight:600}
    .contact-link:hover,.contact-link:focus-visible{text-decoration:underline}
    .c-detail strong{display:block;font-size:13px;font-weight:500;color:var(--ink);margin-bottom:2px}
    .c-detail span{font-size:14px;color:var(--body)}
    .contact-form{display:flex;flex-direction:column;gap:14px}
    .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
    .fg{display:flex;flex-direction:column;gap:5px}
    .fg label{font-size:13px;font-weight:500;color:var(--ink)}
    .fg input,.fg select,.fg textarea{padding:11px 14px;border:1px solid var(--line);border-radius:7px;font-size:14px;font-family:var(--font);color:var(--ink);background:var(--surface);transition:border-color 0.2s}
    .fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--accent)}
    .fg textarea{resize:vertical;min-height:100px}
    .fg input.is-invalid,.fg select.is-invalid,.fg textarea.is-invalid{border-color:var(--red)}
    .fg input.is-invalid:focus,.fg select.is-invalid:focus,.fg textarea.is-invalid:focus{border-color:var(--red)}
    .fg .field-error{font-size:12px;font-weight:500;color:var(--red)}
    .form-submit{align-self:flex-start;background:var(--accent);color:var(--white);border:none;padding:13px 28px;border-radius:7px;font-size:15px;font-weight:500;cursor:pointer;font-family:var(--font);transition:background 0.2s,box-shadow 0.2s}
    .form-submit:hover{box-shadow:0 7px 20px rgba(0,122,108,.32)}
    .about-grid{max-width:1100px;margin:0 auto;padding:80px 48px;display:grid;grid-template-columns:1fr 1fr;gap:72px}
    .about-text h2{font-size:32px;font-weight:500;color:var(--ink);letter-spacing:-0.5px;margin-bottom:18px;line-height:1.2}
    .about-text p{font-size:15px;color:var(--body);line-height:1.85;margin-bottom:16px}
    .val-list{list-style:none}
    .val-list li{display:flex;gap:14px;padding:20px 0;border-bottom:1px solid var(--line)}
    .val-list li:first-child{border-top:1px solid var(--line)}
    .val-icon{width:36px;height:36px;flex-shrink:0;background:var(--accent);border-radius:8px;display:flex;align-items:center;justify-content:center}
    .val-text strong{display:block;font-weight:500;color:var(--ink);margin-bottom:3px}
    .val-text span{font-size:14px;color:var(--body)}
    .blog-img{overflow:hidden}
    .blog-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.3s}
    .blog-body{padding:28px}
    .b-tag{display:inline-block;font-size:11px;font-weight:500;letter-spacing:1px;padding:4px 12px;border-radius:4px;margin-bottom:10px;color:var(--white);background:var(--accent)}
    .b-tag.blue{background:var(--ink)}
    .b-tag.grey{background:var(--muted)}
    .blog-body h2{font-size:21px;font-weight:500;color:var(--ink);line-height:1.3;margin-bottom:10px}
    .blog-body p{font-size:14px;color:var(--body);line-height:1.7;margin-bottom:14px}
    .blog-meta{font-size:13px;color:var(--muted);display:flex;gap:14px}
    footer{background:linear-gradient(135deg,var(--cta-bg),var(--cta-bg-2));padding:60px 48px 28px}
    .footer-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,0.08);margin-bottom:28px}
    .footer-brand p{font-size:14px;color:rgba(255,255,255,0.7);line-height:1.7;margin-top:14px;max-width:240px}
    .footer-logo{display:flex;align-items:center;gap:8px}
    .footer-logo span{font-size:18px;font-weight:500;color:var(--white)}
    .footer-col h3{font-size:11px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.62);margin-bottom:16px}
    .footer-col ul{list-style:none}
    .footer-col li{margin-bottom:9px}
    .footer-col a{font-size:14px;color:rgba(255,255,255,0.6);text-decoration:none;cursor:pointer;transition:color 0.2s}
    .footer-col a:hover{color:var(--white)}
    .footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
    .footer-bottom p{font-size:13px;color:rgba(255,255,255,0.6)}
    .footer-bottom a{font-size:13px;color:rgba(255,255,255,0.6);text-decoration:none}
    .footer-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.12);border-radius:100px;padding:6px 14px;font-size:12px;color:rgba(255,255,255,0.6);margin-top:14px}

    /* ═══════════ MOBILE RESPONSIVE ═══════════ */
    @media (max-width: 1024px) {
      nav { padding: 0 20px; }
      .nav-links { display: none; }
      .hero-content { grid-template-columns: 1fr; gap: 32px; padding: 60px 24px 40px; }
      .live-widget { display: none; }
      .industry-strip { padding: 16px 24px; }
      .stats-band { grid-template-columns: repeat(2,1fr); }
      .stat-cell:nth-child(2) { border-right: none; }
      .feature-inner { grid-template-columns: 1fr; gap: 32px; }
      .feature-inner.rev { direction: ltr; }
      /* On tablet/phone, let every product frame hug its render, including the
         dark-stage (.media-dark) ones, so portrait renders do not sit inside a
         taller black box. The #000 stage stays; it just shrinks to the image.
         Desktop (>1024px) keeps the fixed-height dark stage untouched. */
      .img-frame.tall, .img-frame.med { min-height: 0; }
      .img-frame.tall img, .img-frame.med img { height: auto; }
      .steps { grid-template-columns: 1fr 1fr; gap: 20px; }
      .step-line { display: none; }
      .why-grid { grid-template-columns: 1fr; }
      .roi-grid { grid-template-columns: 1fr; }
      .ind-grid { grid-template-columns: repeat(3,1fr); }
      .ind-detail-grid { grid-template-columns: 1fr; }
      .accessories-grid { grid-template-columns: repeat(2,1fr); }
      .gallery-grid { grid-template-columns: 1fr 1fr; }
      .video-grid { grid-template-columns: 1fr; }
      .contact-layout { grid-template-columns: 1fr; gap: 36px; padding: 48px 24px; }
      .about-grid { grid-template-columns: 1fr; gap: 36px; padding: 48px 24px; }
      .footer-top { grid-template-columns: 1fr 1fr; gap: 28px; }
      .footer-col:last-child { grid-column: span 2; }
      .page-hero { padding: 88px 24px 40px; }
      .page-hero h1 { font-size: 32px; }
      .how-section { padding: 60px 24px; }
      .feature-block { padding: 60px 24px; }
    }
    @media (max-width: 768px) {
      .ind-grid { grid-template-columns: repeat(2,1fr); }
    }
    @media (max-width: 640px) {
      .nav-cta { display: none; }
      .nav-phone { display: none; }
      .hero-text h1 { letter-spacing: -1px; }
      .hero-desc { font-size: 15px; }
      .stats-band { grid-template-columns: repeat(2,1fr); }
      .scene-gallery { grid-template-columns: 1fr; }
      .stat-cell .num { font-size: 28px; }
      .steps { grid-template-columns: 1fr; }
      .ind-grid { grid-template-columns: 1fr; }
      .accessories-grid { grid-template-columns: 1fr; }
      .gallery-grid { grid-template-columns: 1fr; }
      .footer-top { grid-template-columns: 1fr; }
      .footer-col:last-child { grid-column: auto; }
      .loop-steps { flex-direction: column; align-items: center; }
      .loop-arrow { transform: rotate(90deg); }
      .spec-grid { grid-template-columns: 1fr 1fr; }
      .form-row { grid-template-columns: 1fr; }
      .cta-banner { margin: 48px 16px; padding: 40px 24px; }
      .cta-banner h2 { font-size: 26px; }
      .page-hero h1 { font-size: 26px; letter-spacing: -0.5px; }
      .section-header h2 { font-size: 26px; }
      .roi-big { font-size: 36px; }
      .feature-text h2 { font-size: 26px; }
    }

    /* Reset the fixed 380px video height up through 768px. A 16:9 video between
       641 and 675px wide is ~360-379px tall, just short of 380px, which left a
       thin black sliver below it; aspect-ratio sizing removes that gap. */
    @media (max-width: 768px) {
      .video-card video { height: auto; aspect-ratio: 16 / 9; }
      /* M1: collapse inline 2-col grids to one column on tablet (641-768px) so
         comparison/feature columns are not cramped to ~300px. Below 640px the
         catch-all already does this; class-based grids (e.g. .stats-band) use
         their own rules and are unaffected since this targets inline styles. */
      .m-g2{
        grid-template-columns:1fr !important;
      }
    }

    /* ============ RESPONSIVE LAYER (mobile / tablet) ============ */
    img,video{max-width:100%;height:auto}
    .nav-burger{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:8px;margin-left:4px}
    .nav-burger span{display:block;width:24px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s,opacity .25s}
    .nav-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
    .nav-burger.open span:nth-child(2){opacity:0}
    .nav-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
    .mobile-menu{position:fixed;top:64px;left:0;right:0;background:rgba(243,248,253,0.98);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:none;flex-direction:column;padding:10px 0 18px;z-index:99;max-height:calc(100vh - 64px);overflow-y:auto}
    .mobile-menu.open{display:flex}
    .mobile-menu a{color:var(--ink);text-decoration:none;font-size:16px;padding:15px 24px;cursor:pointer;border-bottom:1px solid var(--line)}
    .mobile-menu a:hover{background:var(--accent-tint-bg);color:var(--accent)}
    .mobile-menu .mm-cta{background:var(--gold);color:var(--gold-ink);border:none;font-family:var(--font);font-size:16px;font-weight:500;margin:14px 24px 0;padding:14px;border-radius:7px;cursor:pointer}
    @media(min-width:1025px){.mobile-menu{display:none !important}}
    @media(max-width:1024px){
      .nav-burger{display:flex}
      /* inline 3/4/5-col grids -> 2 cols on tablet */
      .m-g3,.m-g4,.m-g5{grid-template-columns:repeat(2,1fr) !important}
    }
    @media(max-width:640px){
      /* every inline multi-col grid -> single column on phones */
      .m-grid{grid-template-columns:1fr !important}
      /* tame oversized inline headings so they don't overflow */
      .m-fsxl{font-size:46px !important;line-height:1.1 !important}
      .m-fslg{font-size:30px !important;line-height:1.15 !important}
      .m-fsmd{font-size:24px !important}
      /* tighten large section padding */
      .m-p8048{padding:48px 20px !important}
      .m-p8024{padding:44px 20px !important}
    }

    /* ---- overflow + hero mobile fixes ---- */
    html,body{overflow-x:hidden;max-width:100%}
    h1,h2,h3,p{overflow-wrap:break-word}
    @media(max-width:1024px){
      .hero-content{padding-left:20px !important;padding-right:20px !important}
      .hero-eyebrow{max-width:100%;white-space:normal;line-height:1.4}
      .hero-text h1{font-size:34px}
      .hero-desc{max-width:100%}
      .industry-strip{padding-left:20px;padding-right:20px}
    }
    @media(max-width:640px){
      .hero-text h1{font-size:26px}
      .hero-desc{font-size:15px}
      .hero-actions .btn{flex:1 1 100%}
    }

    /* ---- scroll reveal ---- */
    .reveal{opacity:0;transform:translateY(24px);transition:opacity 0.6s ease,transform 0.6s ease;}
    .reveal.in{opacity:1;transform:none;}
    @media(prefers-reduced-motion:reduce){.reveal{opacity:1 !important;transform:none !important;transition:none !important;}}

    /* ---- hero background media: hidden on the light hero (kept faint image only) ---- */
    .hero-bg-video{display:none;}
    .hero-bg-overlay{display:none;}
    .hero-content{position:relative;z-index:1;}

    /* ---- cookie consent (UK/EU compliant), kept on the dark system band ---- */
    .cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:1000;background:var(--cta-bg);color:rgba(255,255,255,0.95);padding:18px 22px;box-shadow:0 -4px 24px rgba(14,31,61,0.25);transform:translateY(110%);transition:transform 0.3s ease;height:auto;min-height:0;max-height:85vh;overflow-y:auto;}
    .cookie-banner.show{transform:translateY(0);}
    .cookie-inner{max-width:1160px;margin:0 auto;display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:space-between;}
    .cookie-text{font-size:13.5px;line-height:1.6;flex:1 1 460px;min-width:260px;}
    .cookie-text a{color:var(--gold);text-decoration:underline;}
    .cookie-text strong{display:block;margin-bottom:4px;}
    .cookie-actions{display:flex;gap:10px;flex-wrap:wrap;}
    .ck-btn{font-family:inherit;font-size:13.5px;font-weight:500;border-radius:7px;padding:11px 20px;cursor:pointer;border:1px solid rgba(255,255,255,0.85);background:transparent;color:var(--white);min-width:170px;text-align:center;}
    .ck-btn:hover{background:rgba(255,255,255,0.08);}
    .ck-btn.ck-accept{background:transparent;color:var(--white);border-color:rgba(255,255,255,0.85);}
    .ck-btn.ck-reject{background:transparent;color:var(--white);border-color:rgba(255,255,255,0.85);}
    /* equally weighted: same fill, same border, same size — meets ICO "equal prominence" guidance */
    .ck-link{background:none;border:none;color:var(--gold);text-decoration:underline;cursor:pointer;font:inherit;padding:0;}
    @media(max-width:640px){.cookie-inner{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:16px;}.cookie-text{flex:0 0 auto;}.ck-btn{flex:1 1 auto;min-width:0;}}
    .footer-cookie-settings{background:none;border:none;color:rgba(255,255,255,0.7);cursor:pointer;font-size:13px;padding:0;text-decoration:underline;}
    .footer-cookie-settings:hover{color:var(--white);}

    /* ---- comparison tables ---- */
    .cmp-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm);font-size:13.5px;}
    .cmp-table thead th{background:var(--ink);color:var(--white);text-align:left;padding:14px 16px;font-weight:500;font-size:12.5px;letter-spacing:0.3px;}
    .cmp-table tbody td{padding:14px 16px;border-bottom:1px solid var(--line);color:var(--body);vertical-align:top;}
    .cmp-table tbody tr:last-child td{border-bottom:none;}
    .cmp-table tbody tr:nth-child(even){background:var(--surface-2);}
    .cmp-table tbody td strong{color:var(--ink);}
    .cmp-table tbody tr:hover{background:var(--teal-tint);}
    @media(max-width:760px){
      .cmp-table thead{display:none;}
      .cmp-table,.cmp-table tbody,.cmp-table tr,.cmp-table td{display:block;width:100%;}
      .cmp-table tr{margin-bottom:16px;border:1px solid var(--line);border-radius:10px;overflow:hidden;}
      .cmp-table td{display:flex;justify-content:space-between;gap:14px;text-align:right;border-bottom:1px solid var(--line);padding:11px 14px;}
      .cmp-table td::before{content:attr(data-label);font-weight:500;color:var(--ink);text-align:left;flex-shrink:0;}
      .cmp-table tbody tr:nth-child(even){background:var(--surface);}
    }

    /* ========================================================= */
    /* Full adaptive layer: makes inline-styled sections and      */
    /* grids responsive on tablet and mobile (desktop unchanged). */
    /* ========================================================= */
    @media (max-width:1024px){
      /* tighten oversized section gutters on tablet */
      .m-pg{
        padding-left:30px !important; padding-right:30px !important;
      }
      /* m-g3/m-g4/m-g5 -> 2 columns at <=1024px is handled in the earlier
         @media(max-width:1024px) block; not repeated here. */
    }
    @media (max-width:640px){
      /* minimal gutters on phones */
      .m-pg{
        padding-left:18px !important; padding-right:18px !important;
      }
      /* all multi-column inline card grids stack on phones (m-grid already
         covers every grid; kept explicit for parity with the prior rule) */
      .m-g2,.m-g3,.m-g4,.m-g5{
        grid-template-columns:1fr !important;
      }
      /* keep big stat numbers from overflowing tiny screens */
      .m-fs80{ font-size:54px !important; }
    }

    /* ========================================================= */
    /* Calm look — robot pages only (scoped via body.rp)          */
    /* ========================================================= */
    body.rp .section-tag{ color:var(--muted) !important; letter-spacing:2px !important; }
    body.rp .section-header{ margin-bottom:56px; }
    body.rp .spec-card{ border-color:transparent !important; }
    body.rp .spec-val em{ color:var(--accent) !important; }
    body.rp .feat-list li,
    body.rp .feat-list li:first-child{ border-color:transparent !important; }
    body.rp .feat-list li::before{ background:var(--accent) !important; }
    body.rp .feature-block.alt{ border-top-color:transparent !important; border-bottom-color:transparent !important; }
    /* soften boxy card outlines into barely-there separation */
    body.rp .m-bd{ border-color:var(--line) !important; }
    /* remove the hard lines that divide section from section */
    body.rp .m-bdt{ border-top-color:transparent !important; }
    body.rp .m-bdb{ border-bottom-color:transparent !important; }

    /* Hide selected images on mobile only — reduces repetitive stacked scroll on phones */
    @media (max-width:640px){
      .hide-mobile{ display:none !important; }
    }

    /* blog cards (the-clean-sheet grid) — moved off inline styles in build.py's
       card() so the grid markup stays class-only under a strict CSP */
    .blog-card{text-decoration:none;color:inherit;display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:transform 0.2s,box-shadow 0.2s}
    .blog-img{aspect-ratio:16/9;overflow:hidden;background:var(--ink)}
    .blog-img img{width:100%;height:100%;object-fit:cover}
    .blog-body{padding:22px;display:flex;flex-direction:column;flex:1}
    .blog-body h2{font-size:18px;margin:10px 0 8px;line-height:1.35}
    .blog-body p{font-size:14px;color:var(--body);line-height:1.6;flex:1}
    .blog-meta{margin-top:14px}
    /* blog-card hover (onmouseover removed; CSS handles the lift) */
    .blog-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(14,31,61,0.12)}

    /* service-area cards: base border + hover (moved off inline styles for keyboard/CSS hover) */
    .area-card{border:1px solid var(--line);}
    .area-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 10px 26px rgba(14,31,61,0.1)}

    /* product-card lift on index.html and robots.html (div[role="link"] with transition:all inline) */
    div[role="link"]:hover{box-shadow:0 8px 28px rgba(14,31,61,0.1);transform:translateY(-3px)}

    /* Accessibility: visible keyboard focus (focus-visible only, so mouse users are unaffected) */
    .btn:focus-visible, .nav-links a:focus-visible, .nav-cta:focus-visible, .faq-q:focus-visible, .ind-pill:focus-visible, .ind-card:focus-visible, a.btn:focus-visible, .mm-cta:focus-visible, .form-submit:focus-visible, .nav-phone:focus-visible, .footer-cookie-settings:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
    .fg input:focus-visible, .fg select:focus-visible, .fg textarea:focus-visible, input[type=range]:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

    /* contact-form success message (injected by tovrana-common.js) — moved off
       inline styles so the injected markup is allowed under a strict CSP */
    .cf-ok{text-align:center;padding:40px 20px}
    .cf-ok-ic{font-size:42px;margin-bottom:12px}
    .cf-ok-ic svg{vertical-align:-3px;margin-right:5px}
    .cf-ok h3{color:var(--ink);font-size:22px;font-weight:500;margin-bottom:10px}
    .cf-ok p{color:var(--body);font-size:15px;line-height:1.6;max-width:440px;margin:0 auto}
}

/* ===== HOISTED-INLINE:START (generated by tools/hoist_styles.py) ===== */
/* Generated by tools/hoist_styles.py - hoisted inline styles.
   UNLAYERED on purpose: wins over @layer base exactly as an inline
   style attribute used to. Do not edit by hand; re-run the script. */
.s008cf9f6{text-align:center;margin-bottom:28px;}
.s008ddf90{font-size:14px;color:rgba(255,255,255,0.55);margin-top:12px;max-width:250px;margin-left:auto;margin-right:auto;}
.s00a2cdfe{font-size:14px;color:rgba(255,255,255,0.55);margin-top:12px;max-width:230px;margin-left:auto;margin-right:auto;}
.s02c45f3d{padding:60px 48px;background:var(--white);}
.s034f9d3d{display:flex;gap:20px;flex-wrap:wrap;}
.s0426711b{background:linear-gradient(180deg,var(--white),var(--surface-2));border-bottom:1px solid var(--line);padding:66px 20px;text-align:center;}
.s0488e12e{font-size:30px;font-weight:500;color:var(--ink);letter-spacing:-0.6px;margin-bottom:8px;}
.s051894cf{width:100%;height:100%;max-height:220px;object-fit:contain;display:block;margin:auto;padding:20px 0;}
.s05643393{background:var(--surface-2);border:2px solid var(--accent);border-radius:14px;overflow:hidden;cursor:pointer;transition:all 0.2s;position:relative;}
.s05d0d643{font-size:15px;color:var(--body);max-width:620px;margin:0 auto 36px;}
.s06106895{background:rgba(245,166,35,0.12);border:1px solid rgba(245,166,35,0.4);color:var(--gold-tint-ink);font-size:11px;font-weight:500;padding:4px 10px;border-radius:100px;}
.s06c623fd{position:relative;z-index:2;}
.s07d4b326{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.s07da8d03{max-width:560px;margin:0 auto;}
.s086ffef6{background:var(--white);border:1px solid var(--line);color:var(--body);font-size:12px;padding:5px 14px;border-radius:100px;}
.s0889360d{display:flex;gap:8px;flex-wrap:wrap;}
.s08b4437a{background:var(--ink);height:160px;display:flex;align-items:center;justify-content:center;position:relative;}
.s0bf97f5a{max-width:900px;margin:0 auto;}
.s0c60e06c{font-size:96px;font-weight:500;color:var(--white);letter-spacing:-4px;line-height:1;}
.s0dd60d34{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.s0e8f9ca8{font-size:28px;margin-bottom:10px;}
.s0fe4e731{padding:11px 14px;color:var(--body);font-weight:500;width:38%;}
.s11b4a1c2{padding:80px 48px;}
.s12d667a4{padding:72px 48px;background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.s1376431c{padding:20px 48px 60px;}
.s159642f1{font-size:14px;color:var(--body);max-width:560px;line-height:1.75;}
.s162f6a78{padding:0 48px 80px;max-width:1160px;margin:0 auto;}
.s1646daf0{display:block;margin:0 auto;}
.s16d4a7cd{font-size:64px;font-weight:500;color:var(--white);letter-spacing:-2px;line-height:1;}
.s17188f7a{padding:60px 48px;background:var(--surface-2);border-top:1px solid var(--line);}
.s177ea6d9{color:var(--accent);font-weight:700;flex:0 0 auto;}
.s17d902bf{font-size:13px;color:var(--muted)}
.s17dee1cc{overflow:hidden;position:relative;background:#000;}
.s188810d5{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;}
.s18b80e6d{color:var(--accent);font-weight:600;}
.s18ee097a{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:24px;text-align:center;cursor:pointer;transition:all 0.2s;text-decoration:none;color:inherit;}
.s1abb1308{accent-color:var(--accent);width:16px;height:16px;flex-shrink:0;}
.s1bda4d1a{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px;}
.s1c0c5b5c{max-width:760px;margin:0 auto;text-align:center;color:var(--body);font-size:15px;line-height:1.7;}
.s1d8dd3f3{background:var(--ink);border-radius:14px;padding:40px;display:flex;align-items:center;justify-content:center;}
.s1e90930a{display:flex;gap:10px;flex-wrap:wrap;}
.s1ea643d7{font-size:26px;font-weight:500;color:var(--accent);margin-top:4px;}
.s20524faf{font-size:28px;font-weight:500;color:var(--ink);letter-spacing:-0.5px;margin-bottom:24px;}
.s2057f1db{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:400;color:var(--body);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;cursor:pointer;grid-column:1/-1;}
.s215ce333{padding:72px 48px;background:var(--surface-2);}
.s2205a163{font-size:12px;color:var(--body);line-height:1.5;}
.s22072011{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:22px;}
.s22c175a1{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:24px;text-align:center;}
.s2337a11f{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:760px;margin:0 auto;}
.s240e7aa6{font-size:12px;color:rgba(255,255,255,0.6);margin-bottom:4px;}
.s243cac51{background:var(--white);padding:64px 20px;text-align:center;border-top:1px solid var(--line);}
.s252f0175{font-size:22px;font-weight:500;color:var(--accent);margin-bottom:4px;}
.s25a193ab{border-radius:14px;overflow:hidden;margin-top:28px;max-width:760px;margin-left:auto;margin-right:auto;}
.s2687c08c{border:2px solid var(--accent);border-radius:12px;overflow:hidden;cursor:pointer;position:relative;display:block;text-decoration:none;color:inherit;}
.s270d4181{font-size:32px;margin-bottom:10px;}
.s274e08f0{background:var(--ink);border-radius:12px;padding:24px;display:flex;align-items:center;justify-content:center;min-height:240px;}
.s27d95cdc{font-size:80px;font-weight:500;color:var(--white);letter-spacing:-3px;line-height:1;}
.s28397ce4{font-size:11px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--brand);margin-bottom:10px;}
.s283d51b2{display:flex;gap:12px;flex-wrap:wrap;}
.s2917f021{max-width:1100px;margin:0 auto;}
.s298cb4b4{font-size:24px;flex-shrink:0;}
.s299ee611{font-size:14px;color:rgba(255,255,255,0.55);margin-top:12px;max-width:240px;margin-left:auto;margin-right:auto;}
.s2a28d13f{margin-bottom:32px;}
.s2a3060bc{display:flex;gap:9px;align-items:flex-start;}
.s2ae5002b{padding:11px 14px;color:var(--body);font-weight:500;width:34%;}
.s2c353f24{position:absolute;top:14px;right:14px;background:var(--accent);color:var(--white);font-size:10px;font-weight:500;letter-spacing:1px;padding:4px 10px;border-radius:100px;z-index:2;}
.s2c52d9a1{margin-top:32px;padding:20px;background:var(--surface-2);border-radius:10px;border:1px solid var(--line);}
.s2ced3f1d{max-width:1100px;margin:0 auto;padding:8px 20px 64px;text-align:center;}
.s2d720c72{font-size:34px;font-weight:600;color:var(--ink);letter-spacing:-0.02em;margin-bottom:36px;}
.s2d7a1aa2{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
.s2de96027{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:20px;text-align:center;}
.s2e1ca338{display:flex;flex-direction:column;gap:12px;}
.s2fe63a3b{background:var(--surface-2);border-radius:16px;padding:24px;}
.s312a2bd8{padding:72px 48px;background:var(--white);}
.s31311b7e{text-align:center;font-size:13px;color:var(--body);margin-top:14px;}
.s315cf12b{border-bottom:1px solid var(--line);background:var(--surface-2);}
.s31677468{padding:10px 14px;color:var(--body);font-weight:500;width:24%;}
.s32a717bc{font-size:17px;font-weight:500;color:var(--ink);margin-bottom:5px;}
.s333d738f{font-size:15px;color:var(--body);line-height:1.8;margin-bottom:14px;}
.s3343fd64{margin-top:24px;}
.s33bd3a3e{max-width:1160px;margin:28px auto 0;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:24px;}
.s3456e610{font-size:14px;font-weight:500;color:var(--ink);margin-bottom:10px;}
.s34ee234b{padding:44px 48px;display:flex;flex-direction:column;justify-content:center;}
.s35e601f7{font-size:32px;font-weight:500;color:var(--ink);letter-spacing:-0.7px;line-height:1.2;margin-bottom:14px;}
.s3712aa1c{border-radius:10px;}
.s38352923{border-radius:0;}
.s38352923 img{height:auto;}
.s384d34f9{max-width:1100px;margin:36px auto 14px;font-size:18px;color:var(--ink);font-weight:500;}
.s39d49061{padding:18px;}
.s3a15e320{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.s3a580888{display:grid;grid-template-columns:1fr;gap:14px;align-content:start;}
.s3c41f525{font-size:22px;font-weight:500;color:var(--accent);margin-bottom:2px;}
.s3c7b0f27{padding:11px 14px;}
.s3cd56462{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.s3dafae99{background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:80px 48px;}
.s3df49f2e{font-size:16px;font-weight:500;color:var(--ink);margin-bottom:6px;margin-top:6px;}
.s3e7273b7{font-size:16px;font-weight:500;color:var(--ink);}
.s3f391067{font-size:18px;font-weight:500;color:var(--accent);margin-bottom:4px;}
.s3f3dc0e4{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.s3f7ee6d6{display:block;width:100%;max-width:680px;height:auto;margin:0 auto;}
.s3f9c13b9{padding:0 48px 8px;background:var(--white);}
.s3fdc10b3{position:absolute;inset:0;z-index:1;}
.s3fed40bc{height:140px;max-width:90%;object-fit:contain;}
.s403b483d{font-size:15px;color:var(--body);line-height:1.8;margin-bottom:18px;}
.s40e210c8{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:1000px;margin:0 auto;}
.s416e1e26{font-size:34px;font-weight:600;color:var(--ink);letter-spacing:-0.02em;line-height:1.15;max-width:760px;margin-bottom:20px;}
.s41f7ca44{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1160px;margin:0 auto;padding:0 48px 80px;}
.s420a7387{padding:22px;}
.s422aa184{text-align:center;margin-top:24px;}
.s43044189{max-width:1160px;margin:0 auto;padding:80px 48px;}
.s43841643{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:20px;}
.s444ce6c4{font-size:13px;color:rgba(255,255,255,0.6);text-decoration:none;}
.s450844ca{padding:80px 48px;max-width:1160px;margin:0 auto;}
.s45a87728{font-size:12px;color:var(--muted);line-height:1.5;margin:0;}
.s45c17a8b{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px;}
.s484b7215{font-size:14px;font-weight:500;color:var(--ink);margin-bottom:6px;}
.s48bbfe83{max-width:1160px;margin:0 auto;background:var(--ink);border-radius:14px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;}
.s4924f9de{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.s493cc82e{vertical-align:-3px;margin-right:5px;}
.s4a1984a9{font-size:12px;color:rgba(255,255,255,0.6);margin-bottom:4px;}
.s4beff1e9{font-size:15px;font-weight:500;color:var(--ink);margin-bottom:8px;}
.s4c798ab3{text-align:center;font-size:12px;color:var(--body);margin-top:18px;}
.s4ce59e85{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1000px;margin:0 auto;}
.s4dd4c188{padding:80px 48px;background:var(--white);}
.s4edeb9e7{text-decoration:none;}
.s4ef1a9da{border-radius:14px;overflow:hidden;}
.s503bc2c8{padding:10px 14px;}
.s518d180a{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.s5195896c{font-size:13px;color:var(--body);line-height:1.6;}
.s51ac29e2{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:1100px;margin:0 auto;}
.s53dd17de{width:100%;margin-top:20px;}
.s53f338a2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:28px;}
.s540b90af{font-size:13px;color:var(--body);margin-top:18px;line-height:1.7;}
.s587ad02e{font-size:12px;color:var(--body);}
.s59d645f4{padding:11px 14px;color:var(--body);font-weight:500;width:30%;}
.s5b049b6c{font-size:13px;color:var(--body);}
.s5b5289e0{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-bottom:60px;}
.s5be781ff{background:var(--surface);}
.s5c08e58d{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:8px;}
.s5c46d0bb{font-size:28px;font-weight:500;color:var(--white);letter-spacing:-0.5px;line-height:1.2;margin-bottom:12px;}
.s609877dc{border-radius:14px;overflow:hidden;max-width:760px;margin-left:auto;margin-right:auto;}
.s60ea1e7b{padding:24px;}
.s62c135d5{display:flex;flex-direction:column;gap:14px;}
.s63179109{max-height:220px;width:auto;object-fit:contain;}
.s63ae4909{font-size:13px;color:var(--body);line-height:1.7;}
.s665ee6d2{height:205px;object-fit:contain;}
.s67003064{font-size:11px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}
.s68006dcd{font-size:13px;color:var(--body);margin-top:10px;}
.s686d8120{background:var(--white);border:1px solid var(--line);color:var(--body);font-size:11px;padding:3px 10px;border-radius:100px;cursor:pointer;text-decoration:none;}
.s69725082{padding:11px 14px;color:var(--body);font-weight:500;width:40%;}
.s69eb08fd{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.s69eb5986{padding:60px 48px;}
.s6a938e01{position:absolute;top:10px;right:10px;background:var(--accent);color:var(--white);font-size:10px;font-weight:500;padding:3px 10px;border-radius:100px;z-index:2;}
.s6affd8a9{padding:10px 14px;color:var(--body);font-weight:500;}
.s6ba379ef{max-width:1100px;margin:0 auto;padding:0 24px 20px;}
.s6c55b072{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:14px 16px;font-size:14px;color:var(--ink);display:flex;align-items:center;gap:10px;}
.s6c68fddd{font-size:15px;font-weight:500;color:var(--ink);}
.s6ddb9c03{color:var(--accent);}
.s6ea0dfb5{font-size:20px;margin-bottom:6px;}
.s6eaa4797{background:var(--ink);color:var(--white);}
.s6f7f8f2b{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:22px;}
.s71015d54{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:22px;}
.s7135270c{color:var(--accent);font-size:13px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;margin-bottom:14px;}
.s7334dc34{color:var(--white);font-size:15px;font-weight:500;}
.s73d8ef79{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:60px;}
.s76084ee4{margin-bottom:0;}
.s76a7ba66{height:200px;overflow:hidden;}
.s7797a855{color:var(--ink);}
.s79d095c1{font-size:14px;font-weight:500;color:var(--ink);margin-bottom:4px;}
.s7d4eaed7{font-size:17px;font-weight:500;color:var(--ink);margin:8px 0 5px;}
.s7dd15e66{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.s7dd66226{background:var(--ink);height:230px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.s7e985534{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:18px;text-align:center;}
.s7ebff603{color:var(--muted);font-size:14px;line-height:1.6;}
.s7f858aad{font-size:32px;margin-bottom:12px;}
.s8038751e{font-size:42px;}
.s803caeff{font-size:20px;font-weight:500;color:var(--accent);}
.s8059d4ec{display:flex;align-items:flex-start;gap:8px;font-size:13px;font-weight:400;color:var(--body);cursor:pointer;}
.s815c8f96{background:var(--surface-2);}
.s81e29bcb{max-width:680px;margin:10px auto 0;color:var(--body);}
.s82113d95{border-radius:14px;overflow:hidden;border:1px solid var(--line);}
.s836e17e0{font-size:48px;}
.s83d054e9{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:16px;text-align:center;}
.s867a4e71{margin-top:48px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:32px 36px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.s87db2275{position:relative;}
.s885e9005{direction:ltr;}
.s88b9d5c6{margin-top:14px;}
.s8a192851{width:6px;height:6px;background:var(--accent);border-radius:50%;flex-shrink:0;}
.s8a359a76{margin-top:16px;}
.s8adc7376{padding:80px 48px;background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.s8c5b78ab{font-size:12px;color:var(--accent);font-weight:500;}
.s8c7f50c8{max-width:1100px;margin:0 auto;padding:0 24px 80px;}
.s8ccd304d{margin:30px 0;text-align:center;}
.s8cddc29a{padding:20px;}
.s8d506090{display:flex;gap:6px;justify-content:center;margin-top:10px;flex-wrap:wrap;}
.s8dbda4e7{padding:0 48px;max-width:1160px;margin:0 auto;}
.s8dbf7bde{border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;display:block;text-decoration:none;color:inherit;}
.s8e3a357d{color:var(--body);}
.s8efad71a{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:24px;text-align:center;cursor:pointer;text-decoration:none;color:inherit;}
.s8f5078bd{color:var(--muted);font-size:12px;margin-top:10px;}
.s905d4196{max-width:1100px;margin:40px auto 14px;font-size:18px;color:var(--ink);font-weight:500;}
.s9104fb05{font-size:16px;font-weight:500;color:var(--ink);margin-bottom:6px;}
.s914e19bd{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px;}
.s91820374{font-size:22px;font-weight:500;color:var(--ink);margin-bottom:24px;text-align:center;}
.s91cbd124{text-align:center;font-size:18px;font-weight:500;color:var(--ink);margin-bottom:32px;}
.s91f497c7{background:var(--ink);height:230px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;}
.s91f5f9aa{font-size:17px;color:var(--body);max-width:620px;margin:0 auto 28px;}
.s95709abd{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.s95a07cf9{border-bottom:1px solid var(--line);background:var(--white);}
.s96968361{font-size:12px;color:var(--body);font-style:italic;margin-top:-4px;}
.s9758a9a5{max-width:1100px;margin:0 auto;padding:40px 20px 56px;}
.s982944fc{border:2px solid var(--accent);border-radius:12px;overflow:hidden;cursor:pointer;display:block;text-decoration:none;color:inherit;}
.s982f571e{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.s99052bbe{display:grid;gap:14px;align-content:center;}
.s9be519c4{margin-top:18px;display:flex;gap:14px;align-items:center;}
.s9cb73294{position:relative;z-index:1;text-align:center;padding:0 10px;}
.s9e33a28a{margin-top:3px;width:16px;height:16px;flex:0 0 auto;accent-color:var(--accent);}
.s9e6a6b7b{font-size:16px;font-weight:500;color:var(--ink);margin-bottom:8px;}
.s9ec81473{color:var(--ink);font-size:16px;line-height:1.5;}
.s9ed9fd86{padding:0 48px 80px;background:var(--white);}
.s9f7d39cc{flex-shrink:0;white-space:nowrap;}
.s9f8fb282{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1160px;margin:0 auto 48px;}
.sa0e8c60f{max-width:1100px;margin:0 auto;padding:64px 20px 0;}
.sa2279423{padding:22px;display:flex;flex-direction:column;flex:1;}
.sa2478d40{font-size:34px;font-weight:500;color:var(--accent);}
.sa28dcf36{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.sa297aea9{padding:64px 48px 0;max-width:1160px;margin:0 auto;}
.sa30ac2df{text-align:left;padding:12px 14px;font-weight:500;}
.sa33ab60c{display:flex;gap:20px;margin-top:16px;flex-wrap:wrap;}
.sa348d9f6{max-width:760px;margin:22px auto 0;text-align:center;font-size:14px;color:var(--body);line-height:1.7;}
.sa350ed63{width:96px;height:96px;}
.sa37f566c{padding:64px 48px;background:var(--surface-2);}
.sa44d435f{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;position:relative;z-index:2;}
.sa4b284f6{font-size:13px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:6px;}
.sa68b0899{color:rgba(255,255,255,0.55);display:inline-flex;}
.sa706d91b{font-size:14px;color:var(--body);line-height:1.7;margin-bottom:14px;}
.sa7477890{background:var(--surface-2);border-radius:14px;padding:40px;border:1px solid var(--line);}
.sa76726a1{color:rgba(255,255,255,0.72);font-size:13px;}
.sa83300b5{font-size:18px;margin:10px 0 8px;line-height:1.35;}
.sa84c8890{height:120px;width:100%;object-fit:contain;background:var(--cta-bg);border-radius:8px;padding:14px;margin-bottom:12px;}
.sa91d4b03{max-width:520px;width:100%;border:1px solid var(--line);border-radius:10px;box-shadow:0 4px 18px rgba(14,31,61,0.10);}
.sab0cad0e{color:var(--cta-dk);}
.sac431bf0{object-fit:contain;background:var(--ink);}
.sad73f575{max-width:1000px;margin:0 auto;}
.sadf555b3{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.saef6ad9c{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}
.sb06dc162{font-size:30px;font-weight:500;color:var(--ink);letter-spacing:-0.6px;line-height:1.2;margin-bottom:14px;}
.sb1279a83{width:100%;height:100%;object-fit:cover;}
.sb2147b3e{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.sb222d335{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1160px;margin:0 auto;}
.sb25110fd{width:56px;height:56px;background:var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;border:3px solid var(--surface-2);}
.sb2e6a960{display:block;margin:0 auto}
.sb59d24be{font-size:16px;line-height:1.8;color:var(--body);max-width:760px;margin-bottom:28px;}
.sb62e68f0{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.sb636c747{text-align:center;padding:24px 16px;background:var(--white);border-radius:10px;border:1px solid var(--line);}
.sb9b5455a{font-size:13px;color:var(--body);margin-bottom:12px;}
.sba4eda05{font-size:72px;font-weight:500;color:var(--white);letter-spacing:-2px;line-height:1;}
.sbadae0be{padding:60px 20px;}
.sbb1b0ec0{height:170px;border-radius:0;}
.sbb217678{text-align:center;margin-top:30px;}
.sbb7199b0{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:24px;}
.sbbc5a036{font-size:20px;font-weight:500;color:var(--ink);margin-bottom:8px;}
.sbbf3ec15{font-size:15px;font-weight:500;color:var(--ink);margin-bottom:6px;}
.sbc339d9b{background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.sbc85b857{color:var(--body);font-size:13px;margin-bottom:30px;}
.sbce171a4{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.sbd0f41a0{font-size:15px;color:var(--body);line-height:1.8;}
.sbf3fde7c{text-decoration:none;background:var(--white);border-radius:12px;padding:24px;transition:all 0.2s;display:block;}
.sbf7a5e25{height:100%;max-height:230px;object-fit:contain;display:block;margin:auto;}
.sc03cea43{background:var(--white);}
.sc311808c{object-fit:cover;}
.sc36d2fba{font-size:18px;font-weight:500;color:var(--ink);margin-bottom:4px;}
.sc400b961{width:100%;border-collapse:collapse;font-size:13.5px;background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.sc580b778{border-color:var(--accent);background:var(--gold-tint);}
.sc6091474{padding:72px 48px;background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.sc6c2a4b8{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:36px;display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.sc799d618{text-decoration:none;display:inline-flex;align-items:center;}
.sc8be1ccb{display:none;}
.sc8e79699{font-size:13px;color:var(--body);margin-top:4px;}
.sc94aa356{max-width:1160px;margin:0 auto;}
.sc9f2b763{border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--white);}
.sca59f60a{position:absolute;top:10px;left:10px;background:var(--accent);color:var(--white);font-size:10px;font-weight:500;padding:3px 10px;border-radius:100px;letter-spacing:0.3px;}
.scc273359{border-radius:10px;overflow:hidden;}
.scc899fca{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:22px;}
.scc9b9260{font-size:13px;color:var(--body);line-height:1.7;margin-bottom:16px;}
.scde68b46{position:absolute;bottom:16px;right:16px;background:var(--accent);color:var(--white);font-size:12px;font-weight:500;padding:6px 14px;border-radius:100px;}
.sce1ee7df{font-size:13px;color:var(--body);line-height:1.7;margin-bottom:10px;}
.scfba6c6a{padding:11px 14px;color:var(--body);font-weight:500;}
.scfcffc73{font-size:13px;font-weight:500;color:var(--ink);padding:0;}
.sd00a6b6f{display:grid;gap:40px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,0.08);margin-bottom:28px;}
.sd0698c48{overflow-x:auto;}
.sd2b03372{width:90px;height:90px;}
.sd30e164e{max-width:860px;margin:0 auto;}
.sd3af0144{background:var(--surface-2);border-radius:14px;padding:32px;}
.sd523e0fe{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.sd6a0b403{font-size:38px;}
.sd6e72181{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:28px;}
.sd71f9f13{width:100%;height:auto;display:block;}
.sd75ee2d2{font-size:19px;line-height:1.7;color:var(--body);max-width:880px;margin:0 auto;}
.sd7c17dfa{font-size:14px;color:rgba(255,255,255,0.65);line-height:1.8;margin-bottom:20px;}
.sd818b5aa{padding:64px 48px;background:var(--white);}
.sd8c7b599{border:none;margin:0;padding:0;min-width:0;}
.sd98dc1a7{max-width:1100px;margin:0 auto;overflow-x:auto;}
.sdac4fe6c{text-align:center;}
.sdb37b90b{font-size:12px;color:var(--body);margin:14px 0 0;font-style:italic;}
.sdd01cbd6{height:150px;background:var(--ink);display:flex;align-items:center;justify-content:center;}
.sdd3897bb{height:150px;border-radius:0;}
.sdde758de{font-size:28px;font-weight:500;color:var(--ink);letter-spacing:-0.5px;margin:8px 0 32px;}
.se2b6cc89{max-width:820px;margin:24px auto 0;}
.se3f61041{display:flex;align-items:center;gap:8px;}
.se42dbd23{font-size:88px;font-weight:500;color:var(--white);letter-spacing:-3px;line-height:1;}
.se4c65af3{font-size:11px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:6px;}
.se669d06d{max-width:780px;margin:0 auto;padding:60px 24px;}
.se7c4a9da{font-size:22px;font-weight:500;color:var(--accent);margin-top:6px;}
.se7fe574a{border:1px solid var(--line);border-radius:12px;padding:20px 22px;display:flex;gap:12px;align-items:flex-start;}
.sea4e2d1d{font-size:20px;font-weight:600;margin-bottom:6px;}
.seaa77636{background:var(--accent);color:var(--white);font-size:10px;font-weight:500;padding:3px 10px;border-radius:4px;}
.seab39e54{color:rgba(255,255,255,0.6);font-size:13px;}
.seb134bd5{width:100%;display:block;}
.seb6e1e84{padding:11px 14px;color:var(--body);font-weight:500;width:28%;}
.seca247bd{accent-color:var(--accent);width:16px;height:16px;flex-shrink:0;margin-top:2px;}
.seedb5a5b{font-size:12px;color:var(--body);letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;}
.seff2b345{width:100%;height:100%;object-fit:cover;display:block;}
.sf0d1c011{max-width:1000px;margin:0 auto;text-align:center;}
.sf20efff3{max-width:820px;margin:0 auto;}
.sf3d9b023{font-size:42px;font-weight:600;line-height:1.12;max-width:1000px;margin:0 auto 20px;color:var(--ink);}
.sf3e2c6ed{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:400;color:var(--body);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;cursor:pointer;}
.sf5276758{grid-template-columns:repeat(4,1fr);}
.sf53c65d0{font-size:19px;font-weight:500;color:var(--ink);margin-bottom:8px;}
.sf5cefffb{border-bottom:1px solid var(--line);}
.sf71e2ed1{color:rgba(255,255,255,0.5);font-size:14px;}
.sf787c134{padding:56px 48px 16px;background:var(--white);}
.sf849c0b6{direction:rtl;}
.sf90b42a8{background:var(--surface-2);border:1px solid var(--line);color:var(--body);font-size:11px;font-weight:500;padding:4px 10px;border-radius:100px;}
.sf9db94ea{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:900px;margin:0 auto;}
.sf9e6584c{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:28px;}
.sfb0d5215{font-size:14px;color:var(--body);line-height:1.7;}
.sfb5e1d3c{padding:72px 48px;background:var(--surface-2);border-top:1px solid var(--line);}
.sfbf60713{color:inherit;text-decoration:none;}
.sfc1fa1b2{font-size:36px;font-weight:600;color:var(--ink);letter-spacing:-0.02em;max-width:780px;margin:0 auto 16px;}
.sfc816956{margin-top:22px;}
.sfc99a9ee{font-size:13px;color:rgba(255,255,255,0.45);line-height:1.7;margin-top:12px;max-width:220px;}
.sfcfdd0ee{display:flex;align-items:flex-start;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px;}
.sfd4f2873{font-size:13px;color:var(--body);margin:0;}
.sfe695932{background:var(--ink);height:160px;display:flex;align-items:center;justify-content:center;}
.sfe78b3f3{object-fit:contain;}
.sfecf27e6{font-size:30px;font-weight:500;color:var(--ink);letter-spacing:-0.6px;}
.sff43deac{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;text-align:left;}
.sffd1cc69{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;overflow:hidden;cursor:pointer;transition:all 0.2s;position:relative;}
/* ===== HOISTED-INLINE:END ===== */

/* ===================== Footer teal accents ===================== */
/* CSS-only, footer-scoped. Brand teal (#00A896) as a restrained accent on the
   navy footer. Unlayered on purpose so it wins over the hoisted .s* classes on
   footer links. Navy base + resting link colors are unchanged except where noted;
   gold is never used in the footer. Teal on the navy footer is ~4.9 to 5.5:1
   (passes WCAG AA). Scoped to `footer` so nothing leaks into the header/nav or
   buttons. */

/* 1. teal top edge */
footer{border-top:2px solid var(--brand)}

/* 2. column headings teal (Robots, Industries, Company, Service area) */
footer .footer-col h3{color:var(--brand)}

/* Lock + hover: each footer link keeps its resting color across link/visited/
   active/focus (so a tapped or visited link never fades on the dark footer);
   :hover is the only state that turns teal. Resting colors are each group's
   existing value, so nothing changes at rest. */

/* column nav links (resting 0.6); "view all" links keep their dimmer 0.35 */
footer .footer-col a:link,footer .footer-col a:visited,footer .footer-col a:active,footer .footer-col a:focus{color:rgba(255,255,255,0.6)}
footer .footer-col a.sa76726a1:link,footer .footer-col a.sa76726a1:visited,footer .footer-col a.sa76726a1:active,footer .footer-col a.sa76726a1:focus{color:rgba(255,255,255,0.72)}
footer .footer-col a:hover{color:var(--brand)}
footer .footer-col a.sa76726a1:hover{color:var(--brand)}

/* 3. legal-bar links (resting 0.6) */
footer .footer-bottom a:link,footer .footer-bottom a:visited,footer .footer-bottom a:active,footer .footer-bottom a:focus{color:rgba(255,255,255,0.6)}
footer .footer-bottom a:hover{color:var(--brand)}

/* 4. social icons (resting 0.55); teal icon on hover. The current markup has no
   border ring on the icons, so only the icon color changes. */
footer .footer-social a:link,footer .footer-social a:visited,footer .footer-social a:active,footer .footer-social a:focus{color:rgba(255,255,255,0.55)}
footer .footer-social a:hover{color:var(--brand)}

/* phone link: locked to its resting 0.6 through visited/active/focus so it never
   fades after tapping; hover may go teal. (Item 5 teal-at-rest skipped for
   restraint; item 6 logo is already teal in the markup.) */
footer .footer-brand a[href^="tel:"]:link,footer .footer-brand a[href^="tel:"]:visited,footer .footer-brand a[href^="tel:"]:active,footer .footer-brand a[href^="tel:"]:focus{color:rgba(255,255,255,0.6)}
footer .footer-brand a[href^="tel:"]:hover{color:var(--brand)}

/* L-10: print styles. Hide interactive/dark chrome that wastes ink and adds no
   value on paper: the fixed dark nav (and its mobile menu/burger), the cookie
   consent banner, and the floating WhatsApp button. The article content and
   footer print normally. */
@media print{
  nav,.mobile-menu,.nav-burger,.cookie-banner{display:none !important}
  body{background:var(--white) !important}
}

/* ============================================================= */
/* breathe on large monitors (Part B): additive, wide screens only. */
/* Base, mobile, and tablet sizes are unchanged; these blocks only  */
/* apply at >=1600px so phones and laptops are unaffected.          */
/* Widens the 1160px content band and nudges the base type up.      */
/* ============================================================= */
@media (min-width:1600px){
  body{font-size:18px}
  .s07d4b326,.s162f6a78,.s2d7a1aa2,.s33bd3a3e,.s3cd56462,.s41f7ca44,.s43044189,.s450844ca,.s48bbfe83,.s518d180a,.s7dd15e66,.s8dbda4e7,.s9f8fb282,.sa297aea9,.sb2147b3e,.sb222d335,.sc94aa356,.sd523e0fe{max-width:1440px}
}
@media (min-width:2000px){
  body{font-size:19px}
  .s07d4b326,.s162f6a78,.s2d7a1aa2,.s33bd3a3e,.s3cd56462,.s41f7ca44,.s43044189,.s450844ca,.s48bbfe83,.s518d180a,.s7dd15e66,.s8dbda4e7,.s9f8fb282,.sa297aea9,.sb2147b3e,.sb222d335,.sc94aa356,.sd523e0fe{max-width:1600px}
}
/* GTM noscript iframe: hidden via class (no inline style attribute, CSP-clean). */
.gtm-ns{display:none;visibility:hidden}

/* ---- Image lightbox (js/lightbox.js, loaded on robots/*.html only) ---- */
.lb-zoom{cursor:zoom-in}
.lb-overlay{position:fixed;inset:0;z-index:2147483646;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(6,13,26,0.92)}
.lb-overlay.lb-open{display:flex}
.lb-figure{margin:0;max-width:min(1100px,92vw);display:flex;flex-direction:column;align-items:center}
.lb-img{max-width:100%;max-height:78vh;width:auto;height:auto;object-fit:contain;border-radius:10px;box-shadow:0 24px 60px rgba(0,0,0,.5);background:#000}
.lb-cap{margin:12px 0 0;color:var(--white);font-size:13px;line-height:1.4;text-align:center;max-width:90%}
.lb-cap[hidden]{display:none}
.lb-close{position:fixed;top:16px;right:16px;width:44px;height:44px;padding:0;border:none;border-radius:50%;background:rgba(255,255,255,.14);color:var(--white);font-size:26px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lb-close:hover,.lb-close:focus-visible{background:rgba(255,255,255,.26)}
.lb-cta{position:fixed;right:20px;bottom:20px;background:var(--cta);color:var(--gold-ink);font-weight:600;font-size:14px;padding:11px 18px;border-radius:8px;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.lb-cta:hover,.lb-cta:focus-visible{filter:brightness(1.05)}
body.lb-lock{overflow:hidden}
@media (max-width:600px){
  .lb-overlay{padding:12px}
  .lb-img{max-height:66vh}
  .lb-close{top:10px;right:10px}
  .lb-cta{left:12px;right:12px;bottom:12px;text-align:center;padding:14px}
}

/* Sticky mobile contact bar (phones only, <=768px). Pure CSS + HTML; the tel:,
   wa.me, and /book-a-demo links are tracked by the existing GTM triggers. */
.mobile-bar{display:none}
@media (max-width:768px){
  .mobile-bar{
    position:fixed;left:0;right:0;bottom:0;z-index:2147482900;
    display:flex;
    background:var(--ink);
    border-top:1px solid rgba(0,168,150,.35);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .mobile-bar-btn{
    flex:1 1 0;min-width:0;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    min-height:52px;padding:8px 4px;
    color:var(--white);text-decoration:none;
    font-size:11px;font-weight:600;line-height:1;letter-spacing:.01em;
  }
  .mobile-bar-btn + .mobile-bar-btn{border-left:1px solid rgba(255,255,255,.12)}
  .mobile-bar-ic{width:20px;height:20px;flex:none}
  .mobile-bar-cta{background:var(--cta);color:var(--ink)}
  /* Keep page content and the footer clear of the fixed bar. */
  body:has(.mobile-bar){padding-bottom:calc(56px + env(safe-area-inset-bottom))}
  /* Lift the chat launcher and its WhatsApp fab above the bar so they stay
     tappable. Scoped with :has() so pages without the bar are unaffected. */
  body:has(.mobile-bar) #sb-launch{bottom:calc(72px + env(safe-area-inset-bottom))}
  body:has(.mobile-bar) .sb-wa{bottom:calc(134px + env(safe-area-inset-bottom))}
}

/* ---- Tool pages: ROI calculator, robot finder, financing ---- */
.tool-body{max-width:960px;margin:0 auto;padding:48px 24px}
.tool-note{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:24px;margin-top:28px}
.tool-note h2{font-size:20px;color:var(--ink);margin-bottom:10px;font-weight:500}
.tool-note p{font-size:15px;color:var(--body);line-height:1.6;margin-bottom:10px}
.tool-cta{text-align:center;background:linear-gradient(180deg,var(--surface),var(--surface-2));border:1px solid var(--line);border-radius:14px;padding:34px 24px;margin-top:28px}
.tool-cta h2{font-size:24px;color:var(--ink);font-weight:500;margin-bottom:10px}
.tool-cta p{font-size:15px;color:var(--body);max-width:520px;margin:0 auto 20px;line-height:1.6}

/* ROI calculator */
.roi-wrap{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.roi-form{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px}
.roi-field{margin-bottom:18px}
.roi-field label{display:block;font-size:14px;font-weight:500;color:var(--ink);margin-bottom:7px}
.roi-field input{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:8px;font-size:16px;font-family:var(--font);color:var(--ink);background:var(--white)}
.roi-field input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.roi-money{position:relative;display:flex;align-items:center}
.roi-money-sign{position:absolute;left:13px;color:var(--muted);font-size:16px;pointer-events:none}
.roi-money input{padding-left:26px}
.roi-hint{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.4}
.roi-btn{margin-top:4px;width:100%}
.roi-msg{font-size:13px;color:var(--muted);margin-top:12px}
.roi-results{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:16px}
.roi-out{border-bottom:1px solid var(--line);padding-bottom:16px}
.roi-out:last-child{border-bottom:none;padding-bottom:0}
.roi-out-label{font-size:13px;color:var(--muted);margin-bottom:4px}
.roi-out-val{font-size:26px;font-weight:600;color:var(--ink);line-height:1.1}
.roi-out-note{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.4}
.roi-out-hero .roi-out-val{color:var(--accent);font-size:30px}
.roi-disclaimer{font-size:13px;color:var(--muted);font-style:italic;margin-bottom:0}

/* Robot finder */
.finder-wrap{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:32px 24px;min-height:300px;display:flex;align-items:center;justify-content:center}
.finder-step,.finder-result{width:100%;max-width:640px;margin:0 auto;text-align:center}
.finder-q{font-size:22px;color:var(--ink);font-weight:500;margin-bottom:22px;outline:none}
.finder-options{display:flex;flex-direction:column;gap:12px;max-width:460px;margin:0 auto}
.finder-opt{display:block;width:100%;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--ink);font-size:16px;font-weight:500;font-family:var(--font);cursor:pointer;transition:border-color .15s,background .15s;text-align:left}
.finder-opt:hover{border-color:var(--accent);background:var(--accent-tint-bg)}
.finder-opt:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.finder-restart{margin-top:22px;background:none;border:none;color:var(--accent);font-size:14px;font-family:var(--font);cursor:pointer;text-decoration:underline;padding:6px}
.finder-restart:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.finder-lead{font-size:15px;color:var(--muted);margin-bottom:16px;outline:none}
.finder-card{display:flex;flex-direction:column;text-align:left;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}
.finder-card-img{background:var(--ink);height:220px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.finder-card-img img{max-width:100%;max-height:100%;object-fit:contain}
.finder-card-body{padding:22px}
.finder-card-name{font-size:22px;color:var(--ink);font-weight:500;margin-bottom:8px}
.finder-card-copy{font-size:15px;color:var(--body);line-height:1.6;margin-bottom:18px}
.finder-card-actions{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.finder-see{color:var(--accent);font-weight:500;font-size:15px;text-decoration:none}
.finder-see:hover{text-decoration:underline}
.finder-cta{background:var(--gold);color:var(--gold-ink);padding:11px 22px;border-radius:7px;font-weight:500;font-size:15px;text-decoration:none;display:inline-flex}
.finder-noscript{color:var(--body);font-size:15px}

/* Financing */
.fin-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.fin-step{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px}
.fin-step-num{width:38px;height:38px;border-radius:50%;background:var(--accent);color:var(--white);font-size:18px;font-weight:600;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.fin-step h2{font-size:18px;color:var(--ink);font-weight:500;margin-bottom:8px}
.fin-step p{font-size:14px;color:var(--body);line-height:1.6}
.fin-faq{margin-top:28px}
.fin-faq>h2{font-size:24px;color:var(--ink);font-weight:500;margin-bottom:16px}
.fin-q{border-bottom:1px solid var(--line);padding:16px 0}
.fin-q:last-child{border-bottom:none}
.fin-q h3{font-size:16px;color:var(--ink);font-weight:500;margin-bottom:6px}
.fin-q p{font-size:15px;color:var(--body);line-height:1.6}

/* Homepage feature card: accessible stretched link (replaces empty overlay anchor) */
.sf53c65d0 .card-stretch{color:inherit;text-decoration:none}
.card-stretch::after{content:"";position:absolute;inset:0;z-index:1}
.card-stretch:focus-visible{outline:none}
.card-stretch:focus-visible::after{outline:3px solid var(--accent);outline-offset:-3px;border-radius:14px}

@media (max-width:768px){
  .tool-body{padding:32px 18px}
  .roi-wrap{grid-template-columns:1fr}
  .fin-steps{grid-template-columns:1fr}
}
.cta-roi{margin:0 0 16px}
.hero-finder{margin-top:14px}
.hero-finder .flink{justify-content:center}

/* Cookie consent banner vs the sticky mobile contact bar (<=768px). Both are
   position:fixed at the bottom, so stacking them collided: the bar's icons were
   clipped and the banner text was wedged beneath it. Instead, while the banner is
   open we hide the contact bar outright and drop the banner to the bottom edge, so
   only one bottom element is ever visible. The chat launcher and its WhatsApp fab
   are hidden too so nothing overlaps the banner. State is driven entirely by the
   body.cookie-open class the banner open/close code already toggles (no new JS, so
   the CSP hashes are untouched); the instant a choice closes the banner, the bar,
   launcher, and fab return to their normal positions. Pages without the bar (404)
   are unaffected because the bar rule is a no-op and the banner already sits at the
   bottom edge. The reserved 56px body padding is left in place so hiding the bar
   causes no content shift. */
@media (max-width:768px){
  body.cookie-open .mobile-bar{display:none}
  body.cookie-open .cookie-banner{bottom:0}
  body.cookie-open #sb-launch,
  body.cookie-open .sb-wa{display:none}
}

/* Mobile stacking for the robot comparison/spec tables that use per-page
   class names instead of .cmp-table. Scoped to :has(thead) so plain two-column
   spec tables (same class, no header row) are not affected. */
@media(max-width:760px){
  .sc400b961:has(thead){display:block;width:100%;}
  .sc400b961:has(thead) thead{display:none;}
  .sc400b961:has(thead) tbody,.sc400b961:has(thead) tr,.sc400b961:has(thead) td{display:block;width:100%;}
  .sc400b961:has(thead) tr{margin-bottom:16px;border:1px solid var(--line);border-radius:10px;overflow:hidden;}
  .sc400b961:has(thead) td{display:flex;justify-content:space-between;gap:14px;text-align:right;border-bottom:1px solid var(--line);padding:11px 14px;}
  .sc400b961:has(thead) td::before{content:attr(data-label);font-weight:500;color:var(--ink);text-align:left;flex-shrink:0;}
}

/* ---- Tovrana header logo -------------------------------------------------
   The animated dock-cycle wordmark that replaced the old lightning mark in the
   nav. Wordmark is Brand Blue (#0E1F3D) for the light header; the teal dot
   (#tovrana-dot) leaves the o, rides the rail across the word, and redocks,
   playing once on load and holding the docked state (`both` fill). Reduced
   motion holds the docked state permanently. Keyframes/coords are the brand
   suite's logo-animation.css, folded in here so no separate stylesheet or
   inline style is introduced (strict CSP). */
.nav-logo .tovrana-logo{height:44px;width:auto;display:block}
#tovrana-dot{animation:tov-dock 12s cubic-bezier(.5,0,.5,1) 1 both}
#tovrana-halo{transform-origin:176.6px -54.4px;animation:tov-charge 2.4s ease-in-out 3 both}
@keyframes tov-dock{
  0%,55%{transform:translate(0,0)}
  62.5%{transform:translate(0,-79.2px)}
  66.7%{transform:translate(-59.2px,-79.2px)}
  79.2%{transform:translate(615.8px,-79.2px)}
  87.5%{transform:translate(0,-79.2px)}
  91.7%,100%{transform:translate(0,0)}
}
@keyframes tov-charge{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:0;transform:scale(1.7)}}
@media (prefers-reduced-motion:reduce){#tovrana-dot,#tovrana-halo{animation:none}}

/* ---- Tovrana brand taglines (rebrand) --------------------------------------
   Hero kicker (the brand line above the value-prop H1) and the footer short
   mark under the wordmark. Teal so both read on the light hero and the dark
   footer. */
.hero-tagline{font-size:21px;font-weight:500;color:var(--accent);letter-spacing:-0.3px;line-height:1.3;margin-bottom:16px;max-width:460px}
.footer-tagline{font-size:12.5px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--accent);margin-top:6px}
@media (max-width:600px){ .hero-tagline{ font-size:18px; } }
