@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700;800;900&family=Poppins:wght@300;400;500;600;700&display=swap');:root{--red:#C30538;--red-dark:#8A0426;--red-tint:#FBE6EC;--dark:#1D1D1F;--white:#FFFFFF;--off:#F5F5F7;--n50:#FAFAFA;--n100:#F5F5F7;--n200:#E5E5E7;--n300:#D2D2D7;--n400:#AEAEB2;--n500:#86868B;--n600:#6E6E73;--n700:#48484A;--n800:#2C2C2E;--mid:#E5E5EA;--body:'Poppins','Helvetica Neue',Arial,sans-serif;--head:'Raleway','Helvetica Neue',Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--max:1280px;--green:#0A7A3A;--blue:#1B4FBF;--odoo:#714B67;--r-sm:4px;--r-md:8px;--r-lg:12px;--r-pill:999px;--sh-sm:0 1px 2px rgba(29,29,31,.06);--sh-md:0 4px 16px rgba(29,29,31,.08);--sh-lg:0 12px 32px rgba(29,29,31,.12);--ease:cubic-bezier(.2,.8,.2,1)}#tu-kit *{box-sizing:border-box;margin:0;padding:0}#tu-kit{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#tu-kit{font-family:var(--body);color:var(--dark);background:#fff;font-size:16px;line-height:1.6}#tu-kit a{color:inherit;text-decoration:none}#tu-kit img{display:block;max-width:100%}#tu-kit [dir="rtl"]{text-align:right}#tu-kit h1{font-family:var(--head);font-weight:800;font-size:clamp(40px,5vw,80px);line-height:1.04;letter-spacing:-.025em}#tu-kit h2{font-family:var(--head);font-weight:800;font-size:clamp(30px,3.6vw,52px);line-height:1.07;letter-spacing:-.02em}#tu-kit h3{font-family:var(--head);font-weight:700;font-size:22px;line-height:1.2}#tu-kit h4{font-family:var(--head);font-weight:700;font-size:17px;line-height:1.3}#tu-kit h5{font-family:var(--head);font-weight:700;font-size:13px;line-height:1.3}#tu-kit p{text-wrap:pretty}#tu-kit p.lead{font-size:19px;line-height:1.65;color:var(--n700);max-width:660px}#tu-kit .eyebrow{font-family:var(--head);font-weight:700;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:16px}#tu-kit .span-red{color:var(--red)}#tu-kit .muted{color:var(--n500)}#tu-kit .center{text-align:center}#tu-kit .mx-auto{margin-left:auto;margin-right:auto}#tu-kit .wrap{max-width:var(--max);margin:0 auto;padding:0 32px}#tu-kit .wrap-narrow{max-width:880px;margin:0 auto;padding:0 32px}#tu-kit .o-section{padding:96px 0}#tu-kit .o-section--sm{padding:64px 0}#tu-kit .o-section--dark{background:var(--dark);color:#fff}#tu-kit .o-section--red{background:var(--red);color:#fff}#tu-kit .o-section--off{background:var(--off)}#tu-kit .o-section--dark .eyebrow,#tu-kit .o-section--red .eyebrow{color:rgba(255,255,255,.75)}#tu-kit .o-section--dark h2,#tu-kit .o-section--dark h3,#tu-kit .o-section--dark h4,#tu-kit .o-section--red h2{color:#fff}#tu-kit .o-section--dark p.lead,#tu-kit .o-section--red p.lead{color:rgba(255,255,255,.8)}#tu-kit .grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}#tu-kit .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}#tu-kit .grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}#tu-kit .split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}#tu-kit .split-7-5{display:grid;grid-template-columns:1.4fr 1fr;gap:64px;align-items:start}#tu-kit hr.rule{border:none;border-top:1px solid var(--mid);margin:56px 0}#tu-kit .o-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--head);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;background:var(--red);color:#fff;padding:13px 24px;border-radius:var(--r-sm);border:none;cursor:pointer;transition:background .15s,transform .15s;white-space:nowrap}#tu-kit .o-btn:hover{background:var(--red-dark);transform:translateY(-1px)}#tu-kit .o-btn.ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.45)}#tu-kit .o-btn.ghost:hover{background:#fff;color:var(--red);border-color:#fff}#tu-kit .o-btn.ghost-dark{background:transparent;color:var(--dark);border:2px solid var(--dark)}#tu-kit .o-btn.ghost-dark:hover{background:var(--dark);color:#fff}#tu-kit .o-btn.dark{background:var(--dark)}#tu-kit .o-btn.dark:hover{background:#000}#tu-kit .o-btn.sm{padding:9px 16px;font-size:11px}#tu-kit .o-btn.lg{padding:16px 30px;font-size:13px}#tu-kit .o-btn.block{display:flex;width:100%;justify-content:center}#tu-kit .link-arrow{font-family:var(--head);font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--red);display:inline-flex;align-items:center;gap:6px;transition:gap .15s}#tu-kit .link-arrow::after{content:"→"}#tu-kit .link-arrow:hover{gap:11px}#tu-kit .o-nav{position:sticky;top:0;z-index:200;background:#fff;border-bottom:1px solid var(--mid)}#tu-kit .o-nav__inner{max-width:var(--max);margin:0 auto;padding:0 32px;height:66px;display:flex;align-items:center;justify-content:space-between;gap:24px}#tu-kit .o-nav__logo{height:34px}#tu-kit .o-nav__links{display:flex;gap:0;list-style:none;height:66px;align-items:stretch}#tu-kit .o-nav__links>li{display:flex;align-items:center;position:static}#tu-kit .o-nav__links>li>a{display:flex;align-items:center;height:66px;padding:0 16px;font-family:var(--head);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--dark);border-bottom:3px solid transparent;transition:color .15s,border-color .15s;white-space:nowrap;cursor:pointer}#tu-kit .o-nav__links>li>a:hover,#tu-kit .o-nav__links>li.active>a,#tu-kit .o-nav__links>li.open>a{color:var(--red);border-bottom-color:var(--red)}#tu-kit .o-nav__links>li>a .caret{font-size:9px;margin-left:6px;opacity:.5}#tu-kit .o-nav__actions{display:flex;align-items:center;gap:14px}#tu-kit .o-nav__lang{display:flex;gap:2px;font-family:var(--head);font-weight:700;font-size:11px;letter-spacing:.04em}#tu-kit .o-nav__lang a{padding:4px 7px;border-radius:3px;color:var(--n500)}#tu-kit .o-nav__lang a.active{background:var(--off);color:var(--dark)}#tu-kit .o-nav__burger{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:6px}#tu-kit .o-nav__burger span{width:22px;height:2px;background:var(--dark);display:block}#tu-kit .mega{position:absolute;left:0;right:0;top:66px;background:#fff;border-bottom:1px solid var(--mid);box-shadow:var(--sh-lg);opacity:0;visibility:hidden;transform:translateY(-8px);transition:.18s var(--ease);z-index:199}#tu-kit .mega.show{opacity:1;visibility:visible;transform:none}#tu-kit .mega__inner{max-width:var(--max);margin:0 auto;padding:36px 32px;display:grid;grid-template-columns:1fr 1fr 1fr 0.9fr;gap:36px}#tu-kit .mega__col h6{font-family:var(--head);font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--mid)}#tu-kit .mega__col ul{list-style:none;display:flex;flex-direction:column;gap:2px}#tu-kit .mega__col li a{display:block;padding:6px 0;font-size:13px;color:var(--n700);transition:color .12s,padding .12s}#tu-kit .mega__col li a:hover{color:var(--red);padding-left:6px}#tu-kit .mega__col li a b{font-family:var(--head);font-weight:700;font-size:13px;color:var(--dark);display:block}#tu-kit .mega__col li a span{font-size:11px;color:var(--n500)}#tu-kit .mega__promo{background:var(--dark);border-radius:var(--r-md);padding:22px;color:#fff;display:flex;flex-direction:column;justify-content:space-between}#tu-kit .mega__promo h6{color:rgba(255,255,255,.55);border:none}#tu-kit .mega__promo p{font-size:13px;color:rgba(255,255,255,.7);margin:6px 0 16px}#tu-kit .o-hero{background:var(--dark);color:#fff;padding:120px 0 90px;position:relative;overflow:hidden}#tu-kit .o-hero__inner{max-width:var(--max);margin:0 auto;padding:0 32px;position:relative;z-index:2}#tu-kit .dots-bg{position:absolute;right:0;top:0;bottom:0;width:55%;background-image:radial-gradient(rgba(195,5,56,.32) 1.8px,transparent 2px);background-size:14px 14px;-webkit-mask-image:linear-gradient(to left,#000 18%,transparent 85%);mask-image:linear-gradient(to left,#000 18%,transparent 85%);pointer-events:none}#tu-kit .o-hero h1{max-width:820px;margin-bottom:26px}#tu-kit .o-hero p.lead{font-size:20px;margin-bottom:38px;color:rgba(255,255,255,.82)}#tu-kit .o-hero__ctas{display:flex;gap:14px;flex-wrap:wrap}#tu-kit .page-header{background:var(--dark);color:#fff;padding:84px 0 64px;position:relative;overflow:hidden}#tu-kit .page-header .dots-bg{width:42%}#tu-kit .page-header__inner{max-width:var(--max);margin:0 auto;padding:0 32px;position:relative;z-index:2}#tu-kit .page-header h1{font-size:clamp(34px,4.4vw,64px);margin-bottom:16px;max-width:880px}#tu-kit .page-header p.lead{color:rgba(255,255,255,.82)}#tu-kit .o-breadcrumb{background:var(--off);border-bottom:1px solid var(--mid)}#tu-kit .o-breadcrumb__inner{max-width:var(--max);margin:0 auto;padding:12px 32px;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--n500);flex-wrap:wrap}#tu-kit .o-breadcrumb a{color:var(--dark);font-weight:500}#tu-kit .o-breadcrumb a:hover{color:var(--red)}#tu-kit .o-breadcrumb .sep{color:var(--n300)}#tu-kit .cert-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:46px;padding-top:30px;border-top:1px solid rgba(255,255,255,.1)}#tu-kit .cert-pill{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:3px;padding:6px 12px;font-family:var(--head);font-weight:600;font-size:11px;letter-spacing:.05em;color:rgba(255,255,255,.82)}#tu-kit .cert-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--red);flex-shrink:0}#tu-kit .tag{display:inline-flex;align-items:center;gap:5px;font-family:var(--head);font-weight:600;font-size:11px;letter-spacing:.03em;background:var(--off);border:1px solid var(--mid);border-radius:3px;padding:4px 10px;color:var(--n700)}#tu-kit .tag.red{background:var(--red-tint);border-color:rgba(195,5,56,.25);color:var(--red-dark)}#tu-kit .tag-row{display:flex;flex-wrap:wrap;gap:6px}#tu-kit .o-stats{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--mid);border-bottom:1px solid var(--mid)}#tu-kit .o-stat{padding:32px 18px;text-align:center;border-right:1px solid var(--mid)}#tu-kit .o-stat:last-child{border-right:none}#tu-kit .o-stat__num{font-family:var(--head);font-weight:800;font-size:38px;line-height:1;letter-spacing:-.03em;color:var(--red)}#tu-kit .o-stat__lbl{font-family:var(--head);font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--n500);margin-top:6px;line-height:1.3}#tu-kit .o-card{background:#fff;border:1px solid var(--mid);border-top:4px solid var(--red);border-radius:var(--r-md);padding:28px 24px}#tu-kit .o-card--dark{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);border-top-color:var(--red)}#tu-kit .o-card--dark p{color:rgba(255,255,255,.7)}#tu-kit .o-card--dark h4{color:#fff}#tu-kit .o-card__num{font-family:var(--head);font-weight:800;font-size:13px;letter-spacing:.14em;color:var(--red);margin-bottom:12px}#tu-kit .o-card h4{margin-bottom:8px}#tu-kit .o-card p{font-size:13px;color:var(--n700);line-height:1.6}#tu-kit .o-card.hover{transition:transform .18s var(--ease),box-shadow .18s var(--ease)}#tu-kit .o-card.hover:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}#tu-kit .div-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-md);padding:32px 28px}#tu-kit .div-badge{display:inline-block;font-family:var(--head);font-weight:800;font-size:10px;letter-spacing:.2em;text-transform:uppercase;background:var(--red);color:#fff;padding:5px 12px;border-radius:3px;margin-bottom:16px}#tu-kit .div-badge.uni{background:var(--blue)}#tu-kit .div-badge.biz{background:var(--green)}#tu-kit .div-card h3{color:#fff;margin-bottom:12px}#tu-kit .div-card p{font-size:13px;color:rgba(255,255,255,.7);line-height:1.6;margin-bottom:16px}#tu-kit .div-list{list-style:none;display:flex;flex-direction:column;gap:6px}#tu-kit .div-list li{font-size:13px;color:rgba(255,255,255,.65);padding-left:18px;position:relative}#tu-kit .div-list li::before{content:"→";position:absolute;left:0;color:var(--red);font-weight:700}#tu-kit .diff-item{display:grid;grid-template-columns:64px 1fr;gap:20px;padding:24px 0;border-bottom:1px solid var(--mid);align-items:start}#tu-kit .diff-item:last-child{border-bottom:none}#tu-kit .diff-num{font-family:var(--head);font-weight:800;font-size:40px;color:var(--red);line-height:1}#tu-kit .diff-item h3{margin-bottom:8px}#tu-kit .diff-item p{color:var(--n700);font-size:15px;line-height:1.6}#tu-kit .norm-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}#tu-kit .norm-card{background:var(--off);border:1px solid var(--mid);border-radius:6px;padding:16px 12px;text-align:center;transition:.15s}#tu-kit .norm-card:hover{border-color:var(--red);background:#fff;box-shadow:var(--sh-sm)}#tu-kit .norm-code{font-family:var(--head);font-weight:800;font-size:14px;color:var(--red);margin-bottom:4px}#tu-kit .norm-name{font-size:11px;color:var(--n500);line-height:1.3}#tu-kit .steps{display:grid;gap:16px}#tu-kit .steps.c4{grid-template-columns:repeat(4,1fr)}#tu-kit .steps.c5{grid-template-columns:repeat(5,1fr)}#tu-kit .step .step-num{font-family:var(--head);font-weight:800;font-size:44px;color:var(--red);line-height:1;margin-bottom:10px}#tu-kit .step h4{margin-bottom:6px}#tu-kit .step p{font-size:13px;color:var(--n700)}#tu-kit .phase-card{text-align:center;border-top-color:var(--red)}#tu-kit .phase-letter{font-family:var(--head);font-weight:800;font-size:48px;line-height:1;margin-bottom:8px;color:var(--dark)}#tu-kit .phase-card:first-child .phase-letter{color:var(--red)}#tu-kit .pilier-card{background:#fff;border:1px solid var(--mid);border-radius:var(--r-md);padding:28px;border-top:4px solid}#tu-kit .pilier-e{border-top-color:var(--green)}#tu-kit .pilier-s{border-top-color:var(--blue)}#tu-kit .pilier-g{border-top-color:var(--red)}#tu-kit .pilier-letter{font-family:var(--head);font-weight:800;font-size:48px;line-height:1;margin-bottom:8px}#tu-kit .pilier-e .pilier-letter{color:var(--green)}#tu-kit .pilier-s .pilier-letter{color:var(--blue)}#tu-kit .pilier-g .pilier-letter{color:var(--red)}#tu-kit .pilier-list{list-style:none;margin-top:12px;display:flex;flex-direction:column;gap:6px}#tu-kit .pilier-list li{font-size:13px;color:var(--n700);padding-left:14px;position:relative}#tu-kit .pilier-list li::before{content:"·";position:absolute;left:0;font-weight:800;color:currentColor}#tu-kit .cta-band{background:var(--red);padding:80px 0;text-align:center;position:relative;overflow:hidden}#tu-kit .cta-band h2{color:#fff;margin-bottom:12px}#tu-kit .cta-band p{color:rgba(255,255,255,.88);font-size:17px;margin-bottom:32px;max-width:560px;margin-left:auto;margin-right:auto}#tu-kit .cta-band--dark{background:var(--dark)}#tu-kit .lead-form{background:#fff;border:1px solid var(--mid);border-radius:var(--r-lg);padding:32px;box-shadow:var(--sh-md)}#tu-kit .lead-form.on-dark{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12);box-shadow:none}#tu-kit .lead-form h3{margin-bottom:6px}#tu-kit .lead-form .form-sub{font-size:13px;color:var(--n500);margin-bottom:20px}#tu-kit .lead-form.on-dark .form-sub{color:rgba(255,255,255,.6)}#tu-kit .field{margin-bottom:14px}#tu-kit .field label{display:block;font-family:var(--head);font-weight:600;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--n600);margin-bottom:6px}#tu-kit .lead-form.on-dark .field label{color:rgba(255,255,255,.6)}#tu-kit .field input,#tu-kit .field select,#tu-kit .field textarea{width:100%;font-family:var(--body);font-size:14px;padding:11px 13px;border:1px solid var(--mid);border-radius:var(--r-sm);background:#fff;color:var(--dark);transition:border-color .15s}#tu-kit .field input:focus,#tu-kit .field select:focus,#tu-kit .field textarea:focus{outline:none;border-color:var(--red)}#tu-kit .field textarea{resize:vertical;min-height:90px}#tu-kit .field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}#tu-kit .field-phone{display:flex;gap:8px}#tu-kit .field-phone select{flex:0 0 96px;padding-left:8px;padding-right:4px}#tu-kit .field-phone input{flex:1;min-width:0}#tu-kit .field-consent{display:flex;gap:10px;align-items:flex-start;font-size:11px;color:var(--n500);line-height:1.5;margin:14px 0}#tu-kit .field-consent input{width:16px;height:16px;flex-shrink:0;margin-top:2px}#tu-kit .field-consent a{color:var(--red);text-decoration:underline}#tu-kit .form-trust{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--n500);margin-top:14px}#tu-kit .form-trust::before{content:"🔒";font-size:13px}#tu-kit .session-table{width:100%;border-collapse:collapse;font-size:14px}#tu-kit .session-table thead th{font-family:var(--head);font-weight:700;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--n500);text-align:left;padding:12px 16px;border-bottom:2px solid var(--mid)}#tu-kit .session-table tbody td{padding:16px;border-bottom:1px solid var(--mid);vertical-align:middle}#tu-kit .session-table tbody tr:hover{background:var(--off)}#tu-kit .session-date{font-family:var(--head);font-weight:700;color:var(--dark)}#tu-kit .session-city{color:var(--n700)}#tu-kit .session-mode{display:inline-block;font-family:var(--head);font-weight:600;font-size:10px;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:3px;background:var(--off);border:1px solid var(--mid);color:var(--n700)}#tu-kit .session-mode.online{background:rgba(27,79,191,.08);border-color:rgba(27,79,191,.25);color:var(--blue)}#tu-kit .session-seats{font-size:12px;color:var(--green);font-weight:600}#tu-kit .session-seats.low{color:var(--red)}#tu-kit .price-box{background:var(--off);border:1px solid var(--mid);border-radius:var(--r-lg);padding:28px;position:sticky;top:90px}#tu-kit .price-amount{font-family:var(--head);font-weight:800;font-size:40px;color:var(--dark);line-height:1}#tu-kit .price-amount .cur{font-size:18px;color:var(--n500);font-weight:700}#tu-kit .price-old{font-size:14px;color:var(--n400);text-decoration:line-through;margin-left:8px}#tu-kit .price-fin{display:inline-flex;align-items:center;gap:6px;background:rgba(10,122,58,.1);border:1px solid rgba(10,122,58,.25);color:var(--green);font-family:var(--head);font-weight:700;font-size:12px;padding:6px 12px;border-radius:var(--r-pill);margin-top:12px}#tu-kit .price-meta{list-style:none;margin:20px 0;display:flex;flex-direction:column;gap:10px}#tu-kit .price-meta li{display:flex;gap:10px;font-size:13px;color:var(--n700);align-items:flex-start}#tu-kit .price-meta li::before{content:"✓";color:var(--green);font-weight:800;flex-shrink:0}#tu-kit .prog-card{background:#fff;border-radius:var(--r-md);border:1px solid var(--mid);padding:24px;display:flex;flex-direction:column;gap:10px;transition:.18s var(--ease)}#tu-kit .prog-card:hover{box-shadow:var(--sh-md);transform:translateY(-3px)}#tu-kit .prog-badge{display:inline-block;font-family:var(--head);font-weight:700;font-size:10px;letter-spacing:.14em;text-transform:uppercase;background:var(--red);color:#fff;padding:4px 10px;border-radius:3px;align-self:flex-start}#tu-kit .prog-card h4{margin:0}#tu-kit .prog-card p{font-size:13px;color:var(--n700);margin:0}#tu-kit .prog-amount{font-family:var(--head);font-weight:800;font-size:26px;color:var(--red)}#tu-kit .prog-detail{font-size:11px;color:var(--n500);font-family:var(--head);font-weight:600;letter-spacing:.06em;text-transform:uppercase}#tu-kit .shop-layout{display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:start}#tu-kit .filter-panel{position:sticky;top:90px;background:#fff;border:1px solid var(--mid);border-radius:var(--r-md);padding:24px}#tu-kit .filter-group{margin-bottom:24px}#tu-kit .filter-group:last-child{margin-bottom:0}#tu-kit .filter-group h6{font-family:var(--head);font-weight:800;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--dark);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--mid)}
#tu-kit .filter-opt{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:13px;color:var(--n700);cursor:pointer}#tu-kit .filter-opt input{width:15px;height:15px;accent-color:var(--red)}#tu-kit .filter-opt .count{margin-left:auto;font-size:11px;color:var(--n400)}#tu-kit .chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}#tu-kit .chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--head);font-weight:600;font-size:12px;padding:7px 14px;border-radius:var(--r-pill);background:#fff;border:1px solid var(--mid);color:var(--n700);cursor:pointer;transition:.15s}#tu-kit .chip:hover{border-color:var(--red);color:var(--red)}#tu-kit .chip.active{background:var(--red);border-color:var(--red);color:#fff}#tu-kit .product-card{background:#fff;border:1px solid var(--mid);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column;transition:.18s var(--ease)}#tu-kit .product-card:hover{box-shadow:var(--sh-md);transform:translateY(-3px)}#tu-kit .product-card__media{height:130px;background:var(--off) repeating-linear-gradient(135deg,transparent,transparent 9px,rgba(29,29,31,.03) 9px,rgba(29,29,31,.03) 10px);border-bottom:1px solid var(--mid);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;color:var(--n400);position:relative}#tu-kit .product-card__cat{position:absolute;top:10px;left:10px;font-family:var(--head);font-weight:700;font-size:9px;letter-spacing:.1em;text-transform:uppercase;background:#fff;border:1px solid var(--mid);border-radius:3px;padding:3px 8px;color:var(--red)}#tu-kit .product-card__body{padding:18px;display:flex;flex-direction:column;gap:8px;flex:1}#tu-kit .product-card__body h4{font-size:15px}#tu-kit .product-card__body p{font-size:12px;color:var(--n600);flex:1}#tu-kit .product-card__foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px}#tu-kit .product-price{font-family:var(--head);font-weight:800;font-size:16px;color:var(--dark)}#tu-kit .product-price.quote{font-size:13px;color:var(--n500)}#tu-kit .faq-item{border-bottom:1px solid var(--mid)}#tu-kit .faq-q{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;cursor:pointer;font-family:var(--head);font-weight:700;font-size:16px;color:var(--dark);list-style:none}#tu-kit .faq-q::-webkit-details-marker{display:none}#tu-kit .faq-q .pm{font-size:20px;color:var(--red);transition:transform .2s}#tu-kit details[open] .faq-q .pm{transform:rotate(45deg)}#tu-kit .faq-a{padding:0 0 22px;font-size:14px;color:var(--n700);line-height:1.7;max-width:760px}#tu-kit .blog-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--mid);border-radius:var(--r-md);overflow:hidden;transition:.18s var(--ease)}#tu-kit .blog-card:hover{box-shadow:var(--sh-md);transform:translateY(-3px)}#tu-kit .blog-card__media{height:170px;background:var(--off) repeating-linear-gradient(135deg,transparent,transparent 9px,rgba(29,29,31,.03) 9px,rgba(29,29,31,.03) 10px);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;color:var(--n400)}#tu-kit .blog-card__body{padding:22px;display:flex;flex-direction:column;gap:10px;flex:1}#tu-kit .blog-card__cat{font-family:var(--head);font-weight:700;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}#tu-kit .blog-card__body h3{font-size:18px;line-height:1.25}#tu-kit .blog-card__excerpt{font-size:13px;color:var(--n600);flex:1}#tu-kit .blog-card__meta{font-size:12px;color:var(--n500);display:flex;gap:10px;align-items:center}#tu-kit .blog-featured{display:grid;grid-template-columns:1.2fr 1fr;gap:0;border:1px solid var(--mid);border-radius:var(--r-lg);overflow:hidden}#tu-kit .blog-featured__media{min-height:340px;background:var(--dark) radial-gradient(rgba(195,5,56,.3) 1.8px,transparent 2px);background-size:14px 14px}#tu-kit .blog-featured__body{padding:44px}#tu-kit .article-body{max-width:720px;margin:0 auto;font-size:17px;line-height:1.8;color:var(--n800)}#tu-kit .article-body h2{font-size:28px;margin:48px 0 16px}#tu-kit .article-body h3{font-size:21px;margin:36px 0 12px}#tu-kit .article-body p{margin-bottom:22px}#tu-kit .article-body ul,#tu-kit .article-body ol{margin:0 0 22px 22px;display:flex;flex-direction:column;gap:8px}#tu-kit .article-body blockquote{border-left:4px solid var(--red);padding:8px 0 8px 24px;margin:28px 0;font-family:var(--head);font-weight:600;font-size:21px;color:var(--dark);line-height:1.4}#tu-kit .toc{background:var(--off);border:1px solid var(--mid);border-radius:var(--r-md);padding:24px;position:sticky;top:90px}#tu-kit .toc h6{font-family:var(--head);font-weight:800;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--n500);margin-bottom:12px}#tu-kit .toc ul{list-style:none;display:flex;flex-direction:column;gap:8px}#tu-kit .toc a{font-size:13px;color:var(--n700)}#tu-kit .toc a:hover{color:var(--red)}#tu-kit .team-card{text-align:center;background:#fff;border:1px solid var(--mid);border-radius:var(--r-md);padding:28px 20px}#tu-kit .team-avatar{width:88px;height:88px;border-radius:50%;background:var(--off);margin:0 auto 14px;border:3px solid var(--mid);display:flex;align-items:center;justify-content:center;font-family:var(--head);font-weight:800;font-size:26px;color:var(--red)}#tu-kit .team-name{font-family:var(--head);font-weight:700;font-size:16px;margin-bottom:4px}#tu-kit .team-role{font-size:12px;color:var(--n500);margin-bottom:12px;line-height:1.4}#tu-kit .cert-tags{display:flex;gap:4px;justify-content:center;flex-wrap:wrap}#tu-kit .cert-tag{font-size:10px;font-weight:600;font-family:var(--head);letter-spacing:.04em;background:var(--off);border:1px solid var(--mid);border-radius:3px;padding:3px 7px;color:var(--dark)}#tu-kit .callout{background:var(--red-tint);border:1px solid rgba(195,5,56,.2);border-radius:var(--r-md);padding:24px 28px}#tu-kit .callout h4{color:var(--red);margin-bottom:8px}#tu-kit .callout p{font-size:14px;color:var(--dark);line-height:1.6}#tu-kit .callout.neutral{background:var(--off);border-color:var(--mid)}#tu-kit .callout.neutral h4{color:var(--dark)}#tu-kit .accred-card{background:#fff;border:1px solid var(--mid);border-radius:var(--r-md);padding:24px;border-left:4px solid var(--red)}#tu-kit .accred-card .org{font-family:var(--head);font-weight:800;font-size:17px;margin-bottom:4px}#tu-kit .accred-card .scope{font-size:12px;color:var(--n500);margin-bottom:10px}#tu-kit .accred-card .badge-iso{display:inline-block;font-family:var(--head);font-weight:700;font-size:10px;letter-spacing:.08em;background:var(--dark);color:#fff;padding:3px 9px;border-radius:3px;margin-bottom:10px}#tu-kit .o-footer{background:var(--dark);color:#fff;padding:80px 0 40px}#tu-kit .o-footer__grid{max-width:var(--max);margin:0 auto;padding:0 32px;display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:40px;margin-bottom:48px}#tu-kit .o-footer__brand img{height:30px;margin-bottom:16px}#tu-kit .o-footer__brand p{font-size:13px;line-height:1.6;color:rgba(255,255,255,.6);max-width:280px;margin-bottom:16px}#tu-kit .o-footer__cert{display:flex;flex-wrap:wrap;gap:4px}#tu-kit .o-footer__cert span{font-size:10px;font-family:var(--head);font-weight:700;letter-spacing:.05em;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:3px;padding:3px 7px;color:rgba(255,255,255,.7)}#tu-kit .o-footer__col h5{font-family:var(--head);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px;color:#fff}#tu-kit .o-footer__col ul{list-style:none}#tu-kit .o-footer__col ul li{margin-bottom:8px}#tu-kit .o-footer__col ul li a{font-size:13px;color:rgba(255,255,255,.6);transition:color .15s}#tu-kit .o-footer__col ul li a:hover{color:#fff}#tu-kit .o-footer__bottom{max-width:var(--max);margin:0 auto;padding:24px 32px 0;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;color:rgba(255,255,255,.4)}#tu-kit .o-footer__bottom a{color:rgba(255,255,255,.4)}#tu-kit .o-footer__bottom a:hover{color:#fff}#tu-kit .cookie-bar{position:fixed;left:20px;right:20px;bottom:20px;z-index:500;background:#fff;border:1px solid var(--mid);border-radius:var(--r-lg);box-shadow:var(--sh-lg);padding:22px 26px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;max-width:1100px;margin:0 auto}#tu-kit .cookie-bar.hidden{display:none}#tu-kit .cookie-bar h5{margin-bottom:4px}#tu-kit .cookie-bar p{font-size:12px;color:var(--n600);line-height:1.5;max-width:680px}#tu-kit .cookie-bar p a{color:var(--red);text-decoration:underline}#tu-kit .cookie-actions{display:flex;gap:10px;flex-wrap:wrap}#tu-kit .kpi-inline{display:flex;flex-wrap:wrap;gap:32px;margin:24px 0}#tu-kit .kpi-inline .kpi b{font-family:var(--head);font-weight:800;font-size:32px;color:var(--red);display:block;line-height:1}#tu-kit .kpi-inline .kpi span{font-size:12px;color:var(--n500);text-transform:uppercase;letter-spacing:.06em;font-family:var(--head);font-weight:600}#tu-kit .logo-wall{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--mid);border:1px solid var(--mid);border-radius:var(--r-md);overflow:hidden}#tu-kit .logo-wall .lw{background:#fff;aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;font-family:var(--head);font-weight:700;font-size:12px;color:var(--n500);text-align:center;padding:10px}#tu-kit .seo-ref{background:#0b1020;color:#cdd6f4;border-radius:var(--r-md);padding:20px 22px;font-family:var(--mono);font-size:12px;line-height:1.7;margin:0 0 4px}#tu-kit .seo-ref .k{color:#89b4fa}#tu-kit .seo-ref .v{color:#a6e3a1}#tu-kit .kit-note{background:#fffbeb;border:1px solid #fde68a;border-left:4px solid #f59e0b;border-radius:var(--r-sm);padding:14px 18px;font-size:13px;color:#78350f;margin:16px 0}#tu-kit .kit-note b{color:#92400e}#tu-kit .trust-bar{background:var(--off);border-bottom:1px solid var(--mid)}#tu-kit .trust-bar__in{max-width:var(--max);margin:0 auto;padding:18px 32px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px 36px}#tu-kit .trust-bar__item{display:flex;align-items:center;gap:9px;font-family:var(--head);font-weight:600;font-size:13px;color:var(--n700)}#tu-kit .trust-bar__item .tk{width:20px;height:20px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0}#tu-kit .trust-bar__sep{width:1px;height:18px;background:var(--mid)}#tu-kit .marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}#tu-kit .marquee__track{display:flex;gap:56px;width:max-content;animation:marquee 38s linear infinite}#tu-kit .marquee:hover .marquee__track{animation-play-state:paused}#tu-kit .marquee__item{font-family:var(--head);font-weight:800;font-size:20px;letter-spacing:.02em;color:var(--n400);white-space:nowrap;display:flex;align-items:center}@keyframes marquee{to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){#tu-kit .marquee__track{animation:none;flex-wrap:wrap;justify-content:center}}#tu-kit .quote-card{background:#fff;border:1px solid var(--mid);border-radius:var(--r-lg);padding:32px;display:flex;flex-direction:column;gap:18px;position:relative}#tu-kit .quote-card::before{content:"“";position:absolute;top:8px;right:24px;font-family:Georgia,serif;font-size:90px;line-height:1;color:var(--red-tint)}#tu-kit .quote-card.on-dark{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}#tu-kit .quote-card.on-dark::before{color:rgba(195,5,56,.25)}#tu-kit .quote-card__stars{color:var(--red);font-size:14px;letter-spacing:2px}#tu-kit .quote-card__text{font-family:var(--head);font-weight:600;font-size:18px;line-height:1.5;color:var(--dark)}#tu-kit .quote-card.on-dark .quote-card__text{color:#fff}#tu-kit .quote-card__author{display:flex;align-items:center;gap:12px;margin-top:auto}#tu-kit .quote-card__avatar{width:44px;height:44px;border-radius:50%;background:var(--off);border:2px solid var(--mid);display:flex;align-items:center;justify-content:center;font-family:var(--head);font-weight:800;font-size:14px;color:var(--red);flex-shrink:0}#tu-kit .quote-card.on-dark .quote-card__avatar{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.15)}#tu-kit .quote-card__name{font-family:var(--head);font-weight:700;font-size:14px;color:var(--dark)}#tu-kit .quote-card.on-dark .quote-card__name{color:#fff}#tu-kit .quote-card__role{font-size:12px;color:var(--n500)}#tu-kit .quote-card.on-dark .quote-card__role{color:rgba(255,255,255,.55)}#tu-kit .cmp{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border:1px solid var(--mid);border-radius:var(--r-lg);overflow:hidden}#tu-kit .cmp th,#tu-kit .cmp td{padding:16px 20px;text-align:left;border-bottom:1px solid var(--mid)}#tu-kit .cmp thead th{font-family:var(--head);font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--n600);background:var(--off)}#tu-kit .cmp thead th.us{color:#fff;background:var(--red)}#tu-kit .cmp tbody tr:last-child td{border-bottom:none}#tu-kit .cmp td.feat{font-family:var(--head);font-weight:600;color:var(--dark)}#tu-kit .cmp td.us{background:rgba(195,5,56,.04);font-weight:600}#tu-kit .cmp .yes{color:var(--green);font-weight:800}#tu-kit .cmp .no{color:var(--n400);font-weight:800}#tu-kit .cmp col.uscol{background:rgba(195,5,56,.04)}#tu-kit .timeline{position:relative;margin-left:8px}#tu-kit .timeline::before{content:"";position:absolute;left:15px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--red),var(--mid))}#tu-kit .tl-step{position:relative;padding:0 0 32px 52px}#tu-kit .tl-step:last-child{padding-bottom:0}#tu-kit .tl-step__dot{position:absolute;left:4px;top:0;width:24px;height:24px;border-radius:50%;background:var(--red);color:#fff;font-family:var(--head);font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 4px #fff}#tu-kit .tl-step h4{margin-bottom:4px}#tu-kit .tl-step p{font-size:14px;color:var(--n700);margin:0}#tu-kit .tl-step .tl-meta{font-family:var(--head);font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--red);margin-bottom:4px}#tu-kit .usp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}#tu-kit .usp{display:flex;flex-direction:column;gap:8px;padding:24px;background:#fff;border:1px solid var(--mid);border-radius:var(--r-md)}#tu-kit .usp__icon{width:42px;height:42px;border-radius:var(--r-md);background:var(--red-tint);color:var(--red);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800}#tu-kit .usp h4{margin:0;font-size:15px}#tu-kit .usp p{font-size:13px;color:var(--n700);margin:0}#tu-kit .guarantee{display:flex;align-items:center;gap:20px;background:var(--dark);color:#fff;border-radius:var(--r-lg);padding:28px 32px}#tu-kit .guarantee__seal{width:72px;height:72px;border-radius:50%;border:3px solid var(--red);display:flex;align-items:center;justify-content:center;font-family:var(--head);font-weight:800;font-size:11px;text-align:center;line-height:1.1;color:#fff;flex-shrink:0}#tu-kit .guarantee h3{color:#fff;margin-bottom:4px}#tu-kit .guarantee p{color:rgba(255,255,255,.7);font-size:14px;margin:0}#tu-kit .incl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 32px}#tu-kit .incl-grid li{display:flex;gap:12px;font-size:14px;color:var(--n800);align-items:flex-start;list-style:none;padding:8px 0;border-bottom:1px solid var(--mid)}#tu-kit .incl-grid li::before{content:"✓";width:20px;height:20px;border-radius:50%;background:var(--green);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}#tu-kit .tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}#tu-kit .tier{background:#fff;border:1px solid var(--mid);border-radius:var(--r-lg);padding:32px 28px;display:flex;flex-direction:column;gap:16px;position:relative}#tu-kit .tier.featured{border:2px solid var(--red);box-shadow:var(--sh-md)}#tu-kit .tier__ribbon{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--red);color:#fff;font-family:var(--head);font-weight:800;font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:5px 14px;border-radius:var(--r-pill)}#tu-kit .tier__name{font-family:var(--head);font-weight:800;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--red)}#tu-kit .tier__price{font-family:var(--head);font-weight:800;font-size:34px;color:var(--dark);line-height:1}#tu-kit .tier__price .cur{font-size:15px;color:var(--n500)}#tu-kit .tier__sub{font-size:13px;color:var(--n600)}#tu-kit .tier ul{list-style:none;display:flex;flex-direction:column;gap:9px}#tu-kit .tier ul li{display:flex;gap:9px;font-size:13px;color:var(--n800)}#tu-kit .tier ul li::before{content:"✓";color:var(--green);font-weight:800;flex-shrink:0}#tu-kit .bigstat{display:flex;flex-direction:column;gap:6px}#tu-kit .bigstat b{font-family:var(--head);font-weight:800;font-size:clamp(48px,6vw,76px);line-height:.95;letter-spacing:-.03em;color:var(--red)}#tu-kit .bigstat span{font-size:14px;color:var(--n700);max-width:24ch}#tu-kit .o-section--dark .bigstat span{color:rgba(255,255,255,.7)}#tu-kit .tabs{display:flex;gap:4px;border-bottom:1px solid var(--mid);margin-bottom:28px;flex-wrap:wrap}#tu-kit .tab{font-family:var(--head);font-weight:600;font-size:14px;padding:12px 18px;cursor:pointer;color:var(--n600);border-bottom:3px solid transparent;margin-bottom:-1px}#tu-kit .tab.active{color:var(--red);border-bottom-color:var(--red)}#tu-kit .tab-panel{display:none}#tu-kit .tab-panel.active{display:block}#tu-kit .sec-head{max-width:680px;margin:0 auto 48px;text-align:center}#tu-kit .sec-head p{color:var(--n600);font-size:17px;margin:12px auto 0}@media(max-width:1024px){#tu-kit .o-nav__links,#tu-kit .o-nav__lang{display:none}#tu-kit .o-nav__burger{display:flex}#tu-kit .o-stats{grid-template-columns:repeat(4,1fr)}#tu-kit .o-stat:nth-child(4n){border-right:none}#tu-kit .grid-4{grid-template-columns:repeat(2,1fr)}#tu-kit .usp-grid{grid-template-columns:repeat(2,1fr)}#tu-kit .tiers{grid-template-columns:1fr}#tu-kit .norm-grid{grid-template-columns:repeat(4,1fr)}#tu-kit .mega__inner{grid-template-columns:1fr 1fr}#tu-kit .shop-layout{grid-template-columns:1fr}#tu-kit .filter-panel{position:static}}@media(max-width:768px){#tu-kit .o-nav__links,#tu-kit .o-nav__lang{display:none}#tu-kit .o-nav__burger{display:flex}#tu-kit .wrap,#tu-kit .wrap-narrow{padding:0 20px}#tu-kit .o-section{padding:64px 0}#tu-kit .grid-2,#tu-kit .grid-3,#tu-kit .grid-4,#tu-kit .split,#tu-kit .split-7-5,#tu-kit .steps.c4,#tu-kit .steps.c5,#tu-kit .blog-featured{grid-template-columns:1fr;gap:24px}#tu-kit .o-stats{grid-template-columns:repeat(2,1fr)}#tu-kit .o-stat:nth-child(odd){border-right:1px solid var(--mid)}#tu-kit .o-stat:nth-child(even){border-right:none}#tu-kit .norm-grid{grid-template-columns:repeat(2,1fr)}#tu-kit .field-row{grid-template-columns:1fr}#tu-kit .o-footer__grid{grid-template-columns:1fr 1fr}#tu-kit .cookie-bar{grid-template-columns:1fr}#tu-kit .price-box,#tu-kit .toc,#tu-kit .filter-panel{position:static}#tu-kit .logo-wall{grid-template-columns:repeat(3,1fr)}#tu-kit .usp-grid,#tu-kit .incl-grid{grid-template-columns:1fr}#tu-kit .guarantee{flex-direction:column;text-align:center}#tu-kit .cmp{font-size:12.5px}#tu-kit .cmp th,#tu-kit .cmp td{padding:12px 10px}}
/* === TU Kit — UX/a11y polish (additif, non destructif) === */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
html{scroll-behavior:smooth}
a,button,summary,.o-btn,[role=button]{-webkit-tap-highlight-color:rgba(195,5,56,.12)}
#tu-kit img{max-width:100%}
#tu-kit .o-btn{cursor:pointer}

/* === UI/UX Pro Max polish (additif, sans impact layout) === */
#tu-kit .o-btn:active,#tu-kit .o-card__lk:active,#tu-kit .link-arrow:active{opacity:.85}
#tu-kit .o-stat__num,#tu-kit .o-card__num,#tu-kit .tu-card__amt,#tu-kit .kpi b,#tu-kit .o-stat b{font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}
#tu-kit button:disabled,#tu-kit .o-btn:disabled,#tu-kit input:disabled,#tu-kit select:disabled{opacity:.5;cursor:not-allowed}
#tu-kit ::selection{background:rgba(195,5,56,.18);color:#1D1D1F}

/* ████████████████████████████████████████████████████████████████
   TU KIT — PREMIUM DESIGN BOOST LAYER  (append-only, 2026-06-21)
   6 design dimensions, merge-reconciled. Revert = delete from this
   banner to EOF + restore previous ?unique in view 20360.
   ████████████████████████████████████████████████████████████████ */


/* ========== TYPOGRAPHY ========== */
/* ============================================================
   TYPOGRAPHY & EDITORIAL RHYTHM — append-only override layer
   Scope: #tu-kit. Enhances type only; no layout restructuring.
   ============================================================ */

::selection{background:var(--red-tint);color:var(--red-dark)}

/* --- Global type rendering: crisp kerning + ligatures --- */
#tu-kit{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  font-feature-settings:"kern" 1,"liga" 1,"calt" 1;
}

/* --- Display headings: tighter optical tracking, balanced wrap --- */
#tu-kit h1,#tu-kit h2,#tu-kit h3,#tu-kit h4,#tu-kit h5{
  font-family:var(--head);
  color:var(--dark);
  text-wrap:balance;
  font-feature-settings:"kern" 1,"liga" 1,"ss01" 1;
}
#tu-kit h1{
  font-weight:800;
  line-height:1.02;
  letter-spacing:-.032em;
  font-feature-settings:"kern" 1,"liga" 1;
}
#tu-kit h2{
  font-weight:800;
  line-height:1.06;
  letter-spacing:-.024em;
}
#tu-kit h3{
  font-weight:700;
  font-size:22px;
  line-height:1.22;
  letter-spacing:-.012em;
  color:var(--dark);
}
#tu-kit h4{
  font-weight:700;
  font-size:17px;
  line-height:1.3;
  letter-spacing:-.006em;
}
#tu-kit h5{
  font-weight:700;
  font-size:13px;
  line-height:1.4;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--n700);
}

/* --- Body copy: better measure, contrast, pretty wrapping --- */
#tu-kit p{
  line-height:1.7;
  color:var(--n700);
  text-wrap:pretty;
  font-feature-settings:"kern" 1,"liga" 1;
}
#tu-kit li{
  line-height:1.62;
  color:var(--n700);
  text-wrap:pretty;
}

/* --- Eyebrow: refined carmin tick + balanced spacing --- */
#tu-kit .eyebrow{
  font-family:var(--head);
  font-weight:700;
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--red);
  margin-bottom:18px;
  display:inline-flex;
  align-items:center;
  gap:10px;
}
#tu-kit .eyebrow::before{
  content:"";
  width:22px;
  height:2px;
  background:var(--red);
  border-radius:var(--r-pill);
  flex:0 0 auto;
}

/* --- Lead: richer size/leading, deeper color, refined measure --- */
#tu-kit .lead{
  font-size:20px;
  line-height:1.62;
  color:var(--n700);
  max-width:62ch;
  letter-spacing:-.004em;
  text-wrap:pretty;
  font-feature-settings:"kern" 1,"liga" 1;
}

/* --- span-red: subtle weight + crafted carmin underline --- */
#tu-kit .span-red{
  color:var(--red);
  font-weight:inherit;
  background-image:linear-gradient(var(--red-tint),var(--red-tint));
  background-repeat:no-repeat;
  background-position:0 92%;
  background-size:100% .12em;
  padding-bottom:.02em;
}

/* --- strong: weight bump without color shift --- */
#tu-kit strong{
  font-weight:700;
  color:var(--dark);
  letter-spacing:-.002em;
}

/* --- blockquote: editorial pull-quote --- */
#tu-kit blockquote{
  font-family:var(--head);
  font-weight:600;
  font-size:clamp(21px,2.2vw,28px);
  line-height:1.36;
  letter-spacing:-.014em;
  color:var(--dark);
  text-wrap:balance;
  font-feature-settings:"kern" 1,"liga" 1;
}

/* --- Tabular figures for stats/numeric UI --- */
#tu-kit .o-stat__num,
#tu-kit .cmp,
#tu-kit .diff-item{
  font-feature-settings:"tnum" 1,"lnum" 1,"kern" 1;
  font-variant-numeric:tabular-nums lining-nums;
}
#tu-kit .o-stat__num{letter-spacing:-.02em}

/* --- Numbered diff index (01/02/03): refined display figure --- */
#tu-kit .diff-item{font-family:var(--head)}

/* --- Dark section: lift body contrast on dark bg --- */
#tu-kit .o-section--dark p,
#tu-kit .o-section--dark .lead,
#tu-kit .o-section--dark li{color:rgba(255,255,255,.82)}
#tu-kit .o-section--dark h1,
#tu-kit .o-section--dark h2,
#tu-kit .o-section--dark h3,
#tu-kit .o-section--dark h4{color:#fff}

@media (prefers-reduced-motion:reduce){
  #tu-kit *{scroll-behavior:auto}
}


/* ========== BUTTONS & LINKS ========== */
/* ============ BUTTONS, CTAs & LINKS — premium override layer ============ */

/* Base carmin button: subtle vertical sheen + refined depth, crisp lift on hover */
#tu-kit .o-btn{
  position:relative;
  background:linear-gradient(180deg,#D11142 0%,var(--red) 46%,var(--red-dark) 100%);
  box-shadow:0 1px 2px rgba(138,4,38,.28),0 2px 6px rgba(138,4,38,.18),inset 0 1px 0 rgba(255,255,255,.16);
  border-radius:var(--r-sm);
  font-feature-settings:"kern" 1,"liga" 1;
  transition:background .2s var(--ease),box-shadow .25s var(--ease),transform .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease);
  will-change:transform;
}
#tu-kit .o-btn:hover{
  background:linear-gradient(180deg,#DA1747 0%,#C50739 46%,var(--red-dark) 100%);
  box-shadow:0 4px 10px rgba(138,4,38,.30),0 10px 24px rgba(138,4,38,.22),inset 0 1px 0 rgba(255,255,255,.22);
  transform:translateY(-2px);
}
#tu-kit .o-btn:active{
  transform:translateY(0);
  box-shadow:0 1px 2px rgba(138,4,38,.32),inset 0 1px 2px rgba(80,2,22,.30);
  transition-duration:.06s;
}
#tu-kit .o-btn:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px #fff,0 0 0 4.5px var(--red),0 6px 16px rgba(138,4,38,.22);
}

/* Ghost: carmin outline → fills carmin on hover with the same lift */
#tu-kit .o-btn.ghost{
  background:transparent;color:var(--red);
  border:1.5px solid var(--red);
  box-shadow:none;
}
#tu-kit .o-btn.ghost:hover{
  background:var(--red);color:#fff;border-color:var(--red);
  box-shadow:0 4px 10px rgba(138,4,38,.26),0 10px 22px rgba(138,4,38,.16);
  transform:translateY(-2px);
}
#tu-kit .o-btn.ghost:active{background:var(--red-dark);border-color:var(--red-dark);}
#tu-kit .o-btn.ghost:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4.5px var(--red);}

/* Dark: near-black with quiet sheen, hover warms toward carmin edge */
#tu-kit .o-btn.dark{
  background:linear-gradient(180deg,#2A2A2C 0%,var(--dark) 100%);
  box-shadow:0 1px 2px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.07);
}
#tu-kit .o-btn.dark:hover{
  background:linear-gradient(180deg,#333335 0%,#111113 100%);
  box-shadow:0 5px 14px rgba(0,0,0,.34),0 10px 24px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.10);
}
#tu-kit .o-btn.dark:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4.5px var(--dark);}

/* Sizes: keep tracking, refine optical padding */
#tu-kit .o-btn.lg{font-size:13px;letter-spacing:.09em;padding:17px 34px;}
#tu-kit .o-btn.sm{font-size:11px;letter-spacing:.07em;padding:9px 16px;}

/* Disabled: muted, flat, no interactivity */
#tu-kit .o-btn:disabled,#tu-kit .o-btn[disabled],#tu-kit .o-btn.is-disabled{
  background:var(--mid);color:var(--n500);
  box-shadow:none;border-color:var(--mid);
  transform:none;cursor:not-allowed;opacity:1;
}

/* .link-arrow: carmin underline reveal + arrow nudge on hover */
#tu-kit .link-arrow{
  position:relative;color:var(--red);font-weight:700;letter-spacing:.01em;
  text-decoration:none;
  background-image:linear-gradient(var(--red),var(--red));
  background-repeat:no-repeat;background-position:0 100%;background-size:0 1.5px;
  transition:background-size .3s var(--ease),color .2s var(--ease);
}
#tu-kit .link-arrow:hover{background-size:100% 1.5px;color:var(--red-dark);}
#tu-kit .link-arrow::after{content:"\2192";display:inline-block;margin-left:6px;transition:transform .25s var(--ease);}
#tu-kit .link-arrow:hover::after{transform:translateX(5px);}
#tu-kit .link-arrow:focus-visible{outline:none;border-radius:2px;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--red);}

/* In-content text links: elegant underline-reveal (background-size trick) */
#tu-kit .o-prose a,#tu-kit .lead a,#tu-kit p a:not(.o-btn):not(.link-arrow){
  color:var(--red);text-decoration:none;font-weight:600;
  background-image:linear-gradient(var(--red),var(--red));
  background-repeat:no-repeat;background-position:0 100%;background-size:100% 1px;
  padding-bottom:1px;
  transition:background-size .3s var(--ease),color .2s var(--ease);
}
#tu-kit .o-prose a:hover,#tu-kit .lead a:hover,#tu-kit p a:not(.o-btn):not(.link-arrow):hover{
  color:var(--red-dark);background-size:0 1px;background-position:100% 100%;
}
#tu-kit .o-prose a:focus-visible,#tu-kit p a:not(.o-btn):not(.link-arrow):focus-visible{
  outline:none;border-radius:2px;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--red);
}

::selection{background:var(--red-tint);color:var(--red-dark);}

@media (prefers-reduced-motion:reduce){
  #tu-kit .o-btn,#tu-kit .o-btn:hover,#tu-kit .o-btn:active{transform:none;}
  #tu-kit .link-arrow,#tu-kit .link-arrow::after,#tu-kit .link-arrow:hover::after,
  #tu-kit .o-prose a,#tu-kit p a:not(.o-btn):not(.link-arrow){transition:color .15s linear;}
  #tu-kit .link-arrow:hover::after{transform:none;}
}


/* ========== CARDS & DEPTH ========== */
/* ============================================================
   DIMENSION: CARDS, SURFACES & DEPTH  (append-only override)
   Layered soft shadows, refined radii, smoother lift, carmin
   accents — NIRAS / top-consulting editorial polish.
   ============================================================ */

/* --- Core card: deeper radius, multi-layer ambient shadow, crisp top accent --- */
#tu-kit .o-card,
#tu-kit .div-card,
#tu-kit .prog-card,
#tu-kit .accred-card{
  border:1px solid var(--mid);
  border-radius:14px;
  padding:32px 28px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.6),rgba(255,255,255,0) 64px),
    #fff;
  box-shadow:
    0 1px 1px rgba(29,29,31,.04),
    0 4px 10px -4px rgba(29,29,31,.06),
    0 18px 40px -22px rgba(29,29,31,.14);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease);
}
/* refine the carmin top-accent: thinner, inset, gradient hairline */
#tu-kit .o-card{
  border-top:1px solid var(--mid);
  position:relative;
}
#tu-kit .o-card::before{
  content:"";position:absolute;top:-1px;left:-1px;right:-1px;height:4px;
  border-radius:14px 14px 0 0;
  background:linear-gradient(90deg,var(--red),var(--red-dark));
  opacity:.92;transition:opacity .4s var(--ease);
}

/* --- Smoother hover: lift + shadow bloom + carmin border tint --- */
#tu-kit .o-card:hover,
#tu-kit .div-card:hover,
#tu-kit .prog-card:hover,
#tu-kit .accred-card:hover{
  transform:translateY(-6px);
  border-color:rgba(195,5,56,.28);
  box-shadow:
    0 2px 2px rgba(29,29,31,.05),
    0 10px 22px -8px rgba(29,29,31,.10),
    0 34px 64px -26px rgba(138,4,38,.22);
}
#tu-kit .o-card:hover::before{opacity:1}

/* --- Callout: refined premium panel, carmin-tinted with left rule --- */
#tu-kit .callout{
  border:1px solid rgba(195,5,56,.16);
  border-left:3px solid var(--red);
  border-radius:12px;
  padding:28px 30px;
  background:linear-gradient(180deg,var(--red-tint),rgba(251,230,236,.35));
  box-shadow:0 1px 2px rgba(29,29,31,.04),0 14px 30px -20px rgba(138,4,38,.18);
}

/* --- Quote card: editorial, oversized mark, soft depth --- */
#tu-kit .quote-card{
  position:relative;
  border:1px solid var(--mid);
  border-radius:14px;
  padding:36px 34px 30px;
  background:linear-gradient(180deg,#fff,var(--off));
  box-shadow:0 1px 2px rgba(29,29,31,.04),0 20px 46px -26px rgba(29,29,31,.16);
  font-feature-settings:"liga" 1,"kern" 1;
}
#tu-kit .quote-card::before{
  content:"\201C";position:absolute;top:6px;left:22px;
  font-family:var(--head);font-weight:800;font-size:88px;line-height:1;
  color:var(--red);opacity:.14;pointer-events:none;
}

/* --- Comparison table .cmp: rounded, zebra, carmin "us" column, depth --- */
#tu-kit .cmp{
  border-collapse:separate;border-spacing:0;width:100%;
  border:1px solid var(--mid);border-radius:14px;overflow:hidden;
  box-shadow:0 1px 2px rgba(29,29,31,.04),0 22px 50px -28px rgba(29,29,31,.18);
  font-feature-settings:"tnum" 1,"kern" 1;
}
#tu-kit .cmp th{
  background:var(--dark);color:#fff;font-family:var(--head);
  font-weight:700;letter-spacing:.01em;padding:16px 20px;text-align:left;
}
#tu-kit .cmp td{padding:15px 20px;border-top:1px solid var(--mid);color:var(--n700)}
#tu-kit .cmp tbody tr:nth-child(even) td{background:rgba(245,245,247,.6)}
/* highlight the TargetUp / "us" column (last col) */
#tu-kit .cmp th.us{background:var(--red-dark)}
#tu-kit .cmp td.us{
  background:var(--red-tint);color:var(--dark);font-weight:600;
  box-shadow:inset 1px 0 0 rgba(195,5,56,.18),inset -1px 0 0 rgba(195,5,56,.18);
}
#tu-kit .cmp tbody tr:nth-child(even) td.us{background:rgba(251,230,236,.85)}
#tu-kit .cmp tbody tr:last-child td.us{box-shadow:inset 1px 0 0 rgba(195,5,56,.18),inset -1px 0 0 rgba(195,5,56,.18),inset 0 -1px 0 rgba(195,5,56,.18)}

/* --- Accred card: subtle inner ring for a "certified" feel --- */
#tu-kit .accred-card{
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.6),
    0 1px 1px rgba(29,29,31,.04),
    0 18px 40px -24px rgba(29,29,31,.14);
}

/* --- Reduced-motion: kill added transforms/transitions --- */
@media (prefers-reduced-motion:reduce){
  #tu-kit .o-card,#tu-kit .div-card,#tu-kit .prog-card,#tu-kit .accred-card{
    transition:box-shadow .2s ease,border-color .2s ease;
  }
  #tu-kit .o-card:hover,#tu-kit .div-card:hover,
  #tu-kit .prog-card:hover,#tu-kit .accred-card:hover{transform:none}
}


/* ========== SECTIONS & DARK & CTA & STATS ========== */
/* ============================================================
   SECTIONS · SPACING · DIVIDERS · DARK · CTA-BAND · TRUST · STATS
   Append-only override layer — editorial agency polish
   ============================================================ */

/* --- Vertical rhythm: generous but balanced ----------------- */
#tu-kit .o-section{padding:clamp(72px,9vw,128px) 0;position:relative}
#tu-kit .o-section--off{background:var(--off)}
#tu-kit .o-section + .o-section{margin-top:0}

/* Tasteful hairline divider at top of stacked sections.
   Soft carmin-to-transparent fade, centered. */
#tu-kit .o-section + .o-section::before{
  content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:min(100%,var(--max));height:1px;
  background:linear-gradient(90deg,transparent 0%,var(--mid) 18%,var(--mid) 82%,transparent 100%);
  opacity:.7}
#tu-kit .o-section--dark + .o-section::before,
#tu-kit .o-section + .o-section--dark::before{display:none}

/* --- Section heads: refined eyebrow + measure --------------- */
#tu-kit .sec-head{margin-bottom:clamp(40px,4.5vw,64px)}
#tu-kit .sec-head .lead{margin-top:18px}
#tu-kit .eyebrow{position:relative;display:inline-block;padding-left:30px}
#tu-kit .eyebrow::before{
  content:"";position:absolute;left:0;top:50%;width:22px;height:2px;
  transform:translateY(-50%);
  background:linear-gradient(90deg,var(--red),var(--red-dark));border-radius:2px}

/* --- DARK SECTIONS: real depth (radial glow + linear base) -- */
#tu-kit .o-section--dark{
  background:
    radial-gradient(120% 80% at 78% -10%,rgba(195,5,56,.16) 0%,transparent 52%),
    radial-gradient(90% 90% at 6% 108%,rgba(255,255,255,.045) 0%,transparent 48%),
    linear-gradient(168deg,#26262A 0%,var(--dark) 46%,#161618 100%);
  color:var(--off);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
#tu-kit .o-section--dark .eyebrow{color:#FF6B8E}
#tu-kit .o-section--dark .eyebrow::before{
  background:linear-gradient(90deg,#FF6B8E,var(--red))}
#tu-kit .o-section--dark h2,
#tu-kit .o-section--dark h3,
#tu-kit .o-section--dark h4{color:#fff;text-shadow:0 1px 24px rgba(0,0,0,.35)}
#tu-kit .o-section--dark .lead,
#tu-kit .o-section--dark p{color:rgba(245,245,247,.74)}
/* faint top hairline to seat the dark band */
#tu-kit .o-section--dark::after{
  content:"";position:absolute;inset:0 0 auto 0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent)}

/* --- CTA BAND: striking premium band ------------------------ */
#tu-kit .cta-band{
  position:relative;overflow:hidden;border-radius:var(--r-lg);
  background:
    radial-gradient(130% 120% at 88% -20%,rgba(255,255,255,.12) 0%,transparent 46%),
    linear-gradient(135deg,var(--red) 0%,var(--red-dark) 60%,#5E021A 100%);
  box-shadow:0 24px 60px -22px rgba(138,4,38,.6),inset 0 1px 0 rgba(255,255,255,.18);
  color:#fff}
#tu-kit .cta-band::before{
  content:"";position:absolute;right:-8%;top:-60%;width:46%;height:220%;
  background:radial-gradient(closest-side,rgba(255,255,255,.10),transparent 70%);
  pointer-events:none}
#tu-kit .cta-band h2,#tu-kit .cta-band h3{color:#fff;text-shadow:0 1px 18px rgba(0,0,0,.22)}
#tu-kit .cta-band p,#tu-kit .cta-band .lead{color:rgba(255,255,255,.86)}
#tu-kit .cta-band .o-btn{
  background:#fff;color:var(--red-dark);
  box-shadow:0 8px 20px -8px rgba(0,0,0,.35);transition:transform .18s var(--ease),box-shadow .18s var(--ease)}
#tu-kit .cta-band .o-btn:hover{transform:translateY(-2px);box-shadow:0 14px 28px -10px rgba(0,0,0,.45)}
#tu-kit .cta-band .o-btn.ghost{
  background:transparent;color:#fff;border:1px solid rgba(255,255,255,.55)}
#tu-kit .cta-band .o-btn.ghost:hover{background:rgba(255,255,255,.12)}

/* --- TRUST BAR: refined separators -------------------------- */
#tu-kit .trust-bar{gap:clamp(28px,4vw,56px)}
#tu-kit .trust-bar > *{position:relative}
#tu-kit .trust-bar > * + *::before{
  content:"";position:absolute;left:calc(-1 * clamp(14px,2vw,28px));top:50%;
  transform:translateY(-50%);width:1px;height:18px;
  background:linear-gradient(180deg,transparent,var(--mid),transparent)}
#tu-kit .o-section--dark .trust-bar > * + *::before{
  background:linear-gradient(180deg,transparent,rgba(255,255,255,.22),transparent)}

/* --- STATS: gradient numerals + tabular figures ------------- */
#tu-kit .o-stats{gap:clamp(20px,3vw,40px)}
#tu-kit .o-stat__num{
  font-family:var(--head);font-weight:800;
  font-feature-settings:"tnum" 1,"lnum" 1;letter-spacing:-.03em;line-height:1;
  background:linear-gradient(160deg,var(--red) 0%,var(--red-dark) 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:var(--red-dark)}
#tu-kit .o-section--dark .o-stat__num{
  background:linear-gradient(160deg,#FFFFFF 0%,#FFC2CF 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
#tu-kit .o-stat__label{
  font-size:13px;font-weight:500;letter-spacing:.01em;color:var(--n600);margin-top:8px}
#tu-kit .o-section--dark .o-stat__label{color:rgba(245,245,247,.62)}

/* --- Generic hr / divider polish ---------------------------- */
#tu-kit hr{
  border:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--mid),transparent)}
#tu-kit .o-section--dark hr{
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent)}

@media (prefers-reduced-motion: reduce){
  #tu-kit .cta-band .o-btn{transition:none}
  #tu-kit .cta-band .o-btn:hover{transform:none}
}


/* ========== MICRO-INTERACTIONS & FINISHING ========== */
/* ============================================================
   MICRO-INTERACTIONS, MOTION POLISH & FINISHING
   Global premium finishing layer — TargetUp Group
   ============================================================ */

/* --- Global selection: carmin tint, near-black ink --- */
::selection{background:var(--red-tint);color:var(--red-dark);text-shadow:none}
::-moz-selection{background:var(--red-tint);color:var(--red-dark)}

/* --- Smooth anchored scrolling, offset for sticky header --- */
html{scroll-behavior:smooth}
#tu-kit [id]{scroll-margin-top:96px}

/* --- Refined thin custom scrollbar (Firefox + WebKit) --- */
html{scrollbar-width:thin;scrollbar-color:#C9CACE transparent}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#C9CACE;border:3px solid transparent;background-clip:padding-box;border-radius:var(--r-pill)}
::-webkit-scrollbar-thumb:hover{background:var(--n500);border:3px solid transparent;background-clip:padding-box}

/* --- Subtle sheen sweep used as a tasteful accent on buttons --- */
@keyframes tu-sheen{0%{transform:translateX(-130%) skewX(-18deg)}100%{transform:translateX(230%) skewX(-18deg)}}

/* --- Sitewide refined focus-visible ring (accessible, on-brand) --- */
#tu-kit a:focus-visible,
#tu-kit button:focus-visible,
#tu-kit .o-btn:focus-visible,
#tu-kit input:focus-visible,
#tu-kit textarea:focus-visible,
#tu-kit select:focus-visible,
#tu-kit [tabindex]:focus-visible{
  outline:2px solid var(--red);outline-offset:3px;
  border-radius:var(--r-sm);box-shadow:0 0 0 5px var(--red-tint)}
#tu-kit :focus:not(:focus-visible){outline:none}

/* --- Tabular figures + ligatures on display headings / stats --- */
#tu-kit h1,#tu-kit h2,#tu-kit h3{font-feature-settings:"kern" 1,"liga" 1,"calt" 1;text-rendering:optimizeLegibility}
#tu-kit .o-stat__num{font-feature-settings:"tnum" 1,"kern" 1;font-variant-numeric:tabular-nums}

/* (button base/sheen layer removed during merge — buttons-links layer owns .o-btn to keep the focus ring + richer hover) */

/* --- Link-arrow: refined nudge on hover --- */
#tu-kit .link-arrow{transition:color .18s var(--ease),gap .18s var(--ease)}
#tu-kit .link-arrow svg,#tu-kit .link-arrow i{transition:transform .2s var(--ease)}
#tu-kit .link-arrow:hover svg,#tu-kit .link-arrow:hover i{transform:translateX(4px)}

/* --- Tag / cert-pill hover refinement --- */
#tu-kit .tag,#tu-kit .cert-pill{transition:background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),box-shadow .18s var(--ease)}
#tu-kit .tag:hover,#tu-kit .cert-pill:hover{border-color:var(--red);color:var(--red-dark);box-shadow:0 2px 8px -4px var(--red-dark)}

/* --- Card image: subtle, contained zoom polish --- */
#tu-kit .o-card,#tu-kit .div-card,#tu-kit .div-card--photo,#tu-kit .prog-card,#tu-kit .quote-card{
  transition:box-shadow .25s var(--ease),transform .25s var(--ease),border-color .25s var(--ease)}
#tu-kit .div-card--photo img,#tu-kit .o-card img,#tu-kit .prog-card img{
  transition:transform .5s var(--ease);will-change:transform;backface-visibility:hidden}
#tu-kit .div-card--photo:hover img,#tu-kit .o-card:hover img,#tu-kit .prog-card:hover img{transform:scale(1.045)}

/* --- Numbered diff-item: accent settle on hover --- */
#tu-kit .diff-item{transition:transform .2s var(--ease)}
#tu-kit .diff-item:hover{transform:translateX(2px)}

/* --- Honour reduced-motion: kill every transform/animation we add --- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  #tu-kit .o-btn,#tu-kit .o-btn:hover,#tu-kit .o-btn:active,
  #tu-kit .link-arrow:hover svg,#tu-kit .link-arrow:hover i,
  #tu-kit .div-card--photo:hover img,#tu-kit .o-card:hover img,#tu-kit .prog-card:hover img,
  #tu-kit .diff-item:hover{transform:none}
  #tu-kit .o-btn::after{display:none}
  #tu-kit .o-btn:hover::after{animation:none}
}


/* ========== MOBILE & RESPONSIVE ========== */
/* ============================================================
   MOBILE & RESPONSIVE REFINEMENT LAYER (append-only override)
   Owns: @media (max-width:768px) and (max-width:480px) under #tu-kit
   Goal: NIRAS-grade polish preserved on small screens, zero
   horizontal overflow, 44px tap targets, graceful padding.
   ============================================================ */

@media (max-width:768px){
  /* Guard against any horizontal overflow on small screens */
  #tu-kit{overflow-x:hidden}
  #tu-kit img,#tu-kit svg,#tu-kit video{max-width:100%}

  /* Wrap padding tightens but keeps an editorial margin */
  #tu-kit .wrap{padding-left:22px;padding-right:22px}

  /* Section rhythm: generous but not desktop-heavy */
  #tu-kit .o-section{padding:64px 0}
  #tu-kit .o-section--dark{padding:68px 0}

  /* Headings: re-balance clamp floors so display type sings, not shouts */
  #tu-kit h1{font-size:clamp(33px,8.4vw,46px);line-height:1.06;letter-spacing:-.02em}
  #tu-kit h2{font-size:clamp(26px,6.4vw,36px);line-height:1.1;letter-spacing:-.015em}
  #tu-kit h3{font-size:20px}
  #tu-kit .eyebrow{margin-bottom:13px}
  #tu-kit .lead{font-size:17px;line-height:1.62;max-width:none}

  /* Hero photo: keep type readable, tame oversized leads */
  #tu-kit .o-hero--photo h1,#tu-kit .page-header--photo h1{font-size:clamp(34px,8.8vw,48px)}
  #tu-kit .o-hero--photo .lead{font-size:17px}

  /* Cards: comfortable touch padding, softer accent on small surfaces */
  #tu-kit .o-card{padding:24px 20px;border-top-width:3px}
  #tu-kit .div-card{padding:24px 20px}
  #tu-kit .prog-card,#tu-kit .quote-card,#tu-kit .callout{padding:24px 20px}
  #tu-kit .div-card--photo .div-card__media{min-height:200px}

  /* Stat grid → clean 2-up, tabular figures aligned */
  #tu-kit .o-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}
  #tu-kit .o-stat__num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}

  /* Stacking grids: keep vertical breathing room when they collapse */
  #tu-kit .grid-3,#tu-kit .grid-4{gap:18px}

  /* Tap targets: WCAG-comfortable, generous full-width primaries */
  #tu-kit .o-btn{padding:14px 24px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  #tu-kit .o-btn.sm{min-height:40px;padding:12px 20px}
  #tu-kit .o-btn.lg{padding:16px 28px;min-height:50px}
  #tu-kit .o-btn.block{width:100%}
  #tu-kit .link-arrow{padding:6px 0;min-height:34px;display:inline-flex;align-items:center}

  /* CTA band: tighter but still a deliberate statement */
  #tu-kit .cta-band{padding:48px 24px}

  /* Timeline & comparison: avoid cramped numerals / overflow */
  #tu-kit .diff-item{padding:20px 18px}
  #tu-kit .tl-step{padding-left:30px}
  #tu-kit .cmp{font-size:14px}

  /* Trust bar & pills wrap gracefully */
  #tu-kit .trust-bar{gap:20px 28px}
  #tu-kit .cert-pill,#tu-kit .tag{font-size:11px}
}

@media (max-width:480px){
  #tu-kit .wrap{padding-left:18px;padding-right:18px}
  #tu-kit .o-section{padding:52px 0}

  #tu-kit h1{font-size:clamp(30px,9vw,38px);line-height:1.08}
  #tu-kit h2{font-size:clamp(24px,7.6vw,31px);line-height:1.12}
  #tu-kit .lead{font-size:16px;line-height:1.6}

  /* Single-column stats on the narrowest screens for legibility */
  #tu-kit .o-stats{grid-template-columns:1fr;gap:18px}
  #tu-kit .o-stat__num{font-size:clamp(34px,11vw,44px)}

  #tu-kit .o-card,#tu-kit .div-card,#tu-kit .prog-card,
  #tu-kit .quote-card,#tu-kit .callout{padding:22px 18px}
  #tu-kit .div-card--photo .div-card__media{min-height:178px}

  /* Make primary CTAs full-width on phones — premium, thumb-friendly */
  #tu-kit .o-btn{width:100%;padding:15px 22px;letter-spacing:.07em}
  #tu-kit .o-btn.sm{width:auto}
  #tu-kit .cta-band{padding:40px 20px}
  #tu-kit .cta-band .o-btn{width:100%}
}

/* Honor reduced-motion: nothing motion-based added here, but ensure
   any hover transforms inherited on touch don't linger */
@media (max-width:768px) and (prefers-reduced-motion:reduce){
  #tu-kit .o-card:hover,#tu-kit .div-card:hover,#tu-kit .o-btn:hover{transform:none}
}


/* ============================================================
   RECONCILIATION (merge guard) — keep cards readable on dark
   sections (avoid white card + white text), and a few safety nets.
   ============================================================ */
#tu-kit .o-section--dark .o-card,
#tu-kit .o-section--dark .div-card,
#tu-kit .o-section--dark .prog-card,
#tu-kit .o-section--dark .callout{
  background:rgba(255,255,255,.05);
  border-color:rgba(255,255,255,.12);
  box-shadow:0 1px 1px rgba(0,0,0,.2),0 24px 50px -28px rgba(0,0,0,.55);
}
#tu-kit .o-section--dark .o-card h3,#tu-kit .o-section--dark .o-card h4,
#tu-kit .o-section--dark .div-card h3,#tu-kit .o-section--dark .div-card h4,
#tu-kit .o-section--dark .prog-card h3,#tu-kit .o-section--dark .prog-card h4{color:#fff}
#tu-kit .o-section--dark .o-card p,#tu-kit .o-section--dark .div-card p,
#tu-kit .o-section--dark .prog-card p,#tu-kit .o-section--dark .div-card li{color:rgba(255,255,255,.82)}
/* photo division cards already own their dark-glass look — don't let the white wash hit them */
#tu-kit .div-card--photo{background:rgba(255,255,255,.045)}
/* CTA band heading uses span-red? keep it white on the carmin band */
#tu-kit .cta-band .span-red{color:#fff;background-image:none}


/* ████████████████████████████████████████████████████████████████
   TU KIT — DESIGN BOOST v2  (append, 2026-06-21)
   Hub heroes scrim lightened (photos visible like the homepage) +
   refined sticky-header depth. html-prefix beats per-page inline.
   ████████████████████████████████████████████████████████████████ */

/* --- Hub / about / contact photo heroes: lighter editorial scrim --- */
html #tu-kit .page-header--photo .ph-scrim{
  background:
    linear-gradient(180deg,rgba(11,11,13,.5) 0%,rgba(11,11,13,0) 22%),
    linear-gradient(100deg,rgba(11,11,13,.82) 0%,rgba(11,11,13,.55) 36%,rgba(11,11,13,.22) 62%,rgba(11,11,13,.1) 82%,rgba(11,11,13,.4) 100%);
}
html #tu-kit .page-header--photo .ph-bg{filter:brightness(1.08) saturate(1.03)}
html #tu-kit .page-header--photo h1{text-shadow:0 2px 24px rgba(0,0,0,.35)}

/* --- Sticky header: refined premium depth + hairline --- */
#wrapwrap header#top,
#wrapwrap header.o_header_fixed,
#wrapwrap header.o_header_standard{
  box-shadow:0 1px 0 rgba(29,29,31,.06),0 10px 30px -18px rgba(29,29,31,.18);
}


/* ████████████████████████████████████████████████████████████████
   TU KIT — DESIGN BOOST v3  (append, 2026-06-21)
   Premium non-photo page-header (all secondary pages: réalisations,
   offres, dispositifs, PACT', guides…) + lead-form input polish.
   ████████████████████████████████████████████████████████████████ */

/* --- Secondary-page header: real depth (glow + gradient), not flat --- */
html #tu-kit .page-header:not(.page-header--photo){
  background:
    radial-gradient(120% 95% at 82% -22%,rgba(195,5,56,.22) 0%,transparent 55%),
    radial-gradient(85% 95% at 2% 122%,rgba(255,255,255,.045) 0%,transparent 50%),
    linear-gradient(165deg,#26262A 0%,var(--dark) 48%,#161618 100%);
  padding:clamp(80px,8vw,104px) 0 clamp(60px,6vw,76px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
#tu-kit .page-header:not(.page-header--photo)::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;z-index:3;
  background:linear-gradient(90deg,transparent,rgba(195,5,56,.55),transparent);
}
#tu-kit .page-header:not(.page-header--photo) .eyebrow{color:#FF6B8E}
#tu-kit .page-header:not(.page-header--photo) .eyebrow::before{
  background:linear-gradient(90deg,#FF6B8E,var(--red))}
#tu-kit .page-header:not(.page-header--photo) h1{text-shadow:0 2px 30px rgba(0,0,0,.42)}
#tu-kit .page-header:not(.page-header--photo) .dots-bg{opacity:.7}
#tu-kit .page-header:not(.page-header--photo) .cert-pill{
  color:rgba(255,255,255,.92);border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.06)}

/* --- Lead form: premium inputs (rounded, carmin focus glow) --- */
#tu-kit .tu-leadform .form-control,
#tu-kit .tu-leadform .form-select{
  border-radius:8px;border:1px solid var(--n300);
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease),background-color .18s var(--ease)}
#tu-kit .tu-leadform .form-control:focus,
#tu-kit .tu-leadform .form-select:focus{
  border-color:var(--red);box-shadow:0 0 0 3px var(--red-tint);outline:none}
#tu-kit .tu-leadform .form-control:hover,
#tu-kit .tu-leadform .form-select:hover{border-color:var(--n400)}


/* ████████████████████████████████████████████████████████████████
   TU KIT — DESIGN BOOST v4  (FIX, 2026-06-21)
   Correctif: le boost typo (#tu-kit h1{color:dark}) rendait les
   titres invisibles sur les .page-header sombres (pages secondaires).
   Force le texte clair sur TOUS les page-header (photo + non-photo).
   ████████████████████████████████████████████████████████████████ */
#tu-kit .page-header h1,
#tu-kit .page-header h2,
#tu-kit .page-header h3,
#tu-kit .page-header h4{color:#fff}
#tu-kit .page-header p,
#tu-kit .page-header .lead,
#tu-kit .page-header li{color:rgba(255,255,255,.86)}
#tu-kit .page-header .span-red{color:#FF6B8E;background-image:none}


/* ████████████████████████████████████████████████████████████████
   TU KIT — DESIGN BOOST v5  (FIX, 2026-06-22)
   Giant-logos bug on mobile: my v1 mobile rule 
   (1,0,1) was overriding the band cap .tu-logos__row img{height:42px}
   (0,1,1). Removed height:auto + added id-level band cap below.
   ████████████████████████████████████████████████████████████████ */
#tu-kit .tu-logos__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:26px 44px}
#tu-kit .tu-logos__row img{height:42px;width:auto;max-width:150px;object-fit:contain}
@media (max-width:768px){
  #tu-kit .tu-logos__row{gap:18px 26px}
  #tu-kit .tu-logos__row img{height:30px;max-width:104px}
}


/* ████████████████████████████████████████████████████████████████
   TU KIT — DESIGN BOOST v6  (FIX, 2026-06-22)
   Division badge logo collapsed inside its flex chip on mobile
   (generic #tu-kit img{max-width:100%} starved the auto-width
   flex item). Force natural width + no shrink.
   ████████████████████████████████████████████████████████████████ */
#tu-kit .div-card--photo .div-card__tag{max-width:calc(100% - 28px)}
#tu-kit .div-card--photo .div-card__tag img{height:22px;width:auto;max-width:none;flex:0 0 auto;display:block}


/* ████████████████████████████████████████████████████████████████
   TU KIT — DESIGN BOOST v7  (FIX, 2026-06-22)
   The mobile rule .div-card--photo img{min-height:200px} (meant for
   the card photo, which is actually a bg DIV) was inflating the badge
   logo. Root-fixed above; reinforce the badge sizing here.
   ████████████████████████████████████████████████████████████████ */
#tu-kit .div-card--photo .div-card__tag img{height:22px;max-height:22px;min-height:0;width:auto;max-width:none;flex:0 0 auto;display:block}
#tu-kit .div-card--photo .div-card__tag{width:auto;max-width:calc(100% - 28px)}

/* ████████████████████████████████████████████████████████████
   TU KIT — 3 AXES UX (header-scroll + typo + experts) — 23/06/2026
   ████████████████████████████████████████████████████████████ */
/* ============================================================
   AXE A — SMART STICKY HEADER (prouve en live Playwright 23/06)
   Append-only 94307. Cible header#top (HORS #tu-kit) sous #wrapwrap.
   Corrige bug latent : header non-pinne (scroller=body -> affix natif Odoo mort,
   o_header_affixed ne se pose jamais). On pilote via classes JS html.tu-head-*
   (JS dans vue 20619). Hide-on-scroll-down / reveal-on-up + ombre en etat scrolle.
   !important sur l'ombre = bat l'utilitaire Bootstrap .shadow-sm (lui-meme !important).
   ============================================================ */
#wrapwrap header#top{position:sticky;top:0;z-index:1030;transition:transform .34s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease}
html.tu-head-scrolled #wrapwrap header#top .navbar{box-shadow:0 1px 0 rgba(29,29,31,.06),0 12px 30px -14px rgba(29,29,31,.30) !important}
html.tu-head-hidden #wrapwrap header#top{transform:translateY(-100%)}
@media (prefers-reduced-motion:reduce){
  #wrapwrap header#top{transition:none}
  html.tu-head-hidden #wrapwrap header#top{transform:none}
}
/* ==================== FIN AXE A ==================== */

/* ════════════════════════════════════════════════════════════════
   AXE B — RYTHME TYPOGRAPHIQUE PREMIUM (editorial, NIRAS-level)
   Append-only dans l'attachment 94307 (tukit.css). Tout prefixe #tu-kit.
   Tokens verifies dans 94307 : --red:#C30538 / --n600:#6E6E73 (definis :root)
   -> fallbacks ajoutes par hygiene (review securite #1).
   Regles d'or respectees :
   · AUCUNE couleur GLOBALE de titre (h1-h4).
   · AUCUN max-width GLOBAL sur p (bare p intouche).
   · AUCUN font-size sur bare p ni sur .o-section p.
   · Corps mobile >= 16px (anti-zoom iOS). prefers-reduced-motion respecte.
   FIX BLOQUANT INTEGRE (review securite #2, CONFIRME par lecture du fichier) :
     les titres de cartes du kit SONT des <h3>/<h4> (.o-card h4, .div-card h3,
     .prog-card h4, .tl-step h4, .usp h4, .lead-form h3) et tiraient leur TAILLE
     de la base #tu-kit h3{22px}/#tu-kit h4{17px}. Le nouveau clamp() sur
     #tu-kit h3/h4 (specificite id 1,0,1) ECRASERAIT ces titres ET BAT meme la
     regle .usp h4{font-size:15px} (0,1,1). -> on REPINNE explicitement la taille
     des titres de cartes au niveau #tu-kit (zero couplage). cf. bloc 1bis.
   ════════════════════════════════════════════════════════════════ */

/* ── 1. Echelle fluide & metrique optique des titres ──────────────
   h1/h2 deja clampes finement ailleurs -> on NE les redefinit PAS en taille.
   h3/h4 etaient en px fixe : clamp() doux + interligne + tracking. Pas de couleur. */
#tu-kit h3{font-size:clamp(20px,1.35vw + 14px,26px);line-height:1.18;letter-spacing:-.012em}
#tu-kit h4{font-size:clamp(17px,.55vw + 14px,20px);line-height:1.28;letter-spacing:-.006em}

/* ── 1bis. GARDE-FOU titres de cartes (FIX review securite #2) ─────
   Repinne au niveau id la taille HISTORIQUE des titres de cartes pour annuler
   le clamp ci-dessus. h3 cartes -> 22px (base d'origine), h4 cartes -> 17px,
   .usp h4 -> 15px (sa valeur propre, perdue sinon face a #tu-kit h4).
   On ne touche QUE la taille/tracking ; margins/couleurs des cartes intacts. */
#tu-kit .o-card h3,#tu-kit .div-card h3,#tu-kit .prog-card h3,
#tu-kit .tl-step h3,#tu-kit .usp h3,#tu-kit .lead-form h3{font-size:22px;letter-spacing:normal}
#tu-kit .o-card h4,#tu-kit .div-card h4,#tu-kit .prog-card h4,
#tu-kit .tl-step h4,#tu-kit .lead-form h4{font-size:17px;letter-spacing:normal}
#tu-kit .usp h4{font-size:15px;letter-spacing:normal}

/* Metrique optique fine sur les gros titres (tracking negatif progressif).
   Pas de color, pas de font-size : on n'agit QUE sur le rendu typo. */
#tu-kit h1{letter-spacing:-.025em;font-feature-settings:"kern" 1,"liga" 1,"calt" 1,"ss01" 1}
#tu-kit h2{letter-spacing:-.02em}
/* Optionnel : titre d'affichage encore plus serre (opt-in via .tu-display) */
#tu-kit .tu-display{letter-spacing:-.03em;line-height:1.02;text-wrap:balance}

/* Equilibrage des lignes de titre (evite la veuve d'un mot seul) — scope
   aux titres de sections/headers, pas aux titres de cartes (courts). */
#tu-kit .sec-head h2,#tu-kit .sec-head h3,
#tu-kit .o-hero h1,#tu-kit .page-header h1,
#tu-kit .cta-band h2{text-wrap:balance}

/* ── 2. .lead — accroche editoriale : taille fluide + mesure lisible ─
   .lead deja gere (17px desktop ligne 609 / 16px mobile ligne 654). On fluidifie
   SANS descendre sous 16px. NOTE (review qualite #2) : la line-height 1.62 et le
   tracking ci-dessous s'appliquent AUSSI aux leads hero/cta (leurs regles ne
   posent que font-size/couleur) -> ASSUME et VOULU : 1.62 est un interligne
   d'accroche sain, le shift de tracking est imperceptible. Pas de couleur ici. */
#tu-kit .lead{font-size:clamp(16px,.5vw + 14.5px,20px);line-height:1.62;letter-spacing:-.003em}
/* Mesure lisible UNIQUEMENT en contextes alignes a gauche (hero/header/prose).
   On NE cible PAS .lead nu : .sec-head .lead et .cta-band .lead sont centres. */
#tu-kit .o-hero p.lead,
#tu-kit .page-header p.lead,
#tu-kit .o-prose .lead{max-width:64ch}

/* ── 3. .o-prose — conteneur de prose opt-in (rythme vertical 4/8) ──
   Bare p reste intouche -> aucune casse des cards/usp.
   Mesure lisible + interligne confort + cadence titre/§ sur echelle 8. */
#tu-kit .o-prose{max-width:72ch;line-height:1.65}
#tu-kit .o-prose p{font-size:clamp(16px,.35vw + 15px,18px);line-height:1.7;margin-bottom:24px;max-width:68ch}
#tu-kit .o-prose p:last-child{margin-bottom:0}
/* FIX review qualite #1 : un p.lead DANS .o-prose garde son IDENTITE (sinon il
   tombe a 18px/68ch faute de specificite). On repinne sa taille (echelle lead)
   et sa mesure (64ch), source-order/specificite garantis (1,2,0 sur p.lead). */
#tu-kit .o-prose p.lead{font-size:clamp(16px,.5vw + 14.5px,20px);max-width:64ch;margin-bottom:32px}
/* Cadence des titres internes (owl-style scope prose, echelle 4/8/16) */
#tu-kit .o-prose h2{margin:48px 0 16px}
#tu-kit .o-prose h3{margin:40px 0 12px}
#tu-kit .o-prose h4{margin:32px 0 8px}
#tu-kit .o-prose h2:first-child,
#tu-kit .o-prose h3:first-child,
#tu-kit .o-prose h4:first-child{margin-top:0}
/* Resserrement quand un titre suit immediatement un titre (pas d'air mort) */
#tu-kit .o-prose h2 + h3,#tu-kit .o-prose h3 + h4{margin-top:16px}
/* Listes de prose : cadence + puces lisibles (scope, n'affecte pas .div-list
   /.pilier-list/.price-meta/.mega qui ont leurs propres puces) */
#tu-kit .o-prose ul,#tu-kit .o-prose ol{margin:0 0 24px 1.25em;max-width:68ch}
#tu-kit .o-prose li{font-size:clamp(16px,.35vw + 15px,18px);line-height:1.7;margin-bottom:8px}
#tu-kit .o-prose li:last-child{margin-bottom:0}
/* Fallback token (review securite #1) : si --red est absent, on retombe sur le
   carmin de marque #C30538 au lieu de currentColor. Token verifie present. */
#tu-kit .o-prose li::marker{color:var(--red,#C30538)}
/* Lisibilite prose sur fond sombre (herite deja du blanc) : pas de couleur titre. */
#tu-kit .o-section--dark .o-prose p,#tu-kit .o-section--dark .o-prose li{color:rgba(245,245,247,.82)}

/* ── 4. .eyebrow — micro-typo de section : tracking & cadence ───────
   Affine la cadence sans toucher couleur/taille (deja scopees dark/photo). */
#tu-kit .eyebrow{line-height:1.2;font-feature-settings:"kern" 1}

/* ── 5. Citation editoriale (opt-in .tu-quote) — touche agence ──────
   Pur composant texte, n'ecrase rien d'existant. Fallback --n600 (#6E6E73). */
#tu-kit .tu-quote{font-family:var(--head);font-weight:600;font-size:clamp(20px,2vw + 12px,30px);line-height:1.3;letter-spacing:-.015em;max-width:24ch;text-wrap:balance}
#tu-kit .tu-quote cite{display:block;margin-top:16px;font-family:var(--body);font-weight:500;font-size:14px;font-style:normal;letter-spacing:.01em;color:var(--n600,#6E6E73)}

/* ── 6. Ligatures contextuelles / kerning sur la prose (rendu doctoral) */
#tu-kit .o-prose{font-feature-settings:"kern" 1,"liga" 1,"calt" 1}

/* ── 7. Garde-fous responsives : corps >= 16px partout ─────────────
   Renforce le plancher anti-zoom iOS sans reduire sous le seuil. */
@media (max-width:768px){
  #tu-kit .o-prose p,#tu-kit .o-prose li{font-size:16px;line-height:1.68}
  #tu-kit .lead{font-size:16px;line-height:1.6}
  #tu-kit .o-prose p.lead{font-size:16px}
  #tu-kit .o-prose h2{margin:36px 0 12px}
  #tu-kit .o-prose h3{margin:28px 0 10px}
  #tu-kit .o-prose h4{margin:24px 0 8px}
}

/* ── 8. prefers-reduced-motion : AXE B purement typo (aucune animation
   introduite). Bloc d'hygiene : neutralise d'eventuelles transitions de liens. */
@media (prefers-reduced-motion:reduce){
  #tu-kit .o-prose a{transition:none}
}
/* ════════════════════ FIN AXE B ════════════════════ */

/* ============================================================
   AXE C — Profils representatifs du reseau d'experts (A-propos)
   A APPENDER a l'attachment 94307 (tukit.css). Tout prefixe #tu-kit.
   Privacy: aucun nom — uniquement des intitules de poste reels.
   Tokens du design system (verifies dans :root de 94307) :
     --sh-md / --sh-lg (ombres), --red / --red-dark / --red-tint,
     --mid / --off / --r-lg / --r-pill / --ease / --head / --body.
   ============================================================ */
#tu-kit .expcards__sub{
  font-family:var(--body);
  font-size:14px;
  line-height:1.55;
  color:var(--n600);
  max-width:58ch;          /* local, jamais un p{} global */
  margin:0 0 18px;
}
#tu-kit .expcards{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:16px;
  margin-top:8px;
}
#tu-kit .expcard{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:20px 20px 18px;
  background:#fff;
  border:1px solid var(--mid);
  border-radius:var(--r-lg);
  box-shadow:var(--sh-md);                 /* FIX 4 : token, plus de rgba en dur */
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease);
}
#tu-kit .expcard:hover{
  transform:translateY(-3px);
  border-color:var(--red);                 /* FIX 4 : teinte carmin token au lieu de rgba */
  box-shadow:var(--sh-lg);                 /* FIX 4 : token */
}
#tu-kit .expcard__hd{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-bottom:12px;
  border-bottom:1px solid var(--off);
}
#tu-kit .expcard__dom{
  font-family:var(--head);
  font-weight:700;
  font-size:14px;
  line-height:1.25;
  color:var(--dark);
}
#tu-kit .expcard__pill{
  flex:0 0 auto;
  font-family:var(--head);
  font-weight:700;
  font-size:11px;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--red-dark);                   /* FIX 4 : token */
  background:var(--red-tint);              /* FIX 4 : token */
  border:1px solid var(--red);            /* FIX 4 : token (etait rgba(195,5,56,.18)) */
  border-radius:var(--r-pill);
  padding:4px 11px;
  white-space:nowrap;
}
#tu-kit .expcard__list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:11px;
}
#tu-kit .expitem{
  display:flex;
  align-items:flex-start;
  gap:10px;
}
#tu-kit .expitem__dot{
  flex:0 0 auto;
  width:6px;
  height:6px;
  margin-top:7px;
  border-radius:var(--r-pill);
  background:var(--red);
}
#tu-kit .expitem__t{
  font-family:var(--body);
  font-size:14px;
  line-height:1.45;
  color:var(--n700);
  /* Troncature PROPRE des intitules longs — cote CSS, pas Python.
     L'attribut title (t-att-title cote QWeb, FIX 3) restitue le libelle complet. */
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
@media (max-width:768px){
  #tu-kit .expcards{grid-template-columns:1fr;gap:12px;}
  #tu-kit .expcard{padding:18px 16px 16px;}
  #tu-kit .expcards__sub{font-size:16px;}      /* >=16px anti-zoom iOS */
  #tu-kit .expitem__t{font-size:16px;}         /* >=16px anti-zoom iOS */
}
@media (prefers-reduced-motion:reduce){
  #tu-kit .expcard{transition:none;}
  #tu-kit .expcard:hover{transform:none;}
}

/* ████████████████████████████████████████████████████████████
   TU KIT — LOT AUDIT (a11y + UX + polish) — 24/06/2026
   Source : equipe d'agents auditeurs (SEO/Design/A11y/Perf/Marketing).
   Tous correctifs SURS : CSS pur, #tu-kit (ou classe Odoo pour le cookie).
   ████████████████████████████████████████████████████████████ */

/* 1. [P1 WCAG] Mot carmin du H1 sur hero/header PHOTO sombre = 2,72:1 -> rose marque #FF6B8E (~6:1).
   Scope STRICT aux contextes photo sombres ; les titres sur fond clair gardent #C30538. */
#tu-kit .o-hero h1 .span-red,
#tu-kit .o-hero--photo h1 .span-red,
#tu-kit .page-header--photo h1 .span-red{color:#FF6B8E !important;background-image:none}

/* 2. [P1 WCAG 1.4.3] Texte secondaire gris #86868B (--n500) = 3,62:1 -> --n600 #6E6E73 (~4,97:1).
   Cible UNIQUEMENT du texte (jamais bordures/decoratif). */
#tu-kit .muted,
#tu-kit .team-role,
#tu-kit .blog-card__meta,
#tu-kit .session-city,
#tu-kit .form-sub,
#tu-kit .accred-card .scope{color:var(--n600)}

/* 3. [P2 UX mobile] Popup cookies Odoo chevauche les bulles flottantes WhatsApp/LiveChat a 375px.
   Reserve une gouttiere au-dessus des FAB + compacte. Classe Odoo (hors #tu-kit). */
@media (max-width:768px){
  .o_cookies.s_popup_bottom .modal-dialog,
  .s_popup .o_cookies_bar,
  .modal.o_cookies_bar .modal-dialog{margin:0 10px 86px !important}
  .o_cookies .modal-content,
  .o_cookies_bar .modal-content{padding:14px 16px;font-size:13px}
}

/* 4. [P3 polish] Soulignement carmin trop epais sous les TRES grands titres -> trait plus fin/bas. */
#tu-kit h1 .span-red,
#tu-kit h2 .span-red{background-size:100% .08em;background-position:0 96%}

/* 5. [P3 polish] Liseré des pastilles experts (Axe C) trop appuye -> carmin translucide. */
#tu-kit .expcard__pill{border-color:rgba(195,5,56,.22)}
/* ==================== FIN LOT AUDIT ==================== */

/* ==================== LANDING PRODUIT (service) — fix décalage + alignement ==================== */
#product_full_description{position:relative;z-index:10;background:#fff;clear:both}
.tu-prod-lp{max-width:1140px;margin:0 auto;padding:0 15px}
.tu-prod-lp h2,.tu-prod-lp h3{letter-spacing:-.01em}
/* ==================== FIN LANDING PRODUIT ==================== */

/* ===== TU UPGRADE LAYER — 2026-06-29 · additif (a11y + affordance + perf perçue), aligné charte ===== */
#tu-kit .o-btn{touch-action:manipulation}
#tu-kit .o-btn:hover{transform:translateY(-2px)}
#tu-kit .o-btn:active{transform:translateY(0)}
#tu-kit .o-btn:not(.ghost):not(.ghost-dark):hover{box-shadow:0 8px 22px rgba(195,5,56,.22)}
#tu-kit a:focus-visible,#tu-kit button:focus-visible,#tu-kit [role="button"]:focus-visible,#tu-kit input:focus-visible,#tu-kit textarea:focus-visible,#tu-kit select:focus-visible{outline:3px solid var(--red);outline-offset:2px}
#tu-kit a.div-card:hover,#tu-kit .o-card.is-link:hover,#tu-kit .tu-card.is-link:hover{transform:translateY(-3px);box-shadow:var(--sh-lg)}
#tu-kit section[id],#tu-kit .o-section[id]{scroll-margin-top:84px}
#tu-kit .o-prose a:not(.o-btn){text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px;text-decoration-color:rgba(195,5,56,.4)}
#tu-kit .o-prose a:not(.o-btn):hover{text-decoration-color:var(--red)}
@media (prefers-reduced-motion:reduce){#tu-kit .o-btn:hover,#tu-kit .o-btn:active,#tu-kit a.div-card:hover,#tu-kit .o-card.is-link:hover,#tu-kit .tu-card.is-link:hover{transform:none}}


/* ===== TU 30/07/2026 - CONSENTEMENT MOBILE =====
   Probleme corrige : la regle inline `html.tu-cookie-shown .tu-mcta{display:none!important}`
   masquait la barre d'action mobile (WhatsApp + Devis) pendant tout l'affichage du bandeau
   cookies, c'est-a-dire pendant le premier ecran de tout le trafic publicitaire.
   Ce fichier est charge APRES le style inline : a specificite egale, ces regles l'emportent. */
@media (max-width: 991.98px) {
  /* 1. l'action reste accessible pendant le consentement */
  html.tu-cookie-shown .tu-mcta { display: flex !important; }

  /* 2. le bandeau se pose au-dessus de la barre au lieu de couvrir l'ecran */
  #website_cookies_bar .s_popup_size_full { padding-bottom: 52px !important; }
  #website_cookies_bar .modal-content {
    max-height: 42vh;
    overflow-y: auto;
    border-top: 3px solid #C30538;
    border-radius: 14px 14px 0 0;
  }

  /* 3. zones tactiles conformes (44 px minimum, WCAG 2.5.5) */
  #website_cookies_bar #cookies-consent-all,
  #website_cookies_bar #cookies-consent-essential {
    min-height: 44px;
    padding-left: 20px;
    padding-right: 20px;
  }
}
/* ===== FIN TU 30/07/2026 - CONSENTEMENT MOBILE ===== */


/* ===== TU 30/07/2026 - RETRAIT DE LA PROMESSE DE SUBVENTION =====
   Le simulateur (vue 20676) etant desactive, le bouton du hero pointait vers une ancre morte.
   Le hero passe a un appel a l'action unique. */
#tu-kit .o-hero__ctas a[href="#tu-financement"],
.o-hero__ctas a[href="#tu-financement"] { display: none !important; }
.o-hero__ctas .o-btn.lg { min-width: 260px; }
/* ===== FIN TU 30/07/2026 - RETRAIT DE LA PROMESSE DE SUBVENTION ===== */


/* ===== TU 30/07/2026 - BARRE D'ACTION : DEGAGEMENT POUR LA BULLE DE CHAT =====
   La bulle .o-mail-ChatHub-bubbles est rendue dans un shadow DOM : aucune regle du
   document ne peut la deplacer. On decale donc le contenu du dernier bouton de la
   barre pour que son libelle ne passe plus sous la bulle (56 px a droite + marge). */
@media (max-width: 991.98px) {
  .tu-mcta a:last-child { padding-right: 76px; }
}
/* ===== FIN TU 30/07/2026 - BARRE D'ACTION : DEGAGEMENT ===== */


/* ===== TU 30/07/2026 - DERNIERE ENTREE DE MENU =====
   Neutralise le style "bouton" applique a la derniere entree du menu principal.
   Il visait l'entree "Diagnostic gratuit", retiree car redondante avec le bouton d'en-tete ;
   sans cela il retombe sur CONTACT (fond carmin + texte sombre, peu lisible). */
#top_menu > li:last-child > a.nav-link,
#top_menu > li:last-child > a.nav-link:hover {
  background: transparent !important;
  color: #1D1D1F !important;
  border-radius: 0 !important;
  padding: 8px !important;
  margin-left: 0 !important;
}
/* ===== FIN TU 30/07/2026 - DERNIERE ENTREE DE MENU ===== */
