@font-face { font-family:"Questrial"; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/questrial-latin.woff2") format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Didact Gothic"; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/didact-gothic-latin.woff2") format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
:root {
  --header-height:112px; --navy:#140e2e; --wine:#8d1c41; --brand:#b5164f; --pink:#cf2d63;
  --blush:#f5eaf0; --paper:#f1f3f2; --ink-muted:#686371; --font:"Questrial","Century Gothic",sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header-height) + 20px); }
body { margin:0; background:var(--paper); color:var(--navy); font-family:var(--font); -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
a,button,summary { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #ef82a8; outline-offset:6px; }
img { display:block; max-width:100%; }
svg { display:block; }
p { margin:0; }
h1,h2,h3,h4 { font-weight:400; margin:0; }
h2 { font-size:clamp(38px,4vw,54px); line-height:1.12; letter-spacing:-1.7px; }
em { font-style:normal; }
.container { width:min(1240px,calc(100% - 96px)); margin-inline:auto; }
.section { padding-block:112px; }
.icon { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.skip-link { position:fixed; top:-120px; left:16px; padding:14px; background:white; color:var(--navy); z-index:20; }
.skip-link:focus { top:16px; }
.eyebrow { display:flex; gap:10px; align-items:center; color:#f583aa; font-size:10px; line-height:1.6; letter-spacing:1.7px; margin-bottom:25px; }
.eyebrow>span { width:23px; height:2px; background:currentColor; flex-shrink:0; }
.eyebrow.dark { color:var(--brand); }
.button { display:inline-flex; justify-content:center; align-items:center; gap:24px; padding:20px 26px; border-radius:40px; font-size:15px; line-height:1.3; transition:background .2s,transform .2s; }
.button .icon { width:20px; height:20px; }
.button-primary { background:var(--brand); color:white; }
.button-primary:hover { background:var(--pink); transform:translateY(-2px); }
.text-link { display:inline-flex; gap:14px; align-items:center; color:var(--brand); font-size:14px; line-height:1.5; padding-block:9px; }
.text-link span { transition:transform .2s; }
.text-link:hover span { transform:translate(3px,-3px); }
.text-link.light { color:white; }
.site-header { position:sticky; top:0; z-index:10; background:var(--navy); color:white; }
.header { height:var(--header-height); display:flex; align-items:center; justify-content:space-between; gap:24px; position:relative; }
.brand { display:flex; gap:14px; align-items:center; flex-shrink:0; }
.brand-mark { width:62px; height:auto; flex-shrink:0; }
.brand-descriptor { width:124px; height:44px; flex-shrink:0; fill:currentColor; font-family:var(--font); }
.brand-descriptor .brand-sub { opacity:.72; }
.nav { display:flex; align-items:center; gap:32px; font-size:13px; }
.nav a { position:relative; padding-block:13px; transition:color .2s; }
.nav a:hover,.nav-active { color:#f583aa; }
.nav-active::after { content:""; position:absolute; width:4px; height:4px; border-radius:50%; background:#f583aa; bottom:2px; left:calc(50% - 2px); }
.nav-contact span { margin-left:8px; }
.nav-group { position:relative; }
.nav-trigger { position:relative; display:inline-flex; align-items:center; gap:9px; padding:13px 0; background:none; border:0; color:inherit; font-size:inherit; cursor:pointer; transition:color .2s; }
.nav-trigger::before { content:""; order:1; width:5px; height:5px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:translateY(-2px) rotate(45deg); transition:transform .2s; }
.nav-trigger:hover,.nav-trigger[aria-expanded="true"] { color:#f583aa; }
.nav-trigger[aria-expanded="true"]::before { transform:translateY(1px) rotate(-135deg); }
.nav-menu { position:absolute; top:100%; left:-22px; min-width:290px; padding:10px; background:#21183d; border:1px solid #ffffff20; border-radius:14px; box-shadow:0 20px 35px #0004; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .18s,transform .18s,visibility .18s; }
.nav-menu::before { content:""; position:absolute; left:0; right:0; top:-14px; height:14px; }
.nav-group:hover .nav-menu,.nav-trigger[aria-expanded="true"]+.nav-menu { opacity:1; visibility:visible; transform:none; }
.nav-menu a { display:block; padding:12px 14px; border-radius:9px; font-size:14px; color:white; }
.nav-menu a span { display:block; margin-top:4px; font-size:12px; color:#b9b3c6; }
.nav-menu a:hover,.nav-menu a:focus-visible { background:#ffffff0d; color:#f583aa; }
.nav-menu a[aria-current="page"] { color:#f583aa; }
.menu-toggle { display:none; }
.hero-shell { position:relative; background:var(--navy); color:white; isolation:isolate; }
.hero { position:relative; display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(48px,6vw,96px); padding-top:38px; padding-bottom:77px; align-items:center; }
.hero-visual { margin:0 0 -130px; position:relative; align-self:stretch; min-height:620px; overflow:hidden; border-radius:20px; z-index:2; background:#393044; }
.hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.6); }
.photo-shade { position:absolute; inset:0; background:linear-gradient(180deg,transparent 48%,rgba(20,14,46,.84) 100%); }
.photo-caption { position:absolute; bottom:42px; left:34px; right:26px; display:flex; align-items:flex-start; gap:16px; font-size:19px; line-height:1.45; }
.photo-caption strong { font-weight:400; }
.caption-line { width:28px; height:2px; background:#ef709b; margin-top:13px; flex-shrink:0; }
.hero-copy { padding-top:20px; position:relative; z-index:1; }
h1 { font-size:clamp(52px,5vw,72px); line-height:1.06; letter-spacing:-2.4px; }
h1 em { color:#ee79a1; }
.hero-description { color:#d2cedc; font-family:"Didact Gothic",var(--font); font-size:18px; line-height:1.6; max-width:485px; margin-top:27px; }
.hero-actions { display:flex; align-items:center; gap:26px; margin-top:34px; }
.advisor { display:flex; align-items:center; gap:14px; margin-top:34px; }
.advisor-line { width:2px; height:32px; background:var(--pink); }
.advisor p { display:flex; flex-direction:column; gap:5px; }
.advisor strong { font-size:13px; font-weight:400; }
.advisor p>span { font-size:11px; color:#b2abbe; line-height:1.5; }
.brand-ribbons { position:absolute; bottom:0; right:0; width:55%; height:190px; overflow:hidden; z-index:-1; pointer-events:none; opacity:.22; display:flex; align-items:flex-end; justify-content:flex-end; gap:18px; }
.brand-ribbons i { display:block; flex:0 0 85px; height:130%; background:var(--wine); transform:skewX(-34deg) translate(60px,80px); }
.brand-ribbons i:nth-child(2) { background:#a70f49; }
.brand-ribbons i:nth-child(3) { background:var(--pink); }
.coverage { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; padding-top:123px; padding-bottom:44px; border-bottom:1px solid #dcd9df; }
.coverage p { display:flex; flex-direction:column; gap:9px; font-size:12px; color:var(--ink-muted); padding-left:24px; border-left:1px solid #dcd9df; }
.coverage p:first-child { padding-left:0; border:0; }
.coverage strong { font-size:21px; font-weight:400; color:var(--navy); letter-spacing:-.4px; }
.section-intro { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:start; }
.intro-copy { color:var(--ink-muted); font-size:16px; line-height:1.75; }
.intro-copy .lead { color:var(--navy); font-size:21px; line-height:1.5; margin-bottom:18px; }
.intro-copy .text-link { margin-top:18px; }
.about-person { display:grid; grid-template-columns:80px 1fr; align-items:center; gap:20px; margin-bottom:20px; }
.about-portrait { width:80px; height:96px; object-fit:cover; object-position:center 20%; border-radius:12px; }
.about-person .lead { margin:0; }
.experience-note { display:flex; gap:19px; align-items:center; margin-top:32px; padding-top:27px; border-top:1px solid #dcd9df; }
.experience-note>strong { font-size:64px; line-height:1; letter-spacing:-3px; font-weight:400; color:var(--brand); }
.experience-note p { font-size:18px; line-height:1.4; }
.experience-note p>span { display:block; font-size:12px; color:var(--ink-muted); margin-top:5px; }
.about-service-copy { margin-top:17px; }
.credentials { margin-top:23px; border-top:1px solid #dcd9df; border-bottom:1px solid #dcd9df; }
.credentials summary { display:flex; justify-content:space-between; align-items:center; gap:16px; padding-block:15px; list-style:none; cursor:pointer; color:var(--brand); font-size:14px; }
.credentials summary::-webkit-details-marker { display:none; }
.credentials summary>span { font-size:20px; transition:transform .2s; }
.credentials[open] summary>span { transform:rotate(45deg); }
.credentials ul { list-style:none; padding:0 0 10px; margin:0; }
.credentials li { padding-block:13px; border-top:1px solid #e2dde3; }
.credentials li>strong { display:block; color:var(--navy); font-size:14px; font-weight:400; line-height:1.5; }
.credentials li>span { display:block; font-size:12px; line-height:1.6; margin-top:5px; }
.about-image { margin-top:49px; height:410px; overflow:hidden; border-radius:20px 20px 0 0; }
.about-image img { width:100%; height:100%; object-fit:cover; object-position:center 56%; filter:saturate(.6); }
.statement-band { position:relative; overflow:hidden; isolation:isolate; background:var(--brand); color:white; border-radius:0 0 20px 20px; padding:35px 45px; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.statement-band p { font-size:28px; line-height:1.3; letter-spacing:-.5px; }
.statement-band p span { color:#f4bcd0; }
.statement-band>svg { width:58px; height:58px; fill:none; stroke:currentColor; stroke-width:1; }
.band-slashes { position:absolute; z-index:-1; right:120px; top:0; bottom:0; display:flex; gap:12px; opacity:.15; }
.band-slashes i { width:45px; background:white; transform:skewX(-34deg); }
.services { background:white; }
.section-heading { margin-bottom:60px; }
.centered { text-align:center; max-width:740px; margin-inline:auto; }
.centered .eyebrow { justify-content:center; }
.section-heading>p:last-child { font-size:17px; line-height:1.7; color:var(--ink-muted); }
.centered>p:last-child { max-width:550px; margin:24px auto 0; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); column-gap:55px; row-gap:48px; }
.service-item { border-top:1px solid #e1dde3; padding-top:31px; display:flex; flex-direction:column; align-items:flex-start; }
.service-icon { width:44px; height:44px; margin-bottom:25px; fill:none; stroke:var(--brand); stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round; }
.service-item h3 { font-size:23px; line-height:1.25; letter-spacing:-.5px; }
.service-item>p { font-size:16px; line-height:1.7; color:var(--ink-muted); margin-top:15px; margin-bottom:17px; }
.service-item .text-link { margin-top:auto; font-size:13px; }
/* Si el último servicio queda solo en su fila, ocupa todo el ancho en formato horizontal. */
@media (min-width:901px) {
  .service-item:last-child:nth-child(3n+1) { grid-column:1 / -1; display:grid; grid-template-columns:44px minmax(0,.9fr) minmax(0,1.7fr) auto; column-gap:36px; align-items:center; }
  .service-item:last-child:nth-child(3n+1) .service-icon { margin:0; }
  .service-item:last-child:nth-child(3n+1)>p { margin:0; }
  .service-item:last-child:nth-child(3n+1) .text-link { margin:0; }
}
@media (min-width:701px) and (max-width:900px) {
  .service-item:last-child:nth-child(odd) { grid-column:1 / -1; }
}
.services-note { display:flex; gap:16px; align-items:center; padding:24px 0 0; border-top:1px solid #e1dde3; margin-top:47px; color:var(--ink-muted); }
.services-note svg { color:var(--brand); }
.services-note p { font-size:13px; line-height:1.65; max-width:810px; }
.services-note a { color:var(--brand); text-decoration:underline; text-underline-offset:3px; }
.split-heading { display:grid; grid-template-columns:1.5fr 1fr; gap:70px; align-items:end; }
.split-heading h2 { font-size:clamp(38px,3.6vw,49px); }
.medical-feature { display:grid; grid-template-columns:1fr 1fr; border-radius:20px; overflow:hidden; }
.industry-tabs { display:flex; width:fit-content; max-width:100%; justify-content:center; gap:6px; margin:0 auto 44px; padding:7px; border:1px solid #ddd4db; border-radius:48px; background:#fff; }
.industry-tabs[hidden],.industry-panel[hidden] { display:none; }
.industry-tabs button { border:0; border-radius:36px; background:transparent; color:var(--ink-muted); padding:15px 25px; font-size:14px; line-height:1.3; cursor:pointer; white-space:nowrap; transition:background .2s,color .2s; }
.industry-tabs button:hover { color:var(--brand); background:var(--blush); }
.industry-tabs button[aria-selected="true"] { background:var(--brand); color:white; }
.industry-tabs button span { margin-left:6px; }
.industry-panel { scroll-margin-top:100px; }
.industry-panel:focus-visible { outline:2px solid var(--brand); outline-offset:8px; border-radius:20px; }
.industry-panel-intro { display:flex; gap:40px; justify-content:space-between; align-items:center; padding-block:5px 28px; }
.industry-panel-intro .eyebrow { margin:0; flex:1; }
.industry-panel-intro>p:last-child { max-width:570px; font-size:16px; line-height:1.7; color:var(--ink-muted); flex:1.5; }
.medical-panel.professional-panel { background:var(--navy); }
.medical-panel.commerce-panel { background:var(--brand); }
.medical-panel.freelance-panel { background:#2a1d4f; }
.industry-support { display:grid; grid-template-columns:repeat(3,1fr); gap:42px; margin-top:50px; }
.industry-support article { border-top:1px solid #dcd9df; padding-top:24px; }
.industry-support h3 { font-size:22px; letter-spacing:-.4px; line-height:1.3; }
.industry-support p { font-size:15px; line-height:1.7; color:var(--ink-muted); margin-top:14px; }
.more-industries { background:white; padding:48px; border-radius:20px; }
.more-industries-heading { max-width:630px; }
.more-industries-heading h3 { font-size:38px; letter-spacing:-1.1px; line-height:1.15; }
.more-industries-heading>p:last-child { font-size:16px; line-height:1.7; color:var(--ink-muted); margin-top:22px; }
.activities-grid { display:grid; grid-template-columns:repeat(3,1fr); list-style:none; padding:0; margin:35px 0; gap:0 28px; }
.activities-grid li { border-top:1px solid #e3dce2; display:flex; gap:14px; align-items:center; padding-block:22px; font-size:16px; line-height:1.4; }
.activities-grid .icon { width:24px; height:24px; color:var(--brand); }
.activities-footer { display:flex; justify-content:space-between; align-items:center; gap:40px; border-top:1px solid #e3dce2; padding-top:25px; }
.activities-footer p { font-size:13px; line-height:1.7; max-width:500px; color:var(--ink-muted); }
.activities-footer .button { flex-shrink:0; }
.medical-image { position:relative; margin:0; min-height:650px; background:#b9bec0; }
.medical-image img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:46% center; filter:saturate(.65); }
.medical-image img.photo-top { object-position:center 18%; }
.medical-image::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#140e2ec9,transparent 55%); }
.medical-image figcaption { position:absolute; bottom:40px; left:40px; right:32px; z-index:1; color:white; font-size:30px; line-height:1.35; letter-spacing:-.7px; }
.medical-image figcaption span { display:block; font-size:15px; letter-spacing:0; margin-top:10px; }
.medical-panel { background:var(--wine); color:white; padding:46px 45px; }
.medical-symbol { width:42px; height:42px; fill:none; stroke:#f2a7c1; stroke-width:1.3; margin-bottom:26px; }
.medical-panel h3 { font-size:37px; line-height:1.15; letter-spacing:-1px; }
.medical-panel>p { color:#f1cbd8; font-size:16px; line-height:1.7; margin-block:23px 27px; }
.medical-path { border-top:1px solid #ffffff35; padding-block:19px; }
.medical-path>span { display:block; color:white; font-size:16px; margin-bottom:8px; }
.medical-path p { color:#f1cbd8; font-size:14px; line-height:1.7; }
.medical-panel .text-link { margin-top:8px; }
.medical-links { display:flex; flex-wrap:wrap; gap:4px 30px; margin-top:8px; }
.medical-links .text-link { margin-top:0; }
.eyebrow-link { display:inline-flex; align-items:center; gap:10px; padding-block:6px; border-bottom:1px solid currentColor; }
.eyebrow-link>span { width:23px; height:2px; background:currentColor; flex-shrink:0; }
.eyebrow-link .icon { width:15px; height:15px; transform:rotate(-45deg); transition:transform .2s; }
.eyebrow-link:hover { color:var(--pink); }
.eyebrow-link:hover .icon { transform:rotate(-45deg) translateX(3px); }
.activities-grid a { transition:color .2s; }
.activities-grid a:hover { color:var(--brand); }
.process { background:var(--blush); }
.process-list { display:grid; grid-template-columns:repeat(3,1fr); gap:50px; list-style:none; margin:0; padding:0; }
.process-list li { border-top:1px solid #d8bcc8; padding-top:22px; }
.step-number { display:block; color:var(--brand); font-size:37px; margin-bottom:24px; letter-spacing:-1px; }
.process-list h3 { font-size:23px; line-height:1.3; letter-spacing:-.5px; }
.process-list p { color:var(--ink-muted); font-size:16px; line-height:1.7; margin-top:15px; }
.faq { display:grid; grid-template-columns:.9fr 1.1fr; gap:90px; }
.faq-heading h2 { font-size:clamp(38px,3.6vw,49px); }
.faq-heading>p:not(.eyebrow) { color:var(--ink-muted); font-size:16px; line-height:1.7; margin-top:23px; }
.faq-heading .text-link { margin-top:22px; }
.faq-list details { border-bottom:1px solid #dcd9df; }
.faq-list details:first-child { border-top:1px solid #dcd9df; }
.faq-list summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:22px; padding-block:25px; font-size:18px; line-height:1.4; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-plus { position:relative; width:17px; height:17px; flex-shrink:0; }
.faq-plus::before,.faq-plus::after { content:""; position:absolute; background:var(--brand); width:14px; height:1px; top:8px; left:1px; }
.faq-plus::after { transform:rotate(90deg); transition:transform .2s; }
details[open] .faq-plus::after { transform:rotate(0); }
.faq-answer { padding-bottom:26px; font-size:15px; line-height:1.75; color:var(--ink-muted); }
.faq-answer p+p { margin-top:14px; }
.faq-answer a { text-decoration:underline; text-underline-offset:3px; color:var(--brand); }
.contact-section { position:relative; isolation:isolate; background:var(--navy); color:white; }
.contact-inner { display:grid; grid-template-columns:1.4fr 1fr; gap:100px; padding-block:95px; align-items:center; }
.contact-copy h2 { font-size:clamp(44px,4.6vw,65px); line-height:1.05; letter-spacing:-2px; }
.contact-copy h2 em { color:#ee79a1; }
.contact-copy>p:not(.eyebrow) { font-size:17px; line-height:1.7; max-width:440px; margin-top:26px; color:#d2cedc; }
.contact-copy .button { margin-top:30px; }
.contact-details { border-left:1px solid #ffffff2a; padding-left:55px; display:flex; flex-direction:column; align-items:flex-start; gap:24px; }
.contact-details .contact-portrait { width:144px; height:168px; object-fit:cover; object-position:center 20%; border-radius:18px; }
.contact-name { font-size:27px; letter-spacing:-.5px; }
.contact-name span { display:block; font-size:12px; letter-spacing:.3px; color:#bcb4cd; margin-top:8px; }
.contact-details>a { font-size:15px; line-height:1.6; display:inline-flex; gap:16px; }
.contact-details>a:hover { color:#ee79a1; }
.contact-details .contact-phone { font-size:25px; letter-spacing:-.6px; }
.contact-hours { color:#d2cedc; font-size:13px; line-height:1.7; }
.contact-hours span { display:block; color:#9b92ae; font-size:11px; margin-top:5px; }
.contact-section .brand-ribbons { width:70%; height:260px; opacity:.16; }
.site-footer { background:white; }
.footer-top { display:flex; flex-direction:column; align-items:center; gap:24px; padding-block:55px; text-align:center; }
.footer-brand { flex-direction:column; gap:17px; color:var(--navy); }
.footer-brand .brand-mark { width:76px; }
.footer-brand .brand-descriptor { width:140px; height:50px; }
.footer-top>p { font-size:16px; line-height:1.7; color:var(--ink-muted); }
.footer-top nav { display:flex; flex-wrap:wrap; justify-content:center; gap:17px 30px; font-size:13px; }
.footer-top nav a:hover { color:var(--brand); }
.footer-bottom { border-top:1px solid #e1dde3; padding-block:24px; display:flex; flex-wrap:wrap; justify-content:center; gap:12px 30px; color:var(--ink-muted); font-size:11px; line-height:1.6; text-align:center; }
@media (min-width:1600px) {
  :root { --header-height:128px; }
  .hero { padding-top:42px; padding-bottom:98px; }
  .hero-visual { min-height:635px; }
}
@media (max-width:1100px) {
  .container { width:calc(100% - 64px); }
  .nav { gap:22px; }
  .brand-descriptor { width:118px; height:auto; }
  .hero { gap:42px; }
  .hero-visual { min-height:600px; }
  .hero-actions { gap:12px; flex-direction:column; align-items:flex-start; }
  .eyebrow { letter-spacing:1.3px; font-size:9px; }
  .section { padding-block:85px; }
  .section-intro,.split-heading,.faq { gap:45px; }
  .service-grid { column-gap:32px; }
  .medical-panel { padding:35px 30px; }
  .medical-panel h3 { font-size:32px; }
  .contact-inner { gap:50px; }
  .contact-details { padding-left:35px; }
}
@media (max-width:900px) {
  :root { --header-height:94px; }
  .brand-mark { width:51px; }
  .menu-toggle { display:flex; flex-direction:column; justify-content:center; gap:6px; width:42px; height:42px; background:transparent; border:1px solid #ffffff40; border-radius:50%; padding:11px; color:white; cursor:pointer; }
  .menu-toggle span { height:1px; width:18px; background:currentColor; transition:transform .2s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .nav { display:none; position:absolute; top:81px; left:0; right:0; background:#21183d; border:1px solid #ffffff20; border-radius:14px; padding:12px 22px; gap:6px; box-shadow:0 20px 35px #0003; }
  .nav.is-open { display:flex; flex-direction:column; align-items:stretch; }
  .nav-active::after { display:none; }
  .nav a { font-size:15px; }
  .nav-trigger { width:100%; justify-content:space-between; font-size:15px; }
  .nav-trigger.nav-active { color:#f583aa; }
  .nav-menu { position:static; min-width:0; padding:0 0 6px 14px; background:none; border:0; border-left:1px solid #ffffff20; border-radius:0; box-shadow:none; display:none; opacity:1; visibility:visible; transform:none; transition:none; }
  .nav-menu::before { display:none; }
  .nav-group:hover .nav-menu { display:none; }
  .nav-trigger[aria-expanded="true"]+.nav-menu { display:block; }
  .nav-menu a { padding:10px 0 10px 4px; font-size:15px; }
  .nav-menu a:hover,.nav-menu a:focus-visible { background:none; }
  .hero { gap:32px; }
  h1 { font-size:49px; letter-spacing:-1.8px; }
  .hero-description { font-size:17px; }
  .hero .eyebrow { max-width:280px; }
  .photo-caption { left:24px; font-size:17px; gap:12px; }
  .coverage { gap:18px; }
  .coverage p { padding-left:18px; }
  .coverage strong { font-size:18px; }
  .service-grid { grid-template-columns:repeat(2,1fr); }
  .split-heading { grid-template-columns:1.3fr 1fr; gap:30px; }
  .medical-feature { grid-template-columns:.9fr 1.1fr; }
  .medical-image figcaption { left:25px; font-size:26px; }
  .process-list { gap:30px; }
  .process-list h3 { font-size:21px; }
  .faq { grid-template-columns:1fr 1.2fr; gap:35px; }
  .contact-inner { grid-template-columns:1.2fr 1fr; gap:35px; }
  .contact-details { padding-left:25px; }
  .contact-details>a { font-size:13px; gap:8px; }
}
@media (min-width:701px) and (max-width:900px) {
  .nav { left:auto; width:340px; }
}
@media (max-width:700px) {
  :root { --header-height:90px; }
  .container { width:calc(100% - 40px); }
  .section { padding-block:68px; }
  h2 { font-size:38px; letter-spacing:-1.2px; }
  .brand-mark { width:49px; }
  .brand { gap:12px; }
  .brand-descriptor { width:112px; }
  .nav { top:78px; }
  .hero { display:flex; flex-direction:column; gap:34px; padding-top:27px; padding-bottom:0; align-items:stretch; }
  .hero-copy { order:0; padding-top:0; }
  .hero-visual { order:1; min-height:0; height:380px; align-self:auto; margin:0 0 -48px; border-radius:16px; }
  .hero-photo { object-position:center 45%; }
  h1 { font-size:clamp(48px,10vw,66px); letter-spacing:-1.9px; }
  .hero .eyebrow { max-width:none; font-size:8px; letter-spacing:1.1px; gap:8px; margin-bottom:23px; }
  .hero .eyebrow>span { width:18px; }
  .hero-description { max-width:510px; margin-top:23px; line-height:1.65; }
  .hero-actions { flex-direction:row; align-items:center; flex-wrap:wrap; gap:18px; margin-top:27px; }
  .button { padding:18px 22px; gap:18px; font-size:14px; }
  .hero-actions .text-link { font-size:13px; }
  .advisor { margin-top:26px; }
  .advisor p>span { font-size:10px; }
  .photo-caption { bottom:28px; left:25px; font-size:18px; }
  .brand-ribbons { height:330px; width:100%; }
  .coverage { grid-template-columns:1fr 1fr; padding-top:88px; padding-bottom:34px; gap:26px 20px; }
  .coverage p { border:0; padding-left:0; gap:7px; font-size:11px; }
  .coverage strong { font-size:19px; }
  .section-intro,.split-heading { display:grid; grid-template-columns:1fr; gap:27px; }

  .intro-copy .lead { font-size:20px; }
  .intro-copy { font-size:16px; }
  .about-image { height:260px; margin-top:30px; border-radius:16px 16px 0 0; }
  .statement-band { padding:25px; border-radius:0 0 16px 16px; }
  .statement-band p { font-size:22px; }
  .statement-band>svg { width:35px; height:35px; flex-shrink:0; }
  .band-slashes { right:45px; }
  .section-heading { margin-bottom:35px; }
  .section-heading>p:last-child { font-size:16px; }
  .centered { text-align:left; }
  .centered .eyebrow { justify-content:flex-start; }
  .centered>p:last-child { margin-top:22px; }
  .service-grid { grid-template-columns:1fr; gap:28px; }
  .service-item { padding-top:25px; display:grid; grid-template-columns:38px 1fr; gap:0 18px; align-items:start; }
  .service-icon { width:34px; height:34px; grid-row:1 / 4; margin-bottom:0; }
  .service-item h3 { font-size:23px; }
  .service-item>p { margin-block:12px 10px; font-size:15px; }
  .service-item .text-link { grid-column:2; justify-self:start; }
  .services-note { align-items:flex-start; gap:12px; margin-top:30px; }
  .services-note p { font-size:12px; }
  .split-heading h2 { font-size:38px; }
  .medical-feature { grid-template-columns:1fr; border-radius:16px; }
  .industry-tabs { display:grid; grid-template-columns:1fr 1fr; width:100%; gap:6px; padding:6px; border-radius:22px; margin-bottom:29px; }
  .industry-tabs button { white-space:normal; padding:14px 10px; font-size:13px; border-radius:16px; }
  .industry-tabs button:last-child { grid-column:1 / -1; }
  .industry-panel-intro { flex-direction:column; align-items:flex-start; gap:17px; padding-bottom:25px; }
  .industry-panel-intro>p:last-child { font-size:15px; }
  .industry-support { grid-template-columns:1fr; gap:24px; margin-top:32px; }
  .industry-support article { padding-top:22px; }
  .more-industries { padding:28px 22px; border-radius:16px; }
  .more-industries-heading h3 { font-size:32px; }
  .more-industries-heading>p:last-child { font-size:15px; }
  .activities-grid { grid-template-columns:1fr 1fr; gap:0 18px; margin-block:28px; }
  .activities-grid li { align-items:flex-start; flex-direction:column; gap:11px; font-size:14px; padding-block:20px; }
  .activities-footer { flex-direction:column; align-items:flex-start; gap:23px; }
  .activities-footer .button { width:100%; padding-inline:14px; font-size:13px; gap:12px; }
  .medical-image { min-height:360px; }
  .medical-image img { object-position:center 42%; }
  .medical-image img.photo-top { object-position:center 15%; }
  .medical-image figcaption { bottom:28px; font-size:28px; }
  .medical-image figcaption span { font-size:13px; }
  .medical-panel { padding:30px 25px; }
  .medical-panel h3 { font-size:35px; }
  .medical-symbol { margin-bottom:23px; }
  .medical-panel>p { font-size:15px; }
  .process-list { grid-template-columns:1fr; gap:25px; }
  .process-list li { display:grid; grid-template-columns:44px 1fr; gap:0 20px; }
  .step-number { grid-row:1 / 3; font-size:30px; margin:0; }
  .process-list h3 { font-size:23px; }
  .process-list p { font-size:15px; margin-top:12px; }
  .faq { grid-template-columns:1fr; gap:30px; }
  .faq-heading h2 { font-size:38px; }
  .faq-heading .text-link { margin-top:13px; }
  .faq-list summary { font-size:17px; padding-block:22px; gap:16px; }
  .contact-inner { grid-template-columns:1fr; padding-block:65px; gap:45px; }
  .contact-copy h2 { font-size:clamp(42px,9vw,60px); letter-spacing:-1.4px; }
  .contact-copy>p:not(.eyebrow) { font-size:16px; }
  .contact-details { border-left:0; border-top:1px solid #ffffff2a; padding:35px 0 0; gap:21px; }
  .contact-details .contact-portrait { width:120px; height:140px; border-radius:15px; }
  .contact-details>a { font-size:16px; }
  .contact-details .contact-phone { font-size:25px; }
  .footer-top { gap:26px; padding-block:38px; }
  .footer-top>p { font-size:15px; }
  .footer-top nav { display:grid; grid-template-columns:1fr 1fr; gap:17px 24px; }
  .footer-bottom { flex-direction:column; gap:10px; }
}
/* WhatsApp flotante: sin JavaScript es un enlace directo; main.js lo convierte en mini chat */
.wa-widget { position:fixed; right:28px; bottom:calc(28px + env(safe-area-inset-bottom)); z-index:30; display:flex; flex-direction:column; align-items:flex-end; gap:14px; pointer-events:none; }
.wa-widget>* { pointer-events:auto; }
.wa-float { position:fixed; right:28px; bottom:calc(28px + env(safe-area-inset-bottom)); z-index:30; display:grid; place-items:center; width:62px; height:62px; border-radius:50%; background:#25d366; color:white; box-shadow:0 12px 28px #25d36650; transition:transform .25s,box-shadow .25s; cursor:pointer; }
.wa-widget .wa-float { position:static; }
.wa-float:hover { transform:translateY(-3px); box-shadow:0 16px 32px #25d36670; }
.wa-float:focus-visible { outline-color:var(--navy); }
.wa-glyph { width:32px; height:32px; fill:currentColor; }
.wa-chat { width:330px; border-radius:18px 18px 4px 18px; overflow:hidden; background:white; box-shadow:0 22px 50px #140e2e40,0 2px 8px #140e2e1a; opacity:0; visibility:hidden; transform:translateY(12px) scale(.96); transform-origin:bottom right; transition:opacity .25s,transform .25s,visibility .25s; }
.wa-chat.is-open { opacity:1; visibility:visible; transform:none; }
.wa-chat-header { display:flex; align-items:center; gap:12px; padding:14px 14px 14px 16px; background:var(--navy); color:white; }
.wa-chat-header img { width:42px; height:42px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.wa-chat-header div { flex:1; min-width:0; }
.wa-chat-header strong { display:block; font-size:15px; font-weight:400; }
.wa-chat-header small { display:flex; align-items:center; gap:6px; margin-top:3px; color:#c9c3d6; font-size:12px; }
.wa-chat-header small::before { content:""; width:7px; height:7px; border-radius:50%; background:#25d366; }
.wa-chat-close { display:grid; place-items:center; width:32px; height:32px; border:0; border-radius:50%; background:none; color:#c9c3d6; cursor:pointer; }
.wa-chat-close:hover { background:#ffffff14; color:white; }
.wa-chat-close svg { width:18px; height:18px; }
.wa-chat-body { display:flex; flex-direction:column; gap:8px; padding:18px 16px; background:var(--blush); }
.wa-bubble { margin:0; max-width:90%; padding:10px 13px; border-radius:4px 14px 14px 14px; background:white; color:var(--navy); font-size:14px; line-height:1.45; box-shadow:0 1px 2px #140e2e14; opacity:0; transform:translateY(6px); transition:opacity .3s,transform .3s; }
.wa-bubble.is-visible { opacity:1; transform:none; }
.wa-bubble-note { color:var(--ink-muted); font-size:13px; }
.wa-chat-cta { display:flex; align-items:center; justify-content:center; gap:9px; margin:14px 16px 16px; padding:13px 18px; border-radius:999px; background:#25d366; color:white; font-size:15px; transition:background .2s; }
.wa-chat-cta:hover { background:#1ebe5d; }
.wa-chat-cta .wa-glyph { width:19px; height:19px; }
@media (max-width:700px) {
  .wa-widget,.wa-float { right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); }
  .wa-widget { left:16px; }
  .wa-float { width:56px; height:56px; }
  .wa-glyph { width:29px; height:29px; }
  .wa-chat { width:100%; max-width:380px; }
}
/* Banner de cookies (CookieConsent v3) con la marca de BC */
#cc-main {
  --cc-font-family:var(--font); --cc-bg:#1b1338; --cc-primary-color:#ffffff; --cc-secondary-color:#c9c3d6;
  --cc-btn-primary-bg:var(--brand); --cc-btn-primary-color:#ffffff; --cc-btn-primary-border-color:var(--brand);
  --cc-btn-primary-hover-bg:var(--pink); --cc-btn-primary-hover-color:#ffffff; --cc-btn-primary-hover-border-color:var(--pink);
  --cc-btn-secondary-bg:#ffffff; --cc-btn-secondary-color:var(--navy); --cc-btn-secondary-border-color:#ffffff;
  --cc-btn-secondary-hover-bg:var(--blush); --cc-btn-secondary-hover-color:var(--navy); --cc-btn-secondary-hover-border-color:var(--blush);
  --cc-separator-border-color:#ffffff1f; --cc-toggle-on-bg:var(--pink); --cc-toggle-off-bg:#4a4063; --cc-toggle-on-knob-bg:#ffffff; --cc-toggle-off-knob-bg:#ffffff;
  --cc-toggle-enabled-icon-color:var(--pink); --cc-toggle-disabled-icon-color:#4a4063; --cc-toggle-readonly-bg:#3a3152; --cc-toggle-readonly-knob-bg:#a59db6; --cc-toggle-readonly-knob-icon-color:#3a3152;
  --cc-section-category-border:#ffffff1f; --cc-cookie-category-block-bg:#241a45; --cc-cookie-category-block-border:#ffffff1f; --cc-cookie-category-block-hover-bg:#2c2152; --cc-cookie-category-block-hover-border:#ffffff2e;
  --cc-modal-border-radius:20px; --cc-btn-border-radius:999px; --cc-overlay-bg:#0b07199e; --cc-link-color:#f583aa; --cc-webkit-scrollbar-bg:#4a4063;
}
#cc-main .cm,#cc-main .pm { border:1px solid #ffffff1f; box-shadow:0 30px 60px #0008; }
#cc-main .cm--box { width:min(560px,calc(100vw - 32px)); max-width:560px; }
#cc-main .cm__title { font-size:22px; font-weight:400; letter-spacing:-.3px; }
#cc-main .cm__desc { font-size:15px; line-height:1.6; }
#cc-main .cm__btn,#cc-main .pm__btn { font-weight:400; font-size:15px; min-height:48px; }
#cc-main .cm__btn[data-role="show"] { background:none; border-color:transparent; color:#f583aa; text-decoration:underline; text-underline-offset:4px; }
#cc-main .cm__btn[data-role="show"]:hover { color:#ffffff; }
#cc-main .pm__title,#cc-main .pm__section-title { font-weight:400; }
#cc-main .cm__btn[data-role="necessary"],#cc-main .pm__btn[data-role="necessary"] { background:#ffffff; border-color:#ffffff; color:var(--navy); }
#cc-main .cm__btn[data-role="necessary"]:hover,#cc-main .pm__btn[data-role="necessary"]:hover { background:var(--blush); border-color:var(--blush); }
#cc-main .cm__desc a,#cc-main .pm__section-desc a { color:#f583aa; font-weight:400; }
.cookie-float { position:fixed; left:24px; bottom:calc(24px + env(safe-area-inset-bottom)); z-index:29; display:none; place-items:center; width:46px; height:46px; border:1px solid #ffffff2e; border-radius:50%; background:var(--navy); color:#ffffff; box-shadow:0 10px 24px #140e2e40; cursor:pointer; transition:transform .2s; }
.cookie-float.is-visible { display:grid; }
.cookie-float:hover { transform:translateY(-2px); }
.cookie-float svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.cookie-float circle { fill:currentColor; stroke:none; }
@media (max-width:700px) {
  .cookie-float { left:16px; bottom:calc(20px + env(safe-area-inset-bottom)); width:42px; height:42px; }
}
/* Animaciones de entrada: main.js añade .reveal solo a lo que está fuera de pantalla. */
.reveal { opacity:0; transform:translateY(18px); transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1); transition-delay:var(--reveal-delay,0ms); }
.reveal.is-visible { opacity:1; transform:none; }
/* Entrada del hero. El H1 y la foto pueden ser el LCP: solo se mueven (sin opacity 0) para que se pinten desde el
   primer frame. Se usan translate/scale sueltos para no pisar los transform existentes; el resto del texto, la insignia y el pie de foto sí aparecen con fade. */
@keyframes hero-rise { from { opacity:0; translate:0 26px; } }
@keyframes hero-lift { from { translate:0 38px; } }
@keyframes hero-slide { from { translate:-28px 0; } }
@keyframes hero-zoom { from { scale:1.12; } }
@keyframes hero-pop { from { opacity:0; translate:0 16px; scale:.96; } }
@keyframes ribbon-in { from { opacity:0; translate:-70px 0; } }
.hero-copy>* { animation:hero-rise .7s cubic-bezier(.2,.7,.2,1) backwards; }
.hero-copy>h1 { animation:hero-lift .9s cubic-bezier(.2,.7,.2,1) backwards; }
.hero-copy>h1 em { display:inline-block; animation:hero-slide 1s .15s cubic-bezier(.2,.7,.2,1) backwards; }
.hero-copy>:nth-child(1) { animation-delay:0s; }
.hero-copy>:nth-child(2) { animation-delay:.08s; }
.hero-copy>:nth-child(3) { animation-delay:.12s; }
.hero-copy>:nth-child(4) { animation-delay:.24s; }
.hero-copy>:nth-child(5) { animation-delay:.34s; }
.hero-copy>:nth-child(n+6) { animation-delay:.44s; }
.hero-photo { animation:hero-zoom 1.6s cubic-bezier(.2,.7,.2,1) backwards; }
.hero-badge,.photo-caption { animation:hero-pop .7s .55s cubic-bezier(.2,.7,.2,1) backwards; }
.photo-caption { animation-delay:.7s; }
.hero-shell .brand-ribbons i { animation:ribbon-in .9s cubic-bezier(.2,.7,.2,1) backwards; }
.hero-shell .brand-ribbons i:nth-child(2) { animation-delay:.1s; }
.hero-shell .brand-ribbons i:nth-child(3) { animation-delay:.2s; }
.reveal.specialty-card { transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .2s; }
.reveal.is-visible.specialty-card:hover { transform:translateY(-3px); transition-delay:0ms; }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
  .reveal { opacity:1; transform:none; }
}
