/* Kontratista 12 — espacios proporcionados y un recorrido claro para tu obra. */
.hero-v11 { padding: clamp(38px,4vw,64px) 0; }
.hero-grid-v11 { grid-template-columns: minmax(0,1fr) minmax(0,1.06fr); align-items: start; gap: clamp(28px,4vw,64px); }
.hero-copy-v11 h1 { font-size: clamp(2.5rem,3.7vw,3.8rem); line-height: 1.07; letter-spacing: -.04em; }
.hero-copy-v11 h1 strong { margin-top: 14px; font-size: .75em; line-height: 1.2; font-weight: 650; }
.hero-copy-v11 .eyebrow { margin-bottom: 20px; font-size: .875rem; letter-spacing: .05em; }
.hero-lead-v11 { font-size: 1.0625rem; line-height: 1.65; margin-bottom: 24px; }
.hero-actions-v11 .button { min-height: 50px; padding: 13px 18px; font-size: .9375rem; }
.hero-media-v11 { align-self: start; margin: 0; }
.hero-media-v11 img { display:block; aspect-ratio:16/9; width:100%; height:auto; object-fit:contain; }
.hero-media-v11 figcaption { display:block; padding: 20px 24px; }
.hero-media-v11 figcaption strong { display:block; font-size:1.125rem; line-height:1.4; }
.hero-media-v11 figcaption span { display:block; width:auto; padding:0; margin-top:6px; color:#52657b; background:none; font-size:.9375rem; line-height:1.5; font-weight:400; text-transform:none; }
.journey-v11 { padding:64px 0; }
.journey-copy-v11 h2 { font-size:clamp(2rem,3vw,2.85rem); line-height:1.13; }
.journey-grid-v11 { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:40px; }
.journey-panels-v11 p { font-size:1rem; }
.journey-panels-v11 strong { font-size:.9375rem; }
.section-head-v11 h2 { font-size:clamp(2rem,3vw,2.9rem); }
.contact-cta-card-v11 h2 { font-size:clamp(2rem,3vw,2.9rem); }
@media(max-width:1000px) {
  .hero-grid-v11,.journey-grid-v11 { grid-template-columns:1fr; }
  .hero-copy-v11 { display:block; }
  .hero-copy-v11 h1 { max-width:720px; font-size:clamp(2.4rem,5vw,3.4rem); }
  .hero-lead-v11 { max-width:680px; }
  .hero-media-v11 { order:initial; width:100%; max-width:none; margin:0; }
  .journey-grid-v11 { gap:28px; }
  .journey-media-v11 { width:100%; max-width:720px; margin:auto; }
}
@media(max-width:680px) {
  .hero-v11 { padding:30px 0 36px; }
  .hero-copy-v11 h1 { font-size:2.375rem; }
  .hero-copy-v11 h1 strong { font-size:.72em; }
  .hero-actions-v11 { display:grid; grid-template-columns:1fr; }
  .hero-media-v11 figcaption { padding:16px; }
  .journey-v11 { padding:40px 0; }
  .journey-tabs-v11 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .journey-tabs-v11 button { font-size:.875rem; padding:10px 8px; grid-template-columns:24px 1fr; gap:6px; }
  .journey-tabs-v11 button span { width:24px; height:24px; }
}

.product-type { position:static; display:inline-block; margin:10px 14px 0; border:0; padding:0; background:transparent; color:#52657b; font-size:.875rem; }
.product-code { display:none; }
.product-card-media { background:#fff; }
.product-card-body > p { font-size:1rem; min-height:0; }
.product-card-body h3 { font-size:1.18rem; line-height:1.32; }
.product-facts { font-size:.875rem; }
.product-price strong { font-size:1.2rem; }
.product-card-actions { grid-template-columns:1fr; gap:10px; }
.product-card-actions .button-secondary { background:transparent; box-shadow:none; min-height:36px; border-color:transparent; padding:5px 10px; text-decoration:underline; text-underline-offset:3px; }
.product-card-body { display:flex; flex-direction:column; }
.product-facts { margin-top:auto; }
.home-grid-v11 .product-facts > div:last-child { display:none; }
.home-grid-v11 .product-card-body > p { display:none; }
.form-subtitle-v12 { font-size:1.15rem; margin:26px 0 14px; }
.configurator-progress-v10 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.configurator-progress-v10 small { font-size:.875rem; }
.configurator-head-v10 { padding-block:32px; }
.configurator-head-v10 h1 { font-size:clamp(2rem,3.5vw,3.1rem); }
.configurator-project-v10 .sticky { position:sticky; top:110px; }
.configurator-form-v10 legend { font-size:1.7rem; }
.config-review-v10 { margin-top:24px; }
.upload-validation-v12 { color:#a32222; font-size:.9375rem; margin:10px 0; }
.form-step[hidden],.config-step-v10[hidden],.article-card[hidden] { display:none!important; }
.guide-search-v12 { margin:0 0 30px; max-width:900px; }
.guide-search-v12 > label { display:block; font-size:1.1rem; font-weight:750; margin-bottom:10px; }
.guide-search-v12 > div { display:flex; gap:12px; }
.guide-search-v12 input { flex:1; min-width:0; min-height:50px; padding:12px 16px; border:1px solid #aebdce; border-radius:10px; background:#fff; }
.guide-search-v12 > p { font-size:.9375rem; margin:10px 0 0; }
.article-index-v12 { padding-bottom:20px; margin-bottom:22px; border-bottom:1px solid #d8e0eb; }
.article-index-v12 summary { cursor:pointer; font-weight:800; color:#07182d; }
.article-index-v12 nav { display:grid; gap:9px; padding-top:14px; }
.article-index-v12 a { color:#0039b8; font-size:.9375rem; line-height:1.4; }
.article-index-v12 a:hover { text-decoration:underline; }
.article-content :is(h2,h3) { scroll-margin-top:110px; }
.article-content { min-width:0; overflow-wrap:break-word; font-size:1.0625rem; line-height:1.8; }
.article-content table { display:block; max-width:100%; overflow-x:auto; }
.article-aside .aside-card { padding:24px; }
.article-aside h2 { font-size:1.4rem; }
.project-disclosure-v12 { border-block:1px solid #d8e0eb; background:#f6f8fc; }
.project-disclosure-v12 + .project-disclosure-v12 { border-top:0; }
.project-disclosure-v12 > summary { padding-block:22px; color:#07182d; font-size:1.15rem; font-weight:750; cursor:pointer; }
.project-disclosure-v12 > summary span { float:right; }
.project-disclosure-v12[open] > summary span { transform:rotate(45deg); }
.project-disclosure-v12 .section { padding-top:30px; padding-bottom:40px; }
.project-disclosure-v12 h2 { font-size:1.8rem; }
.project-hero-grid-v10,.service-detail-grid { align-items:start; }
.project-main-image-v10 { margin-top:0; }
.project-main-image-v10 img { width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; }
.project-summary-v10 h1,.service-detail-grid h1 { font-size:clamp(2rem,3.3vw,3.25rem); line-height:1.1; }
.project-hero-grid-v10 { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); }
.project-disclaimer-v10 { font-size:.875rem; line-height:1.6; }
.support-services-v11 article p { font-size:1rem; }
.support-services-v11 article strong,.support-services-v11 article span { font-size:.875rem; }
.support-services-v11 article > a { grid-template-columns:190px minmax(0,1fr); }
.support-services-v11 article img { align-self:start; height:auto!important; min-height:0!important; aspect-ratio:16/9!important; margin:20px 0 20px 16px; width:calc(100% - 16px); border-radius:8px; }
.education-v11 > article img { align-self:start; height:auto!important; min-height:0!important; aspect-ratio:16/9!important; margin:16px 0 16px 12px; width:calc(100% - 12px); border-radius:6px; }
.education-v11 > header span,.education-v11 > article span { font-size:.875rem; }
.how-timeline-v10 { grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.how-timeline-v10 button { min-width:0; }
.how-timeline-v10 button strong { font-size:.9375rem; line-height:1.3; }
.how-timeline-v10 button span { font-size:.875rem; }
.how-panels-v10 p { font-size:1.0625rem; }
.how-hero-v10 h1,.why-hero-v10 h1,.catalog-hero-v10 h1 { font-size:clamp(2.2rem,3.6vw,3.4rem); line-height:1.1; }
.how-overview-v10 p { font-size:1.5rem; color:#fff; line-height:1.45; }
.how-overview-v10 > .button { margin-top:18px; }
.relationship-v12 details { padding:20px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); border-radius:10px; }
.relationship-v12 details + details { margin-top:12px; }
.relationship-v12 summary { cursor:pointer; font-size:1.05rem; font-weight:750; color:#fff; }
.relationship-v12 p { margin:10px 0 0; font-size:1rem; color:#d9e4ee; line-height:1.6; }
.mobile-contact-v12 { display:none; }
.form-step,.config-step-v10 { scroll-margin-top:110px; }
.request-intro h1 { font-size:clamp(2rem,3.5vw,3.2rem); }
.request-intro { margin-bottom:28px; }
.service-card-body p,.article-card-body p { font-size:1rem; }
@media(max-width:1180px) {
 .main-nav { position:absolute; inset:100% 0 auto; display:none; max-height:calc(100dvh - 100px); overflow:auto; padding:16px 24px; background:#fff; box-shadow:0 12px 28px #07182d19; }
 .main-nav.is-open { display:grid; gap:0; }
 .main-nav > a:not(.button) { padding:14px 8px; border-bottom:1px solid #d8e0eb; font-size:1rem; }
 .main-nav > a:not(.button)::after { display:none; }
 .nav-toggle { display:block; }
 .nav-cta { margin-top:14px; }
}
@media(max-width:900px) {
 .project-hero-grid-v10 { grid-template-columns:1fr; gap:28px; }
 .article-index-v12 { margin-bottom:18px; }
 .education-v11 > article img { width:calc(100% - 24px); margin:12px; }
}
@media(max-width:680px) {
 .guide-search-v12 > div { flex-direction:column; }
 .mobile-contact-v12 { display:grid; grid-template-columns:1.25fr 1fr; position:fixed; z-index:990; bottom:0; left:0; right:0; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); gap:10px; background:#fff; border-top:1px solid #d8e0eb; box-shadow:0 -4px 20px #07182d12; }
 .mobile-contact-v12 .button { min-height:46px; padding:8px 12px; font-size:.9375rem; }
 :is(.request-page,.configurator-page-v10,.success-page) .mobile-contact-v12 { display:none; }
 .site-footer { padding-bottom:100px; }
 .how-timeline-v10 { grid-template-columns:repeat(5,145px); }
 .support-services-v11 article img { width:100%; margin:0; border-radius:0; }
 .education-v11 > article img { width:calc(100% - 12px); margin:16px 0 16px 12px; }
 .product-type { font-size:.875rem; }
 .project-disclosure-v12 > summary { font-size:1rem; }
}
@media(max-width:680px) {
 .configurator-progress-v10 { gap:5px; }
 .configurator-progress-v10 small { font-size:.8125rem; }
 .configurator-project-v10 .sticky { position:static; }
 .configurator-project-v10 img { max-width:100%; width:120px; float:left; margin:0 14px 8px 0; }
 .configurator-project-v10 h2 { font-size:1.125rem; }
 .configurator-project-v10 .sticky { display:flow-root; }
 .configurator-project-v10 p,.configurator-project-v10 small { display:none; }
 .configurator-form-v10 legend { font-size:1.4rem; }
}

.product-type { min-height: 2.6em; line-height: 1.3; text-align: left; }
.normative-form-v10 { scroll-margin-top:110px; }

.project-price-v10 :is(span,p),.project-key-facts-v10 :is(dt,dd) { font-size:.875rem; line-height:1.5; }
