/* Escala tipográfica común. rem respeta el tamaño de texto elegido en el navegador. */
:root{
  --text-body:1.125rem;
  --text-support:1rem;
  --text-label:.875rem;
  --text-caption:.875rem;
  --text-leading:1.75;
  --text-copy:#b6c8bd;
}
body{font-size:var(--text-body)}

/* Contenido que debe leerse, separado de los detalles dibujados en las maquetas. */
.hero-description,
.heading-split>p,.solutions .heading-split>p,
.product-showcase .heading-split>p,.team-section .heading-split>p,
.service-row summary>p,.service-row .service-description p,
.approach-intro,.principle p,.process-step>p,
.solution-view-copy>p,.solution-view-copy ul,.expertise-copy>p,
.content-copy>p:not(.eyebrow),.contact-copy>p:not(.eyebrow),.faq-item>p{
  font-size:var(--text-body);line-height:var(--text-leading);color:var(--text-copy);
}
.hero-description{font-size:1.25rem;max-width:42ch}
.heading-split>p,.solutions .heading-split>p,
.product-showcase .heading-split>p,.team-section .heading-split>p{max-width:35ch}
.eyebrow,.section-heading .eyebrow,.hero-copy>.eyebrow,
.approach-copy .eyebrow,.content-copy .eyebrow,.faq-grid .eyebrow,
.contact-copy .eyebrow,.draft-top .eyebrow{
  font-size:var(--text-label);line-height:1.65;letter-spacing:.1em;gap:10px;
}
.eyebrow .section-index{font-size:var(--text-label)}
.button,.hero-ctas .button,.hero-ctas .text-link,
.text-link,.small-link,.service-row .small-link,.service-body .small-link,
.solution-view-copy .small-link,.content-copy .text-link,.back-top{
  font-size:var(--text-support);line-height:1.5;
}
.button{min-height:54px;padding:15px 22px}
.small-link,.text-link{max-width:100%;gap:12px}
.small-link .icon,.text-link .icon{flex-shrink:0;width:20px;height:20px}

/* Portada y navegación. */
.navigation>a{font-size:var(--text-support);line-height:1.5}
.navigation{gap:26px}
.navigation .nav-contact{min-height:48px}
.motion-toggle,.menu-toggle,.draft-top .icon-button{width:44px;height:44px;flex-shrink:0}
.motion-toggle .icon{width:18px;height:18px}
.audience{align-items:flex-start;gap:20px}
.audience>span{font-size:var(--text-caption);line-height:1.6;max-width:9ch}
.audience p{font-size:var(--text-support);flex:1;min-width:0;flex-wrap:wrap;gap:12px}
.art-topline,.art-coordinate{font-size:var(--text-caption)}
.art-label-top{font-size:var(--text-support)}
.art-label-bottom{font-size:var(--text-body)}
.hero-bottom{font-size:var(--text-caption);line-height:1.65;letter-spacing:.07em;gap:28px}
.hero-bottom>a{flex-shrink:0}

/* Servicios, enfoque y proceso. */
.service-row summary{padding-block:34px}
.service-row h3{font-size:2rem;line-height:1.2}
.service-row .service-subtitle{font-size:var(--text-support);line-height:1.65;margin-top:12px;color:#b3c9bb}
.service-number,.principle>span{font-size:var(--text-label);line-height:1.5;color:#9dbbaa}
.service-row .service-tags li{font-size:var(--text-label);line-height:1.5;padding:8px 12px;color:#c2d5c7}
.service-body{padding-bottom:36px;gap:28px}
.service-description{gap:18px;padding-right:18px}
.approach-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px}
.approach-visual{width:100%;min-width:0;min-height:0;aspect-ratio:1/1.15;align-self:center}
.approach-intro{max-width:52ch;margin-top:24px}
.principles{margin-top:32px}
.principle{padding-block:24px;gap:20px}
.principle h3{font-size:1.4375rem;line-height:1.35;margin-bottom:10px}
.principle p{max-width:52ch}
.visual-top{font-size:var(--text-label);line-height:1.6}
.visual-bottom{font-size:var(--text-label);line-height:1.6;right:24px}
.process-step h3{font-size:1.625rem;line-height:1.3}
.process-step>p{max-width:32ch}
.step-output{font-size:var(--text-label);line-height:1.65;letter-spacing:.07em;color:#a0bcaa;margin-top:20px}

/* Soluciones, especialidades y contenido. */
.solution-tabs button{font-size:var(--text-support);min-height:48px;padding:12px 18px}
.solution-tabs button>span{font-size:var(--text-caption);color:#9dbbaa}
.solution-type,.expertise-heading>span,.form-kicker{
  font-size:var(--text-label);line-height:1.65;letter-spacing:.09em;color:#a0bfac;
}
.solution-view-copy h3{font-size:clamp(1.875rem,2.8vw,2.375rem);line-height:1.2}
.solution-view-copy>p{max-width:42ch}
.solution-view-copy ul{line-height:1.7;margin-top:24px}
.solution-view-copy li{padding-left:20px;margin-block:10px}
.solution-view-copy li::before{top:13px;width:5px;height:5px}
.solution-stage-footer{font-size:var(--text-label);line-height:1.7;color:#a3bcac}
.solution-type{margin-bottom:22px}
.visual-tag{font-size:.75rem;line-height:1.5;letter-spacing:.06em}
.expertise-heading>span{margin-bottom:18px}
.expertise-copy>strong{font-size:1.4375rem;line-height:1.45}
.expertise-copy>p{max-width:40ch}
.content-copy>p:not(.eyebrow){max-width:44ch}
.format-meta,.story-bottom,.wide-caption{font-size:.625rem;line-height:1.5;letter-spacing:.06em}
.format-meta{gap:10px}
.format-note{font-size:var(--text-label);line-height:1.7;letter-spacing:.06em;left:10px;right:10px;bottom:-8px}

/* Preguntas y contacto. */
.faq-item{padding-block:28px}
.faq-item summary{font-size:1.25rem;line-height:1.5;gap:24px}
.faq-item>p{padding-top:20px;max-width:58ch}
.faq-item summary .icon{width:22px;height:22px;flex-shrink:0}
.contact-shell{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;padding:48px}
.contact-form-wrap,.contact-copy,.solution-view-copy{min-width:0}
.contact-copy>.button{min-height:54px}
.contact-email{font-size:var(--text-body);line-height:1.7}
.contact-signature{font-size:var(--text-caption);line-height:1.8;letter-spacing:.08em;color:#9ab6a3;padding-top:40px}
.contact-form-wrap>h3{font-size:1.875rem;line-height:1.3;margin-bottom:18px}
.preview-note{font-size:var(--text-support);line-height:1.75;padding:14px 16px;margin-bottom:28px;color:#bbd0c0}
.form-kicker{margin-bottom:12px}
.form-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
.field{margin-bottom:22px}
.field>label{font-size:var(--text-support);line-height:1.6;margin-bottom:10px;color:#c8dacd}
.field input,.field select,.field textarea{font-size:var(--text-body);line-height:1.5;min-height:54px;padding:14px 16px}
.field select{padding-right:40px}
.field input::placeholder,.field textarea::placeholder{font-size:var(--text-support);line-height:1.6;color:#a5bdab}
.field textarea{min-height:160px;max-height:none}
.form-submit{font-size:var(--text-support);min-height:54px}
.form-footnote{font-size:.9375rem;line-height:1.75;color:#acc4b3;margin-top:16px}
.form-feedback{font-size:var(--text-support);line-height:1.7}

/* Cierre y borrador del mensaje. */
.footer-main{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px}
.footer-main .wordmark{justify-self:start}
.footer-main>.footer-tagline{display:flex;justify-content:center;flex-wrap:wrap;gap:0 .35em;text-align:center;font-size:var(--text-body);line-height:1.75;color:#a6bdac;margin:0}
.footer-main .back-top{justify-self:end;min-height:44px;width:auto;padding-top:0;margin-left:0;gap:14px}
.footer-bottom{font-size:var(--text-label);line-height:1.7;flex-wrap:wrap;gap:16px 24px;color:#9fb3a5}
.draft-dialog>p,.draft-dialog pre,.draft-dialog>#copy-draft{font-size:var(--text-support);line-height:1.7}
.draft-dialog{width:min(650px,calc(100% - 32px))}
.draft-top .eyebrow{flex:1}
.draft-dialog pre{max-height:35dvh;color:#c4d9cb}

/* Las columnas se reorganizan cuando el texto necesita más espacio. */
@media(max-width:1050px){
  html{scroll-padding-top:100px}
  .header-inner{height:84px;justify-content:space-between;gap:16px}
  .header-actions{margin-left:auto;gap:4px}
  .menu-toggle{display:grid;position:relative;color:var(--white)}
  .navigation{display:none;position:absolute;top:83px;left:0;right:0;margin-left:0;background:#0d1d25;padding:16px 28px 24px;border-bottom:1px solid var(--line);box-shadow:0 25px 35px #0005;gap:0}
  .navigation.open{display:flex;flex-direction:column;align-items:stretch}
  .navigation>a{font-size:var(--text-body);padding:16px 4px}
  .navigation .nav-contact{margin-top:12px;padding:14px 16px;justify-content:space-between}
  .site-header:has(.navigation.open){background:#0d1d25}
}
@media(max-width:1000px){
  .hero-grid{grid-template-columns:1fr;gap:28px;min-height:0}
  .hero-copy{max-width:760px}
  .hero-art{width:min(100%,640px);height:470px;margin:12px auto 0}
  .hero-description{max-width:48ch}
  .hero-ctas{flex-direction:row;flex-wrap:wrap;align-items:center}
  .approach-grid{grid-template-columns:1fr;gap:44px}
  .approach-visual{min-height:0;aspect-ratio:1.13;max-width:640px;width:100%;margin-inline:auto;align-self:start}
  .approach-intro,.principle p{max-width:64ch}
  .process-track{grid-template-columns:1fr;gap:38px;margin-top:44px}
  .process-line{top:0;bottom:0;left:16px;right:auto;width:1px;height:auto}
  .process-line>span{transform:scaleY(var(--process-progress,0));transform-origin:top}
  .motion-paused .process-line>span{transform:scaleY(1)}
  .process-step{position:relative;padding-left:52px}
  .step-mark{height:auto;margin-bottom:10px}
  .step-mark>span:first-child{font-size:1.625rem}
  .step-dot{left:-39px;top:17px}
  .process-step>p{max-width:58ch}
  .step-output{margin-top:14px}
  .contact-shell{grid-template-columns:1fr;gap:40px;padding:40px}
  .contact-form-wrap{border-top:1px solid var(--line);padding-top:32px}
  .contact-copy>p:not(.eyebrow){max-width:52ch}
  .contact-signature{padding-top:28px}
  .form-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media(max-width:700px){
  .container{width:calc(100% - 40px)}
  .eyebrow,.section-heading .eyebrow,.hero-copy>.eyebrow,
  .approach-copy .eyebrow,.content-copy .eyebrow,.faq-grid .eyebrow,
  .contact-copy .eyebrow{letter-spacing:.08em}
  .header-inner{height:80px;gap:10px}
  .navigation{top:79px;padding-inline:20px}
  .header-actions{gap:0}
  .wordmark{font-size:26px;gap:8px}
  .brand-logo{width:47px;height:51px;max-width:47px;max-height:51px}
  .hero{padding-top:126px}
  .hero-description{font-size:var(--text-body)}
  .hero-art{height:390px}
  .hero-ctas{gap:20px}
  .hero-ctas .button{gap:16px;padding:15px 19px;min-height:54px}
  .hero-ctas .text-link{font-size:var(--text-support)}
  .audience{flex-direction:column;gap:12px;margin-top:32px}
  .audience>span{max-width:none;font-size:var(--text-label)}
  .audience p{font-size:var(--text-support);gap:12px;flex:none}
  .hero-bottom{font-size:var(--text-label);gap:18px;padding-block:24px}
  .hero-bottom>span{max-width:45%}
  .hero-bottom>a{flex:1;min-width:0;justify-content:flex-end;gap:10px}
  .hero-bottom>a>span{max-width:130px}
  .art-label-top{font-size:var(--text-support);left:0}
  .art-label-bottom{font-size:var(--text-body);right:0}
  .art-topline{font-size:.75rem;left:12px}
  .service-row summary{padding-block:28px;grid-template-columns:26px minmax(0,1fr) 38px;gap:12px}
  .service-row h3{font-size:1.75rem}
  .service-row .service-subtitle{font-size:var(--text-support)}
  .service-number{font-size:var(--text-caption)}
  .expand-icon{width:38px;height:38px}
  .service-body{margin-left:0;margin-right:0;gap:24px;padding-bottom:32px}
  .service-description{gap:14px;padding-right:0}
  .service-description .service-symbol{width:24px;height:24px}
  .service-row .service-description p{font-size:var(--text-body)}
  .service-row .service-tags li{font-size:var(--text-label)}
  .approach-grid{gap:36px}
  .approach-copy h2{font-size:2.25rem}
  .approach-visual>p{font-size:1.875rem;bottom:66px}
  .visual-top{font-size:var(--text-label);left:22px;right:22px}
  .visual-bottom{font-size:var(--text-label);left:24px;bottom:22px;letter-spacing:.06em}
  .principle{gap:16px;padding-block:26px}
  .principle h3{font-size:1.375rem}
  .solution-tabs{padding:14px 12px}
  .solution-tabs button{font-size:var(--text-support);padding:10px 13px;gap:8px}
  .solution-type,.expertise-heading>span{font-size:var(--text-label)}
  .solution-view{padding:30px 24px 26px}
  .solution-view-copy .small-link{font-size:var(--text-support)}
  .solution-stage-footer{font-size:var(--text-label);padding:18px 22px;align-items:flex-start}
  .solution-stage-footer .status-dot{margin-top:9px}
  .expertise-copy>strong{font-size:1.4375rem}
  .expertise-copy>p{font-size:var(--text-body)}
  .format-meta,.story-bottom,.wide-caption{font-size:.625rem}
  .format-note{font-size:var(--text-label);left:8px;right:8px}
  .faq-item summary{font-size:1.25rem}
  .contact-shell{padding:30px 24px;gap:34px}
  .contact-copy .eyebrow{font-size:var(--text-label)}
  .contact-email{font-size:var(--text-body)}
  .contact-form-wrap>h3{font-size:1.875rem}
  .field>label{font-size:var(--text-support)}
  .field input,.field select,.field textarea{font-size:var(--text-body)}
  .field input::placeholder,.field textarea::placeholder{font-size:var(--text-support)}
  .footer-main>p{font-size:var(--text-support);margin-left:0}
  .footer-bottom{font-size:var(--text-label)}
  .back-top{font-size:var(--text-support)}
}
@media(max-width:600px){
  .form-row,.draft-channels{grid-template-columns:1fr}
  .form-row{gap:0}
  .draft-dialog{padding:24px}
  .draft-dialog>.draft-top{gap:12px}
}
@media(max-width:370px){
  .container{width:calc(100% - 32px)}
  .wordmark{font-size:23px;gap:6px}
  .brand-logo{width:40px;height:46px;max-width:40px;max-height:46px}
  .header-inner{gap:4px}
  .contact-shell{padding:28px 20px}
  .solution-view{padding-inline:20px}
  .hero .hero-description{font-size:var(--text-body)}
  .hero-art{height:360px}
}

/* Firma centrada; las dos frases comparten una línea cuando hay espacio. */
@media(max-width:1050px){
  .footer-main{grid-template-columns:minmax(0,1fr) auto}
  .footer-main .wordmark{grid-column:1;grid-row:1}
  .footer-main>.footer-tagline{grid-column:1/-1;grid-row:2}
  .footer-main .back-top{grid-column:2;grid-row:1}
}
@media(max-width:700px){
  .footer-main{grid-template-columns:minmax(0,1fr);justify-items:center;gap:24px}
  .footer-main .wordmark{justify-self:center}
  .footer-main>.footer-tagline{grid-column:1;grid-row:2}
  .footer-main .back-top{grid-column:1;grid-row:3;justify-self:center}
}
