/* Corpasa: international sourcing, a local point of contact. */
@font-face { font-family:"Corpasa Editorial"; src:url('../tipografia/newsreader-latin.woff2') format('woff2'); font-style:normal; font-weight:200 800; font-display:swap; }
@font-face { font-family:"Corpasa Sans"; src:url('../tipografia/onest-latin.woff2') format('woff2'); font-style:normal; font-weight:100 900; font-display:swap; }
:root { --ink:#193550; --blue:#094e95; --blue-hover:#063b78; --deep:#052f65; --muted:#4c6177; --line:#d7e2ee; --pale:#f1f5fa; }
body { font-family:"Corpasa Sans",Arial,sans-serif; text-rendering:optimizeLegibility; }
h1,h2 { font-family:"Corpasa Editorial",Georgia,serif; font-weight:400; font-optical-sizing:auto; text-wrap:balance; letter-spacing:-.024em; }
h3 { font-family:"Corpasa Sans",Arial,sans-serif; font-weight:500; text-wrap:balance; letter-spacing:-.015em; }
.portfolio-line summary h2,.corpi-header h2 { font-family:"Corpasa Sans",Arial,sans-serif; font-weight:500; }
.page-intro h1 { font-size:clamp(3.1rem,5.2vw,5.4rem); line-height:1.07; letter-spacing:-.024em; }
p { text-wrap:pretty; }
.shell { width:min(1320px,calc(100% - 6rem)); }
.site-header { background:#fff; border-bottom-color:#cbd9e9; }
.header-row { min-height:88px; }
.brand>img.logo-corpasa,.footer-brand>img.logo-corpasa { display:block; width:100%; height:auto; aspect-ratio:789 / 282; object-fit:contain; filter:none; }
.site-footer { background:#fff; }
.site-nav>a { position:relative; }
.site-nav>a,.footer-top nav a,.privacy-layout>nav a { display:inline-flex; align-items:center; min-height:2.75rem; }
.footer-top nav a,.privacy-layout>nav a { padding-block:.35rem; }
.footer-contact>a { display:inline-flex; align-items:center; min-height:2.75rem; max-width:100%; }
.closing-email { display:flex; align-items:center; min-height:2.75rem; width:fit-content; max-width:100%; margin-top:1.2rem; }
.site-nav>a[aria-current=page]:after { content:""; position:absolute; left:0; right:0; bottom:-.5rem; height:2px; background:var(--blue); }
.button { min-height:3.25rem; max-width:100%; border-radius:3px; padding:.85rem 1.45rem; }
.button:hover { background:var(--blue-hover); border-color:var(--blue-hover); }
.button:active { box-shadow:none; background:var(--deep); border-color:var(--deep); }
.button-outline { border-color:#a9bdd5; }
.button-outline:hover { background:#e9f0f8; border-color:var(--blue); }
.button-outline:active { background:var(--deep); border-color:var(--deep); color:white; }
.button-light:hover { background:#e8f0f8; border-color:#e8f0f8; }
.button-light:active { background:#cadfec; border-color:#cadfec; color:var(--deep); }
.button:disabled { background:#e0e8f1; border-color:#bdcbdc; color:#3e5772; box-shadow:none; cursor:default; }
.contact-form form[data-submission-state=sending] .button:disabled { cursor:progress; }
.site-nav>.nav-contact:hover { background:var(--blue-hover); }
.site-nav>.nav-contact:active { background:var(--deep); }
.text-link,.text-button { min-height:2.75rem; display:inline-flex; align-items:center; }
.eyebrow { font-size:.875rem; font-weight:600; letter-spacing:.1em; }
.home-overview { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); align-items:center; gap:3.5rem; padding-block:3.75rem 4.75rem; }
.home-overview .home-intro { display:block; padding:0; margin:0; }
.home-overview .home-intro h1 { font-size:clamp(2.85rem,4.8vw,4.8rem); line-height:1.04; letter-spacing:-.045em; }
.home-overview .home-intro-copy { margin-top:1.75rem; max-width:33rem; }
.home-overview .home-intro-copy>p:first-child { font-size:1.125rem; line-height:1.65; }
.home-overview .promise { color:var(--muted); font-size:.9375rem; padding-top:1.2rem; border-top:1px solid var(--line); margin:1.45rem 0 1.7rem; }
.home-overview .world-section { padding:0; min-width:0; }
.home-overview .world-heading { border:0; padding:0 0 1.15rem; display:block; }
.home-overview .world-heading .eyebrow { margin-bottom:.45rem; }
.home-overview .world-heading h2 { font-size:1.5rem; line-height:1.25; letter-spacing:-.025em; }
.home-overview .world-heading>p { display:none; }
.home-overview .world-figure { border-radius:4px 30px 4px 4px; }
.home-overview .world-stage { aspect-ratio:1.4; }
.home-overview .world-legend { display:block; padding:1.3rem 1.5rem 1.5rem; }
.home-overview .world-selected { margin-top:1rem; padding-top:1rem; border-top:1px solid #ffffff25; max-width:none; }
.home-overview .country-controls { gap:.15rem .95rem; }
.country-controls button { min-height:2.75rem; }
.no-js .country-controls { display:none; }
.country-fallback { margin:0; color:#e0ebf7; font-size:1rem; line-height:1.6; }
.world-legend .legend-title { font-size:.875rem; }
.world-selected { font-size:1rem; }
.audience-section { padding-top:2.5rem; border-top:1px solid var(--line); }
.audience { padding:1.75rem 0; transition:background .18s; }
.audience:hover { background:#f4f7fb; }
.row-link { font-size:.9375rem; text-decoration:underline; text-underline-offset:.25em; }
.audience h3 { letter-spacing:-.025em; }
.portfolio-feature { background:var(--pale); }
.feature-lines span { font-size:1.0625rem; }
.portfolio-index { padding:1.8rem 2rem 2rem; border-radius:3px 26px 3px 3px; background:var(--deep); color:white; }
.portfolio-index-head { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding-bottom:1rem; border-bottom:1px solid #ffffff35; font-size:.75rem; line-height:1.4; letter-spacing:.09em; }
.portfolio-index-head>span:last-child { flex:none; font-variant-numeric:tabular-nums; color:#bad2e1; }
.portfolio-index-count { display:flex; align-items:center; gap:1.5rem; padding:1.35rem 0 1.65rem; }
.portfolio-index-count strong { font-family:"Corpasa Sans",Arial,sans-serif; font-size:clamp(6rem,8.5vw,8rem); font-weight:400; line-height:1; letter-spacing:-.05em; font-variant-numeric:tabular-nums; }
.portfolio-index-count>span { font-size:1.35rem; font-weight:400; line-height:1.25; letter-spacing:-.015em; }
.portfolio-index ul { list-style:none; padding:0; margin:0; }
.portfolio-index li { padding:.65rem 0; border-top:1px solid #ffffff26; color:#d4e3ec; font-size:.9375rem; line-height:1.45; }
.portfolio-index li:last-child { padding-bottom:0; }
.portfolio-feature-description { max-width:35rem; font-size:1.0625rem; line-height:1.7; }
/* Each interior page explains a different part of the same sourcing work. */
.about-story { grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr); gap:clamp(3rem,7vw,7rem); align-items:start; }
.about-story .story-copy { max-width:39rem; }
.about-story .story-copy h2 { max-width:21ch; margin-bottom:1.6rem; font-size:clamp(2.35rem,3.7vw,3.5rem); line-height:1.12; }
.about-story .story-copy p:not(.eyebrow) { max-width:36rem; font-size:1.125rem; line-height:1.75; }
.story-copy .text-link { margin-top:1.6rem; }
.story-network { padding-top:.3rem; }
.story-network h3 { font-size:1.2rem; line-height:1.4; font-weight:500; }
.story-countries { list-style:none; padding:0; margin:1.25rem 0 1.4rem; }
.story-countries li { padding:.65rem 0; border-bottom:1px solid var(--line); font-size:1.125rem; line-height:1.5; }
.story-network .story-local { color:var(--blue); font-size:.9375rem; font-weight:500; line-height:1.6; }
.page-about .founder-grid blockquote { font-family:"Corpasa Editorial",Georgia,serif; font-optical-sizing:auto; font-weight:400; line-height:1.35; letter-spacing:-.015em; }
.page-about .principles { display:block; margin-top:2.25rem; }
.page-about .principles-section { padding-bottom:var(--space); }
.page-about .principle { display:grid; grid-template-columns:2rem minmax(0,.9fr) minmax(0,1.1fr); align-items:baseline; gap:2rem; padding:1.7rem 0; }
.page-about .principle:last-child { border-bottom:1px solid var(--line); }
.page-about .principle>span { padding:0; }
.page-about .principle h3 { margin:0; font-size:1.35rem; line-height:1.4; }
.page-about .principle p { margin:0; font-size:1.0625rem; line-height:1.65; }
.documentation-graphic { padding:1.8rem 2rem; border:1px solid var(--line); border-top:3px solid var(--blue); border-radius:3px; background:white; }
.document-topline { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding-bottom:1rem; margin-bottom:1.5rem; border-bottom:1px solid var(--line); color:var(--blue); font-size:.75rem; line-height:1.4; font-weight:600; letter-spacing:.07em; }
.document-topline>span:last-child { text-align:right; }
.documentation-graphic h3 { font-size:clamp(1.6rem,2.3vw,2rem); line-height:1.2; margin-bottom:1.6rem; }
.documentation-graphic ol { list-style:none; padding:0; margin:0; }
.documentation-graphic li { display:grid; grid-template-columns:1.75rem minmax(0,1fr); gap:.75rem; padding:.9rem 0; border-top:1px solid var(--line); font-size:1rem; line-height:1.5; }
.documentation-graphic li:last-child { border-bottom:1px solid var(--line); }
.documentation-graphic li>span { padding-top:.15rem; color:var(--blue); font-size:.8125rem; font-variant-numeric:tabular-nums; }
.documentation-graphic>p { margin-top:1.25rem; color:var(--muted); font-size:.875rem; line-height:1.5; }
.inquiry-checklist { margin:1.65rem 0 1.4rem; padding-left:1rem; border-left:2px solid var(--blue); }
.inquiry-checklist h3 { font-size:1.125rem; line-height:1.3; margin-bottom:.75rem; font-weight:500; }
.inquiry-checklist ul { padding:0 0 0 1rem; margin:0; list-style:square; }
.inquiry-checklist li { padding:.2rem 0; font-size:1rem; line-height:1.5; }
.inquiry-checklist li::marker { color:var(--blue); }
.flywheel-art text { font-family:"Corpasa Sans",Arial,sans-serif; }
.flywheel-art .fly-main { fill:var(--blue); }
.flywheel-art .fly-eff { fill:#8ca6c8; }
.flywheel-art text[fill="#1e6aa8"] { fill:var(--blue); }
.flywheel-art text[fill="#17394e"] { fill:var(--ink); }
.flywheel-art text[fill="#597082"] { fill:var(--muted); }
.map-mark text { font-family:"Corpasa Sans",Arial,sans-serif; }
.privacy-layout article p { max-width:65ch; overflow-wrap:anywhere; }
.source-note { font-size:.875rem; }
.inquiry-process { padding-block:var(--space); display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:8%; }
.inquiry-process .section-lead>p:last-child { max-width:27rem; }
.process-steps { padding:0; margin:0; list-style:none; }
.process-steps li { display:grid; grid-template-columns:2.25rem 1fr; gap:1.15rem; padding:1.6rem 0; border-top:1px solid var(--line); }
.process-steps li:last-child { border-bottom:1px solid var(--line); }
.process-steps .row-number { padding-top:.3rem; color:var(--blue); }
.process-steps h3 { font-size:1.35rem; line-height:1.3; }
.process-steps p { margin-top:.5rem; max-width:39rem; }
.corpi-intro { padding-block:2.25rem; grid-template-columns:110px 1fr auto; gap:1.5rem; }
.corpi-intro>img { width:110px; height:110px; }
.corpi-intro h2 { font-size:2rem; }
.corpi-launch .corpi-caption { min-height:2.75rem; font-size:.875rem; }
.corpi-launch .corpi-caption small { font-size:.875rem; }
.corpi-launch .corpi-caption { color:var(--ink); border-color:#b7c9dc; }
.corpi-launch .corpi-caption small { color:var(--muted); }
.corpi-launch:hover .corpi-caption { border-color:var(--blue); background:var(--pale); }
.corpi-launch:focus-visible { outline-color:var(--blue); }
.corpi-panel { bottom:10.2rem; max-height:calc(100vh - 11.5rem); max-height:calc(100dvh - 11.5rem); border-radius:8px; box-shadow:0 10px 50px #17394e29; }
.corpi-options button { min-height:2.75rem; line-height:1.4; }
.corpi-footnote { font-size:.875rem; }
.corpi-reply a { display:inline-flex; min-height:2.75rem; align-items:center; }
.portfolio-intro p { max-width:44rem; }
.portfolio-line summary { min-height:4.5rem; }
.portfolio-line summary .detail-label { font-size:.9375rem; }
.portfolio-line .button { margin-top:1rem; }
.portfolio-aside { border-top:3px solid var(--blue); }
.no-js .portfolio-aside label[for=portfolio-search],.no-js #portfolio-search { display:none; }
.closing { background:var(--deep); }
.closing .button { min-height:3.25rem; }
.footer-bottom { font-size:.875rem; }
.campo input,.campo select,.campo textarea { border-radius:3px; background:#fff; }
.campo input:hover,.campo select:hover,.campo textarea:hover { border-color:#7894a6; }
.campo input[aria-invalid=true],.campo select[aria-invalid=true],.campo textarea[aria-invalid=true] { border-color:#ad302d; }
.form-privacy { font-size:.875rem; }
.form-resumen { scroll-margin-top:7rem; }
.form-resumen[role=status] { background:var(--pale); color:var(--ink); border-color:var(--blue); }
.required-note { margin-bottom:1.4rem; color:var(--muted); font-size:.875rem; line-height:1.5; }
@media (max-width:1100px) {
  .home-overview { gap:2rem; }
  .home-overview .home-intro h1 { font-size:clamp(2.6rem,4.8vw,4rem); }
  .home-overview .world-stage { aspect-ratio:1.15; }
  .home-overview .world-heading h2 { font-size:1.35rem; }
  .home-overview .world-legend { padding:1.1rem; }
}
@media (max-width:860px) {
  .shell { width:calc(100% - 3rem); }
  .home-overview { grid-template-columns:1fr; gap:2.5rem; padding-block:2.75rem 3.5rem; }
  .home-overview .home-intro h1 { font-size:clamp(2.8rem,8.7vw,4.6rem); }
  .home-overview .home-intro-copy { max-width:40rem; }
  .home-overview .world-stage { aspect-ratio:1.55; }
  .home-overview .world-heading h2 { font-size:1.65rem; }
  .inquiry-process { grid-template-columns:1fr; gap:2rem; }
  .corpi-intro { grid-template-columns:85px 1fr; }
  .corpi-intro>img { width:85px; height:85px; }
  .corpi-intro>.button { grid-column:2; justify-self:start; }
  .corpi-intro h2 { font-size:1.75rem; }
  .about-story { grid-template-columns:1fr; gap:2.5rem; }
  .story-network { max-width:39rem; }
  .page-about .principle { grid-template-columns:1.75rem minmax(0,.9fr) minmax(0,1.1fr); gap:1.25rem; }
}
@media (max-width:820px) {
  .site-nav { max-height:calc(100dvh - 88px); }
  .no-js:not(.js) .site-header { position:relative; }
  .no-js:not(.js) .site-nav { flex-wrap:wrap; gap:.45rem 1rem; }
  .no-js:not(.js) .site-nav>.language { border-top:0; margin-top:0; padding:.7rem .5rem; }
  .no-js:not(.js) .site-nav>.nav-contact { margin-top:0; }
  html.js.no-js .menu-toggle { display:flex; visibility:hidden; }
}
@media (max-width:560px) {
  .shell { width:calc(100% - 2.5rem); }
  .header-row { min-height:76px; }
  .page-intro h1 { font-size:clamp(2.6rem,10vw,3.5rem); }
  .site-nav { max-height:calc(100dvh - 76px); }
  .home-overview { padding-top:2rem; gap:2.25rem; }
  .home-overview .home-intro h1 { font-size:clamp(2.5rem,10.4vw,3.6rem); }
  .home-overview .home-intro-copy { margin-top:1.3rem; }
  .home-overview .world-heading h2 { font-size:1.45rem; }
  .home-overview .world-stage { aspect-ratio:1.02; }
  .home-overview .home-intro .actions { gap:.65rem 1.25rem; }
  .home-overview .world-legend { padding:1rem 1.1rem 1.25rem; }
  .home-overview .world-figure { border-top-right-radius:20px; }
  .country-controls button { font-size:1rem; }
  .audience-section { padding-top:2rem; }
  .inquiry-process { padding-block:3.25rem; }
  .process-steps li { gap:.75rem; }
  .portfolio-index { padding:1.3rem 1.1rem 1.45rem; border-top-right-radius:20px; }
  .portfolio-index-head { font-size:.6875rem; padding-bottom:.8rem; letter-spacing:.055em; }
  .portfolio-index-count { gap:1.2rem; padding:1rem 0 1.2rem; }
  .portfolio-index-count strong { font-size:5.5rem; }
  .portfolio-index-count>span { font-size:1.25rem; }
  .portfolio-index ul { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:.65rem .8rem; }
  .portfolio-index li { padding:.55rem 0 0; font-size:.875rem; }
  .portfolio-feature-description { font-size:1rem; }
  .about-story { gap:2.15rem; }
  .about-story .story-copy h2 { font-size:2.35rem; }
  .about-story .story-copy p:not(.eyebrow) { font-size:1rem; }
  .story-countries li { font-size:1rem; }
  .page-about .principle { grid-template-columns:1.5rem minmax(0,1fr); gap:.6rem 1rem; padding:1.4rem 0; }
  .page-about .principle h3 { font-size:1.15rem; }
  .page-about .principle p { grid-column:2; font-size:1rem; }
  .documentation-graphic { padding:1.35rem; }
  .document-topline { font-size:.6875rem; gap:.75rem; letter-spacing:.04em; }
  .documentation-graphic h3 { font-size:1.6rem; }
  .documentation-graphic li { grid-template-columns:1.5rem minmax(0,1fr); gap:.6rem; }
  .corpi-intro { gap:.8rem 1rem; padding-block:1.75rem; }
  .corpi-intro>div { display:contents; }
  .corpi-intro>img { grid-column:1; grid-row:1 / span 2; }
  .corpi-intro .eyebrow { grid-column:2; grid-row:1; align-self:end; margin-bottom:0; font-size:.875rem; }
  .corpi-intro h2 { grid-column:2; grid-row:2; align-self:start; font-size:1.5rem; }
  .corpi-intro p:last-child { grid-column:1 / -1; margin-top:.2rem; }
  .corpi-intro>.button { grid-column:1 / -1; justify-self:start; max-width:100%; }
  .corpi-launch { width:130px; }
  .corpi-launch .corpi-journey { width:124px; height:80px; }
  .corpi-launch .corpi-caption { gap:5px; }
  .corpi-launch .corpi-caption small { font-size:.875rem; }
  .corpi-panel { bottom:9.75rem; max-height:calc(100vh - 10.75rem); max-height:calc(100dvh - 10.75rem); }
  .portfolio-line summary .detail-label { font-size:.875rem; }
  .site-nav>a[aria-current=page]:after { bottom:.2rem; right:auto; width:1.25rem; }
  .closing-grid h2 { font-size:2.6rem; }
  .closing-grid { gap:2rem; }
}
@media (max-width:360px) {
  .page-contact .page-intro h1 { font-size:2.35rem; }
}
@media (max-height:520px) {
  .corpi-panel { bottom:1rem; max-height:calc(100dvh - 2rem); }
}
@media (prefers-reduced-motion:reduce) {
  .audience { transition:none; }
}
@media print {
  .home-overview,.inquiry-process { display:block; }
  .inquiry-process .section-lead { margin-bottom:1rem; }
}
