/* Base visual compartida: extraída del prototipo sin modificar su diseño. */
@font-face{font-family:Mulish;src:url("fonts/mulish-latin.woff2") format("woff2");font-weight:200 1000;font-style:normal;font-display:swap}
    :root{--blue:#263f60;--deep:#172d49;--gold:#e8c86d;--gold-soft:#fbf3d8;--ink:#172b43;--muted:#536273;--soft:#f8f9fb;--line:#dbe3ea;--white:#fff;--radius:18px;--shadow:0 18px 50px rgba(23,45,73,.13)}
    *{box-sizing:border-box} body{margin:0;color:var(--ink);font-family:Mulish,"Avenir Next",Avenir,"Segoe UI",sans-serif;background:var(--white);line-height:1.55} a{text-decoration:none;color:inherit}
    .top{background:var(--deep);color:#dfe9f4;font-size:.84rem;padding:9px 5vw;display:flex;justify-content:space-between;gap:20px}.top span:last-child{color:#fff}
    header{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:3}.nav{max-width:1180px;margin:auto;padding:11px 5vw;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:block;flex:0 0 auto;color:var(--blue)}.brand-logo{display:block;width:160px;height:auto;max-width:100%}.links{display:flex;align-items:center;gap:24px;font-size:.94rem;color:#40536a}.links a:hover{color:var(--blue)}.cta{background:var(--gold);color:var(--deep);font-weight:800;border-radius:999px;padding:11px 18px;box-shadow:0 8px 20px rgba(232,200,109,.28)}.menu-toggle{display:none;border:0;background:transparent;color:var(--blue);font:inherit;font-size:1.35rem;padding:8px;cursor:pointer}
    .hero{background:linear-gradient(112deg,#f8fafc 0%,#fff 58%,var(--gold-soft) 100%);padding:82px 5vw 76px;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;right:-50px;top:-80px;width:280px;height:280px;background:linear-gradient(135deg,transparent 45%,rgba(232,200,109,.38) 45%,rgba(232,200,109,.38) 57%,transparent 57%);transform:rotate(20deg);opacity:.8}.hero-inner{max-width:1180px;margin:auto;display:grid;grid-template-columns:1.1fr .9fr;gap:62px;align-items:center;position:relative;z-index:1}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:#755b0e;background:var(--gold-soft);border-radius:999px;padding:7px 12px;font-size:.82rem;font-weight:800}.eyebrow i{width:7px;height:7px;background:var(--gold);border-radius:50%}.hero h1{font-size:clamp(2.5rem,5vw,4.8rem);line-height:1.02;letter-spacing:-.055em;margin:20px 0 22px;color:var(--deep)}.hero h1 em{font-style:normal;color:var(--blue)}.hero p{font-size:1.16rem;max-width:600px;color:var(--muted);margin:0 0 30px}.actions{display:flex;gap:14px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:13px 20px;font-weight:800}.btn.primary{background:var(--blue);color:#fff}.btn.secondary{border:1px solid #b8c7d5;color:var(--blue);background:#fff}.hero-card{background:var(--blue);border-radius:28px;padding:28px;color:#fff;box-shadow:var(--shadow);position:relative;overflow:hidden}.hex-decoration{position:absolute;right:-80px;top:-76px;width:252px;height:224px;pointer-events:none}.hex-decoration span{position:absolute;display:block;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.hex-decoration .outer{inset:0;background:rgba(232,200,109,.58)}.hex-decoration .outer:after{content:"";position:absolute;inset:2px;background:var(--blue);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.hex-decoration .inner{width:232px;height:204px;right:10px;top:10px;background:rgba(232,200,109,.55)}.hex-decoration .inner:after{content:"";position:absolute;inset:1px;background:var(--blue);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.hero-card h3,.hero-card p{position:relative;z-index:1}.hero-card h3{font-size:1.35rem;margin:0 0 8px}.hero-card p{font-size:.98rem;color:#d6e1eb;margin:0 0 22px}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:relative;z-index:1}.mini{border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:13px;background:rgba(255,255,255,.06);font-size:.88rem}.mini strong{display:block;color:#fff;font-size:1rem;margin-bottom:4px}.mini span{color:#c5d3df}
    section{padding:74px 5vw}.wrap{max-width:1180px;margin:auto}.section-head{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:28px}.section-head h2{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.1;margin:0;color:var(--deep);letter-spacing:-.03em}.section-head p{max-width:520px;margin:0;color:var(--muted)}.soft{background:var(--soft)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{border:1px solid var(--line);border-radius:var(--radius);padding:23px;background:#fff;min-height:176px;transition:.2s}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#b9c9d8}.tag{color:#9a6900;font-weight:800;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}.card h3{margin:10px 0 8px;color:var(--blue);font-size:1.18rem}.card p{margin:0;color:var(--muted);font-size:.95rem}.rubros{display:flex;flex-wrap:wrap;gap:11px}.pill{padding:11px 15px;border:1px solid var(--line);background:#fff;border-radius:999px;color:var(--blue);font-weight:700}.band{background:var(--deep);color:#fff;padding:40px 5vw}.band-inner{max-width:1180px;margin:auto;display:flex;justify-content:space-between;gap:30px;align-items:center}.band h2{margin:0;font-size:1.7rem}.band p{color:#d7e3ee;margin:6px 0 0}.contact{display:grid;grid-template-columns:1fr .85fr;gap:22px;align-items:start}.contact-box,.form-card{border-radius:var(--radius);padding:27px;border:1px solid var(--line);background:#fff}.form-card{box-shadow:var(--shadow)}.contact-box h3,.form-card h3{margin:0 0 8px;color:var(--blue)}.contact-box p,.form-card p{color:var(--muted);margin:0 0 20px}.detail{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:0;color:var(--muted)}.detail b{color:var(--blue)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-wrap{display:grid;gap:6px}.field-wrap.full{grid-column:1/-1}.field-wrap label{font-size:.88rem;font-weight:800;color:var(--blue)}.field-wrap input,.field-wrap select,.field-wrap textarea{width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid #bdcbd8;border-radius:10px;padding:11px 12px}.field-wrap textarea{min-height:112px;resize:vertical}.check{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;color:var(--muted)}.check input{margin-top:4px;accent-color:var(--blue)}.helper{font-size:.78rem;color:#647488;margin:0}.form-card .btn{border:0;cursor:pointer}.contact-info{margin-top:22px}.contact-info h3{margin:0 0 8px;color:var(--blue)}.contact-info p{color:var(--muted);margin:0 0 18px}footer{padding:28px 5vw;border-top:1px solid var(--line);color:#647488;font-size:.88rem}.footer-inner{max-width:1180px;margin:auto;display:flex;justify-content:space-between;gap:20px}
    @media(max-width:850px){.nav{display:grid;grid-template-columns:1fr auto 1fr;padding-top:9px;padding-bottom:9px;gap:8px}.menu-toggle{display:block;justify-self:start}.brand{justify-self:center;min-width:0}.brand-logo{width:clamp(100px,17vw,138px)}.links{display:flex;justify-self:end}.links>a:not(.cta){display:none}.cta{padding:8px 11px;font-size:.78rem}.hero{padding-top:52px}.hero-inner,.contact{grid-template-columns:1fr}.hero-card{max-width:600px}.cards{grid-template-columns:1fr 1fr}.section-head,.band-inner,.footer-inner{align-items:flex-start;flex-direction:column}.top{font-size:.75rem}}
    @media(max-width:560px){.cards,.form-grid{grid-template-columns:1fr}.hero h1{font-size:2.8rem}.hero p{font-size:1.05rem}.nav{padding-top:14px;padding-bottom:14px}}

/* Pie único, centrado respecto de la página, no del contenido particular. */
.foot { padding: 10px 0 14px; border-top: 1px solid var(--line); background: #fff; color: var(--muted); font-size: .9rem; line-height: 1.3; }
.footline { display: flex; flex-direction: column; align-items: center; gap: 3px; text-align: center; }
.footer-email { color: inherit; overflow-wrap: anywhere; text-underline-offset: 3px; }
.footer-email:hover { color: var(--blue); }
.footer-email:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
.footer-mark-inline { justify-self: center; display: inline-flex; align-items: center; line-height: 0; }
.footer-mark { width: auto; height: 54px; opacity: 1; object-fit: contain; }
.whatsapp {
  position: fixed; right: 18px; bottom: 18px; z-index: 40;
  display: grid; place-items: center; width: 60px; height: 60px;
  background: #25d366; border: 0; padding: 0; cursor: pointer; border-radius: 50%; transition: transform .2s ease;
  box-shadow: 0 4px 16px #0003;
}
.whatsapp:hover { transform: translateY(-2px) scale(1.05); }
.whatsapp img { width: 36px; height: 40px; filter: brightness(0) invert(1); }
.ac-wa { --ac-wa-bottom: 18px; position: fixed; right: max(18px, env(safe-area-inset-right)); bottom: max(var(--ac-wa-bottom), env(safe-area-inset-bottom)); z-index: 60; }
.ac-wa .ac-wa-toggle { position: static; margin-left: auto; }
.ac-wa-panel { box-sizing: border-box; width: min(350px, calc(100vw - 36px)); max-height: calc(100dvh - var(--ac-wa-bottom) - 96px); overflow: auto; margin: 0 0 14px; padding: 0; border-radius: 18px; background: var(--soft); box-shadow: 0 8px 32px #162e2933; color: var(--ink); text-align: left; font: 400 16px/1.5 Mulish, sans-serif; animation: ac-wa-enter .18s ease-out; }
.ac-wa-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 14px 12px 14px 20px; background: var(--blue); color: #fff; }
.ac-wa-header strong { display: block; font-size: 17px; }
.ac-wa-header span { display: block; font-size: 14px; opacity: .9; }
.ac-wa .ac-wa-close { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #fff; cursor: pointer; font: 400 30px/1 sans-serif; }
.ac-wa-close:hover { background: #ffffff20; }
.ac-wa-body { padding: 20px; }
.ac-wa .ac-wa-bubble { margin: 0 0 20px; padding: 14px 16px; border-radius: 0 12px 12px; background: #fff; color: var(--ink); font-size: 16px; line-height: 1.6; box-shadow: 0 1px 3px #0001; }
.ac-wa .ac-wa-start { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 10px 14px; box-sizing: border-box; border-radius: 24px; background: #25d366; color: #073e23; font-weight: 800; text-decoration: none; }
.ac-wa-start:hover { background: #20c55e; }
.ac-wa .ac-wa-note { margin: 10px 0 0; text-align: center; font-size: 14px; line-height: 1.4; color: var(--muted); }
.ac-wa button:focus-visible, .ac-wa a:focus-visible, .whatsapp:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
@keyframes ac-wa-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .ac-wa-panel { animation: none; } }


.ac-wa-panel[hidden] { display: none !important; }
.footline { padding-inline: 20px; }
.footer-mark { width: 54px; height: 54px; }

/* Formulario: campos amplios, casillas compactas y contacto lateral. */
#contacto { scroll-margin-top: 100px; background: var(--soft); }
.contact-heading { max-width: 720px; margin-bottom: 30px; }
.contact-heading h2 { margin: 0 0 14px; color: var(--deep); font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.15; letter-spacing: -.03em; }
.contact-heading p { margin: 0; color: var(--muted); }
.contact { grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 28px; }
.contact > *, .form-grid > * { min-width: 0; }
.contact .form-card, .contact .contact-box { padding: clamp(20px, 3vw, 32px); }
.contact .form-card { box-shadow: 0 12px 36px rgba(23,45,73,.06); }
.form-card .required-note { margin: 0 0 22px; font-size: .85rem; }
.form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.field-wrap { align-content: start; gap: 8px; }
.field-wrap input:not([type="checkbox"]), .field-wrap select, .field-wrap textarea { min-width: 0; min-height: 48px; font-size: 16px; }
.field-wrap textarea { min-height: 150px; line-height: 1.6; }
.field-wrap input::placeholder, .field-wrap textarea::placeholder { color: #647488; opacity: 1; }
.field-wrap .optional { color: var(--muted); font-weight: 400; }
.field-wrap label.check { display: flex; align-items: flex-start; gap: 12px; font-weight: 400; line-height: 1.5; cursor: pointer; }
.field-wrap .check input[type="checkbox"] { flex: 0 0 18px; width: 18px; height: 18px; min-height: 0; margin: 3px 0 0; padding: 0; accent-color: var(--blue); }
.check-detail { display: block; margin-top: 5px; color: var(--muted); font-size: .85rem; }
.urgent-option { padding: 16px; background: var(--gold-soft); border: 1px solid #e8dba9; border-radius: 12px; }
.form-card .helper { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.form-actions { justify-items: start; gap: 12px; padding-top: 4px; }
.form-actions .btn { min-height: 48px; font: inherit; font-weight: 800; padding-inline: 28px; }
.form-actions .btn:disabled { opacity: .65; cursor: not-allowed; }
#contact-captcha[hidden] { display: none; }
#contact-captcha[hidden] { display: none; }
.form-card input:focus-visible, .form-card select:focus-visible, .form-card textarea:focus-visible, .contact a:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.contact-box h3 { margin-top: 12px; }
.contact-details { margin: 24px 0 0; display: grid; gap: 22px; }
.contact-details dt { margin-bottom: 5px; color: var(--blue); font-size: .85rem; font-weight: 800; }
.contact-details dd { margin: 0; color: var(--muted); overflow-wrap: anywhere; }
.contact-details a { color: var(--blue); text-decoration: underline; text-underline-offset: 4px; }
.contact-details .client-hours { border-top: 1px solid var(--line); padding-top: 20px; }
@media (max-width: 850px) {
  .contact { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .form-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .form-actions { justify-items: stretch; }
  .contact { gap: 20px; }
}

/* Páginas de servicios: una plantilla compartida para las once secciones. */
#servicios .section-head { display: grid; justify-items: start; align-items: start; gap: 16px; }
#servicios .section-head p { max-width: 760px; }
#servicios .cards { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; align-items: stretch; gap: 12px; }
#servicios .card { display: flex; flex-direction: column; min-width: 0; min-height: 0; padding: 16px 18px 12px; }
#servicios .card h3 { min-height: 0; line-height: 1.3; margin: 6px 0; }
#servicios .card p { margin-bottom: 4px; line-height: 1.45; }
#servicios .card .service-link, #servicios .card .consultation-link { margin-top: auto; }
#servicios .card-consultation { background: var(--gold-soft); border-color: #e8dba9; }
.card .consultation-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--blue); font-weight: 800; }
.consultation-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.consent-option { padding: 13px 15px; border: 1px solid var(--line); border-radius: 12px; grid-template-rows: auto 1fr; }
.consent-option.urgent-option { border-color: #e8dba9; }
.consent-option .check > span { min-width: 0; }
.consent-option label.check { margin: 0; align-items: flex-start; gap: 10px; }
.consent-option label.check input[type="checkbox"] { width: 18px; height: 18px; min-width: 18px; flex: 0 0 18px; margin: 2px 0 0; }
.consent-option label.check > span { line-height: 1.45; }
.consent-option .check-detail { margin-top: 4px; line-height: 1.45; }

@media (max-width: 850px) { #servicios .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  #servicios .cards { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; }
  #servicios .card h3 { min-height: 0; }
}
.card .service-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-top: 14px; color: var(--blue); font-weight: 800; }
.service-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.card a:focus-visible, .service-hero a:focus-visible, .related-service:focus-visible, .band a:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
.band a:focus-visible { outline-color: var(--gold); }
.band a:focus-visible { outline-color: var(--gold); }
.service-hero { padding-top: 28px; background: linear-gradient(112deg, var(--soft), #fff 65%, var(--gold-soft)); }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px 12px; margin-bottom: 44px; font-size: .85rem; color: var(--muted); }
.breadcrumbs a { text-decoration: underline; text-underline-offset: 4px; }
.service-hero-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: center; gap: 48px; }
.service-hero h1 { margin: 18px 0; color: var(--deep); font-size: clamp(2rem, 4.3vw, 3.9rem); letter-spacing: -.045em; line-height: 1.08; overflow-wrap: break-word; }
.service-intro { max-width: 680px; color: var(--muted); font-size: 1.12rem; margin: 0 0 26px; }
.service-audience { padding: 28px; border-radius: 22px; background: var(--blue); color: white; }
.service-audience .tag { color: var(--gold); }
.service-audience h2 { margin: 14px 0; font-size: 1.35rem; line-height: 1.35; }
.service-audience p { margin: 0; color: #dfe9f4; }
.service-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.service-group { position: relative; padding: 26px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.service-number { display: inline-grid; place-items: center; width: 38px; height: 38px; margin-bottom: 12px; color: var(--deep); background: var(--gold-soft); clip-path: polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%); font-size: .82rem; font-weight: 800; }
.service-group h3 { margin: 0 0 14px; font-size: 1.18rem; line-height: 1.4; color: var(--blue); }
.service-group ul { margin: 0; padding-left: 20px; color: var(--muted); }
.service-group li + li { margin-top: 8px; }
.scope-note { padding: 20px 24px; border-left: 3px solid var(--gold); background: var(--soft); color: var(--muted); margin: 26px 0 0; }
.training-extra { margin-top: 26px; padding: 26px; background: var(--gold-soft); border-radius: var(--radius); }
.training-extra h3 { margin: 0 0 10px; color: var(--blue); }
.training-extra p { margin: 0; }
.related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.related-service { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px; border: 1px solid var(--line); border-radius: 14px; background: white; color: var(--blue); font-weight: 800; }
.related-service:hover { border-color: var(--blue); }
.service-contact { flex-shrink: 0; background: var(--gold); color: var(--deep); }
.preview-status { margin: 0; padding: 12px 5vw; background: var(--gold-soft); color: var(--deep); font-size: .8rem; text-align: center; }
.links a[aria-current] { color: var(--blue); font-weight: 800; }
/* Navegación principal: separador visual como en Atajos Académicos. */
.links > a:not(.cta)[href$="#contacto"] { display: none; }
@media (min-width: 851px) {
  .links > a:first-child { display: inline-flex; align-items: center; gap: 20px; }
  .links > a:first-child::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); flex: 0 0 6px; }
}
@media (max-width: 850px) { .service-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 26px; } .related-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .service-groups { grid-template-columns: minmax(0, 1fr); } .service-group, .service-audience { padding: 22px; } .breadcrumbs { margin-bottom: 30px; } }

/* Reservas editoriales de imagen: no son imágenes rotas ni fotos de clientes. */
.service-context { display: grid; gap: 20px; min-width: 0; }
.image-reservation { margin: 0; border: 1px dashed #8d9eaf; border-radius: 18px; overflow: hidden; background: #fff; }
.image-reservation-visual { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 140px; aspect-ratio: 16 / 7; padding: 20px; color: var(--blue); background: linear-gradient(135deg,var(--soft),var(--gold-soft)); }
.image-reservation-visual svg { width: 44px; height: 44px; stroke: currentColor; stroke-width: 1.8; fill: none; }
.image-reservation-visual span { font-size: .85rem; font-weight: 800; }
.image-reservation figcaption { padding: 16px 20px; font-size: .85rem; color: var(--muted); }
.image-reservation figcaption strong { display: block; color: var(--blue); }
.image-reservation figcaption p { margin: 6px 0 0; }
.service-reference { margin-top: 28px; padding: 18px 22px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); }
.service-reference summary { min-height: 32px; font-weight: 800; color: var(--blue); cursor: pointer; }
.service-reference summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
.service-reference h3 { font-size: 1rem; color: var(--blue); }
.service-reference p, .service-reference li { color: var(--muted); font-size: .92rem; }
.service-reference li + li { margin-top: 8px; }
.service-reference a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.service-reference .reference-date { font-size: .8rem; }
.service-result, .service-questions { margin-top: 36px; }
.service-result h2, .service-questions h2 { color: var(--blue); font-size: 1.35rem; line-height: 1.35; margin: 0 0 14px; }
.service-result p { color: var(--muted); max-width: 78ch; margin: 0; }
.service-faq { margin-top: 12px; background: #fff; }

/* Rubros: orientación a los servicios, sin duplicar sus fichas. */
#inicio #rubros { display: none; }
.rubros a.pill { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; }
.rubros a.pill:hover { background: var(--gold-soft); color: var(--deep); }
.rubros a.pill[href$="#geriatricos"] { font-size: 0; }
.rubros a.pill[href$="#geriatricos"]::after { content: "Hogares para adultos mayores"; font-size: .95rem; }
.rubros a.pill[href$="#geriatricos"] { font-size: 0; }
.rubros a.pill[href$="#geriatricos"]::after { content: "Hogares para adultos mayores"; font-size: .95rem; }
.rubros a.pill:focus-visible, .sector-services a:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
.sector-guide { max-width: 85ch; margin: 0 0 30px; color: var(--muted); }
.sector-card { scroll-margin-top: 28px; }
.sector-card:target { border-color: var(--blue); }
.sector-card h2 { margin: 0 0 14px; color: var(--blue); font-size: 1.45rem; line-height: 1.3; }
.sector-card p { color: var(--muted); margin: 0 0 20px; }
.sector-card h3 { font-size: .9rem; margin-bottom: 8px; }
.sector-card .sector-services { list-style: none; padding: 0; }
.sector-card .sector-services li + li { margin-top: 0; }
.sector-services a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }

/* Navegación y presentación institucional. */
html { scroll-padding-top: 110px; }
.mobile-contact { display: none; }
.skip-link { position: fixed; left: 16px; top: 10px; z-index: 100; transform: translateY(-180%); padding: 12px 18px; background: var(--deep); color: white; border-radius: 8px; }
.skip-link:focus { transform: translateY(0); }
.nav a:focus-visible, .nav button:focus-visible, .about-grid a:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
.about-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.about-grid h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.15; letter-spacing: -.03em; color: var(--deep); margin: 18px 0; }
.about-grid p { color: var(--muted); }
.story-copy { max-width: 760px; }
.story-copy h2 { color: var(--deep); font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1.2; margin: 0 0 26px; }
.story-copy p { color: var(--muted); line-height: 1.8; margin: 0 0 22px; }
.story-values { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 20px; margin: 0; }
.story-values > div { padding: 26px; border: 1px solid var(--line); border-radius: var(--radius); }
.story-values dt { color: var(--blue); font-size: 1.2rem; font-weight: 800; margin-bottom: 12px; }
.story-values dd { color: var(--muted); margin: 0; }
.about-grid .btn { margin-top: 10px; }
.about-process { padding: 28px; background: var(--soft); border: 1px solid var(--line); border-radius: var(--radius); }
.about-process h3 { margin: 0 0 22px; color: var(--blue); }
.about-process ol { margin: 0; padding-left: 24px; display: grid; gap: 22px; }
.about-process li { padding-left: 8px; }
.about-process li::marker { color: var(--blue); font-weight: 800; }
.about-process strong, .about-process span { display: block; }
.about-process span { color: var(--muted); margin-top: 5px; }
@media (max-width: 850px) {
  .mobile-contact { display: inline-flex; justify-self: end; }
  .nav .menu-toggle { display: none; }
  .nav.nav-ready .menu-toggle { display: block; }
  .nav .brand { grid-column: 2; grid-row: 1; }
  .nav .mobile-contact { grid-column: 3; grid-row: 1; }
  .nav .menu-toggle { grid-column: 1; grid-row: 1; }
  .nav .links { grid-column: 1 / -1; justify-self: stretch; display: flex; flex-wrap: wrap; gap: 8px; padding-top: 10px; border-top: 1px solid var(--line); }
  .nav .links > a:not(.cta) { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; }
  .nav .links > .cta { display: none; }
  .nav.nav-ready .links { display: none; }
  .nav.nav-ready.is-open .links { display: flex; }
  .about-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
@media (max-width: 400px) {
  .nav .links > a:not(.cta) { flex: 1 1 40%; }
  .top { flex-wrap: wrap; gap: 4px; }
}


/* Casillas de formulario: proporción y alineación compartidas. */
.form-grid > .consent-option { grid-column: 1 / -1; }
.consent-option { min-width: 0; width: 100%; padding: 13px 15px; grid-template-rows: auto; align-content: start; }
.consent-option label.check { display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: start; gap: 10px; width: 100%; min-width: 0; margin: 0; }
.consent-option label.check input[type="checkbox"] { width: 18px; height: 18px; min-width: 0; margin: 2px 0 0; padding: 0; }
.consent-option label.check > span, .consent-option .check-detail, .consent-option .helper { min-width: 0; max-width: 100%; overflow-wrap: normal; word-break: normal; hyphens: none; }
.consent-option label.check > span, .consent-option .check-detail { line-height: 1.45; }
.consent-option .check-detail { margin-top: 4px; }
.consent-option .check-detail, .consent-option .helper { text-align: justify; text-justify: inter-word; }

/* Autorización y aclaraciones en un solo cuadro; urgencia debajo. */
.contact-notice { min-width: 0; padding: 15px 18px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.contact-notice .check { color: var(--blue); font-size: .88rem; }
.contact-notice .required-mark { color: #b42318; font-weight: 800; }
.contact-notice-copy { min-width: 0; margin: 14px 0 0 28px; }
.contact-notice p { min-width: 0; margin: 0; color: var(--blue); font-size: .88rem; line-height: 1.55; text-align: left; hyphens: none; }
.contact-notice p + p { margin-top: 12px; }
