/* @id cronuts-subservices-pillar */
:root{--cd-canvas:#E0E5EC;--cd-canvas-dark:#242424;--cd-canvas-dark-2:#1A1A1A;--cd-ink:#242424;--cd-ink-2:#545760;--cd-ink-3:#848484;--cd-ink-inv:#EBEAEA;--cd-red:#E6243F;--cd-red-hover:#C71C33;--nm-out:-6px -6px 16px 0 rgba(255,255,255,1),6px 6px 16px 0 rgba(163,177,198,0.55);--nm-out-sm:-3px -3px 8px 0 rgba(255,255,255,0.95),3px 3px 8px 0 rgba(163,177,198,0.45);--nm-out-lg:-10px -10px 24px 0 rgba(255,255,255,1),10px 10px 24px 0 rgba(163,177,198,0.55);--nm-in-sm:inset 2px 2px 5px 0 rgba(163,177,198,0.5),inset -2px -2px 5px 0 rgba(255,255,255,1);--nmd-out:-6px -6px 14px 0 rgba(58,58,58,0.55),8px 8px 20px 0 rgba(0,0,0,0.6);--nmd-out-sm:-3px -3px 7px 0 rgba(58,58,58,0.5),4px 4px 10px 0 rgba(0,0,0,0.55);--nm-red:-3px -3px 7px 0 rgba(255,255,255,0.9),5px 5px 14px 0 rgba(230,36,63,0.45);--nm-red-d:-3px -3px 7px 0 rgba(58,58,58,0.35),5px 5px 14px 0 rgba(230,36,63,0.5);--font-display:'Poppins',system-ui,sans-serif;--font-body:'Inter',system-ui,sans-serif;--font-mono:ui-monospace,Menlo,Consolas,monospace;}*{box-sizing:border-box;}html,body{margin:0;padding:0;}body{background:var(--cd-canvas);color:var(--cd-ink);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden;}img,svg{display:block;max-width:100%;}a{color:inherit;text-decoration:none;}h1,h2,h3,h4{margin:0;font-family:var(--font-display);letter-spacing:-0.02em;color:var(--cd-ink);}p{margin:0;}.container{width:100%;max-width:1200px;margin-inline:auto;padding-inline:24px;}.eyebrow{font-family:var(--font-display);font-size:11px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--cd-red);display:inline-flex;align-items:center;gap:8px;}.eyebrow::before{content:"";width:8px;height:8px;border-radius:999px;background:var(--cd-red);box-shadow:0 0 0 3px rgba(230,36,63,0.18);}.btn{font-family:var(--font-display);font-weight:600;font-size:14px;padding:13px 22px;border-radius:999px;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:10px;transition:transform 160ms,background 160ms,color 160ms;white-space:nowrap;text-decoration:none;}.btn--lg{padding:16px 28px;font-size:15px;}.btn--primary{background:var(--cd-red);color:#fff;box-shadow:var(--nm-red);}.btn--primary:hover{background:var(--cd-red-hover);transform:translateY(-1px);}.btn--secondary{background:var(--cd-canvas);color:var(--cd-ink);box-shadow:var(--nm-out-sm);}.btn--secondary:hover{color:var(--cd-red);transform:translateY(-1px);}.btn--dark-primary{background:var(--cd-red);color:#fff;box-shadow:0 4px 16px rgba(230,36,63,0.35),inset 0 1px 0 rgba(255,255,255,0.15);}.btn--dark-primary:hover{background:var(--cd-red-hover);box-shadow:0 6px 22px rgba(230,36,63,0.5),inset 0 1px 0 rgba(255,255,255,0.2);transform:translateY(-1px);}.btn--dark-secondary{background:rgba(255,255,255,0.05);color:#fff;border:1px solid rgba(255,255,255,0.14);box-shadow:0 2px 10px rgba(0,0,0,0.3);}.btn--dark-secondary:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.25);color:var(--cd-red);transform:translateY(-1px);}.preview-bar{position:fixed;top:0;left:0;right:0;z-index:99999;background:var(--cd-red);color:#fff;padding:8px 20px;font-family:var(--font-body);font-size:12px;font-weight:600;display:flex;justify-content:space-between;align-items:center;}.preview-bar a{color:#fff;text-decoration:underline;}.site-header{position:fixed;top:56px;left:50%;transform:translateX(-50%);z-index:100;width:calc(100% - 48px);max-width:1140px;}.site-header__pill{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:10px 12px 10px 20px;border-radius:999px;background:rgba(18,18,18,0.68);backdrop-filter:saturate(1.3) blur(10px);-webkit-backdrop-filter:saturate(1.3) blur(10px);box-shadow:0 1px 0 rgba(0,0,0,0.2),0 10px 28px rgba(0,0,0,0.35);border:1px solid rgba(255,255,255,0.08);}.site-header__pill .btn{box-shadow:0 2px 10px rgba(230,36,63,0.3),inset 0 1px 0 rgba(255,255,255,0.12);border:1px solid rgba(230,36,63,0.5);}.brand{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,0.95);}.brand__eye{width:30px;height:30px;object-fit:contain;}.brand__word{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-0.02em;color:rgba(255,255,255,0.95);}.brand__word .dot{color:var(--cd-red);padding:0 1px;}.site-nav{justify-self:center;display:flex;padding:3px;border-radius:999px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.06);gap:2px;}.site-nav a{font-family:var(--font-body);font-size:13px;font-weight:500;color:rgba(255,255,255,0.72);padding:9px 16px;border-radius:999px;white-space:nowrap;}.site-nav a:hover{color:#fff;}.site-nav a.active{color:#fff;background:rgba(230,36,63,0.18);box-shadow:inset 0 0 0 1px rgba(230,36,63,0.35);}.hero{background:#0A0A0A;color:var(--cd-ink-inv);padding:180px 0 120px;position:relative;overflow:hidden;}.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 50% 40% at 85% 30%,rgba(230,36,63,0.18),transparent 55%),radial-gradient(ellipse 40% 35% at 10% 70%,rgba(230,36,63,0.08),transparent 60%);z-index:0;pointer-events:none;}.hero__particles{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;}.hero__particles span{position:absolute;width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,0.6);box-shadow:0 0 6px rgba(255,255,255,0.4);opacity:0;animation:heroParticleFloat 16s ease-in-out infinite;}.hero__particles span:nth-child(1){top:12%;left:18%;animation-delay:0s;}.hero__particles span:nth-child(2){top:68%;left:8%;animation-delay:-2.2s;width:2px;height:2px;}.hero__particles span:nth-child(3){top:28%;left:46%;animation-delay:-4.4s;background:rgba(230,36,63,0.55);box-shadow:0 0 10px rgba(230,36,63,0.45);}.hero__particles span:nth-child(4){top:58%;left:68%;animation-delay:-6.6s;}.hero__particles span:nth-child(5){top:20%;left:78%;animation-delay:-8.8s;background:rgba(230,36,63,0.45);box-shadow:0 0 9px rgba(230,36,63,0.4);}.hero__particles span:nth-child(6){top:82%;left:38%;animation-delay:-11s;width:2px;height:2px;}.hero__particles span:nth-child(7){top:78%;left:84%;animation-delay:-13.2s;}.hero__particles span:nth-child(8){top:8%;left:62%;animation-delay:-1.3s;width:2px;height:2px;}.hero__particles span:nth-child(9){top:42%;left:12%;animation-delay:-3.4s;background:rgba(230,36,63,0.45);box-shadow:0 0 8px rgba(230,36,63,0.4);}.hero__particles span:nth-child(10){top:88%;left:52%;animation-delay:-7.8s;}.hero__particles span:nth-child(11){top:38%;left:88%;animation-delay:-5.1s;width:2px;height:2px;}.hero__particles span:nth-child(12){top:52%;left:30%;animation-delay:-9.5s;background:rgba(230,36,63,0.5);box-shadow:0 0 9px rgba(230,36,63,0.42);}@keyframes heroParticleFloat{0%,100%{opacity:0;transform:translate(0,0) scale(0.55);}25%{opacity:0.75;transform:translate(8px,-12px) scale(1);}55%{opacity:0.95;transform:translate(-6px,-28px) scale(1);}85%{opacity:0.25;transform:translate(12px,-42px) scale(1);}}@media (prefers-reduced-motion:reduce){.hero__particles span{animation:none !important;opacity:0.35 !important;}}.hero__inner{position:relative;z-index:2;max-width:880px;}.hero__eyebrow{color:var(--cd-red);margin-bottom:28px;}.hero__title{font-family:var(--font-display);font-size:clamp(44px,6vw,80px);font-weight:700;line-height:1.03;letter-spacing:-0.035em;color:var(--cd-ink-inv);margin:0 0 28px;max-width:18ch;}.hero__title em{font-style:normal;color:var(--cd-red);position:relative;}.hero__title em::after{display:none;}.hero__title em{text-decoration:none!important;}.hero__lead{font-size:19px;line-height:1.6;color:rgba(255,255,255,0.72);max-width:62ch;margin:0 0 40px;}.hero__ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:64px;}.hero__meta{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,0.08);border-top:1px solid rgba(255,255,255,0.1);border-bottom:1px solid rgba(255,255,255,0.08);}.hero__meta-item{background:#0A0A0A;padding:22px 20px 22px 24px;position:relative;}.hero__meta-item::before{content:"";position:absolute;top:0;left:24px;width:28px;height:2px;background:var(--cd-red);opacity:0.85;}.hero__meta-num{font-family:var(--font-display);font-weight:700;font-size:32px;letter-spacing:-0.025em;color:var(--cd-ink-inv);line-height:1;margin-top:14px;}.hero__meta-num em{font-style:normal;color:var(--cd-red);}.hero__meta-lbl{font-size:11px;color:rgba(255,255,255,0.55);letter-spacing:0.14em;text-transform:uppercase;margin-top:6px;}.strip{padding:48px 0;background:var(--cd-canvas);border-top:1px solid rgba(36,36,36,0.06);border-bottom:1px solid rgba(36,36,36,0.06);}.strip__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;}.strip__claim{font-family:var(--font-display);font-weight:600;font-size:22px;line-height:1.3;max-width:56ch;color:var(--cd-ink);}.strip__claim em{font-style:normal;color:var(--cd-red);}.section{padding:120px 0;}.section--tight{padding:80px 0;}.section--dark{background:var(--cd-canvas-dark);color:var(--cd-ink-inv);}.section__head{max-width:780px;margin-bottom:56px;}.section__title{font-family:var(--font-display);font-weight:700;font-size:clamp(32px,3.8vw,52px);line-height:1.08;letter-spacing:-0.025em;margin:14px 0 18px;text-wrap:balance;}.section__title em{font-style:normal;color:var(--cd-red);}.section__lead{font-size:18px;line-height:1.6;color:var(--cd-ink-2);max-width:64ch;}.section--dark .section__lead{color:rgba(255,255,255,0.72);}.section--dark .section__title{color:var(--cd-ink-inv);}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}.service-card{background:var(--cd-canvas);border-radius:14px;padding:28px;box-shadow:var(--nm-out);display:flex;flex-direction:column;gap:14px;transition:transform 240ms,box-shadow 240ms;color:var(--cd-ink);text-decoration:none;min-height:280px;}.service-card:hover{transform:translateY(-3px);box-shadow:var(--nm-out-lg);}.service-card:hover .service-card__arrow{background:var(--cd-red);color:#fff;transform:translateX(3px);}.service-card__icon{width:44px;height:44px;border-radius:12px;background:var(--cd-canvas);box-shadow:var(--nm-in-sm);display:grid;place-items:center;color:var(--cd-ink);}.service-card__icon svg{width:20px;height:20px;stroke-width:1.6;}.service-card__eyebrow{font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--cd-red);margin-top:8px;}.service-card__title{font-family:var(--font-display);font-weight:700;font-size:20px;line-height:1.2;letter-spacing:-0.015em;}.service-card__desc{font-size:13.5px;line-height:1.55;color:var(--cd-ink-2);flex:1;}.service-card__foot{display:flex;justify-content:space-between;align-items:center;padding-top:12px;margin-top:auto;border-top:1px dashed rgba(36,36,36,0.12);}.service-card__stat{font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--cd-red);}.service-card__arrow{width:28px;height:28px;border-radius:999px;background:var(--cd-canvas);color:var(--cd-ink);box-shadow:var(--nm-out-sm);display:grid;place-items:center;transition:background 180ms,color 180ms,transform 180ms;}.service-card__arrow svg{width:13px;height:13px;stroke-width:2;}.service-card--highlight{background:var(--cd-canvas-dark);color:var(--cd-ink-inv);box-shadow:var(--nmd-out);}.service-card--highlight .service-card__title{color:var(--cd-ink-inv);}.service-card--highlight .service-card__desc{color:rgba(255,255,255,0.72);}.service-card--highlight .service-card__icon{background:var(--cd-canvas-dark-2);color:var(--cd-red);box-shadow:inset 3px 3px 7px rgba(0,0,0,0.55),inset -3px -3px 7px rgba(58,58,58,0.55);}.service-card--highlight .service-card__foot{border-top-color:rgba(255,255,255,0.15);}.service-card--highlight .service-card__arrow{background:var(--cd-canvas-dark);color:#fff;box-shadow:var(--nmd-out-sm);}.channels{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}.channel{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:20px 22px;display:flex;flex-direction:column;gap:6px;}.channel__name{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--cd-ink-inv);letter-spacing:-0.015em;}.channel__meta{font-family:var(--font-mono);font-size:10px;color:rgba(255,255,255,0.45);letter-spacing:0.06em;text-transform:uppercase;}.channel__status{font-size:12px;color:rgba(255,255,255,0.75);margin-top:8px;display:inline-flex;align-items:center;gap:6px;}.channel__dot{width:6px;height:6px;border-radius:999px;background:#2E6A3A;box-shadow:0 0 8px rgba(46,106,58,0.6);}.attr-feature{background:var(--cd-canvas-dark);color:var(--cd-ink-inv);border-radius:20px;padding:56px;box-shadow:var(--nmd-out);display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}.attr-feature__title{font-family:var(--font-display);font-weight:700;font-size:clamp(28px,3vw,42px);line-height:1.1;letter-spacing:-0.025em;color:var(--cd-ink-inv);margin-bottom:20px;}.attr-feature__title em{font-style:normal;color:var(--cd-red);}.attr-feature__lead{color:rgba(255,255,255,0.72);font-size:16px;line-height:1.65;margin-bottom:28px;}.attr-feature__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}.attr-feature__item{font-size:14px;color:rgba(255,255,255,0.85);display:flex;align-items:flex-start;gap:12px;line-height:1.55;}.attr-feature__item svg{color:var(--cd-red);flex-shrink:0;width:18px;height:18px;margin-top:2px;stroke-width:2.2;}.stat-highlight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}.stat-highlight{background:var(--cd-canvas);border-radius:14px;padding:28px;box-shadow:var(--nm-out);display:block;text-decoration:none;color:var(--cd-ink);transition:transform 240ms;}.stat-highlight:hover{transform:translateY(-3px);}.stat-highlight__n{font-family:var(--font-display);font-weight:700;font-size:56px;color:var(--cd-ink);letter-spacing:-0.035em;line-height:1;}.stat-highlight__n em{font-style:normal;color:var(--cd-red);}.stat-highlight__lbl{font-size:14px;color:var(--cd-ink-2);margin-top:10px;line-height:1.5;}.stat-highlight__meta{margin-top:18px;padding-top:14px;border-top:1px dashed rgba(36,36,36,0.12);font-family:var(--font-mono);font-size:10px;color:var(--cd-ink-3);letter-spacing:0.1em;text-transform:uppercase;display:flex;justify-content:space-between;}.stack-list{list-style:none;padding:0;margin:0;border:1px solid rgba(255,255,255,0.08);border-radius:14px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,0.025) 0%,rgba(255,255,255,0.01) 100%);}.stack-item{position:relative;display:grid;grid-template-columns:32px 40px 1fr auto;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,0.06);transition:background 220ms,padding 220ms;opacity:0;animation:stackItemIn 480ms cubic-bezier(0.22,1,0.36,1) forwards;}.stack-item:last-child{border-bottom:0;}.stack-item:nth-child(1){animation-delay:0ms;}.stack-item:nth-child(2){animation-delay:60ms;}.stack-item:nth-child(3){animation-delay:120ms;}.stack-item:nth-child(4){animation-delay:180ms;}.stack-item:nth-child(5){animation-delay:240ms;}.stack-item:nth-child(6){animation-delay:300ms;}.stack-item:nth-child(7){animation-delay:360ms;}.stack-item:nth-child(8){animation-delay:420ms;}@keyframes stackItemIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}@media (prefers-reduced-motion:reduce){.stack-item{opacity:1 !important;animation:none !important;transform:none !important;}}.stack-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--cd-red);transform:scaleY(0);transform-origin:top;transition:transform 240ms cubic-bezier(0.22,1,0.36,1);}.stack-item:hover{background:rgba(230,36,63,0.045);padding-left:24px;}.stack-item:hover::before{transform:scaleY(1);}.stack-item:hover .stack-item__icon{background:rgba(230,36,63,0.2);border-color:rgba(230,36,63,0.5);transform:scale(1.04);}.stack-item:hover .stack-item__arrow{opacity:1;transform:translateX(0);}.stack-item__n{font-family:var(--font-mono);font-size:11px;font-weight:500;color:rgba(255,255,255,0.28);letter-spacing:0.08em;}.stack-item__icon{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:rgba(230,36,63,0.1);color:var(--cd-red);border:1px solid rgba(230,36,63,0.22);transition:background 220ms,border-color 220ms,transform 220ms;}.stack-item__icon svg{width:18px;height:18px;stroke-width:2;}.stack-item__body{display:flex;flex-direction:column;gap:3px;min-width:0;}.stack-item__name{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--cd-ink-inv);letter-spacing:-0.01em;line-height:1.2;}.stack-item__meta{font-family:var(--font-mono);font-size:11px;color:rgba(255,255,255,0.5);letter-spacing:0.03em;line-height:1.3;}.stack-item__right{display:inline-flex;align-items:center;gap:10px;}.stack-item__tag{font-family:var(--font-display);font-weight:600;font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.68);padding:5px 10px;border-radius:999px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);white-space:nowrap;}.stack-item__tag--core{color:#ff8c9e;background:rgba(230,36,63,0.14);border-color:rgba(230,36,63,0.35);}.stack-item__tag--perf{color:#fcd34d;background:rgba(251,191,36,0.1);border-color:rgba(251,191,36,0.28);}.stack-item__tag--seo{color:#7dd3fc;background:rgba(56,189,248,0.1);border-color:rgba(56,189,248,0.28);}.stack-item__tag--cro{color:#86efac;background:rgba(34,197,94,0.1);border-color:rgba(34,197,94,0.28);}.stack-item__arrow{color:var(--cd-red);opacity:0;transform:translateX(-4px);transition:opacity 200ms,transform 200ms;font-size:14px;font-weight:600;}.stack-cta{display:inline-flex;align-items:center;gap:8px;margin-top:20px;padding:10px 2px;font-family:var(--font-display);font-weight:600;font-size:13px;letter-spacing:0.01em;color:rgba(255,255,255,0.82);text-decoration:none;border-bottom:1px dashed rgba(255,255,255,0.22);transition:color 200ms,border-color 200ms,gap 200ms;width:fit-content;}.stack-cta:hover{color:var(--cd-red);border-color:var(--cd-red);gap:14px;}.stack-cta__arrow{display:inline-block;color:var(--cd-red);font-size:15px;transition:transform 200ms;}.stack-cta:hover .stack-cta__arrow{transform:translateX(4px);}.cases-grid{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:auto auto;gap:20px;}.case-card{position:relative;display:block;border-radius:16px;overflow:hidden;text-decoration:none;color:#fff;background:#141414;box-shadow:var(--nm-out);transition:transform 280ms,box-shadow 280ms;isolation:isolate;min-height:360px;}.case-card:hover{transform:translateY(-4px);box-shadow:var(--nm-out-lg);}.case-card:hover .case-card__media-img{transform:scale(1.06);}.case-card--feature{grid-row:span 2;min-height:740px;}.case-card__media{position:absolute;inset:0;z-index:0;overflow:hidden;}.case-card__media-img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform 700ms cubic-bezier(0.22,1,0.36,1);}.case-card__media--gradient{background:linear-gradient(135deg,#1a1a1a 0%,#2a0f15 50%,#4a0c1a 100%);position:absolute;inset:0;z-index:0;display:grid;place-items:center;}.case-card__media--gradient::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 30% 40%,rgba(230,36,63,0.22),transparent 70%);}.case-card__media::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.45) 0%,rgba(0,0,0,0.1) 35%,rgba(0,0,0,0.82) 100%);z-index:1;}.case-card__chip{position:absolute;top:18px;left:18px;z-index:2;font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:#fff;background:rgba(18,18,18,0.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,0.12);}.case-card__logo-holder{position:absolute;top:14px;right:14px;z-index:2;display:inline-flex;align-items:center;padding:10px 18px;background:rgba(18,18,18,0.45);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.1);border-radius:999px;}.case-card--feature .case-card__logo-holder{top:22px;right:22px;padding:12px 22px;}.case-card__logo{height:32px;max-width:150px;width:auto;object-fit:contain;display:block;}.case-card--feature .case-card__logo{height:44px;max-width:200px;}.case-card__logo--whitewash{filter:brightness(0) invert(1);}.case-card__logo--text{font-family:var(--font-display);font-weight:700;font-size:14px;letter-spacing:-0.01em;color:#fff;text-transform:none;white-space:nowrap;}.case-card--feature .case-card__logo--text{font-size:18px;}.case-card__body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:26px 26px 22px;display:flex;flex-direction:column;gap:14px;}.case-card--feature .case-card__body{padding:40px 40px 36px;gap:18px;}.case-card__metric{font-family:var(--font-display);font-weight:700;font-size:40px;line-height:1;letter-spacing:-0.035em;color:var(--cd-red);text-shadow:0 2px 20px rgba(0,0,0,0.4);}.case-card--feature .case-card__metric{font-size:88px;}.case-card__headline{font-family:var(--font-display);font-weight:600;font-size:17px;line-height:1.35;letter-spacing:-0.01em;color:rgba(255,255,255,0.94);max-width:28ch;margin:0;}.case-card--feature .case-card__headline{font-size:26px;line-height:1.25;max-width:22ch;}.case-card__foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;padding-top:14px;border-top:1px solid rgba(255,255,255,0.12);}.case-card__services{display:flex;gap:6px;flex-wrap:wrap;}.case-card__service{font-family:var(--font-display);font-weight:600;font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.72);}.case-card__cta{font-family:var(--font-display);font-weight:600;font-size:12px;color:var(--cd-red);letter-spacing:0.02em;white-space:nowrap;}.cases-foot{display:flex;justify-content:center;margin-top:40px;}.cases-foot__link{display:inline-flex;align-items:center;gap:14px;padding:14px 28px;border-radius:999px;background:var(--cd-canvas);box-shadow:var(--nm-out-sm);color:var(--cd-ink);font-family:var(--font-display);font-weight:600;font-size:14px;text-decoration:none;letter-spacing:-0.005em;transition:transform 220ms,box-shadow 220ms,color 220ms;}.cases-foot__link:hover{transform:translateY(-2px);box-shadow:var(--nm-out);color:var(--cd-red);}.cases-foot__count{font-family:ui-monospace,Menlo,monospace;font-size:11px;font-weight:500;color:var(--cd-ink-3);letter-spacing:0.04em;padding-left:14px;border-left:1px solid rgba(36,36,36,0.14);}.cases-foot__arrow{color:var(--cd-red);font-size:16px;transition:transform 220ms;}.cases-foot__link:hover .cases-foot__arrow{transform:translateX(4px);}.truths{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}.truth{background:var(--cd-canvas);border-radius:12px;padding:24px;box-shadow:var(--nm-out);display:flex;flex-direction:column;gap:12px;}.truth__n{font-family:var(--font-display);font-weight:700;font-size:32px;color:var(--cd-red);letter-spacing:-0.03em;line-height:1;}.truth__txt{font-family:var(--font-display);font-weight:600;font-size:16px;line-height:1.35;letter-spacing:-0.01em;color:var(--cd-ink);}.truth__txt em{font-style:normal;color:var(--cd-red);}.how{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}.how-step{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.08);border-radius:16px;padding:32px 28px;}.how-step__n{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:0.14em;text-transform:uppercase;color:var(--cd-red);margin-bottom:14px;}.how-step__title{font-family:var(--font-display);font-weight:700;font-size:22px;line-height:1.2;letter-spacing:-0.015em;color:var(--cd-ink-inv);margin-bottom:12px;}.how-step__desc{color:rgba(255,255,255,0.7);font-size:14px;line-height:1.6;}.how-step__meta{margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,0.1);font-family:var(--font-mono);font-size:11px;color:rgba(255,255,255,0.45);letter-spacing:0.08em;text-transform:uppercase;display:flex;justify-content:space-between;}.reviews{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}.review{background:var(--cd-canvas);border-radius:14px;padding:26px 28px;box-shadow:var(--nm-out);display:flex;flex-direction:column;gap:14px;}.review__top{display:flex;gap:14px;align-items:center;}.review__avatar{width:48px;height:48px;border-radius:999px;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:17px;color:#fff;flex-shrink:0;}.review__avatar.c1{background:#E6243F;}.review__avatar.c2{background:#2E6A3A;}.review__avatar.c3{background:#4A60C4;}.review__avatar.c4{background:#B8860B;}.review__meta{display:flex;flex-direction:column;gap:2px;}.review__name{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--cd-ink);}.review__role{font-size:12px;color:var(--cd-ink-3);}.review__stars{display:flex;gap:2px;color:#F0B429;}.review__stars svg{width:15px;height:15px;fill:currentColor;stroke:none;}.review__text{font-size:14.5px;line-height:1.6;color:var(--cd-ink);}.review__text em{color:var(--cd-red);font-style:normal;}.review__foot{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px dashed rgba(36,36,36,0.12);font-family:var(--font-mono);font-size:10px;color:var(--cd-ink-3);letter-spacing:0.06em;text-transform:uppercase;}.review__source{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-display);font-weight:700;color:var(--cd-ink-2);text-transform:none;letter-spacing:0;font-size:12px;}.review__source-g{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--cd-canvas);box-shadow:var(--nm-in-sm);font-size:10px;color:var(--cd-red);font-weight:800;}.faq{display:flex;flex-direction:column;border-top:1px solid rgba(36,36,36,0.1);}.faq__item{border-bottom:1px solid rgba(36,36,36,0.1);padding-block:8px;}.faq__q{font-family:var(--font-display);font-weight:600;font-size:19px;line-height:1.3;letter-spacing:-0.015em;color:var(--cd-ink);padding:18px 48px 18px 0;cursor:pointer;list-style:none;position:relative;}.faq__q::-webkit-details-marker{display:none;}.faq__q::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font-family:var(--font-display);font-weight:500;font-size:28px;color:var(--cd-red);transition:transform 240ms ease;}.faq__item[open] > .faq__q::after{transform:translateY(-50%) rotate(45deg);}.faq__a{padding:0 48px 20px 0;color:var(--cd-ink-2);font-size:16px;line-height:1.65;max-width:72ch;}.faq__a strong{color:var(--cd-ink);}.cta-dark{background:#0A0A0A;padding:100px 0;color:var(--cd-ink-inv);position:relative;overflow:hidden;}.cta-dark::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 40% 35% at 85% 50%,rgba(230,36,63,0.15),transparent 60%);pointer-events:none;}.cta-dark__inner{position:relative;display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center;}.cta-dark__title{font-family:var(--font-display);font-weight:700;font-size:clamp(36px,4vw,56px);line-height:1.05;letter-spacing:-0.03em;color:var(--cd-ink-inv);max-width:16ch;}.cta-dark__title em{font-style:normal;color:var(--cd-red);}.cta-dark__sub{color:rgba(255,255,255,0.7);font-size:16px;line-height:1.6;max-width:48ch;margin-top:16px;}.cta-dark__guarantee{display:flex;align-items:center;gap:10px;padding:14px 20px;margin-top:20px;border-radius:12px;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.08);color:rgba(255,255,255,0.8);font-size:13px;line-height:1.5;}.cta-dark__guarantee strong{color:var(--cd-red);font-weight:600;}.cta-dark__actions{display:flex;flex-direction:column;gap:12px;max-width:380px;}.cta-dark__actions .btn{justify-content:center;}.cta-form{display:flex;flex-direction:column;gap:12px;max-width:400px;}.cta-form__field{display:flex;flex-direction:column;gap:6px;}.cta-form__label{font-family:var(--font-display);font-weight:600;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.55);}.cta-form__input,.cta-form__select{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.12);border-radius:10px;padding:12px 14px;color:#fff;font-family:var(--font-body);font-size:14px;width:100%;transition:border-color 180ms,background 180ms;}.cta-form__input:focus,.cta-form__select:focus{outline:none;border-color:var(--cd-red);background:rgba(255,255,255,0.06);}.cta-form__input::placeholder{color:rgba(255,255,255,0.35);}.cta-form__select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,rgba(255,255,255,0.5) 50%),linear-gradient(135deg,rgba(255,255,255,0.5) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:36px;cursor:pointer;}.cta-form__select option{background:var(--cd-canvas-dark);color:#fff;}.cta-form__submit{width:100%;justify-content:center;margin-top:6px;}.cta-form__hint{font-family:var(--font-mono);font-size:11px;color:rgba(255,255,255,0.45);letter-spacing:0.06em;margin-top:4px;text-align:center;}.cta-form__consent{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:rgba(255,255,255,0.6);line-height:1.4;}.cta-form__consent input{margin-top:3px;accent-color:var(--cd-red);}.cta-form__consent a{color:var(--cd-red);text-decoration:underline;}.site-footer{background:var(--cd-canvas-dark);color:rgba(255,255,255,0.85);padding:56px 0 40px;text-align:center;font-size:12px;color:rgba(255,255,255,0.5);}.site-footer a{color:rgba(255,255,255,0.85);text-decoration:none;}.sticky-cta{position:fixed;bottom:0;left:0;right:0;background:rgba(10,10,10,0.94);backdrop-filter:saturate(1.3) blur(14px);padding:12px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px;z-index:200;transform:translateY(110%);transition:transform 360ms cubic-bezier(0.22,1,0.36,1);border-top:1px solid rgba(230,36,63,0.3);box-shadow:0 -10px 32px rgba(0,0,0,0.4);}.sticky-cta.visible{transform:translateY(0);}.sticky-cta__left{display:flex;flex-direction:column;gap:2px;color:#fff;}.sticky-cta__title{font-family:var(--font-display);font-weight:600;font-size:14px;line-height:1.2;}.sticky-cta__title em{font-style:normal;color:var(--cd-red);}.sticky-cta__sub{font-family:var(--font-mono);font-size:11px;color:rgba(255,255,255,0.55);letter-spacing:0.06em;}.sticky-cta__actions{display:flex;gap:10px;align-items:center;flex-shrink:0;}.sticky-cta__close{background:transparent;border:1px solid rgba(255,255,255,0.15);color:rgba(255,255,255,0.55);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;cursor:pointer;font-size:18px;font-weight:500;line-height:1;}.sticky-cta__close:hover{color:#fff;border-color:rgba(255,255,255,0.4);}@media (max-width:1024px){.services,.truths,.stat-highlight-grid,.how,.reviews,.cta-dark__inner,.cases-grid{grid-template-columns:1fr;}.case-card--feature{grid-row:auto;min-height:360px;}.hero__meta{grid-template-columns:repeat(2,1fr);}.attr-feature{grid-template-columns:1fr;padding:40px;}.channels{grid-template-columns:1fr 1fr;}}@media (max-width:720px){.site-nav{display:none;}.site-header__pill{grid-template-columns:1fr auto;}.hero{padding:140px 0 80px;}.hero__meta{grid-template-columns:1fr;}.section{padding:80px 0;}.channels{grid-template-columns:1fr;}.sticky-cta{flex-direction:column;gap:10px;padding:12px 16px;align-items:stretch;}.sticky-cta__actions{justify-content:space-between;}}.eyebrow::before{box-shadow:0 0 0 3px rgba(230,36,63,.18),0 0 0 0 rgba(230,36,63,.28),0 0 12px rgba(230,36,63,.45) !important;animation:eyebrowPulse 2.4s ease-in-out infinite}@keyframes eyebrowPulse{0%,100%{box-shadow:0 0 0 3px rgba(230,36,63,.18),0 0 0 0 rgba(230,36,63,.22),0 0 10px rgba(230,36,63,.32);transform:scale(1)}50%{box-shadow:0 0 0 3px rgba(230,36,63,.14),0 0 0 7px rgba(230,36,63,.06),0 0 16px rgba(230,36,63,.52);transform:scale(1.08)}}
/* @id cronuts-subservices-host-reset */
body.cronuts-pillar-look .entry-header,
body.cronuts-pillar-look .page-header,
body.cronuts-pillar-look .entry-title,
body.cronuts-pillar-look .page-title,
body.cronuts-pillar-look .breadcrumbs { display: none !important; }
body.cronuts-pillar-look #content,
body.cronuts-pillar-look .site-main,
body.cronuts-pillar-look article,
body.cronuts-pillar-look .entry-content { padding: 0 !important; margin: 0 !important; max-width: none !important; width: 100% !important; }
body.cronuts-pillar-look .entry-content > .cronuts-pillar-page { font-family: var(--font-body, 'Inter', system-ui, sans-serif); color: var(--cd-ink, #242424); background: var(--cd-canvas, #E0E5EC); }
/* @id cronuts-ui-final-overrides */
/* ============================================================
   Cronuts UI Final Overrides — last in cascade. !important.
   v1.5.0: skip-link + screen-reader-text hidden inline.
   ============================================================ */

/* GLOBAL: skip/screen-reader links — hidden until focused */
:where(html) .skip-link,
:where(html) .screen-reader-text{
  clip:rect(1px,1px,1px,1px)!important;
  clip-path:inset(50%)!important;
  height:1px!important;
  width:1px!important;
  margin:-1px!important;
  overflow:hidden!important;
  padding:0!important;
  position:absolute!important;
  word-wrap:normal!important
}
:where(html) .skip-link:focus,
:where(html) .screen-reader-text:focus{
  clip:auto!important;
  clip-path:none!important;
  display:block!important;
  height:auto!important;
  width:auto!important;
  margin:0!important;
  overflow:visible!important;
  position:fixed!important;
  top:1rem!important;
  left:1rem!important;
  z-index:100000!important;
  background:#fff!important;
  color:#000!important;
  padding:.5rem 1rem!important;
  border-radius:4px!important
}

/* ============================================================
   UXCRO-102 (F2C p2) — kickers/eyebrows rojos AA, GLOBAL.
   Base clara #C71C33; contextos oscuros #FF8A9B (ratios en header).
   Solo texto: los acentos no textuales (dots, borders, fondos)
   conservan --cd-red.
   ============================================================ */
:where(html) .eyebrow{ color:#C71C33!important }
:where(html) .hero .eyebrow,
:where(html) .hero__eyebrow,
:where(html) .cases-hero .eyebrow,
:where(html) .blog-hero .eyebrow,
:where(html) .cta-dark .eyebrow,
:where(html) .ai-strip .eyebrow,
:where(html) .senal .eyebrow,
:where(html) .cta-card .eyebrow,
:where(html) .section--dark .eyebrow,
:where(html) [data-ti-section] .eyebrow,
:where(html) #opiniones .eyebrow{ color:#FF8A9B!important }

/* ============================================================
   Eyebrow — separación punto↔texto DISPLAY-AGNÓSTICA (global).
   El gap:8px del flex es inerte cuando .eyebrow computa display:block
   (mayoría de páginas), dejando el punto (::before) pegado al texto.
   Se mueve la separación al propio punto vía margin (funciona sea
   block/inline/flex) y se anula el gap para no duplicar espacio en
   las variantes que sí son inline-flex. NO afecta a los eyebrows de
   línea BEM (.author-hero__eyebrow, .aiabcn-hero__eyebrow, etc.:
   son clases distintas, no .eyebrow).
   ============================================================ */
:where(html) .eyebrow{ gap:0!important }
:where(html) .eyebrow::before{ margin-right:14px!important }

/* ============================================================
   UXCRO-105 (F2C p2) — sticky-cta: target de cierre >=24x24 con
   nombre accesible visual, y altura móvil <=72px (una fila de
   texto compacta + fila de acciones; sin eliminar contenido).
   ============================================================ */
:where(html) .sticky-cta__close{
  width:32px!important;height:32px!important;
  min-width:32px!important;min-height:32px!important;
  display:inline-grid!important;place-items:center!important;
  font-size:18px!important;line-height:1!important;
  border:1px solid rgba(255,255,255,.18)!important;border-radius:50%!important;
  background:transparent;color:rgba(255,255,255,.75);cursor:pointer;
  padding:0!important;flex-shrink:0
}
:where(html) .sticky-cta__close:hover{ color:#fff;border-color:rgba(255,255,255,.45) }
@media(max-width:720px){
  :where(html) .sticky-cta{ flex-direction:column!important;gap:6px!important;padding:7px 14px!important;align-items:stretch!important }
  :where(html) .sticky-cta__left{ display:flex!important;flex-direction:row!important;align-items:baseline!important;gap:8px!important;min-width:0 }
  :where(html) .sticky-cta__title{ font-size:12.5px!important;line-height:1.25!important;margin:0!important;white-space:nowrap }
  :where(html) .sticky-cta__sub{ font-size:12px!important;line-height:1.25!important;margin:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;min-width:0 }
  :where(html) .sticky-cta__actions{ justify-content:space-between!important;align-items:center!important;gap:8px!important }
  :where(html) .sticky-cta__actions .btn{ padding:7px 12px!important;font-size:12.5px!important;min-height:34px!important }
  :where(html) .sticky-cta__close{ width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important }
}

/* ============================================================
   AA Z0 fase2d — residuales rojos <4.5:1 no cubiertos por UXCRO-102.
   Texto rojo PERMANENTE (rest, sin regla :hover que cambie color) que
   computaba rgb(230,36,63)/var(--cd-red) con ratio <4.5. Contextos
   OSCUROS -> #FF8A9B (GLOBAL, seguro en cualquier fondo negro):
   - .team-carousel__eyebrow  10.4px/#121212  4.18 -> #FF8A9B + 12px (8.35:1)
   - .cronuts-fmc__eyebrow     10px/#0A0A0A   4.42 -> #FF8A9B + 12px (~8.8:1)
   - .mega__foot-link          13px/#121212   4.18 -> #FF8A9B        (~8.4:1)
   - .case-card__cta           12px/#141414   4.18 -> #FF8A9B        (~8.3:1)
   (Las variantes de contexto CLARO #C71C33 van dentro de !$is_sector.)
   ============================================================ */
:where(html) .team-carousel__eyebrow{ color:#FF8A9B!important; font-size:.75rem!important }
:where(html) .cronuts-fmc__eyebrow{ color:#FF8A9B!important; font-size:12px!important }
:where(html) .mega__foot-link{ color:#FF8A9B!important }
:where(html) .case-card__cta{ color:#FF8A9B!important }

/* AA Z0 fase2d — residuales rojos en contexto CLARO -> #C71C33 (solo
   páginas no-sector; en sector el canvas es oscuro y no aplican):
   - .service-card__stat  13px/#fff      4.48 -> #C71C33 (5.77:1)
   - .service-card__link  13px/#fff      4.48 -> #C71C33 (5.77:1)
   - .product__cta        12px/#E0E5EC   3.54 -> #C71C33 (4.55:1) */
:where(html) .service-card__stat{ color:#C71C33!important }
:where(html) .product__cta{ color:#C71C33!important }

/* 0. Canvas: body light, sections plain transparent (non-sector pages only) */
html, body{ background:#E0E5EC!important; color:#242424 }
:where(html) main, :where(html) #main, :where(html) body > main{
  background:transparent!important
}
:where(html) section.section:not(.section--dark):not([data-ti-section]):not(#opiniones):not(.cta-dark):not(.hero){
  background:transparent!important
}

/* 1. Botones — pill style global (border-radius 999px) */
:where(html) .btn,
:where(html) a.btn,
:where(html) button.btn,
:where(html) .btn--primary,
:where(html) .btn--secondary,
:where(html) .btn--ghost,
:where(html) .btn--light,
:where(html) .btn--large,
:where(html) .btn--dark-primary,
:where(html) .btn--dark-secondary,
:where(html) .btn--outline,
:where(html) .btn--tertiary,
:where(html) .ctc-submit,
:where(html) .ctc-calendly,
:where(html) input[type="submit"],
:where(html) button[type="submit"]{
  border-radius:999px!important
}

/* 2. Hero — primary CTA (rojo solido pill) — AA: #C71C33 (was #e6243f, FASE1 R1) */
:where(html) .btn.btn--dark-primary{
  background:var(--cd-btn-red)!important;
  color:#fff!important;
  border:1.5px solid transparent!important;
  box-shadow:var(--cd-shadow-sm)!important
}
:where(html) .btn.btn--dark-primary:hover{
  background:var(--cd-btn-red-hover)!important;
  color:#fff!important;
  box-shadow:var(--cd-shadow-sm)!important;
  transform:translateY(-1px)
}

/* 3. Hero — secondary ghost (borde 70% alpha) */
:where(html) .btn.btn--dark-secondary{
  background:transparent!important;
  border:1.5px solid rgba(255,255,255,.7)!important;
  color:#fff!important;
  box-shadow:none!important
}
:where(html) .btn.btn--dark-secondary:hover{
  background:rgba(255,255,255,.12)!important;
  border-color:#fff!important;
  color:#fff!important;
  transform:translateY(-1px)
}

/* 4. Header pill CTA — primary rojo siempre */
:where(html) .site-header__pill .btn,
:where(html) .site-header__pill .btn--primary{
  background:var(--cd-red-btn)!important;
  color:#fff!important;
  border:1px solid rgba(230,36,63,.5)!important;
  box-shadow:var(--cd-shadow-sm)!important
}
:where(html) .site-header__pill .btn:hover,
:where(html) .site-header__pill .btn--primary:hover{
  background:var(--cd-btn-red-hover)!important;
  color:#fff!important;
  border-color:rgba(230,36,63,.7)!important;
  box-shadow:var(--cd-shadow-sm)!important
}


/* ============================================================
   UX-VISUAL 2026-11-01 (A7 task 19) — tokens y capa compartida.
   Raiz: los mismos pares de color y sombras estaban repetidos en
   decenas de plantillas. Se definen UNA vez aqui y se aplican por
   familia de componente. Ratios WCAG en el informe
   (ops/logs/cro-review/a7-ux-visual-20261101/t19-contrast.py).
   - --cd-red-text     texto rojo PEQUENO sobre fondo claro (#e0e5ec/#fff)
   - --cd-red-on-dark  texto rojo sobre fondo oscuro (#0a0a0a..#2b2b2b)
   - --cd-red-btn      fondo de boton con texto blanco (4.78:1)
   - --cd-shadow-sm    UNICA sombra de elementos pequenos (sin brillo rojo)
   --cd-red (#e6243f) se conserva para acentos no textuales y titulares grandes.
   ============================================================ */
:root{
  --cd-red-text:#B0172D;
  --cd-red-on-dark:#FF6B7D;
  --cd-red-btn:#DF1F3A;
  --cd-shadow-sm:0 1px 2px rgba(17,24,39,.06),0 2px 6px rgba(17,24,39,.06);
}

/* --- Sombras: elementos pequenos planos, sin bisel ni halo de color --- */
:where(html) .btn--primary,
:where(html) .btn--dark-primary,
:where(html) .btn--secondary,
:where(html) .btn--primary:hover,
:where(html) .btn--dark-primary:hover,
:where(html) .btn--secondary:hover,
:where(html) .btn--primary:focus-visible,
:where(html) .btn--dark-primary:focus-visible,
:where(html) .cta-final__btn--primary,
:where(html) .cta-band__btn--primary,
:where(html) .aside-cta__btn--primary,
:where(html) .case-mid-cta__btn,
:where(html) .case-mobile-bar__btn,
:where(html) .cta-form__submit,
:where(html) .senal__form-submit,
:where(html) .cdx-btn-primary-dark,
:where(html) .cta-dark__submit,
:where(html) .ctc-submit,
:where(html) .chatbot-btn--primary,
:where(html) .cd-intro-casos__foot-btn--primary,
:where(html) .crc-btn,
:where(html) .crc-submit,
:where(html) .lux-submit,
:where(html) .cronuts-fmc__btn,
:where(html) .social--primary,
:where(html) .chip--active,
:where(html) .archive-letter,
:where(html) .archive-letter.is-active,
:where(html) .cases-foot__link,
:where(html) .cases-foot__link:hover,
:where(html) .crcf-ico,
:where(html) .service-card__arrow,
:where(html) .service-card--highlight .service-card__arrow,
:where(html) .service-card__icon,
:where(html) .service-card--highlight .service-card__icon,
:where(html) .value-card__icon,
:where(html) .stat__chip,
:where(html) .stat__delta,
:where(html) .product__icon,
:where(html) .product-card__icon,
:where(html) .int-stack__icon,
:where(html) .benefit-card__icon,
:where(html) .lux-form__icon,
:where(html) .tcard__icon,
:where(html) .site-footer .footer-socials a{
  box-shadow:var(--cd-shadow-sm)!important
}

/* --- Boton: texto blanco sobre rojo >= 4.5 (solo el FONDO del boton) --- */
:where(html) .btn--primary{ --btn-bg:var(--cd-red-btn) }
:where(html) .tag-new,
:where(html) .cronuts-geo-cta > a,
:where(html) .case-mobile-bar__btn,
:where(html) .chatbot-btn--primary,
:where(html) .chip--active{ background-color:var(--cd-red-btn)!important;color:#fff!important }
:where(html) .btn--primary:hover,
:where(html) .btn--dark-primary:hover{ background-color:var(--cd-red-btn) }
:where(html) .review__avatar.c4{ background-color:#8F6A09!important; color:#fff!important }
:where(html) .review__avatar.c1{ background-color:var(--cd-red-btn)!important }

/* --- Texto rojo sobre fondo OSCURO --- */
:where(html) .how-step__n,
:where(html) .loop-stage__n,
:where(html) .ctc-step__n,
:where(html) .site-footer__col > h4,
:where(html) .attr-feature .eyebrow,
:where(html) .system-feature .eyebrow,
:where(html) .geo-feature .eyebrow,
:where(html) #canales .eyebrow,
:where(html) #canales > div > p,
:where(html) #hallazgos .eyebrow,
:where(html) .geo-feature > div > div > p,
:where(html) .diag-callout__title,
:where(html) .sticky-cta__title em,
:where(html) .reviews-band__rating-link,
:where(html) .diag-reviews__link,
:where(html) .cronuts-related__card .kicker,
:where(html) .cronuts-recursos__card .kicker,
:where(html) .lux-hero__trust-num em,
:where(html) .lux__rail span,
:where(html) .hero__badge strong,
:where(html) .hero__meta-num em,
:where(html) .crcf-arr,
:where(html) [data-ti-section] a[rel~="noopener"][target="_blank"][style*="color: var(--cd-red)"]{
  color:var(--cd-red-on-dark)!important
}
/* Texto tinta (#242424) pintado dentro de un bloque oscuro (109 plantillas con style inline) */
:where(html) [data-ti-section][style*="#1a1a1a" i] div[style*="color: var(--cd-ink)"],
:where(html) .diag-reviews__score{ color:#E0E5EC!important }
:where(html) .cronuts-logos-strip__label{ color:#8A8A8A!important }
:where(html) .geo-engine__by,
:where(html) .channel > .channel__meta{ color:#9A9A9A!important }
:where(html) .site-footer__copy{ color:#8E8E8E!important }
:where(html) .hero__quote-author{ color:#fff!important }

/* --- Texto rojo PEQUENO sobre fondo CLARO --- */
:where(html) .strip__claim em,
:where(html) .truth__txt em,
:where(html) .review__text em,
:where(html) .team-card__role,
:where(html) .cite-block__btn,
:where(html) .cronuts-byline a,
:where(html) .cronuts-preferred-source--post a,
:where(html) .post-toc__label,
:where(html) .post-toc__cta a,
:where(html) .reviews-agg__link,
:where(html) .archive-card__cta,
:where(html) .product-card__link,
:where(html) .product-card__subtitle,
:where(html) .product-card__stat em,
:where(html) .product__tag,
:where(html) .article-card__arrow,
:where(html) .cronuts-next-step__eyebrow,
:where(html) .ctc-face__role,
:where(html) .crc-section-eyebrow,
:where(html) .crc-packs-title,
:where(html) .crc-panel-title,
:where(html) .stat__n em,
:where(html) main :is(p,li) > a:not([class]):not(.btn):not(:is(.section--dark,.cta-dark,[data-ti-section],.hero,footer,.site-footer,.attr-feature,#canales) *){
  color:var(--cd-red-text)!important
}
:where(html) .chip__count{ color:#4A4D52!important }
:where(html) .chip--active .chip__count{ color:#fff!important }
:where(html) .team-section__note,
:where(html) .int-stack .section__lead{ color:#545760!important }
:where(html) .cronuts-ti-light .nowrap,
:where(html) .cronuts-ti-light .nowrap strong{ color:var(--cd-ink)!important }

/* t27:begin */
/* ============================================================
   UX-CLEANUP 2026-11-01 (A7 task 27) - cola larga de contraste, boton rojo unico.
   --cd-btn-red (#DF1F3A, 4.78:1 con blanco) es el UNICO rojo de fondo de boton con
   texto blanco; --cd-btn-red-hover (#C8182F, 5.79:1) es su estado hover/active.
   Sustituye a #C71C33 (boton) y a #E6243F (boton con texto blanco). El #C71C33 de
   TEXTO sobre claro es otro token (--cd-red-text) y no se toca aqui.
   Especificidad: `html body` + clase para ganar a las reglas !important de plantilla
   (p.ej. `.post-body .prose a`), sin recurrir a inline.
   ============================================================ */
:root{
  --cd-btn-red:#DF1F3A;
  --cd-btn-red-hover:#C8182F;
  --cd-red-btn:var(--cd-btn-red);
  --cd-green-text:#0B6B3A;
}
html body :is(.btn--primary,.btn--dark-primary,.hero__btn--primary,.aia-btn--primary,.cta-card__btn,.cta-band__btn--primary,.senal__form-submit,.blog-search button,.cta-audit-geo__btn,.cta-pw__btn,.cta-roi__btn,.sl-hero__btn--primary,.sl-cta-banner__btn,.cronuts-fmc__btn,.chip--active,.tag-new,.case-mobile-bar__btn,.chatbot-btn--primary,.featured-card__author-avatar,.aside-cta__btn--primary,.cta-final__btn--primary,.cta-form__submit,.ctc-submit,.crc-btn,.crc-submit,.cd-intro-casos__foot-btn--primary,.cronuts-geo-cta > a,.team-card__badge,.archive-letter.is-active,.social--primary,.testimonial-block__avatar){
  background-color:var(--cd-btn-red)!important;color:#fff!important
}
html body .post-body .prose .cronuts-geo-cta > a:not(#_),html body .cronuts-geo-cta > a:not(#_){background-color:var(--cd-btn-red)!important;color:#fff!important}
html body .post-body .prose .cronuts-geo-cta > a:not(#_):is(:hover,:focus-visible){background-color:var(--cd-btn-red-hover)!important}
/* botones con fondo rojo en style inline (texto blanco): mismo rojo unico */
html body :is(a,button)[style*="background:#E6243F" i]:is([style*="color:#fff" i],[style*="color: #fff" i],[style*="color:#ffffff" i],[style*="color: #ffffff" i]),
html body :is(a,button)[style*="background: #E6243F" i]:is([style*="color:#fff" i],[style*="color: #fff" i],[style*="color:#ffffff" i],[style*="color: #ffffff" i]),
html body :is(a,button)[style*="background:var(--cd-red)" i]:is([style*="color:#fff" i],[style*="color: #fff" i],[style*="color:#ffffff" i],[style*="color: #ffffff" i]),
html body :is(a,button)[style*="background: var(--cd-red)" i]:is([style*="color:#fff" i],[style*="color: #fff" i],[style*="color:#ffffff" i],[style*="color: #ffffff" i]){background-color:var(--cd-btn-red)!important}
html body :is(.btn--primary,.btn--dark-primary,.hero__btn--primary,.aia-btn--primary,.cta-card__btn,.cta-band__btn--primary,.senal__form-submit,.blog-search button,.cta-audit-geo__btn,.cta-pw__btn,.cta-roi__btn,.sl-hero__btn--primary,.sl-cta-banner__btn,.cronuts-fmc__btn,.case-mobile-bar__btn,.chatbot-btn--primary,.aside-cta__btn--primary,.cta-final__btn--primary,.cta-form__submit,.ctc-submit,.cronuts-geo-cta > a):is(:hover,:focus-visible,:active){
  background-color:var(--cd-btn-red-hover)!important;color:#fff!important
}
html body .team-card--linked::after{background:var(--cd-btn-red)!important}
html body .header .btn--primary,html body .site-header__pill .btn,html body .site-header__pill .btn--primary{background-color:var(--cd-btn-red)!important}
html body .site-header__pill .btn:hover,html body .site-header__pill .btn--primary:hover,html body .btn.btn--dark-primary:hover{background-color:var(--cd-btn-red-hover)!important}
html body .btn.btn--dark-primary{background-color:var(--cd-btn-red)!important}
/* CookieHub (solo nuestra CSS): mismo rojo unico, mismo tamano y maquetacion. */
html body #ch2-dialog .ch2-btn.ch2-btn-primary,
html body .ch2-allow-all-btn.ch2-btn-primary,
html body .ch2-deny-all-btn.ch2-btn-primary{background-color:var(--cd-btn-red)!important;border-color:var(--cd-btn-red)!important;color:#fff!important}
html body #ch2-dialog .ch2-btn.ch2-btn-primary:hover,
html body .ch2-allow-all-btn.ch2-btn-primary:hover,
html body .ch2-deny-all-btn.ch2-btn-primary:hover{background-color:var(--cd-btn-red-hover)!important;border-color:var(--cd-btn-red-hover)!important}

/* --- Texto rojo / gris sobre fondo OSCURO --- */
html body .section--dark :is([style*="color: var(--cd-red)"],[style*="color:var(--cd-red)"],[style*="color:#E6243F" i],[style*="color: #E6243F" i]),
html body section[style*="#1a1a1a" i] :is([style*="color: var(--cd-red)"],[style*="color:var(--cd-red)"]),
html body .cdx-step-eyebrow,
html body .geo-social__reviews-link,
html body nav[aria-label="Legal"] > a,
html body .aside-cta__eyebrow,
html body .ctc-eyebrow,html body .ctc-form__kicker,
html body .crcf-wrap .crcf-arr,
html body .crc-results-head span,
html body .tcard__metrics .tcard__metric > *,
html body .case-card__cta > span[aria-hidden],
html body #canals p[style*="cd-red"],html body .proof .eyebrow,html body .cta-dark__guarantee strong,html body .cta-card__eyebrow,
/* A7 2026-11-09: brand/footer .dot AA on dark (live 4.18:1 with --cd-red; use --cd-red-on-dark like meta .dot) */
html body .brand__word .dot,html body .footer-brand__word .dot,html body .site-footer .footer-brand__word .dot,html body .site-footer__meta .dot,html body .sector-pain__num,html body .case-mid-cta__eyebrow,html body .ce-formats-cta__arrow,html body .case-mid-cta .eyebrow,
html body .conclusion :is(a,a span,em,strong),html body .cronuts-geo-cta :is(a:not([style*="background"]),em,strong){color:var(--cd-red-on-dark)!important}
html body section[style*="#1a1a1a" i] .container > div > div:is([style*="color: var(--cd-ink)"],[style*="color:var(--cd-ink)"]){color:var(--cd-ink-inv,#EBEAEA)!important}
html body :is(.geo-feature,.system-feature,.attr-feature,.proof) :is([style*="color: var(--cd-red)"],[style*="color:var(--cd-red)"]),
html body .section--dark .cd-btn{color:var(--cd-red-on-dark)!important}
html body .crcf-wrap .crcf-x{color:#A0A0AA!important}
html body .hero__trust-ctx{color:rgba(255,255,255,.66)!important}
html body .hero__scroll > span{color:rgba(255,255,255,.62)!important}
html body .kpi-strip__desc{color:rgba(255,255,255,.7)!important}
html body .case-chip--year{color:rgba(255,255,255,.78)!important}
html body .ctc-opt{color:rgba(255,255,255,.7)!important}
html body .ctc-consent > span > a{color:#FFBCC5!important}
html body .logos-strip--hero .logos-strip__label,html body .cronuts-logos-strip__label{color:rgba(255,255,255,.7)!important}
html body .how-step__meta > span{color:#A8A8A8!important}
html body .proof__label,html body .related__eyebrow{color:#A8A8A8!important}
html body .fit-card--no > .fit-card__title{color:var(--cd-ink-inv,#EBEAEA)!important}
html body .llms-how__n{color:rgba(244,244,245,.5)!important}
html body .ce-format__n{color:rgba(255,255,255,.62)!important}
html body .geo-value__num{color:rgba(244,244,245,.55)!important}
html body :is(.cta-card__hint,.cta-form__hint,.aside-cta__sub){color:rgba(255,255,255,.64)!important}
html body .case-card__metric > span{color:rgba(255,255,255,.95)!important}
html body .crc-insight{color:#D4D4DA!important}
html body .btn--secondary > span[aria-hidden]{opacity:1!important}
html body .use-case__n{opacity:1!important}
html body .prose thead tr[style*="color:#fff" i] > th,html body .prose thead tr[style*="color: #fff" i] > th{color:#fff!important}
html body .hero__btn--primary > span[aria-hidden]{color:#fff!important}
html body .team-carousel__eyebrow{color:#FFA3B0!important}
html body .team-carousel__subtext{color:rgba(255,255,255,.72)!important}
html body .stack-cta{color:rgba(255,255,255,.9)!important}
html body .cdx-analyst__badge{color:#FFB0BA!important}

/* --- Calculadora ROI: tokens neu corregidos en origen; aqui el rojo de texto --- */
html body.crc-page .crc-field-head .crc-val,
html body.crc-page .crc-step em,
html body.crc-page .crc-pk.is-on .crc-pk-tag{color:var(--cd-red-text)!important}
html body.crc-page .crc-step.is-done em{color:#fff!important;background:var(--cd-btn-red)!important}

/* --- CLS: ancho del h1 de hero independiente de la tipografia ---
   `max-width:18ch` depende de la fuente: con la tipografia de reserva (ch = 0,638em) el h1 medía 992 px y con Poppins
   (ch = 0,657em) 1.022 px, asi que al cambiar de fuente el titular pasaba de 3 a 2 lineas (91 px de salto, CLS 0,24
   en /paid-media/, /desarrollo-web/, /seo-geo/). 11,83em = 1.022 px a 86,4 px = 18ch de Poppins 700: mismo aspecto, ancho estable. */
html body .hero__title{max-width:11.83em!important}

/* Cabecera: el elemento header.site-header NO pinta nada fuera del radio de la pildora (medido: 0 sangrados en 154 ejecuciones);
   se deja explicito para que ninguna regla futura le ponga fondo/sombra propios. */
html body header.site-header{background:transparent!important;box-shadow:none!important;border:0!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}

/* --- CLS: reservar la altura de los widgets de reseñas que se hidratan tarde (Trustindex) ---
   Medido (1440 / 390): contacto 293 / 534 px, sector 308 / 549 px. Antes el contenedor medía 0-58 px y al hidratar empujaba
   todo lo de debajo (CLS 0,19 en /ca/contacte/ y en /sectores/*). */
html body .ctc-reviews__widget{min-height:293px}
html body .sector-page .sector-testimonials__widget{min-height:308px}
@media(max-width:720px){
  html body .ctc-reviews__widget{min-height:534px}
  html body .sector-page .sector-testimonials__widget{min-height:549px}
}
/* --- Texto rojo / gris sobre fondo CLARO (no-sector) --- */
html body :is(.cronuts-byline a,.post-body .prose .cronuts-byline a,.cronuts-byline > a),
html body :is(.product-card__chip--price,.product-card__chip,.blog-card__meta-read,.featured-card__cta,.featured-card__cta span,.ctc-cases-foot__cta,.term-card__cta,#archive-count,.roadmap__eta,.cd-tldr__eyebrow,.chatbot-areas .chatbot-section__eyebrow,.chatbot-faq .chatbot-section__eyebrow,.chatbot-conclusion .chatbot-section__eyebrow,.archive-card__letter,.cases-foot__arrow,strong[itemprop="jobTitle"],.social--link,.social--link span,.quote__text > em,.review__source-g,.cmp-hi,.wp-block-paragraph > .cd-btn:not(.section--dark *),.logos-strip__label > em),
html body :is(.cd-comparison__table th,.cd-glossary__item dd a,[itemprop="hasDefinedTerm"] > dt),
html body :is(a[href="#calculadora"][style*="cd-red"],a[href$="auditoria-geo/"][style*="cd-red"]),
html body main dd > a[rel~="noopener"]{color:var(--cd-red-text)!important}
/* texto rojo inline sobre fondo claro: solo fuera de contenedores oscuros conocidos */
html body main :is(p,span,em,strong,a,dt,div,li,td,th)[style*="color: var(--cd-red)"]:not(:is(.section--dark,.cta-dark,[data-ti-section],.hero,.cta-card,.senal,.ai-strip,.conclusion,.attr-feature,.cronuts-geo-cta,#opiniones,#canales,#canals,.cdx-card,.ctc-hero,.lux,.geo-feature,.system-feature,.proof,section[style*="#1a1a1a" i],aside[style*="background"],footer) *),
html body main :is(p,span,em,strong,a,dt,div,li,td,th)[style*="color:var(--cd-red)"]:not(:is(.section--dark,.cta-dark,[data-ti-section],.hero,.cta-card,.senal,.ai-strip,.conclusion,.attr-feature,.cronuts-geo-cta,#opiniones,#canales,#canals,.cdx-card,.ctc-hero,.lux,.geo-feature,.system-feature,.proof,section[style*="#1a1a1a" i],aside[style*="background"],footer) *){color:var(--cd-red-text)!important}
html body .chip__count{color:#4A4D52!important;opacity:1!important}
html body .chip--active .chip__count{color:#fff!important;opacity:1!important}
html body .chatbot-areas__card-num{color:var(--cd-green-text)!important}
html body .fact-pill__k,html body .tldr__label{color:#4F535B!important}
html body .use-case__n{color:rgba(176,23,45,.75)!important}
/* --- #servicios .stack-list: componente de tema oscuro sin superficie oscura (EN/CA de growth, /desarrollo-web/ x3,
   /analitica-datos/): el texto blanco caia sobre el body claro = invisible. Mismo arreglo que ya lleva la plantilla ES de growth,
   acotado a secciones NO oscuras para no tocar las paginas que lo usan dentro de section--dark. --- */
html body section#servicios.section:not(.section--dark) .stack-list{background:linear-gradient(180deg,rgba(255,255,255,.03) 0%,rgba(255,255,255,.01) 100%),var(--cd-canvas-dark,#242424)!important;box-shadow:var(--cd-nmd-out,0 12px 32px rgba(17,24,39,.18))!important}
html body section#servicios.section:not(.section--dark) .stack-item{text-decoration:none!important}
html body section#servicios.section:not(.section--dark) .stack-cta{color:var(--cd-ink,#242424)!important;border-bottom-color:rgba(36,36,36,.28)!important}
html body section#servicios.section:not(.section--dark) .stack-cta:hover{color:var(--cd-red-text)!important;border-bottom-color:var(--cd-red-text)!important}
html body section#servicios.section:not(.section--dark) .stack-item__tag--head{color:#FF8C9E!important}
/* t27:end */
/* t53:begin */
/* ============================================================
   ARREGLALO 2026-11-02 (A7 task 53) - contraste real medido con axe + pixeles en
   /, /contactar-consultora-digital-crecimiento/, /planes/, /desarrollo-web/, /glosario/ y las 3 URL CA.
   Solo color/fondo, con tokens ya existentes: --cd-ink (#242424), --cd-red-on-dark (#FF6B7D).
   - Trustindex (CSS del proveedor con selector [data-layout-id][data-set-id][data-pid] y !important
     de atributo): .ti-read-more #a2a2a2 y .ti-date #acacac sobre #444 (3,81 y 4,29) pasan a #FFFFFF y #C4C4C4
     (>= 10:1 y 5,6:1); .ti-rating blanco sobre el fondo CLARO de .cronuts-ti-light (1,26:1) pasa a --cd-ink.
   - .hero__trust-item:hover: el resplandor rojo (::before) deja el 66 % blanco de .hero__trust-ctx en 2,72:1.
   - .team-carousel__eyebrow sobre la foto del carrusel (3,2-4,1:1): fondo de contraste detras del texto.
   - Los 20 hallazgos estaticos de la linea base (lang-pill, .ctc-*, .section__lead, #opiniones, [data-ti-section])
     miden >= 4,5:1 en render real; la herramienta estatica supone el fondo claro del body. Ver t53-report.
   ============================================================ */
html body .ti-widget[data-layout-id] .ti-read-more,
html body .ti-widget[data-layout-id] .ti-read-more span{color:#FFFFFF!important;opacity:1!important}
html body .ti-widget[data-layout-id] .ti-widget-container .ti-date,
html body .ti-widget[data-layout-id] .ti-profile-details .ti-date{color:#C4C4C4!important}
html body .cronuts-ti-light .ti-widget[data-layout-id] .ti-rating,
html body .cronuts-ti-light .ti-widget[data-layout-id] .ti-rating-large{color:var(--cd-ink,#242424)!important}
html body .hero__trust-item:hover .hero__trust-ctx{color:#FFFFFF!important}
html body .ctc-form__kicker,html body .ctc-form .ctc-req{color:#FF8A9B!important}
html body .team-carousel__eyebrow{display:inline-block!important;background:rgba(18,18,18,.74)!important;padding:4px 10px!important;border-radius:999px!important}
/* Desbordamiento horizontal (todos los idiomas): .btn es inline-flex + nowrap; una etiqueta mas larga que la pantalla
   ensancha el viewport de maquetacion (/planes/ .ai-strip 373px a 360; /desarrollo-web/ 444px a 360 y 390). */
@media(max-width:600px){main .btn{max-width:100%;white-space:normal;text-align:center;justify-content:center}}
/* t53:end */

/* ============================================================
   UX-VISUAL — UNA regla de apilado para elementos flotantes.
   Orden de abajo arriba: CookieHub (#ch2-dialog) > barra sticky /
   barra movil de casos / flotante ROI. El flotante "Visibilidad IA"
   (fmc) se oculta por JS (cronuts-floating-magnet-cta.php 1.6.1) mientras
   haya sticky o CookieHub. El mecanismo de CookieHub ya existe
   (cronuts-a11y-cookiehub-dialog.php): pone body.cronuts-ch2-pad y
   --cronuts-ch2-pad = altura que tapa; aqui solo se reutiliza.
   Al llegar al pie, los flotantes se ocultan (body.cd-footer-in-view)
   para no tapar tel: ni el enlace de fuente preferida. Todo es
   position:fixed: no desplaza contenido (CLS=0).
   Kill switch: wp-content/cronuts-float-stack.off
   ============================================================ */
/* v1.x fix2 (2026-11-01): el desplazamiento por CookieHub se hace con la propiedad individual
   `translate` (compone con el `transform` de mostrar/ocultar de cada barra y NO cuenta como
   layout shift). Cambiar `bottom` en un elemento fixed si lo cuenta (CLS). Cada elemento
   conserva su `bottom` normal (el flotante ROI 12px en movil, 20px en escritorio), asi que el
   hueco sobre CookieHub es ese `bottom` y no un valor fijado aqui. */
body.cronuts-ch2-pad .sticky-cta,
body.cronuts-ch2-pad .case-mobile-bar,
body.cronuts-ch2-pad .crcf-wrap{ translate:0 calc(-1 * var(--cronuts-ch2-pad,0px)) }
body.cd-footer-in-view .sticky-cta,
body.cd-footer-in-view .case-mobile-bar,
body.cd-footer-in-view .crcf-wrap,
body.cd-footer-in-view .cronuts-fmc{ opacity:0!important;visibility:hidden!important;pointer-events:none!important }
/* Icono del flotante ROI: la regla inline de cronuts-roi-cta-global.php (bisel rosa/granate)
   gana a :where(html) .crcf-ico; con html .crcf-wrap .crcf-ico (0,2,1) usa la sombra plana. */
html .crcf-wrap .crcf-ico{ box-shadow:var(--cd-shadow-sm,none)!important }
/* /desarrollo-web/ a 390: el enlace corto «presupuesto cerrado» de .cd-def partia en 2 lineas.
   Solo envoltura (sin tocar copy): no se parte dentro del enlace. */
.cd-def p a[href*="presupuesto-web"],
.cd-def p a[href*="pressupost-web"]{ white-space:nowrap }

/* 5. Service cards */
:where(html) .service-card{
  background:#fff!important;
  border:1px solid rgba(36,36,36,.06)!important;
  color:#242424!important;
  box-shadow:0 12px 32px rgba(17,24,39,.06),0 2px 8px rgba(17,24,39,.04)!important;
  border-radius:14px!important
}
:where(html) .service-card:hover{
  border-color:rgba(230,36,63,.3)!important;
  transform:translateY(-2px);
  box-shadow:0 24px 56px rgba(17,24,39,.09),0 6px 18px rgba(17,24,39,.05)!important
}
:where(html) .service-card .service-card__title{ color:#242424!important }
:where(html) .service-card .service-card__eyebrow{ color:#C71C33!important; font-size:12px!important }
:where(html) .service-card .service-card__desc,
:where(html) .service-card .service-card__description{ color:#545760!important }
:where(html) .service-card .service-card__link{ color:#C71C33!important; font-weight:600!important } /* AA Z0 fase2d: #e6243f 4.48 -> #C71C33 5.77 (texto de enlace permanente sobre blanco) */
:where(html) .service-card .service-card__foot{ border-top-color:rgba(36,36,36,.08)!important }
:where(html) .service-card .service-card__icon{
  background:#fff!important;
  border:1px solid rgba(36,36,36,.08)!important;
  color:#e6243f!important
}
:where(html) .service-card .service-card__arrow{
  background:#fff!important;
  border:1px solid rgba(36,36,36,.12)!important;
  color:#242424!important;
  border-radius:999px!important
}
:where(html) .service-card:hover .service-card__arrow{
  background:#e6243f!important;
  border-color:#e6243f!important;
  color:#fff!important
}

/* 6. Section titles — light context */
:where(html) .section .section__title{ color:#242424 }
:where(html) .section .section__title em{ color:#e6243f; font-style:normal }
:where(html) .section .section__lead{ color:#545760 }

/* 7. Dark sections */
:where(html) .section--dark,
:where(html) [data-ti-section],
:where(html) #opiniones{ color:#fff!important }
:where(html) .section--dark .section__title,
:where(html) [data-ti-section] .section__title,
:where(html) #opiniones .section__title{ color:#fff!important }
:where(html) .section--dark .section__title em,
:where(html) [data-ti-section] .section__title em,
:where(html) #opiniones .section__title em{ color:#e6243f!important; font-style:normal }
:where(html) .section--dark .section__lead,
:where(html) [data-ti-section] .section__lead,
:where(html) #opiniones .section__lead{ color:rgba(255,255,255,.72)!important }

/* 8. Stats band */
:where(html) .stats-band .stat{
  background:#fff!important;
  color:#242424!important;
  border-radius:14px!important;
  box-shadow:0 12px 32px rgba(17,24,39,.06),0 2px 8px rgba(17,24,39,.04)!important
}
:where(html) .stats-band .stat__n{ color:#242424!important }
:where(html) .stats-band .stat__n em{ color:#e6243f!important; font-style:normal }
:where(html) .stats-band .stat__lbl{ color:#545760!important }
/* @id cronuts-blog-cover-aspect-fix */
:where(html) .featured-card__img{aspect-ratio:40/21!important;align-self:center!important}:where(html) .article-card__thumb{aspect-ratio:40/21!important}:where(html) .post-hero-img__wrap{aspect-ratio:40/21!important}:where(html) .related-card__img,:where(html) .aside-related__img{aspect-ratio:40/21!important}
/* @id cronuts-site-footer-css */
.site-footer{background:#121212;color:rgba(255,255,255,.85);padding:96px 0 48px;font-family:var(--font-body,"Inter",system-ui,sans-serif)}
.site-footer .container{max-width:1400px;margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}
.site-footer__shell{background:#121212;border-radius:16px;padding:48px;box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 24px 64px rgba(0,0,0,.5);display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px}
.site-footer .footer-eyebrow{font-family:var(--font-display,"Poppins",sans-serif);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:14px}
.site-footer .footer-col a{display:block;font-size:13px;padding:4px 0;color:rgba(255,255,255,.85);text-decoration:none;transition:color 160ms}
.site-footer .footer-col a:hover{color:#ff6b7d}
.site-footer .footer-brand{display:flex;flex-direction:column;gap:16px;max-width:320px}
.site-footer .footer-brand__lockup{display:flex;align-items:center;gap:12px;text-decoration:none}
.site-footer .footer-brand__eye{width:40px;height:40px;display:block;object-fit:contain;flex-shrink:0;background:transparent}
.site-footer .footer-brand__word{font-family:var(--font-display,"Poppins",sans-serif);font-weight:700;font-size:22px;line-height:1;letter-spacing:-.02em;color:#fff;display:inline-flex;align-items:baseline}
.site-footer .footer-brand__word .dot{color:#e6243f;padding:0 1px}
.site-footer .footer-brand p{color:rgba(255,255,255,.72);font-size:14px;line-height:1.55;margin:0}
.site-footer .footer-socials{display:flex;gap:10px;margin-top:4px;flex-wrap:wrap}
.site-footer .footer-socials a{width:40px;height:40px;border-radius:999px;background:#1a1a1a;box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 4px 12px rgba(0,0,0,.4);display:grid;place-items:center;color:#fff;padding:0;transition:color 180ms,transform 180ms}
.site-footer .footer-socials a:hover{color:#e6243f;transform:translateY(-1px)}
.site-footer .footer-socials a svg{width:16px;height:16px;stroke-width:1.8;display:block}
.site-footer__meta{margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;font-family:ui-monospace,Menlo,monospace;font-size:10px;color:rgba(255,255,255,.45);letter-spacing:.04em;text-transform:uppercase;gap:16px;flex-wrap:wrap}
.site-footer__meta .dot{color:#e6243f}
.site-footer__meta-extra a{color:rgba(255,255,255,.7);text-decoration:none;transition:color 160ms}
.site-footer__meta-extra a:hover{color:#e6243f}
@media(max-width:1024px){.site-footer__shell{grid-template-columns:1fr 1fr;gap:32px}}
@media(max-width:720px){.site-footer{padding:64px 0 32px}.site-footer__shell{grid-template-columns:1fr;padding:32px;gap:28px}.site-footer__meta{flex-direction:column;align-items:flex-start}}
/* @id cronuts-ch2-pad-css */
body.cronuts-ch2-pad{padding-bottom:var(--cronuts-ch2-pad,0px)!important}