/* Codifica Consultores: misma paleta de marca, foco en servicios B2B. */
:root { --header-height: 104px; }
html { scroll-padding-top: 124px; }
.cc-header .header-inner { min-height:104px; height:104px; gap:35px; }
.cc-header .brand-logo { width:78px; height:90px; object-fit:contain; }
.cc-header .main-nav { margin-left:auto; gap:24px; }
.cc-header .main-nav a { padding-block:14px; font-size:.73rem; white-space:nowrap; }
.cc-header .header-actions { gap:20px; }
.cc-header .consultation-link { flex-shrink:0; }
.cc-header .header-cta { font-size:.78rem; padding-inline:17px; }
.cc-header .menu-toggle { color:var(--ink); }
.cc-hero { padding-top:64px !important; }
.cc-hero .hero-grid { grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr) !important; gap:64px !important; }
html[data-theme] .cc-hero .hero-copy h1 { font-size:clamp(2.5rem,4.25vw,3.8rem); line-height:1.04; letter-spacing:-.04em; }
.cc-hero .hero-copy > p { max-width:560px; font-size:1.12rem; }
.cc-audience { display:flex; align-items:center; flex-wrap:wrap; gap:12px 22px; margin-top:28px; font-size:.78rem; color:var(--muted); }
.cc-audience > span { display:inline-flex; align-items:center; gap:6px; }
.cc-audience .icon { color:var(--cyan); width:15px; }
.cc-hero-panel { border:1px solid #0AD6DE55; background:var(--surface); border-radius:22px; overflow:hidden; box-shadow:0 28px 75px #21406F1A; transform:none; }
.cc-panel-bar { display:flex; gap:16px; padding:17px 22px; align-items:center; background:#172F50; color:#DAE9F7; }
.cc-panel-bar > span { display:flex; gap:5px; }
.cc-panel-bar i { width:5px; height:5px; background:#0AD6DE; border-radius:50%; }
.cc-panel-bar i:nth-child(2) { opacity:.6; }.cc-panel-bar i:nth-child(3) { opacity:.3; }
.cc-panel-bar small { font-size:.66rem; flex:1; }.cc-panel-bar > .icon { width:15px; }
.cc-panel-image { height:240px; position:relative; overflow:hidden; background:#21406F; }
.cc-panel-image > img { width:100%; height:100%; object-fit:cover; }
.cc-panel-image::after { content:''; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,#10223DE0); }
.cc-image-label { position:absolute; bottom:20px; left:26px; z-index:1; color:white; font-family:var(--heading); font-weight:500; font-size:1.3rem; }
.cc-panel-content { padding:27px 27px 25px; }
.cc-panel-content .eyebrow { font-size:.67rem; color:var(--muted); }
.cc-panel-content h2 { font-size:1.7rem; line-height:1.2; margin-top:8px; }
.cc-pipeline { display:flex; align-items:center; gap:10px; margin-top:23px; }
.cc-pipeline > span { flex:1; display:flex; flex-direction:column; gap:6px; font-size:.75rem; }
.cc-pipeline b { font-size:.7rem; color:var(--cyan); font-weight:700; }.cc-pipeline > .icon { width:14px; color:var(--muted); }
.cc-panel-link { display:flex; justify-content:space-between; align-items:center; gap:16px; border-top:1px solid var(--line); background:var(--pale); padding:15px 27px; font-size:.77rem; font-weight:600; }
.cc-panel-link:hover { color:var(--cyan); }.cc-panel-link .icon { width:16px; }
.cc-hero .hero-bottom { margin-top:48px; }
.cc-proof-strip { background:#172F50; color:white; display:flex; align-items:center; overflow:hidden; }
.cc-proof-viewport { flex:1; min-width:0; overflow:hidden; mask-image:linear-gradient(to right,transparent,#000 36px,#000 calc(100% - 36px),transparent); }
.cc-proof-track { display:flex; width:max-content; }
.cc-proof-group { display:flex; align-items:center; flex-shrink:0; gap:48px; padding:30px 24px; }
.cc-proof-item { display:flex; align-items:center; gap:20px; white-space:nowrap; }
.cc-proof-item::after { content:''; width:5px; height:5px; margin-left:28px; border-radius:50%; background:var(--cyan); opacity:.65; }
[data-proof-marquee][data-motion-state] .cc-proof-track { animation:cc-proof-left var(--cc-proof-duration,44s) linear infinite; }
[data-proof-marquee][data-motion-state=paused] .cc-proof-track { animation-play-state:paused; }
.cc-proof-pause { flex-shrink:0; width:42px; height:42px; margin-inline:18px 25px; border:1px solid #FFFFFF55; border-radius:50%; color:var(--cyan); background:transparent; }
.cc-proof-pause:hover { color:#172F50; background:var(--cyan); border-color:var(--cyan); }
.cc-proof-pause:focus-visible { outline:2px solid var(--cyan); outline-offset:4px; }
.cc-proof-pause > span { display:flex; }
.cc-proof-pause[hidden],.cc-proof-pause [hidden] { display:none; }
.cc-proof-pause .icon { width:18px; height:18px; }
@keyframes cc-proof-left { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media(hover:hover) { .cc-proof-viewport:hover .cc-proof-track { animation-play-state:paused; } }
.cc-proof-strip strong { font-family:var(--heading); color:var(--cyan); font-size:1.6rem; white-space:nowrap; letter-spacing:-.04em; }
.cc-proof-item > span { color:#DCE8F6; font-size:.95rem; line-height:1.4; }
.cc-heading-row { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:35px; }
.cc-heading-row > .section-head { margin-bottom:0; }.cc-heading-row > a { flex-shrink:0; margin-bottom:5px; }
.cc-family-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.cc-family-card { display:flex; flex-direction:column; align-items:flex-start; padding:32px; border-radius:19px; background:var(--surface); border:1px solid var(--line); transition:transform .2s,border-color .2s; }
.cc-family-card:hover { transform:translateY(-4px); border-color:var(--cyan); }
.cc-family-card:first-child { background:#21406F; color:white; border-color:#21406F; }
.cc-family-top { width:100%; display:flex; align-items:center; gap:15px; margin-bottom:32px; color:var(--cyan); }
.cc-family-top > .icon:first-child { width:30px; height:30px; }
.cc-family-top > span { margin-left:auto; font-family:var(--heading); font-size:.72rem; opacity:.65; }
.cc-family-top > .icon:last-child { width:19px; }
.cc-family-card h2,.cc-family-card h3 { font-family:var(--heading); font-size:1.5rem; font-weight:600; line-height:1.2; letter-spacing:-.03em; color:var(--ink); }
.cc-family-card p { font-size:1rem; line-height:1.6; color:var(--muted); margin-top:18px; }
.cc-family-card:first-child h2,.cc-family-card:first-child h3 { color:white; }
.cc-family-card:first-child p { color:#DDE9F6; }
.cc-family-tags { display:block; font-size:.75rem; line-height:1.7; color:var(--muted); margin:24px 0 26px; }
.cc-family-card:first-child .cc-family-tags { color:#CEE6EF; }
.cc-family-card > .text-link { margin-top:auto; padding-top:20px; }
.cc-family-card:first-child .text-link { color:var(--cyan); }
.cc-services-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.cc-service-card { display:flex; flex-direction:column; min-width:0; padding:29px; border:1px solid var(--line); border-radius:18px; background:var(--surface); transition:transform .2s,border-color .2s; }
.cc-service-card:hover { border-color:var(--cyan); transform:translateY(-3px); }
.cc-service-top { display:flex; align-items:center; gap:10px; margin-bottom:25px; }
.cc-service-icon { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:40px; height:40px; color:var(--cyan); border:1px solid var(--line); border-radius:10px; }
.cc-service-icon > .icon { width:21px; height:21px; }
.cc-service-top > span:nth-child(2) { font-size:.66rem; font-weight:600; color:var(--muted); line-height:1.3; }
.cc-service-top > small { margin-left:auto; color:var(--muted); opacity:.7; font-family:var(--heading); font-size:.7rem; }
.cc-service-card h3 { font-family:var(--heading); font-size:1.36rem; line-height:1.24; letter-spacing:-.025em; font-weight:600; }
.cc-service-card > p { color:var(--muted); font-size:.98rem; margin-top:16px; }
.cc-service-card > ul { padding:21px 0 24px; list-style:none; display:grid; gap:12px; margin-top:auto; }
.cc-service-card > ul > li { display:flex; gap:9px; font-size:.82rem; color:var(--muted); line-height:1.5; }
.cc-service-card li .icon { width:14px; height:18px; flex-shrink:0; color:var(--cyan); }
.cc-service-card > .text-link { display:flex; justify-content:space-between; align-items:center; gap:14px; border-top:1px solid var(--line); padding-top:18px; font-size:.82rem; }
.cc-service-card > .text-link .icon { width:18px; }
.cc-process { background:var(--paper); }
.cc-filter-bar { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:20px; }
.cc-filter-bar button { background:var(--surface); border:1px solid var(--line); border-radius:40px; padding:12px 22px; font-size:.83rem; font-weight:600; color:var(--ink); cursor:pointer; transition:background .2s,border-color .2s; }
.cc-filter-bar button[aria-pressed=true] { background:var(--cyan); color:#173553; border-color:var(--cyan); }
.cc-filter-bar button:hover { border-color:var(--cyan); }
.cc-filter-status { margin:0 0 25px; color:var(--muted); font-size:.8rem; }
.cc-service-list { padding-top:35px; }
.cc-family-anchors { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; padding-top:65px; }
.cc-family-anchors > div { border-top:1px solid var(--line); padding-top:22px; }
.cc-family-anchors h2 { font-size:1.3rem; margin-bottom:12px; }
.cc-family-anchors p { font-size:.88rem; color:var(--muted); }
.cc-family-anchors a { display:flex; justify-content:space-between; align-items:center; gap:15px; font-size:.83rem; border-bottom:1px solid var(--line); padding:13px 0; }
.cc-family-anchors a .icon { width:15px; flex-shrink:0; color:var(--cyan); }
.cc-breadcrumb { display:flex; gap:12px; align-items:center; flex-wrap:wrap; padding-top:28px; font-size:.74rem; color:var(--muted); }
.cc-service-intro { padding-bottom:35px; }
.cc-service-intro h1 { font-size:clamp(2.2rem,4vw,3.4rem); max-width:900px; }
.cc-detail { padding-top:32px; }
.cc-detail-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,.75fr); gap:90px; align-items:start; }
.cc-detail-grid h2 { font-size:clamp(1.9rem,3vw,2.6rem); line-height:1.15; margin-top:14px; }
.cc-detail-lead { font-size:1.12rem; line-height:1.7; color:var(--muted); margin-block:25px 30px; }
.cc-detail-grid h3 { font-family:var(--heading); font-size:1.12rem; font-weight:600; }
.cc-detail-deliverables { margin-block:25px; display:grid; gap:17px; }
.cc-detail-deliverables li { font-size:1.02rem; }
.cc-detail-deliverables li .icon { color:var(--cyan); flex-shrink:0; }
.cc-detail-aside { border:1px solid var(--line); border-radius:20px; padding:32px; background:var(--pale); }
.cc-detail-aside > h2 { font-size:1.5rem; margin-block:24px 15px; }
.cc-detail-aside > p { color:var(--muted); font-size:.95rem; line-height:1.65; }
.cc-detail-aside > .button { margin-top:26px; display:flex; justify-content:center; padding-inline:14px; font-size:.78rem; }
.cc-detail-aside > .text-link { margin-top:20px; display:flex; justify-content:space-between; gap:8px; font-size:.78rem; }
.cc-back { display:flex; gap:10px; align-items:center; justify-content:space-between; margin-top:25px; border-top:1px solid var(--line); padding-top:20px; font-size:.78rem; color:var(--muted); }.cc-back .icon { width:15px; }
.cc-scope-note { margin-top:27px; border-left:2px solid var(--cyan); padding-left:18px; color:var(--muted); font-size:.85rem; line-height:1.7; }
.cc-email { display:block; color:var(--ink); font-size:1rem; margin-block:12px 20px; overflow-wrap:anywhere; }
.contact-number { font-size:clamp(1.3rem,2.4vw,2rem); }
.site-footer .brand-logo { width:104px; height:120px; object-fit:contain; }
.site-footer .footer-brand > p { max-width:300px; }
.site-footer a { overflow-wrap:anywhere; }
h2 > span { color:var(--cyan); }
html[data-theme=dark] .cc-hero-panel { box-shadow:0 28px 75px #00000044; }
html[data-theme=dark] .cc-header .main-nav { background:#0C1118; }
html[data-theme=dark] .cc-proof-strip { background:#111D2D; }
.cc-service-card[hidden] { display:none !important; }
@media(max-width:1150px) {
.cc-header .header-inner { gap:24px; }.cc-header .main-nav { gap:18px; }.cc-header .header-actions { gap:14px; }.cc-header .header-cta { display:none; }
.cc-hero .hero-grid { gap:38px !important; }
.cc-service-card { padding:23px; }.cc-service-top { gap:8px; }.cc-family-card { padding:27px; }.cc-detail-grid { gap:45px; }
}
@media(max-width:950px) {
.cc-header .header-inner { height:92px; min-height:92px; }.cc-header .brand-logo { width:68px; height:79px; }.cc-header .header-actions { margin-left:auto; }
.cc-header .menu-toggle { display:inline-flex; }.cc-header .main-nav { display:none; position:absolute; top:92px; left:0; right:0; margin:0; padding:18px 32px; background:var(--surface); border-bottom:1px solid var(--line); box-shadow:0 20px 25px #00000010; }
.cc-header .main-nav.is-open { display:flex; flex-direction:column; align-items:stretch; gap:0; }.cc-header .main-nav a { padding:15px 0; font-size:1rem; border-bottom:1px solid var(--line); }.cc-header .main-nav a:last-child { border:0; }
.cc-hero .hero-grid { grid-template-columns:1fr 1fr !important; gap:30px !important; }.cc-hero .hero-copy h1 { font-size:2.6rem !important; }
.cc-hero .hero-copy > p { font-size:1rem; }.cc-hero .hero-actions { display:flex; flex-direction:column; align-items:flex-start; }
.cc-panel-image { height:210px; }.cc-panel-bar { padding:15px; gap:10px; }.cc-panel-content { padding:22px; }.cc-panel-content h2 { font-size:1.4rem; }.cc-panel-link { padding-inline:22px; }.cc-pipeline { gap:7px; }.cc-pipeline > span { font-size:.64rem; }
.cc-family-grid { grid-template-columns:1fr; }.cc-family-card { display:grid; grid-template-columns:50px 1fr auto; gap:0 22px; align-items:start; }.cc-family-top { grid-column:1; grid-row:1 / span 3; margin:0; }.cc-family-top > span,.cc-family-top > .icon:last-child { display:none; }.cc-family-card h3,.cc-family-card h2 { grid-column:2; }.cc-family-card p { grid-column:2; margin-top:12px; }.cc-family-tags { grid-column:2; margin:15px 0 0; }.cc-family-card > .text-link { grid-column:3; grid-row:1 / span 3; align-self:center; padding:0; }
.cc-services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.cc-heading-row { align-items:start; }.cc-heading-row > a { margin-top:18px; }.cc-detail-grid { grid-template-columns:1.3fr .8fr; gap:30px; }.cc-detail-aside { padding:25px; }
}
@media(max-width:720px) {
.cc-hero { padding-top:40px !important; }.cc-hero .hero-grid { grid-template-columns:1fr !important; gap:35px !important; }.cc-hero .hero-copy h1 { font-size:clamp(2.5rem,8.5vw,3.4rem) !important; }.cc-hero .hero-copy > .eyebrow { font-size:.6rem !important; }.cc-hero .hero-copy > p { font-size:1.04rem; }.cc-hero .hero-actions { flex-direction:row; flex-wrap:wrap; }.cc-hero .hero-actions > .button { font-size:.75rem; padding-inline:17px; min-height:48px; }
.cc-audience { gap:8px 15px; font-size:.71rem; margin-top:20px; }.cc-hero-panel { max-width:470px; width:100%; margin-inline:auto; transform:none; }.cc-panel-image { height:235px; }.cc-panel-content { padding:25px; }.cc-panel-content h2 { font-size:1.55rem; }.cc-pipeline { gap:12px; }.cc-pipeline > span { font-size:.75rem; }.cc-panel-bar { padding:17px 22px; }
.cc-hero .hero-bottom { align-items:start; flex-direction:column; gap:17px; margin-top:30px; font-size:.76rem; }.cc-hero .hero-bottom-actions { width:100%; justify-content:space-between; gap:15px; }.cc-hero .hero-bottom-actions > a { font-size:.7rem; gap:7px; }
.cc-proof-group { padding-block:25px; gap:32px; }.cc-proof-item { gap:14px; }.cc-proof-item::after { margin-left:18px; }.cc-proof-item > span { font-size:.88rem; }.cc-proof-pause { width:36px; height:36px; margin-inline:8px 16px; }
.cc-heading-row { flex-direction:column; align-items:start; gap:0; }.cc-heading-row > a { margin-top:23px; }.cc-family-card { display:flex; padding:28px; gap:0; }.cc-family-top { display:flex; margin-bottom:26px; }.cc-family-top > span,.cc-family-top > .icon:last-child { display:block; }.cc-family-card h2,.cc-family-card h3 { font-size:1.5rem; }.cc-family-tags { margin:20px 0 25px; }.cc-family-card > .text-link { align-self:start; margin-top:0; }
.cc-services-grid { grid-template-columns:1fr; gap:18px; }.cc-service-card { padding:28px; }.cc-service-card h3 { font-size:1.38rem; }.cc-service-top { gap:12px; }.cc-service-top > span:nth-child(2) { font-size:.71rem; }.cc-service-card > ul { margin-top:0; padding-bottom:23px; }.cc-service-card > ul > li { font-size:.9rem; }
.cc-filter-bar { gap:8px; }.cc-filter-bar button { padding:10px 16px; font-size:.75rem; }.cc-family-anchors { grid-template-columns:1fr; gap:25px; }.cc-detail-grid { grid-template-columns:1fr; gap:32px; }.cc-detail-aside { padding:28px; }.cc-detail-lead { font-size:1.04rem; }.cc-breadcrumb { font-size:.68rem; gap:9px; }
.cc-header .main-nav { padding-inline:20px; }.cc-email { font-size:.9rem; }
}
@media(prefers-reduced-motion:reduce) { .cc-family-card,.cc-service-card { transition:none; }.cc-family-card:hover,.cc-service-card:hover { transform:none; } }

/* Una lectura estática y completa si se prefiere reducir las animaciones. */
[data-proof-marquee]:not([data-motion-state]) .cc-proof-track { display:block; width:auto; }
[data-proof-marquee]:not([data-motion-state]) .cc-proof-group { flex-wrap:wrap; gap:20px 32px; }
[data-proof-marquee]:not([data-motion-state]) .cc-proof-group[aria-hidden=true] { display:none; }
[data-proof-marquee]:not([data-motion-state]) .cc-proof-item { white-space:normal; flex-wrap:wrap; }
@media(prefers-reduced-motion:reduce) {
  [data-proof-marquee] .cc-proof-track { animation:none; transform:none; display:block; width:auto; }
  [data-proof-marquee] .cc-proof-viewport { mask-image:none; }
  [data-proof-marquee] .cc-proof-group { flex-wrap:wrap; gap:20px 32px; padding:28px max(24px,calc((100vw - 1200px)/2)); }
  [data-proof-marquee] .cc-proof-group[aria-hidden=true] { display:none; }
  [data-proof-marquee] .cc-proof-item { white-space:normal; flex-wrap:wrap; gap:6px 14px; }
  [data-proof-marquee] .cc-proof-item > span { max-width:100%; }
  [data-proof-marquee] .cc-proof-item::after { display:none; }
  [data-proof-marquee] .cc-proof-pause { display:none; }
}

/* Presentación editorial: referencia tipográfica aportada por la empresa. */
:root { --font:'Source Sans 3',Arial,sans-serif; --heading:'Source Sans 3',Arial,sans-serif; }
html .section-head h2 { font-family:var(--heading); font-weight:600; line-height:1.13; letter-spacing:-.025em; }
h1,h2,h3 { text-wrap:pretty; }
.cc-header .main-nav a { text-transform:none; font-size:.93rem; font-weight:500; letter-spacing:0; }
.cc-header .header-cta { border-radius:999px; font-size:.94rem; padding-inline:23px; }
.button { border-radius:999px; font-family:var(--font); font-size:.96rem; font-weight:600; }
.text-link { font-family:var(--font); font-size:.95rem; }
.cc-hero { padding-top:60px !important; }
html[data-theme] .cc-hero .hero-copy h1 { font-family:var(--font); font-size:clamp(2.7rem,4.55vw,4rem); font-weight:400; line-height:1.09; letter-spacing:-.035em; text-transform:none; }
html[data-theme] .cc-hero .hero-copy h1 .hero-lead { font-weight:400; }
html[data-theme] .cc-hero .hero-copy h1 .hero-accent { font-weight:600; margin-top:5px; }
html[data-theme] .cc-hero .hero-copy > .eyebrow { text-transform:none; letter-spacing:0; font-size:.85rem; font-weight:600; margin-bottom:25px; }
html[data-theme] .cc-hero .hero-copy > .eyebrow::before { width:7px; height:7px; border-radius:50%; margin-right:9px; }
.cc-hero .hero-copy > p { margin-block:25px 27px; font-size:1.15rem; max-width:560px; line-height:1.6; }
.cc-hero .hero-actions { margin-bottom:22px; }
.cc-hero .hero-actions .button { min-height:54px; font-size:.98rem; padding-inline:24px; }
.cc-hero .hero-grid { grid-template-columns:minmax(0,1.16fr) minmax(0,.92fr) !important; gap:76px !important; }
.cc-audience { font-size:.81rem; gap:12px 20px; }
.cc-hero-media { width:100%; min-width:0; padding-bottom:8px; }
.cc-hero-figure { margin:0; position:relative; aspect-ratio:1; overflow:hidden; border-radius:26px; background:#21406F; box-shadow:0 24px 65px #21406F16; transform:none; }
.cc-hero-figure > img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 50%; transform:none; }
.cc-hero-figure::after { content:''; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,#0E1D38C9); pointer-events:none; }
.cc-photo-pill { position:absolute; z-index:1; top:20px; left:20px; display:flex; align-items:center; gap:8px; border-radius:999px; max-width:calc(100% - 40px); background:#FFFFFFF5; color:#21406F; padding:10px 15px; font-size:.78rem; }
.cc-photo-pill .icon { width:16px; height:16px; flex-shrink:0; }
.cc-hero-figure figcaption { position:absolute; z-index:1; bottom:66px; left:30px; right:30px; display:flex; align-items:end; justify-content:space-between; gap:18px; color:white; font-size:1.65rem; font-weight:600; line-height:1.15; letter-spacing:-.02em; }
.cc-hero-figure figcaption .icon { flex-shrink:0; width:30px; height:30px; color:var(--cyan); }
.cc-photo-card { position:relative; z-index:2; display:flex; align-items:center; gap:17px; margin:-29px 20px 0; padding:21px 23px; background:var(--surface); border:1px solid var(--line); border-radius:19px; box-shadow:0 18px 45px #21406F0C; transition:box-shadow .2s,border-color .2s; }
.cc-photo-card:hover { border-color:var(--cyan); box-shadow:0 18px 45px #21406F19; }
.cc-photo-symbol { display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:15px; flex-shrink:0; background:var(--cyan); color:#21406F; }
.cc-photo-symbol .icon { width:27px; height:27px; }
.cc-photo-card > span:nth-child(2) { display:flex; flex-direction:column; gap:5px; }
.cc-photo-card strong { font-size:1.05rem; line-height:1.2; font-weight:600; }
.cc-photo-card small { font-size:.81rem; color:var(--muted); }
.cc-photo-card > .icon { width:22px; height:22px; margin-left:auto; flex-shrink:0; transition:transform .2s; }
.cc-photo-card:hover > .icon { transform:translateX(4px); }
.cc-hero .hero-bottom { margin-top:35px; }
.cc-hero-panel { transform:none; }
.cc-proof-strip strong { letter-spacing:-.025em; font-weight:600; font-size:1.7rem; }
.cc-heading-row > .section-head { max-width:760px; }
.cc-family-card h2,.cc-family-card h3 { font-size:1.7rem; letter-spacing:-.02em; }
.cc-service-card h3 { font-size:1.45rem; letter-spacing:-.015em; line-height:1.23; }
.cc-service-card > .text-link { font-size:.95rem; }
.cc-service-top > span:nth-child(2) { font-size:.78rem; }
.page-intro h1 { font-family:var(--font); font-weight:600; line-height:1.13; letter-spacing:-.03em; }
.team-card h3,.expert-identity h2,.expert-identity h3 { font-family:var(--font); letter-spacing:-.015em; }
.cc-service-intro h1 { max-width:930px; }
.cc-breadcrumb { font-size:.83rem; }
.cc-detail-aside > h2 { font-size:1.7rem; }.cc-detail-aside > .button,.cc-detail-aside > .text-link { font-size:.94rem; }

/* Explorador de soluciones con pestañas y navegación por teclado. */
.cc-solution-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-bottom:24px; }
.cc-solution-tabs > button { cursor:pointer; min-width:0; display:flex; align-items:center; gap:16px; padding:24px; border:1px solid var(--line); border-radius:17px; background:var(--surface); color:var(--ink); text-align:left; transition:border-color .2s,background .2s; }
.cc-solution-tabs > button:hover { border-color:var(--cyan); }
.cc-solution-tabs > button[aria-selected=true] { background:var(--pale); border-color:var(--cyan); box-shadow:inset 0 -3px 0 var(--cyan); }
.cc-solution-tabs > button:focus-visible { outline:3px solid var(--cyan); outline-offset:4px; }
.cc-solution-icon { display:flex; align-items:center; justify-content:center; border-radius:12px; border:1px solid var(--line); width:44px; height:44px; flex-shrink:0; color:var(--cyan); }
.cc-solution-icon > .icon { width:23px; height:23px; }
.cc-solution-tabs strong { display:block; font-size:1.12rem; font-weight:600; line-height:1.2; }
.cc-solution-tabs small { display:block; font-size:.85rem; line-height:1.3; color:var(--muted); margin-top:6px; }
.cc-solution-tabs > button > .icon { width:17px; height:17px; margin-left:auto; flex-shrink:0; }
.cc-solution-panel { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); min-height:480px; overflow:hidden; border:1px solid var(--line); border-radius:23px; background:var(--surface); animation:cc-panel-in .25s ease-out; }
.cc-solution-panel[hidden] { display:none !important; }
.cc-solution-photo { min-height:100%; position:relative; background:#21406F; overflow:hidden; }
.cc-solution-photo > img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.cc-solution-photo::after { content:''; position:absolute; inset:50% 0 0; background:linear-gradient(transparent,#142845B0); }
.cc-solution-photo > span { position:absolute; z-index:1; bottom:28px; left:28px; right:28px; display:flex; gap:10px; align-items:center; color:white; font-size:1.12rem; font-weight:600; }
.cc-solution-photo > span .icon { color:var(--cyan); width:23px; height:23px; }
.cc-solution-copy { padding:36px 40px; }
.cc-solution-copy > .eyebrow { color:var(--muted); font-size:.77rem; }
.cc-solution-copy > h3 { font-family:var(--font); font-size:2rem; font-weight:600; line-height:1.12; letter-spacing:-.025em; margin-top:12px; }
.cc-solution-copy > p { color:var(--muted); font-size:1.03rem; line-height:1.6; margin-top:17px; }
.cc-solution-links { display:grid; margin:18px 0 25px; }
.cc-solution-links a { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:10px 0; border-bottom:1px solid var(--line); font-size:.94rem; }
.cc-solution-links a:hover { color:var(--cyan); }.cc-solution-links a > .icon { flex-shrink:0; width:17px; height:17px; }
@keyframes cc-panel-in { from { opacity:.6; transform:translateY(5px); } to { opacity:1; transform:none; } }

/* Búsqueda combinada con filtros y una vista previa de la consulta. */
.cc-service-tools { display:flex; align-items:center; gap:28px; margin-bottom:26px; }
.cc-service-tools > p { margin-left:auto; font-size:.9rem; color:var(--muted); max-width:245px; }
.cc-service-search { display:flex; align-items:center; gap:13px; flex:1; padding:7px 8px 7px 19px; border:1px solid var(--line); background:var(--surface); border-radius:13px; max-width:750px; }
.cc-service-search:focus-within { border-color:var(--cyan); box-shadow:0 0 0 3px #0AD6DE16; }
.cc-service-search > .icon { width:20px; height:20px; flex-shrink:0; color:var(--muted); }
.cc-service-search > input { min-width:0; width:100%; color:var(--ink); background:transparent; border:0; outline:0; font:inherit; font-size:1rem; height:42px; }
.cc-service-search > input::placeholder { color:var(--muted); opacity:1; }
.cc-service-search > button { flex-shrink:0; min-height:43px; border-radius:9px; font-size:.88rem; padding-inline:18px; }
.cc-filter-bar button { font-family:var(--font); font-size:.94rem; }
.cc-service-results { display:flex; gap:20px; align-items:center; justify-content:space-between; margin-bottom:25px; }
.cc-service-results > p { margin:0; font-size:.9rem; }.cc-service-reset { display:flex; align-items:center; gap:7px; font-size:.87rem; }.cc-service-reset .icon { width:15px; height:15px; }
.cc-service-reset[hidden],.cc-service-empty[hidden] { display:none !important; }
.cc-service-empty { padding:50px 25px; border:1px dashed var(--line); border-radius:20px; }
.cc-contact-preview { margin-block:22px; border:1px solid var(--line); border-radius:12px; background:var(--paper); padding:15px 18px; }
.cc-contact-preview > summary { display:flex; cursor:pointer; list-style:none; align-items:center; justify-content:space-between; gap:16px; font-size:.94rem; font-weight:600; }.cc-contact-preview > summary::-webkit-details-marker { display:none; }
.cc-contact-preview summary > .icon { width:17px; height:17px; transition:transform .2s; }.cc-contact-preview[open] summary > .icon { transform:rotate(180deg); }
.cc-contact-preview pre { white-space:pre-wrap; overflow-wrap:anywhere; font:400 .92rem/1.6 var(--font); margin-top:17px; color:var(--muted); }
.cc-back-top { position:fixed; bottom:24px; left:24px; z-index:80; border:1px solid var(--line); background:var(--surface); color:var(--ink); width:45px; height:45px; box-shadow:0 6px 20px #00000012; border-radius:50%; }
.cc-back-top .icon { transform:rotate(-90deg); width:20px; height:20px; }.cc-back-top:hover { background:var(--cyan); color:#21406F; }.cc-back-top[hidden] { display:none !important; }
html[data-theme=dark] .cc-hero-figure { box-shadow:0 24px 65px #00000030; }
html[data-theme=dark] .cc-photo-card { box-shadow:0 18px 45px #00000035; }
@media(max-width:1050px) {
.cc-hero .hero-grid { gap:38px !important; }.cc-photo-card { gap:12px; margin-inline:13px; padding:18px; }.cc-photo-symbol { width:43px; height:43px; }.cc-photo-card strong { font-size:.98rem; }.cc-photo-card small { font-size:.76rem; }
.cc-solution-tabs { gap:12px; }.cc-solution-tabs > button { padding:20px; gap:12px; }.cc-solution-tabs strong { font-size:1.02rem; }.cc-solution-icon { width:36px; height:36px; }.cc-solution-tabs > button > .icon { display:none; }
.cc-solution-copy { padding:30px; }.cc-solution-copy > h3 { font-size:1.8rem; }.cc-solution-panel { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
}
@media(max-width:950px) {
.cc-header .main-nav a { font-size:1.08rem; }
.cc-hero .hero-copy h1 { font-size:clamp(2.5rem,4.6vw,3.5rem) !important; }
.cc-hero .hero-actions .button { font-size:.9rem; min-height:48px; padding-inline:18px; }
.cc-hero .hero-copy > p { font-size:1.08rem; }.cc-photo-pill { font-size:.67rem; padding:8px 11px; top:15px; left:15px; max-width:calc(100% - 30px); }
.cc-hero-figure figcaption { left:22px; right:22px; bottom:60px; font-size:1.35rem; }.cc-photo-card { padding:16px; gap:10px; }.cc-photo-symbol { width:37px; height:37px; border-radius:10px; }.cc-photo-symbol .icon { width:22px; height:22px; }.cc-photo-card > .icon { width:17px; height:17px; }
.cc-solution-tabs > button { flex-direction:column; align-items:start; gap:13px; }.cc-solution-copy { padding:27px; }.cc-solution-copy > h3 { font-size:1.7rem; }.cc-solution-links a { font-size:.9rem; }
.cc-service-tools > p { display:none; }
}
@media(max-width:720px) {
html[data-theme] .cc-hero .hero-copy h1 { font-size:clamp(2.3rem,8.8vw,3.25rem) !important; line-height:1.1; }
html[data-theme] .cc-hero .hero-copy > .eyebrow { font-size:.81rem !important; }
.cc-hero .hero-copy > p { font-size:1.08rem; }.cc-hero .hero-grid { grid-template-columns:1fr !important; gap:34px !important; }
.cc-hero .hero-actions .button { padding-inline:20px; font-size:.9rem; }
.cc-hero-media { max-width:480px; margin-inline:auto; }.cc-hero-figure { border-radius:23px; }.cc-photo-pill { font-size:.74rem; top:17px; left:17px; padding:9px 13px; }.cc-hero-figure figcaption { font-size:1.5rem; left:25px; right:25px; }.cc-photo-card { margin-inline:15px; padding:17px; border-radius:16px; gap:13px; }.cc-photo-symbol { width:45px; height:45px; }.cc-photo-card strong { font-size:1rem; }.cc-photo-card small { font-size:.78rem; }
.cc-hero .hero-bottom { margin-top:28px; }.cc-audience { font-size:.76rem; }
.cc-solution-tabs { display:flex; overflow-x:auto; scroll-snap-type:x proximity; padding-bottom:6px; gap:10px; }
.cc-solution-tabs > button { flex:0 0 200px; scroll-snap-align:start; padding:19px; min-height:145px; }.cc-solution-tabs strong { font-size:1.08rem; }.cc-solution-tabs small { font-size:.84rem; }
.cc-solution-panel { grid-template-columns:1fr; min-height:0; border-radius:19px; }.cc-solution-photo { height:225px; min-height:0; }.cc-solution-photo > span { font-size:1rem; bottom:23px; left:25px; }.cc-solution-copy { padding:28px; }.cc-solution-copy > h3 { font-size:1.75rem; }.cc-solution-copy > p { font-size:1.02rem; }.cc-solution-links a { font-size:.94rem; padding-block:13px; }.cc-solution-copy > .button { font-size:.9rem; padding-inline:18px; }
.cc-service-search { gap:9px; padding-left:13px; }.cc-service-search > input { font-size:.9rem; }.cc-service-search > button { font-size:.84rem; padding-inline:13px; }.cc-service-search > button .icon { display:none; }
.cc-filter-bar button { font-size:.86rem; }.cc-service-results { gap:12px; align-items:baseline; }.cc-service-results > p { font-size:.85rem; }.cc-service-reset { font-size:.78rem; }
.cc-back-top { left:18px; bottom:18px; width:40px; height:40px; }
}
@media(max-width:360px) {
.cc-photo-card { padding:14px; gap:10px; margin-inline:10px; }.cc-photo-symbol { width:35px; height:35px; border-radius:10px; }.cc-photo-card strong { font-size:.88rem; }.cc-photo-card small { font-size:.72rem; }.cc-photo-card > .icon { width:15px; }
.cc-photo-pill { font-size:.66rem; }.cc-hero-figure figcaption { font-size:1.35rem; left:22px; right:22px; }
}
@media(prefers-reduced-motion:reduce) {
.cc-solution-panel { animation:none; }.cc-photo-card,.cc-photo-card > .icon,.cc-solution-tabs > button,.cc-contact-preview summary > .icon { transition:none; }
.cc-photo-card:hover > .icon { transform:none; }
}
@media(max-width:720px) {
.cc-solution-tabs { display:grid; grid-template-columns:1fr; overflow:visible; padding:0; }
.cc-solution-tabs > button { flex:initial; flex-direction:row; align-items:center; min-height:82px; padding:17px 20px; gap:14px; }
.cc-solution-tabs > button > .icon { display:block; width:17px; height:17px; }
.cc-solution-tabs strong { font-size:1.08rem; }.cc-solution-tabs small { margin-top:4px; }
}

/* Recorrido interactivo: las etapas se exploran sin avanzar automáticamente. */
.cc-process .section-head { margin-bottom:27px; }
.cc-process-invitation { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:.94rem; margin-bottom:22px; }
.cc-process-invitation .icon { width:17px; height:17px; color:var(--cyan); flex-shrink:0; }
.cc-process-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.cc-process-tab { display:flex; flex-direction:column; min-width:0; gap:14px; padding:22px; border:1px solid var(--line); border-radius:17px; background:var(--surface); color:var(--ink); text-decoration:none; transition:background .2s,border-color .2s,box-shadow .2s; }
.cc-process-tab:hover { border-color:var(--cyan); background:var(--pale); }
.cc-process-tab-top { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.cc-process-number { display:flex; align-items:center; justify-content:center; width:35px; height:35px; border:1px solid #0AD6DE66; border-radius:50%; color:var(--ink); font-size:.83rem; font-weight:600; }
.cc-process-tab-top > .icon { width:17px; height:17px; color:var(--cyan); }
.cc-process-tab > strong { font-size:1.13rem; font-weight:600; line-height:1.23; letter-spacing:-.015em; }
.cc-process-tab > small { font-size:.8rem; color:var(--muted); margin-top:auto; }
.cc-process-tab[aria-selected=true] { border-color:var(--cyan); background:#21406F; color:#FFF; box-shadow:inset 0 -3px 0 var(--cyan); }
.cc-process-tab[aria-selected=true] .cc-process-number { background:var(--cyan); color:#172F50; border-color:var(--cyan); }
.cc-process-tab[aria-selected=true] > small { color:#DCE8F6; }
.cc-process-tab:focus-visible { outline:3px solid var(--cyan); outline-offset:4px; }
.cc-process-rail { display:none; height:3px; background:var(--line); border-radius:10px; overflow:hidden; margin:19px 0 24px; }
.cc-process[data-process-ready] .cc-process-rail { display:block; }
.cc-process-rail > span { display:block; width:100%; height:100%; background:var(--cyan); transform:scaleX(var(--process-position,.25)); transform-origin:left; transition:transform .3s ease; }
.cc-process-panels { display:grid; gap:20px; }
.cc-process:not([data-process-ready]) .cc-process-panels { margin-top:25px; }
.cc-process-panel { overflow:hidden; min-width:0; background:var(--pale); border:1px solid var(--line); border-radius:21px; scroll-margin-top:125px; }
.cc-process-panel[hidden] { display:none !important; }
.cc-process-panel:focus-visible { outline:2px solid var(--cyan); outline-offset:4px; }
.cc-process[data-process-ready] .cc-process-panel { animation:cc-process-in .25s ease-out; }
.cc-process-detail { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:64px; align-items:center; min-height:240px; padding:32px 36px; }
.cc-process-copy .eyebrow { color:var(--muted); font-size:.72rem; letter-spacing:.05em; }
.cc-process-copy h3 { font:600 clamp(1.65rem,2.35vw,2.1rem)/1.15 var(--heading); letter-spacing:-.025em; margin-top:13px; }
.cc-process-copy > p { color:var(--muted); font-size:1rem; line-height:1.65; margin-top:17px; max-width:480px; }
.cc-process-includes h4 { font-size:.9rem; font-weight:600; margin:0 0 18px; }
.cc-process-includes ul { list-style:none; display:grid; gap:14px; padding:0; margin:0; }
.cc-process-includes li { display:flex; align-items:start; gap:11px; color:var(--muted); font-size:.95rem; line-height:1.5; }
.cc-process-includes li .icon { width:17px; height:20px; flex-shrink:0; color:var(--cyan); }
.cc-process-outcome { display:flex; align-items:center; gap:15px; padding:20px 36px; background:var(--surface); border-top:1px solid var(--line); }
.cc-process-outcome > span { display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:12px; background:var(--pale); color:var(--cyan); flex-shrink:0; }
.cc-process-outcome > span .icon { width:21px; height:21px; }
.cc-process-outcome h4 { color:var(--muted); font-size:.75rem; font-weight:400; margin-bottom:4px; }
.cc-process-outcome p { font-size:1rem; line-height:1.4; font-weight:600; margin:0; }
.cc-process-navigation { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:22px; }
.cc-process-status { font-size:.82rem; color:var(--muted); font-variant-numeric:tabular-nums; }
.cc-process-controls { display:flex; gap:10px; align-items:center; }
.cc-process-controls .button { font-size:.9rem; padding:12px 19px; min-height:46px; }
.cc-process-controls button:disabled { opacity:.4; cursor:default; pointer-events:none; }
.cc-arrow-back { transform:rotate(180deg); }
.cc-process-start { display:inline-flex; margin-top:28px; }
@keyframes cc-process-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1050px) {
  .cc-process-tabs { gap:10px; }.cc-process-tab { padding:19px; }.cc-process-tab > strong { font-size:1.05rem; }.cc-process-tab > small { font-size:.76rem; }
  .cc-process-detail { gap:34px; padding:28px; }.cc-process-outcome { padding-inline:28px; }
}
@media(max-width:720px) {
  .cc-process-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.cc-process-tab { padding:17px; gap:12px; }
  .cc-process-tab > strong { font-size:1.08rem; }.cc-process-tab > small { font-size:.78rem; }.cc-process-number { width:30px; height:30px; font-size:.76rem; }
  .cc-process-tab-top { gap:8px; }.cc-process-tab-top > .icon { width:15px; height:15px; }.cc-process-invitation { font-size:.9rem; align-items:start; }.cc-process-invitation .icon { margin-top:3px; }
  .cc-process-detail { grid-template-columns:1fr; min-height:0; gap:26px; padding:25px; }.cc-process-copy h3 { font-size:1.8rem; }.cc-process-copy > p { font-size:.98rem; margin-top:14px; }
  .cc-process-includes { border-top:1px solid var(--line); padding-top:24px; }.cc-process-includes h4 { margin-bottom:15px; }.cc-process-includes li { font-size:.94rem; }
  .cc-process-outcome { padding:20px 25px; align-items:start; gap:12px; }.cc-process-outcome p { font-size:.96rem; }.cc-process-outcome > span { width:34px; height:34px; border-radius:10px; }
  .cc-process-navigation { align-items:stretch; flex-direction:column; gap:13px; }.cc-process-controls { justify-content:space-between; }.cc-process-controls .button { padding-inline:17px; }
  .cc-process-rail { margin-block:16px 20px; }.cc-process-panel { border-radius:18px; }
}
@media(max-width:360px) {
  .cc-process-tab { padding:14px; }.cc-process-tab > strong { font-size:1rem; }.cc-process-tab > small { font-size:.73rem; }
  .cc-process-detail { padding:22px; }.cc-process-outcome { padding-inline:22px; }.cc-process-copy h3 { font-size:1.65rem; }
}
@media(prefers-reduced-motion:reduce) {
  .cc-process[data-process-ready] .cc-process-panel { animation:none; }.cc-process-tab,.cc-process-rail > span { transition:none; }
}

/* Organizaciones del portafolio: logotipos sobre fondo transparente. */
.cc-specialties { padding-bottom:42px; }
.cc-client-strip { background:var(--paper); padding:0 0 40px; overflow:hidden; }
.cc-client-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:10px; }
.cc-client-heading h2 { font:600 1.45rem/1.2 var(--heading); letter-spacing:-.02em; }
.cc-client-heading .cc-proof-pause { margin:0; border-color:var(--line); color:var(--ink); }
.cc-client-heading .cc-proof-pause:hover { color:#21406F; }
.cc-client-strip .cc-proof-viewport { width:100%; mask-image:linear-gradient(to right,transparent,#000 50px,#000 calc(100% - 50px),transparent); }
.cc-client-strip .cc-proof-track { display:flex; width:max-content; }
.cc-client-strip .cc-logo-group { flex-wrap:nowrap; gap:40px; padding:15px 20px; }
.cc-client-logo { display:flex; justify-content:center; align-items:center; flex:0 0 176px; width:176px; height:94px; margin:0; }
.cc-client-logo img { display:block; width:auto; height:auto; max-width:100%; max-height:82px; object-fit:contain; }
.cc-client-viewport:focus-visible { outline:2px solid var(--cyan); outline-offset:-3px; }
@media(max-width:720px) {
  .cc-specialties { padding-bottom:30px; }.cc-client-strip { padding-bottom:30px; }.cc-client-heading { margin-bottom:5px; }.cc-client-heading h2 { font-size:1.3rem; }
  .cc-client-strip .cc-logo-group { gap:32px; padding:10px 16px; }.cc-client-logo { flex-basis:144px; width:144px; height:82px; }.cc-client-logo img { max-height:72px; }
}
@media(prefers-reduced-motion:reduce) {
  .cc-client-strip .cc-proof-viewport { overflow-x:auto; mask-image:none; }
  .cc-client-strip .cc-proof-track { animation:none; transform:none; display:flex; width:max-content; }
  .cc-client-strip .cc-logo-group { flex-wrap:nowrap; }
}
