/* Small-screen overrides. The approved desktop stylesheet remains intact. */
.cta-mobile{display:none}
@media(max-width:1240px){
  .site-head .wrap{gap:18px}
  .site-head .head-cta{display:inline-flex;min-height:44px;align-items:center;justify-content:center}
  .menu-btn{min-height:44px;cursor:pointer}
  .nav{max-height:calc(100vh - 90px);max-height:calc(100dvh - 90px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 12px 22px #2a19421a}
  .nav a{min-height:46px;display:flex;align-items:center}
}
@media(max-width:1000px){
  .team{grid-template-columns:repeat(2,minmax(0,1fr))}
  .member{grid-template-columns:76px minmax(0,1fr);padding:22px;gap:16px}
  .member img{width:76px;height:76px}
  .prototype-report .tbl-wrap{max-width:100%}
}
@media(max-width:760px){
  body{font-size:16px;line-height:1.55}
  main :is(p,h1,h2,h3,dd,li,a,blockquote){overflow-wrap:break-word}
  .wrap{padding-inline:20px}
  section{padding-block:56px}
  .eyebrow{font-size:11.5px;letter-spacing:.1em;line-height:1.5}
  .eyebrow::before{flex:0 0 22px}
  .h2{font-size:clamp(28px,6.8vw,38px);line-height:1.15}
  .lead,.about .txt p,.def .txt p{font-size:17px;line-height:1.6}
  .btn{min-height:48px;justify-content:center;text-align:center;line-height:1.3;padding:13px 20px;max-width:100%;white-space:normal}
  .link{min-height:44px;align-items:center;line-height:1.4}
  .topstrip .wrap{gap:6px;padding-block:8px;font-size:12px;line-height:1.45}
  .topstrip .wrap>span{flex-basis:100%}
  .topstrip .law{font-size:10px;padding:2px 6px}
  .topstrip .wrap>a{min-height:28px}
  .site-head .wrap{gap:10px;min-height:68px}
  .site-head .logo{display:flex;align-items:center;min-height:44px}
  .site-head .logo img{width:clamp(110px,32vw,150px);height:auto}
  .menu-btn{padding:10px 12px;font-size:14px;line-height:1.2}
  .site-head .head-cta{padding:11px 13px;font-size:14px;min-height:44px}
  .cta-desktop{display:none}.cta-mobile{display:inline}
  .nav{padding:10px 20px 18px;max-height:calc(100vh - 76px);max-height:calc(100dvh - 76px)}
  .hero .wrap{padding-block:88px 54px}
  .hero h1{font-size:clamp(34px,8.5vw,48px);line-height:1.08;max-width:18ch;text-wrap:initial}
  .hero .hero-sub{font-size:22px;line-height:1.35}
  .hero .hero-desc{font-size:16px;line-height:1.6;max-width:52ch}
  .hero .actions{gap:12px;margin-top:26px}
  .hero .iso-mark{width:180px;right:-30px;bottom:-30px}
  .ph .wrap{padding-block:52px 48px}
  .ph h1{font-size:clamp(32px,8vw,46px);line-height:1.12;text-wrap:initial}
  .ph p{font-size:17px;line-height:1.55}
  .ph::after{background:linear-gradient(90deg,#2a1942eb,#2a194299)}
  .problem .grid,.care .grid,.about,.def,.allies-band .grid{gap:30px}
  .problem h2{font-size:clamp(29px,7vw,40px);line-height:1.15}
  .people{gap:6px;margin-top:26px}
  .facts{gap:12px;margin-top:26px}
  .fact{padding:20px;display:grid;grid-template-columns:100px minmax(0,1fr);gap:14px;align-items:center}
  .fact .n{font-size:30px}.fact .t{margin:0;font-size:15px}
  .problem .photo{aspect-ratio:4/3}
  .problem .photo figcaption{font-size:15px;padding:48px 18px 18px}
  .axes,.news,.team,.staff{margin-top:26px;gap:18px}
  .team,.staff{grid-template-columns:minmax(0,1fr)}
  .member{grid-template-columns:76px minmax(0,1fr);padding:22px;gap:16px}
  .staff .member{grid-template-columns:64px minmax(0,1fr)}
  .staff .member img{width:64px;height:64px}
  .axis .body{padding:22px}.axis h3{font-size:26px}
  .quote{padding:24px;margin-top:30px;gap:18px}
  .quote img{width:76px;height:76px}
  .care .photo{aspect-ratio:4/3}
  .faces{gap:16px;margin-top:24px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .face{gap:10px}.face img{width:48px;height:48px}
  .face b{font-size:14px}.face small{font-size:13px;line-height:1.35;display:block}
  .sede{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:240px 180px 180px}
  .sede figcaption{left:8px;right:8px;bottom:8px;font-size:12px;line-height:1.35;padding:7px 8px}
  .meta{margin-top:-22px}.meta div{padding:20px}
  .pillars,.comp,.journey,.strip{margin-top:26px;gap:16px}
  .pillar{padding:24px}.pillar h3{font-size:26px}
  .comp>div{padding-right:0}.strip{gap:10px}
  .tier{padding:22px}.tier-head{gap:10px}
  .t1 .logos,.t2 .logos,.t3 .logos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .t4 .logos{grid-template-columns:minmax(0,1fr)}
  .logos,.ally-feature{gap:12px}
  .logo-tile{padding:12px}.logo-tile img{height:auto}
  .allies-band .grid{gap:28px}
  .join{padding:24px}.unit{gap:22px;padding:24px}
  .unit .amt{font-size:clamp(32px,8vw,46px);white-space:normal;overflow-wrap:anywhere}
  .levels{gap:18px}.level .mo{font-size:28px}
  .mods{gap:16px}.mod{padding:24px}
  .contact-cta{padding:26px;gap:24px}.contact-cta dd{font-size:17px;overflow-wrap:anywhere}
  .contact-grid{gap:22px}.cbox{padding:24px}.cbox dd{font-size:17px}
  .copy{min-height:44px;padding:10px 12px;margin-top:6px}
  .mapcard{min-height:360px}.mapcard .over{left:14px;right:14px;bottom:14px;padding:18px;gap:16px}
  .mapcard .over .btn{width:100%;min-height:48px}
  .prototype-schedule{margin-top:0}
  .def-card,.rbox,.norm{padding:24px}
  .def-card blockquote{font-size:21px}
  .chart{padding:22px 18px}.charts{gap:20px;margin-top:28px}
  .hbars li{grid-template-columns:90px minmax(0,1fr) 38px;gap:8px;padding:4px 0;font-size:13px}
  .vbars,.vlabels{gap:8px;padding-inline:0}.vbars .v{font-size:13px}.vlabels span{font-size:12px;line-height:1.35}
  .chart summary{padding-block:10px;min-height:44px}
  .sources a{align-items:flex-start;padding:16px;gap:12px;font-size:15px}
  .sources a span:last-child{white-space:normal}
  .cost>div{padding:26px}.cost .n{font-size:36px}
  .law-strip{gap:8px}.law-strip span{font-size:12px;line-height:1.4;max-width:100%}
  .st{padding:22px}.docs .doc{flex-direction:column;align-items:flex-start;padding:20px;gap:14px}
  .docs .doc .pill{align-self:flex-start}
  .fmt{gap:10px;width:100%}.fmt a{min-height:44px;display:inline-flex;align-items:center;padding:10px 14px}
  .sem-head{align-items:flex-start;gap:18px}
  .article-body>img{border-radius:14px;max-height:none;aspect-ratio:4/3}
  footer{padding-block:48px 26px}footer .cols{gap:28px}footer .brand img{max-width:100%;height:auto;width:188px}
  footer a{display:inline-block;padding-block:5px}footer .legal{margin-top:30px;font-size:12px;line-height:1.6}
  .toast{max-width:calc(100% - 32px);width:max-content;text-align:center}
}
@media(max-width:760px){
  /* Tables keep their data and headers; each record becomes a readable card. */
  .prototype-report .tbl-wrap,.prototype-schedule .tbl-wrap{overflow:visible;border:0;background:transparent;border-radius:0}
  .activity-table,.schedule{display:block;min-width:0;width:100%;font-size:15px;border-collapse:separate}
  .activity-table thead,.schedule thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .activity-table tbody,.schedule tbody{display:grid;gap:16px}
  .activity-table tbody tr,.schedule tbody tr{display:grid;grid-template-columns:minmax(0,1fr);padding:18px;background:var(--white);border:1px solid var(--line);border-radius:16px}
  .activity-table tbody :is(td,th),.schedule tbody :is(td,th){display:block;min-width:0;padding:9px 0;border:0;border-bottom:1px solid var(--line);text-align:left;overflow-wrap:anywhere;font-size:15px;color:var(--ink)}
  .activity-table tbody tr>:last-child,.schedule tbody tr>:last-child{border-bottom:0;padding-bottom:0}
  .activity-table tbody [data-label]::before,.schedule tbody [data-label]::before{content:attr(data-label);display:block;margin-bottom:3px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
  .activity-table tbody th{font-size:18px;color:var(--plum)}
  .activity-table tfoot{display:block;margin-top:16px}
  .activity-table tfoot tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:18px;background:var(--lila);border-radius:12px;align-items:center}
  .activity-table tfoot :is(td,th){padding:0;text-align:left;border:0;font-size:15px}
  .activity-table tfoot td{font-weight:800;font-size:24px}
}
@media(max-width:420px){
  .wrap{padding-inline:16px}
  .hero .actions{flex-direction:column;align-items:stretch}
  .hero .actions .btn{width:100%}
  .results .wrap{grid-template-columns:minmax(0,1fr);padding-block:18px}
  .results .lbl{padding:0 0 12px}
  .results .it{padding:14px 0;display:grid;grid-template-columns:76px minmax(0,1fr);gap:16px;align-items:center}
  .results .it+.it{border-top:1px solid var(--line)}
  .results .t{font-size:14px;margin:0}.results .n{font-size:34px}
  .faces{grid-template-columns:minmax(0,1fr)}
  .face img{width:54px;height:54px}.face b{font-size:16px}
  .sede{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-rows:220px}
  .sede figure:first-child{grid-column:auto;grid-row:auto}
  .member{grid-template-columns:64px minmax(0,1fr);padding:18px;gap:14px}.member img{width:64px;height:64px}
  .member h3{font-size:19px}
  .ally-feature{grid-template-columns:minmax(0,1fr)}
  .ally-feature .logo-tile{aspect-ratio:16/7}.logo-tile.empty{min-height:90px}
  .fact{grid-template-columns:86px minmax(0,1fr);padding:18px}
}
@media(prefers-reduced-motion:reduce){.nav{scroll-behavior:auto}}

/* Compact header and swipeable sections, including 440px-wide phones. */
.carousel-section{min-width:0}
.carousel-controls[hidden]{display:none}
.carousel-controls{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:14px}
.carousel-controls button{display:inline-grid;place-items:center;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:var(--white);color:var(--purple);font:700 23px/1 var(--font);cursor:pointer}
.carousel-controls button:disabled{opacity:.35;cursor:default}
.carousel-status{min-width:40px;text-align:center;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:760px){
  .topstrip .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;padding-block:8px}
  .topstrip .turnos{display:block;min-width:0;line-height:1.4}
  .topstrip .turnos-contact{display:block;white-space:nowrap;font-size:11px}
  .topstrip .turnos-note{display:block;font-size:10px;line-height:1.4;margin-top:2px}
  .topstrip .wrap>a{display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-height:34px;font-size:10px;line-height:1.25}
  .topstrip .law{white-space:nowrap;font-size:9px;padding:2px 5px}
  .site-head .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;min-height:72px}
  .site-head .logo{grid-column:1;grid-row:1;min-width:0}
  .site-head .logo img{width:144px;max-width:100%;height:auto;max-height:44px}
  .site-head .head-cta{grid-column:2;grid-row:1;font-size:13px;padding:11px 14px;white-space:nowrap}
  .site-head .menu-btn{grid-column:3;grid-row:1;margin-left:0;padding:11px 12px;font-size:13px;white-space:nowrap;border:1px solid var(--line)}
  .site-head .nav{grid-column:1/-1;top:100%;left:0;right:0;text-align:left}
  .program-intro{padding-block:40px}
  .program-intro .prog-head{gap:16px}
  .program-intro .prog-head h2{font-size:26px;line-height:1.16;letter-spacing:-.025em;text-wrap:pretty}
  .program-intro .prog-head>.btn{justify-self:start;width:auto;padding:11px 20px;min-height:44px;font-size:14px}
  .carousel-track.axes,.carousel-track.news{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc(100% - 28px);gap:14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;padding:0 1px 4px;margin-top:24px;max-width:100%}
  .carousel-track::-webkit-scrollbar{display:none}
  .carousel-track>article{scroll-snap-align:start;scroll-snap-stop:always;min-width:0;height:100%}
  .carousel-track .axis img{aspect-ratio:16/9}
  .carousel-track .axis .body{padding:20px;gap:8px}
  .carousel-track .axis h3{font-size:24px}.carousel-track .axis p{font-size:16px;line-height:1.5}
  .program-intro .quote{margin-top:28px;padding:20px;grid-template-columns:54px minmax(0,1fr);gap:14px;align-items:start}
  .program-intro .quote img{width:54px;height:54px}
  .program-intro .quote blockquote{font-size:18px;line-height:1.35}
  .program-intro .quote cite{font-size:13px;line-height:1.4}
  .carousel-track.news img{aspect-ratio:16/9}
  .carousel-track.news .b{padding:18px 20px 22px}
  .carousel-track.news h3{font-size:21px;line-height:1.25}
}
@media(max-width:360px){
  .topstrip .turnos-contact{font-size:10px}.topstrip .turnos-note{font-size:9px}
  .site-head .wrap{gap:8px}.site-head .logo img{width:120px}
  .site-head .head-cta,.site-head .menu-btn{padding-inline:10px;font-size:12px}
  .program-intro .prog-head h2{font-size:24px}
}

@media(max-width:760px){
 .ally-carousel.has-logos .ally-feature{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc(100% - 28px);gap:14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;max-width:100%;padding:0 1px 4px}
 .ally-carousel.has-logos .logo-tile{scroll-snap-align:start;scroll-snap-stop:always;min-width:0;aspect-ratio:16/9}
 .ally-carousel.has-logos .logo-tile.empty{display:none}
 .ally-carousel.single-logo .ally-feature{grid-auto-columns:100%}
 .ally-carousel .logo-tile>a{display:grid;place-items:center;width:100%;min-height:44px}
}
