/* Herramientas compartidas por todas las páginas. */
.cc-header .header-actions { gap:12px; }
.cc-search-trigger { border:1px solid var(--line); border-radius:50%; width:44px; height:44px; flex-shrink:0; }
.cc-search-trigger:hover { border-color:var(--cyan); background:var(--pale); }
.cc-guide-trigger { display:inline-flex; align-items:center; gap:9px; min-height:47px; white-space:nowrap; padding-inline:20px; font-size:.91rem; }
.cc-guide-trigger > .icon { width:19px; height:19px; }
.cc-service-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; justify-content:space-between; border-top:1px solid var(--line); padding-top:18px; }
.cc-service-actions .text-link { font-size:.87rem; gap:7px; }
.cc-service-actions .icon { width:16px; height:16px; }
.cc-quick-service { color:var(--muted); }.cc-quick-service:hover { color:var(--ink); }
.cc-modal-open { overflow:hidden; }
.cc-dialog { width:calc(100% - 40px); max-width:820px; max-height:calc(100dvh - 48px); padding:0; margin:auto; border:1px solid var(--line); border-radius:24px; background:var(--surface); color:var(--ink); font-family:var(--font); box-shadow:0 30px 100px #07152B55; overscroll-behavior:contain; }
.cc-dialog::backdrop { background:#0A193BD1; backdrop-filter:blur(5px); }
.cc-dialog[open] { animation:cc-dialog-in .2s ease-out; }
.cc-dialog-header { display:flex; align-items:start; justify-content:space-between; gap:20px; position:sticky; top:0; z-index:2; padding:27px 30px 24px; border-bottom:1px solid var(--line); background:var(--surface); }
.cc-dialog-header .eyebrow { color:var(--muted); font-size:.68rem; margin-bottom:10px; }
.cc-dialog-header h2 { font:600 clamp(1.5rem,3vw,1.95rem)/1.16 var(--heading); letter-spacing:-.025em; }
.cc-dialog-close { flex-shrink:0; width:40px; height:40px; border-radius:50%; background:var(--pale); color:var(--ink); border:1px solid var(--line); }
.cc-dialog-close:hover { border-color:var(--cyan); background:var(--cyan); color:#21406F; }
.cc-dialog-content { padding:26px 30px 30px; }
.cc-dialog-content h3 { font-family:var(--heading); font-size:1.5rem; font-weight:600; line-height:1.2; letter-spacing:-.015em; }
.cc-dialog-content h3:focus { outline:none; }
.cc-dialog-footer { display:flex; align-items:center; justify-content:space-between; gap:15px; background:var(--pale); color:var(--muted); padding:15px 30px; font-size:.75rem; border-top:1px solid var(--line); }
.cc-dialog-footer kbd { font-family:var(--font); white-space:nowrap; border:1px solid var(--line); border-radius:6px; background:var(--surface); padding:4px 8px; font-size:.72rem; }
.cc-global-search { display:flex; align-items:center; gap:12px; padding:5px 8px 5px 17px; min-height:57px; background:var(--paper); border:1px solid var(--line); border-radius:13px; }
.cc-global-search:focus-within { border-color:var(--cyan); box-shadow:0 0 0 3px #0AD6DE1A; }
.cc-global-search > .icon { width:21px; height:21px; flex-shrink:0; color:var(--muted); }
.cc-global-search input { background:none; border:0; outline:none; color:var(--ink); font:400 1rem var(--font); min-width:0; width:100%; padding:11px 0; box-shadow:none; }
.cc-global-search input::placeholder { color:var(--muted); font-size:.93rem; opacity:.8; }
.cc-search-clear { flex-shrink:0; border:0; background:none; border-radius:50%; color:var(--muted); }
.cc-search-types { display:flex; flex-wrap:wrap; gap:7px; margin-block:18px; }
.cc-search-types button { padding:8px 15px; border:1px solid var(--line); background:var(--surface); color:var(--muted); border-radius:999px; font:500 .86rem var(--font); cursor:pointer; }
.cc-search-types button[aria-pressed=true] { color:#21406F; border-color:var(--cyan); background:var(--cyan); }
.cc-search-types button:focus-visible,.cc-guide-family:focus-visible,.cc-guide-service:focus-visible { outline:2px solid var(--cyan); outline-offset:3px; }
.cc-search-status { color:var(--muted); font-size:.82rem; margin-bottom:13px; }
.cc-search-results { display:grid; gap:7px; }
.cc-search-result { display:flex; align-items:center; gap:14px; padding:14px 16px; border:1px solid var(--line); border-radius:12px; text-decoration:none; color:var(--ink); transition:background .15s,border-color .15s; }
.cc-search-result:hover,.cc-search-result:focus-visible { outline:none; background:var(--pale); border-color:var(--cyan); }
.cc-result-type { flex-shrink:0; min-width:57px; text-align:center; padding:6px 8px; border-radius:7px; background:var(--pale); color:var(--muted); font-size:.68rem; }
.cc-result-copy { min-width:0; flex:1; display:flex; flex-direction:column; gap:4px; }
.cc-result-copy strong { font-size:1rem; font-weight:600; line-height:1.3; }
.cc-result-copy small { font-size:.8rem; color:var(--muted); line-height:1.3; }
.cc-result-arrow { margin-left:auto; flex-shrink:0; color:var(--cyan); font-size:1.15rem; }
.cc-search-empty { padding:25px 10px 18px; text-align:center; }.cc-search-empty > span { display:inline-flex; justify-content:center; align-items:center; width:50px; height:50px; border-radius:50%; background:var(--pale); color:var(--cyan); margin-bottom:16px; }.cc-search-empty > p { margin:12px 0 20px; font-size:.95rem; color:var(--muted); }
.cc-guide-progress { font-size:.8rem; color:var(--muted); border-bottom:2px solid var(--cyan); padding-bottom:13px; margin-bottom:23px; }
.cc-guide-intro { color:var(--muted); font-size:1rem; line-height:1.6; margin:13px 0 23px; }
.cc-guide-choices { display:grid; gap:12px; }
.cc-guide-family,.cc-guide-service { display:flex; align-items:center; gap:17px; width:100%; min-width:0; padding:20px; border:1px solid var(--line); border-radius:15px; background:var(--surface); color:var(--ink); text-align:left; font-family:var(--font); cursor:pointer; transition:background .2s,border-color .2s; }
.cc-guide-family:hover,.cc-guide-service:hover { border-color:var(--cyan); background:var(--pale); }
.cc-guide-choice-icon { flex-shrink:0; width:44px; height:44px; display:flex; justify-content:center; align-items:center; color:var(--cyan); border:1px solid var(--line); border-radius:12px; }
.cc-guide-choice-icon .icon { width:24px; height:24px; }
.cc-guide-family > span:nth-child(2),.cc-guide-service > span:first-child { min-width:0; flex:1; }
.cc-guide-family strong,.cc-guide-service strong { display:block; font-size:1.07rem; font-weight:600; line-height:1.25; }
.cc-guide-family small,.cc-guide-service small { display:block; margin-top:6px; font-size:.85rem; color:var(--muted); line-height:1.5; }
.cc-guide-family > .icon { flex-shrink:0; width:18px; height:18px; color:var(--cyan); }
.cc-guide-back { font-size:.85rem; margin-bottom:24px; }
.cc-guide-result > .eyebrow { font-size:.7rem; color:var(--muted); }
.cc-guide-result > h3 { font-size:2rem; margin-block:13px 17px; }
.cc-guide-result > p,.cc-preview-description { font-size:1.02rem; color:var(--muted); line-height:1.65; }
.cc-guide-deliverables { list-style:none; display:grid; gap:13px; padding:0; margin:24px 0; }
.cc-guide-deliverables > li { display:flex; gap:11px; font-size:.96rem; line-height:1.55; color:var(--muted); }
.cc-list-check { flex-shrink:0; color:var(--cyan); font-weight:600; }
.cc-guide-note { margin-top:25px; }.cc-guide-note label { font-size:.92rem; }.cc-guide-note textarea { font-family:var(--font); font-size:.95rem; }
.cc-guide-result-actions,.cc-preview-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:24px; }
.cc-guide-result-actions > .text-link { font-size:.9rem; }
.cc-guide-disclosure { font-size:.8rem !important; line-height:1.55 !important; color:var(--muted); margin-top:16px; }
.cc-service-dialog .cc-dialog-content > h3 { font-size:1.1rem; margin-top:25px; }
.cc-preview-actions > .button { font-size:.91rem; padding-inline:21px; }
.cc-reveal { transition:opacity .45s ease,transform .45s ease,border-color .2s,box-shadow .2s; }
[data-reveal-pending] { opacity:0; transform:translateY(14px); }
.team-card { transition:border-color .2s,box-shadow .2s,transform .2s; }.team-card:hover { border-color:var(--cyan); box-shadow:0 10px 32px #21406F0C; }
.button > .icon { transition:transform .2s; }.button:hover > .icon:not(.cc-arrow-back) { transform:translateX(3px); }
@keyframes cc-dialog-in { from { opacity:0; transform:translateY(8px) scale(.99); } to { opacity:1; transform:translateY(0) scale(1); } }
@media(max-width:1150px) {
  .cc-guide-trigger { width:44px; height:44px; min-height:44px; padding:0; justify-content:center; border-radius:50%; flex-shrink:0; }.cc-guide-trigger > span { display:none; }
}
@media(max-width:720px) {
  .cc-header .header-inner { gap:10px; }.cc-header .brand-logo { width:58px; height:72px; }.cc-header .header-actions { gap:2px; }
  .cc-header .header-actions > .icon-button,.cc-header .cc-guide-trigger { width:44px; height:44px; min-width:44px; min-height:44px; padding:0; }
  .cc-header .consultation-link { min-width:44px; }
  .cc-dialog { width:calc(100% - 24px); border-radius:20px; max-height:calc(100dvh - 24px); }
  .cc-dialog-header { padding:22px 22px 20px; gap:15px; }.cc-dialog-header h2 { font-size:1.6rem; }.cc-dialog-header .eyebrow { font-size:.62rem; }.cc-dialog-close { width:38px; height:38px; }
  .cc-dialog-content { padding:23px 22px; }.cc-dialog-content h3 { font-size:1.4rem; }.cc-dialog-footer { padding:14px 22px; }.cc-dialog-footer kbd { display:none; }
  .cc-global-search { gap:9px; padding-left:13px; }.cc-global-search input { font-size:.94rem; }.cc-global-search input::placeholder { font-size:.82rem; }
  .cc-search-types { gap:6px; }.cc-search-types button { padding:8px 12px; font-size:.8rem; }
  .cc-search-result { align-items:start; flex-wrap:wrap; gap:8px; padding:15px; }.cc-result-type { min-width:0; padding:4px 7px; font-size:.65rem; }.cc-result-copy { flex-basis:calc(100% - 25px); order:2; }.cc-result-arrow { order:1; }.cc-result-copy strong { font-size:.97rem; }
  .cc-guide-family,.cc-guide-service { padding:17px; gap:13px; }.cc-guide-family strong,.cc-guide-service strong { font-size:1.02rem; }.cc-guide-family small,.cc-guide-service small { font-size:.83rem; }
  .cc-guide-choice-icon { width:36px; height:36px; border-radius:10px; }.cc-guide-choice-icon .icon { width:21px; height:21px; }.cc-guide-family > .icon { width:15px; height:15px; }
  .cc-guide-result > h3 { font-size:1.7rem; }.cc-guide-result > p,.cc-preview-description { font-size:.98rem; }.cc-guide-deliverables > li { font-size:.94rem; }
  .cc-guide-result-actions,.cc-preview-actions { gap:15px; }.cc-guide-result-actions > .button,.cc-preview-actions > .button { width:100%; justify-content:center; font-size:.92rem; padding-inline:16px; }.cc-guide-result-actions > .text-link { margin-inline:auto; }
}
@media(prefers-reduced-motion:reduce) {
  .cc-dialog[open] { animation:none; }.cc-reveal,.cc-guide-family,.cc-guide-service,.cc-search-result,.button > .icon,.team-card { transition:none; }
  [data-reveal-pending] { opacity:1; transform:none; }.button:hover > .icon:not(.cc-arrow-back) { transform:none; }
}

/* Acceso al aula junto a la marca en todas las páginas. */
.cc-header .header-inner { display:flex; gap:24px; }
.cc-header-aula { flex-shrink:0; gap:8px; padding:11px 15px; min-height:45px; font-size:.88rem; white-space:nowrap; }
.cc-header-aula .icon { width:17px; height:17px; }
.cc-mobile-tools { display:none; }
@media(max-width:1280px) {
  .cc-header .cc-guide-trigger { width:44px; height:44px; min-height:44px; padding:0; justify-content:center; border-radius:50%; flex-shrink:0; }.cc-header .cc-guide-trigger > span { display:none; }
}
@media(max-width:1100px) {
  .cc-header .menu-toggle { display:inline-flex; }
  .cc-header .main-nav { display:none; position:absolute; top:100%; 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-of-type { border:0; }
  .cc-header .header-actions { margin-left:auto; }
}
@media(max-width:720px) {
  .cc-header .header-inner { gap:8px; }.cc-header .brand-lockup { flex-shrink:0; }
  .cc-header-aula { min-height:44px; padding:10px 12px; font-size:.86rem; gap:0; }.cc-header-aula > .icon { display:none; }
  .cc-header .header-actions > [data-open-search],.cc-header .header-actions > [data-open-guide] { display:none; }
  .cc-header .main-nav { padding-inline:20px; }
  .cc-mobile-tools { display:flex; flex-direction:column; gap:12px; padding-top:16px; }.cc-mobile-tools .button { justify-content:center; font-size:.9rem; min-height:46px; }
}
