/* Keep layout usable without JavaScript, at narrow widths, and with enlarged text. */
html { scroll-padding-top: 6rem; }
body { overflow-x: visible; overflow-wrap: break-word; }
button,input,textarea,select { font: inherit; }
button,a,input,textarea,summary { -webkit-tap-highlight-color: transparent; }
img { height: auto; }
.wrap { width: min(100%,var(--maxw)); padding-inline: clamp(1.125rem,3vw,1.75rem); }
:where(.grid,.pillars,.sub-services,.steps,.diffs,.team-grid,.contact-grid,.foot-top)>* { min-width: 0; }
.hero .grid { grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr); }
.pillars,.team-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.steps { grid-template-columns: repeat(4,minmax(0,1fr)); row-gap: 2rem; }
.diffs,.sub-services { grid-template-columns: repeat(2,minmax(0,1fr)); }
.contact-grid { grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); }
.hero h1 { font-size: clamp(2.5rem,6.4vw,4.75rem); line-height: 1.04; }
.btn,.wa { white-space: normal; line-height: 1.4; text-align: center; justify-content: center; min-height: 44px; max-width: 100%; }
.btn { font-size: .9375rem; }
.reveal { opacity: 1; transform: none; }
.section-head p,.hero .sub { font-size: clamp(1.0625rem,2.2vw,1.25rem); }
.eyebrow { font-size: .75rem; line-height: 1.8; }
.pcard .k,.mini .tag { font-size: .75rem; }
.pcard .desc,.mini p,.jstep p,.diff p,.member .area { font-size: 1rem; }
.pcard li { font-size: .9375rem; }
.hero .badge { font-size: .875rem; align-items: flex-start; }
.hero .pulse { flex: 0 0 9px; margin-top: .4rem; }
.form label,.member .role { font-size: .875rem; }
.cinfo .v,.cinfo .t { overflow-wrap: anywhere; }
.cinfo .t { font-size: .8125rem; }
.brand { flex-shrink: 0; }
.brand-image { width: auto; max-width: 80px; max-height: 44px; object-fit: contain; }
.hero-image { width: 100%; height: 100%; object-fit: cover; border-radius: 1rem; }
.avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.lang a { padding: 10px 11px; min-width: 44px; min-height: 44px; display: grid; place-items: center; font-size: .8125rem; }
.lang a.on { background: var(--abismo); color: white; }
.hdr .row { min-height: 70px; height: auto; padding-block: .5rem; }
.burger { min-height: 44px; min-width: 44px; justify-content: center; }
.skip-link { position: fixed; left: 1rem; top: -10rem; z-index: 99999; padding: .75rem 1rem; background: white; color: #002D2E; box-shadow: 0 0 0 3px #008F8D; }
.skip-link:focus { top: 1rem; }
:focus-visible { outline: 3px solid #008F8D; outline-offset: 4px; }
.hero :focus-visible,.journey :focus-visible,footer :focus-visible,.card :focus-visible { outline-color: #D89B4B; }
summary.faq-q { list-style: none; line-height: 1.4; font-size: 1.3125rem; min-height: 44px; }
summary.faq-q::-webkit-details-marker { display: none; }
.faq-a { max-height: none; overflow: visible; transition: none; }
.faq-item[open] .plus:after { transform: rotate(90deg); opacity: 0; }
.faq-a p { font-size: 1rem; }
.jhighlight .big { white-space: normal; flex: 0 0 auto; }
.jstep h4 { margin-top: 0; }
.resource { grid-template-columns: minmax(0,1fr) auto; }
.form-status { padding: 1rem 1.25rem; margin-bottom: 1.5rem; border: 1px solid var(--teal); border-radius: 12px; background: var(--teal-mist); }
.form-status.error { border-color: #a12a2a; background: #fff4f4; }
.form .consent { display: flex; align-items: flex-start; gap: .75rem; text-transform: none; font-weight: 400; letter-spacing: 0; font-size: .875rem; color: var(--ink); }
.form .consent input { width: 20px; height: 20px; flex: 0 0 20px; margin: .125rem 0 0; }
.form .consent a,.privacy-link { text-decoration: underline; }
.intercol-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.reading-content { max-width: 850px; }
.reading-content h1 { font-size: clamp(2rem,5vw,3.5rem); margin-bottom: 2rem; }
.reading-content p,.reading-content ul,.reading-content h2 { margin-block: 1.25rem; }
.entry-content a { text-decoration: underline; }
.admin-bar .hdr { top: 32px; }
@media(max-width:1120px) {
 .hdr .row { gap: 12px; }.mainnav a { padding-inline: 8px; }.hdr-actions { gap: 8px; }.hdr-actions>.btn { padding-inline: 14px; }
}
@media(max-width:1024px) {
 .hdr .row { flex-wrap: wrap; }.hdr-actions { margin-left: auto; }.hdr-actions>.btn { display: none; }
 .mainnav { display: flex; flex-wrap: wrap; order: 3; width: 100%; justify-content: center; }
 .js .mainnav { display: none; }.js .burger { display: flex; }
 .js .mainnav.open { display: flex; position: static; inset: auto; flex-direction: column; background: var(--paper); padding: .5rem 0; max-height: 65vh; overflow-y: auto; border: 0; }
 .mainnav a { padding: 12px; min-height: 44px; }
 .hero .grid,.contact-grid,.foot-top,.resource,.sub-services { grid-template-columns: minmax(0,1fr); }
 .hero-art { height: 260px; max-width: 520px; width: 100%; margin: 1rem auto 0; }
 .pillars,.team-grid,.steps,.diffs { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .strip .inner { grid-template-columns: minmax(0,1fr); gap: 1rem; }.strip h3 { max-width: 22ch; }
 .resource .doc { display: none; }.jstep:after { display: none; }
 .contact-grid { gap: 2rem; }.section { padding-block: 5rem; }
}
@media(max-width:782px) { .admin-bar .hdr { top: 46px; } }
@media(max-width:640px) {
 .pillars,.team-grid,.steps,.diffs { grid-template-columns: minmax(0,1fr); }
 .section { padding-block: 4rem; }.section-head { margin-bottom: 2rem; }.hero { padding-block: 3.5rem; }
 .hero .cta-row { flex-direction: column; align-items: stretch; }.hero-art { height: 210px; }
 .pcard,.diff,.member,.contact-side .card { padding: 1.5rem; }.mini { padding: 1.25rem; }
 .jstep { padding-inline: 0; }.jhighlight { padding: 1.5rem; margin-top: 2rem; }
 .resource { padding: 2rem 1.5rem; }.resource h3 { max-width: none; }
 .foot-top { gap: 2rem; }.foot-bottom { flex-direction: column; }
 .brand { font-size: 1.125rem; gap: 7px; }.hdr-actions { gap: 4px; }
 .lang a { padding-inline: 7px; min-width: 38px; }.burger { padding-inline: 7px; }
}
@media(max-width:360px) { .brand-image { max-width: 38px; }.logo-mark { width: 26px; flex-basis: 26px; }.hdr .row { gap: 6px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }.land { opacity: 1; }.appath.draw { stroke-dashoffset: 0; } }
