/* Kontratista 11.0 — identidad oficial, proporción visual y contraste consistente */
:root {
  --blue: #0151fb;
  --blue-dark: #0039b8;
  --blue-soft: #eaf0ff;
  --navy: #07182d;
  --navy-2: #102a48;
  --ktr10-brand: #0151fb;
  --ktr10-brand-hover: #0039b8;
  --ktr10-brand-soft: #eaf0ff;
  --ktr10-brand-pale: #f5f7ff;
  --ktr10-action: #0039b8;
  --ktr10-action-hover: #002b86;
  --ktr10-navy: #07182d;
  --ktr10-navy-2: #102a48;
  --ktr10-ink: #15243a;
  --ktr10-muted: #52657b;
  --ktr10-line: #d8e0eb;
  --ktr10-paper: #f6f8fc;
  --ktr-brand: #0151fb;
  --ktr-brand-hover: #0039b8;
  --ktr-brand-deep: #002b86;
  --ktr-brand-soft: #eaf0ff;
  --ktr-brand-pale: #f5f7ff;
}

body { color: #15243a; background: #fff; }
p { color: #52657b; }
:focus-visible { outline-color: rgba(1,81,251,.48); }
.eyebrow { color: #002b86; }
.eyebrow.light { color: #c7d6ff; }

.button-primary,
.nav-cta,
.mobile-quote-cta,
.project-search-v10 button {
  border-color: #0151fb;
  background: #0151fb;
  color: #fff;
  box-shadow: 0 13px 30px rgba(1,81,251,.23);
}
.button-primary:hover,
.button-primary:focus-visible,
.nav-cta:hover,
.nav-cta:focus-visible,
.mobile-quote-cta:hover,
.mobile-quote-cta:focus-visible,
.project-search-v10 button:hover,
.project-search-v10 button:focus-visible {
  border-color: #0039b8;
  background: #0039b8;
  color: #fff;
  box-shadow: 0 16px 34px rgba(0,57,184,.27);
}
.button-secondary { border-color: #aebbc9; background: #fff; color: #07182d; }
.button-secondary:hover,
.button-secondary:focus-visible { border-color: #0151fb; background: #eaf0ff; color: #002b86; }
.button-outline-light { border-color: rgba(255,255,255,.58); background: rgba(255,255,255,.06); color: #fff; }
.button-outline-light:hover,
.button-outline-light:focus-visible { border-color: #fff; background: #fff; color: #07182d; }
.category-strip-track-v10 a:hover,
.category-strip-track-v10 a.is-active,
.upload-symbol { color: #fff; }

.trust-bar { background: #07182d; }
.trust-bar-inner { justify-content: space-between; gap: 16px; }
.trust-message-v11 { display: flex; align-items: center; gap: 10px; }
.trust-contact-v11 { display: flex; align-items: center; gap: 18px; margin-left: auto; }
.trust-contact-v11 a { color: #dce6ef; font-weight: 760; letter-spacing: 0; }
.trust-contact-v11 a:hover,
.trust-contact-v11 a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.trust-contact-v11 a + a { padding-left: 18px; border-left: 1px solid rgba(255,255,255,.18); }

.site-header { height: 82px; }
.brand { width: 220px; height: 56px; border-radius: 12px; }
.brand img,
.footer-logo-frame img { width: 100%; height: 100%; object-fit: contain; object-position: left center; }
.main-nav { gap: clamp(13px,1.25vw,22px); }
.main-nav > a:not(.button)::after { background: #0151fb; }

/* Portada: una sola imagen protagonista, sin superposiciones ni recortes arbitrarios. */
.hero-v11 {
  position: relative;
  overflow: hidden;
  padding: clamp(60px,6vw,88px) 0 clamp(66px,7vw,98px);
  background: linear-gradient(135deg,#07182d 0%,#0a2340 65%,#0b3260 100%);
}
.hero-v11::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 85% 10%,rgba(1,81,251,.24),transparent 31%);
  pointer-events: none;
}
.hero-grid-v11 { position: relative; display: grid; grid-template-columns: minmax(0,1fr) minmax(470px,1fr); gap: clamp(42px,5vw,70px); align-items: center; }
.hero-copy-v11 h1 { max-width: 760px; margin: 0 0 20px; color: #fff; font-size: clamp(3rem,4.25vw,4.45rem); line-height: 1.01; letter-spacing: -.052em; }
.hero-copy-v11 h1 strong { display: block; margin-top: 7px; color: #d7e1ff; font: inherit; }
.hero-lead-v11 { max-width: 690px; margin-bottom: 25px; color: #cedae5; font-size: clamp(1.08rem,1.6vw,1.25rem); line-height: 1.62; }
.hero-search-v11 { max-width: 680px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; margin-bottom: 16px; padding: 7px; border: 1px solid rgba(255,255,255,.2); border-radius: 13px; background: #fff; box-shadow: 0 22px 50px rgba(0,0,0,.2); }
.hero-search-v11 label { min-width: 0; }
.hero-search-v11 input { width: 100%; min-height: 51px; padding: 0 15px; border: 0; outline: 0; color: #07182d; font-size: 1rem; }
.hero-search-v11 button { min-width: 170px; border: 0; border-radius: 8px; background: #0151fb; color: #fff; font-weight: 830; }
.hero-search-v11 button:hover,
.hero-search-v11 button:focus-visible { background: #0039b8; }
.hero-actions-v11 { display: flex; flex-wrap: wrap; gap: 10px; }
.hero-proof-v11 { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; margin: 31px 0 0; padding: 22px 0 0; border-top: 1px solid rgba(255,255,255,.16); list-style: none; }
.hero-proof-v11 li { min-width: 0; padding-right: 18px; }
.hero-proof-v11 li + li { padding-left: 18px; border-left: 1px solid rgba(255,255,255,.13); }
.hero-proof-v11 strong,
.hero-proof-v11 span { display: block; }
.hero-proof-v11 strong { color: #fff; font-size: .93rem; }
.hero-proof-v11 span { margin-top: 4px; color: #aebfce; font-size: .82rem; line-height: 1.45; }
.hero-media-v11 { overflow: hidden; margin: 0; border: 1px solid rgba(255,255,255,.24); border-radius: 18px; background: #fff; box-shadow: 0 34px 86px rgba(0,0,0,.31); }
.hero-media-v11 img { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; object-position: center; }
.hero-media-v11 figcaption { display: grid; grid-template-columns: auto 1fr; gap: 9px 18px; align-items: center; padding: 18px 20px; background: #fff; }
.hero-media-v11 figcaption span { grid-row: 1/3; padding: 8px 10px; border-radius: 7px; background: #eaf0ff; color: #002b86; font-size: max(.78rem,13px); font-weight: 850; text-transform: uppercase; }
.hero-media-v11 figcaption strong { color: #07182d; font-size: 1.02rem; }

/* Sección familia–celular: imagen completa y proporción estable. */
.journey-v11 { padding: clamp(68px,7vw,104px) 0; background: #f5f7ff; }
.journey-grid-v11 { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(390px,.65fr); gap: clamp(38px,5vw,72px); align-items: center; }
.journey-media-v11 { overflow: hidden; margin: 0; border: 1px solid #cdd8ea; border-radius: 18px; background: #fff; box-shadow: 0 25px 65px rgba(7,24,45,.13); }
.journey-media-v11 img { width: 100%; height: auto !important; aspect-ratio: auto !important; object-fit: contain !important; object-position: center !important; }
.journey-copy-v11 h2 { margin-bottom: 14px; font-size: clamp(2.3rem,3.8vw,3.65rem); }
.journey-copy-v11 > p:not(.eyebrow) { max-width: 620px; margin-bottom: 19px; font-size: 1.03rem; }
.journey-tabs-v11 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-bottom: 11px; }
.journey-tabs-v11 button { min-height: 58px; display: grid; grid-template-columns: 31px 1fr; gap: 9px; align-items: center; padding: 10px 11px; border: 1px solid #bdcbe0; border-radius: 9px; background: #fff; color: #15243a; font-size: .9rem; font-weight: 790; text-align: left; }
.journey-tabs-v11 button span { display: grid; width: 29px; height: 29px; place-items: center; border-radius: 50%; background: #eaf0ff; color: #002b86; font-size: max(.78rem,13px); }
.journey-tabs-v11 button:hover { border-color: #0151fb; background: #f8faff; }
.journey-tabs-v11 button[aria-selected="true"] { border-color: #0151fb; background: #0151fb; color: #fff; box-shadow: 0 10px 24px rgba(1,81,251,.18); }
.journey-tabs-v11 button[aria-selected="true"] span { background: #fff; color: #002b86; }
.journey-panels-v11 { margin-bottom: 17px; }
.journey-panels-v11 article { padding: 19px 20px; border: 1px solid #cbd7e8; border-left: 4px solid #0151fb; border-radius: 9px; background: #fff; }
.journey-panels-v11 article[hidden] { display: none; }
.journey-panels-v11 h3 { margin-bottom: 7px; font-size: 1.19rem; }
.journey-panels-v11 p { margin-bottom: 12px; font-size: .93rem; line-height: 1.52; }
.journey-panels-v11 strong { display: block; padding-top: 11px; border-top: 1px solid #dce4ef; color: #002b86; font-size: .9rem; }

/* Proyectos y tarjetas: una sola proporción en todas las vistas. */
.projects-v11 { background: #fff; }
.section-head-v11 { display: flex; justify-content: space-between; gap: 38px; align-items: end; margin-bottom: 30px; }
.section-head-v11 h2 { max-width: 820px; margin: 0; font-size: clamp(2.2rem,4vw,3.55rem); }
.section-head-v11 p:not(.eyebrow) { max-width: 720px; margin: 11px 0 0; }
.section-head-v11 > a { flex: 0 0 auto; color: #002b86; font-weight: 820; }
.section-head-v11 > a span { color: #0151fb; }
.home-grid-v11 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.product-card { border-radius: 13px; box-shadow: 0 12px 34px rgba(7,24,45,.07); }
.product-card-media > img,
.product-card-media .card-media,
.product-card-media .model-art,
.model-card .card-media,
.article-card .card-media,
.service-card .card-media { width: 100%; height: auto !important; min-height: 0 !important; aspect-ratio: 16/9 !important; object-fit: cover !important; object-position: center !important; }
.product-card-body { padding: 19px; }
.product-card-body > p { min-height: 66px; }
.product-category { color: #002b86; }
.product-card-actions .button { min-height: 45px; color: #fff; }
.product-card-actions .button-secondary { color: #07182d; }
.product-card-actions .button-secondary:hover,
.product-card-actions .button-secondary:focus-visible { color: #002b86; }

/* Servicios + educación en un bloque compacto. */
.support-v11 { background: #f6f8fc; }
.support-head-v11 { align-items: end; }
.support-head-v11 > p { max-width: 520px; margin: 0; font-size: 1rem; }
.support-grid-v11 { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(360px,.88fr); gap: 26px; align-items: start; }
.support-services-v11 { display: grid; gap: 13px; }
.support-services-v11 article { overflow: hidden; border: 1px solid #d8e0eb; border-radius: 12px; background: #fff; }
.support-services-v11 article > a { display: grid; grid-template-columns: 235px minmax(0,1fr); min-height: 190px; }
.support-services-v11 article img { width: 100%; height: 100% !important; min-height: 190px !important; aspect-ratio: auto !important; object-fit: cover !important; object-position: center !important; }
.support-services-v11 article > a > div { display: flex; flex-direction: column; padding: 19px 21px; }
.support-services-v11 article span { color: #002b86; font-size: max(.8rem,13px); font-weight: 850; text-transform: uppercase; }
.support-services-v11 article h3 { margin: 5px 0 7px; font-size: 1.2rem; }
.support-services-v11 article p { margin: 0 0 10px; font-size: .87rem; line-height: 1.48; }
.support-services-v11 article strong { margin-top: auto; color: #002b86; font-size: .82rem; }
.support-services-v11 article:hover { border-color: #0151fb; box-shadow: 0 16px 38px rgba(7,24,45,.09); }
.support-all-v11 { display: flex; justify-content: space-between; gap: 15px; padding: 16px 18px; border: 1px solid #0151fb; border-radius: 10px; background: #0151fb; color: #fff; font-weight: 820; }
.support-all-v11:hover,
.support-all-v11:focus-visible { background: #0039b8; }
.education-v11 { overflow: hidden; border: 1px solid #d8e0eb; border-radius: 12px; background: #fff; }
.education-v11 > header { padding: 25px; background: #07182d; }
.education-v11 > header span { color: #c7d6ff; font-size: max(.8rem,13px); font-weight: 850; text-transform: uppercase; }
.education-v11 > header h3 { margin: 7px 0 0; color: #fff; font-size: 1.55rem; }
.education-v11 > article + article { border-top: 1px solid #d8e0eb; }
.education-v11 > article > a { display: grid; grid-template-columns: 145px minmax(0,1fr); min-height: 130px; }
.education-v11 > article img { width: 100%; height: 100% !important; min-height: 130px !important; aspect-ratio: auto !important; object-fit: cover !important; object-position: center !important; }
.education-v11 > article > a > div { display: flex; flex-direction: column; padding: 15px 16px; }
.education-v11 > article span { color: #002b86; font-size: max(.8rem,13px); font-weight: 820; }
.education-v11 h4 { margin: 5px 0 8px; font-size: 1rem; line-height: 1.27; }
.education-v11 article strong { margin-top: auto; color: #07182d; font-size: max(.82rem,14px); }
.education-v11 > article > a:hover { background: #f5f7ff; }
.education-all-v11 { display: block; padding: 15px 18px; border-top: 1px solid #d8e0eb; color: #002b86; font-weight: 820; text-align: center; }

.contact-cta-v11 { padding: 0 0 clamp(68px,7vw,98px); background: #f6f8fc; }
.contact-cta-card-v11 { display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,.46fr); gap: 50px; align-items: center; padding: clamp(34px,5vw,60px); border-radius: 18px; background: linear-gradient(135deg,#07182d,#0a2d55); box-shadow: 0 24px 64px rgba(7,24,45,.15); }
.contact-cta-card-v11 h2 { max-width: 850px; margin-bottom: 12px; color: #fff; font-size: clamp(2.05rem,3.8vw,3.45rem); }
.contact-cta-card-v11 p:not(.eyebrow) { max-width: 760px; margin: 0; color: #c5d2df; }
.contact-cta-actions-v11 { display: grid; gap: 9px; }
.contact-cta-actions-v11 > a:not(.button) { display: grid; padding: 12px 14px; border: 1px solid rgba(255,255,255,.19); border-radius: 9px; background: rgba(255,255,255,.05); }
.contact-cta-actions-v11 > a:not(.button):hover { border-color: rgba(255,255,255,.55); background: rgba(255,255,255,.09); }
.contact-cta-actions-v11 span { color: #b7c7d6; font-size: max(.78rem,13px); }
.contact-cta-actions-v11 strong { color: #fff; font-size: .93rem; overflow-wrap: anywhere; }

/* Ajustes transversales del catálogo, servicios, artículos y formularios. */
.catalog-hero-v10,
.project-hero-v10,
.configurator-head-v10,
.how-hero-v10,
.why-hero-v10,
.normative-hero-v10,
.professional-backup-v10,
.single-counterpart-v10 { background-color: #07182d; }
.service-detail-hero { background: radial-gradient(circle at 82% 15%,rgba(1,81,251,.2),transparent 32%),#07182d; }
.service-detail-grid > div:last-child { border-radius: 14px; }
.service-detail-grid .detail-visual,
.service-detail-image { width: 100%; height: auto !important; min-height: 0 !important; aspect-ratio: 16/9 !important; object-fit: cover !important; object-position: center !important; }
.service-card-grid-wide .service-card:nth-child(1),
.service-card-grid-wide .service-card:nth-child(6) { grid-column: auto; }
.service-card-grid-wide .service-card:nth-child(1) > a,
.service-card-grid-wide .service-card:nth-child(6) > a { display: block; }
.service-card-grid-wide .service-card:nth-child(1) .card-media,
.service-card-grid-wide .service-card:nth-child(6) .card-media { height: auto !important; aspect-ratio: 16/9 !important; }
.service-card-body { min-height: 295px; }
.project-main-image-v10 img,
.project-thumbnails-v10 img,
.configurator-project-v10 img,
.article-cover-image,
.team-story-v10 img,
.team-story-v6 img { object-position: center; }
.commerce-step-tabs-v10 button[aria-selected="true"],
.configurator-progress-v10 li.is-active span,
.how-panels-v10 article > header > span,
.relationship-map-v10 span {
  border-color: #0151fb;
  background: #0151fb;
  color: #fff;
}
.commerce-step-tabs-v10 button[aria-selected="true"] span { background: #fff; color: #002b86; }
.request-progress button.is-active > span,
.choice-card:has(input:checked) .choice-code,
.choice-card:has(input:checked) i,
.request-option.is-selected .option-code,
.request-option i { color: #fff; }

.footer-logo-frame { width: 220px; height: 58px; border-radius: 12px; background: transparent; }
.footer-contact-v11 { margin-top: 19px; }
.footer-contact-v11 a { display: block; margin: 7px 0; color: #c6d4de; font-size: .88rem; font-weight: 730; overflow-wrap: anywhere; }
.footer-contact-v11 a:hover { color: #fff; }

@media (max-width: 1120px) {
  .hero-grid-v11 { grid-template-columns: 1fr 1fr; gap: 35px; }
  .hero-copy-v11 h1 { font-size: clamp(2.8rem,5vw,3.7rem); }
  .home-grid-v11 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .support-grid-v11 { grid-template-columns: 1fr; }
  .education-v11 { display: grid; grid-template-columns: repeat(3,1fr); }
  .education-v11 > header,
  .education-all-v11 { grid-column: 1/-1; }
  .education-v11 > article + article { border-top: 0; border-left: 1px solid #d8e0eb; }
  .education-v11 > article > a { height: 100%; display: block; }
  .education-v11 > article img { height: auto !important; min-height: 0 !important; aspect-ratio: 16/9 !important; }
  .education-v11 > article > a > div { min-height: 165px; }
}

@media (max-width: 900px) {
  .trust-message-v11 > span:last-child { display: none; }
  .trust-contact-v11 { gap: 12px; }
  .trust-contact-v11 a + a { padding-left: 12px; }
  .hero-grid-v11,
  .journey-grid-v11,
  .contact-cta-card-v11 { grid-template-columns: 1fr; }
  .hero-grid-v11 { gap: 0; }
  .hero-copy-v11 { display: contents; }
  .hero-copy-v11 .eyebrow { order: 1; }
  .hero-copy-v11 h1 { order: 2; }
  .hero-lead-v11 { order: 3; }
  .hero-media-v11 { order: 4; width: 100%; max-width: 760px; margin: 9px 0 28px; }
  .hero-search-v11 { order: 5; width: 100%; }
  .hero-actions-v11 { order: 6; }
  .hero-proof-v11 { order: 7; }
  .journey-media-v11 { max-width: 780px; }
  .section-head-v11,
  .support-head-v11 { align-items: flex-start; flex-direction: column; }
  .service-card-body { min-height: 0; }
}

@media (max-width: 680px) {
  .trust-bar-inner { justify-content: center; }
  .trust-message-v11 { display: none; }
  .trust-contact-v11 { margin-left: 0; }
  .trust-contact-v11 a:first-child { display: none; }
  .trust-contact-v11 a + a { padding-left: 0; border-left: 0; }
  .site-header { height: 74px; }
  .brand { width: 188px; height: 48px; }
  .hero-v11 { padding-top: 48px; }
  .hero-copy-v11 h1 { font-size: clamp(2.65rem,12vw,4rem); }
  .hero-copy-v11 h1 strong { margin-top: 8px; }
  .hero-search-v11 { grid-template-columns: 1fr; }
  .hero-search-v11 button { min-height: 49px; }
  .hero-actions-v11,
  .hero-actions-v11 .button { width: 100%; }
  .hero-proof-v11 { grid-template-columns: 1fr; gap: 13px; }
  .hero-proof-v11 li,
  .hero-proof-v11 li + li { padding: 0; border-left: 0; }
  .hero-proof-v11 li + li { padding-top: 13px; border-top: 1px solid rgba(255,255,255,.12); }
  .hero-media-v11 figcaption { grid-template-columns: 1fr; }
  .hero-media-v11 figcaption span { grid-row: auto; width: fit-content; }
  .journey-v11 { padding-block: 60px; }
  .journey-tabs-v11 { grid-template-columns: 1fr; }
  .journey-copy-v11 .button { width: 100%; }
  .home-grid-v11 { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(278px,84vw); grid-template-columns: none; overflow-x: auto; padding: 2px 2px 16px; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #0151fb #dce4ef; }
  .home-grid-v11::-webkit-scrollbar { height: 6px; }
  .home-grid-v11::-webkit-scrollbar-track { border-radius: 999px; background: #dce4ef; }
  .home-grid-v11::-webkit-scrollbar-thumb { border-radius: 999px; background: #0151fb; }
  .home-grid-v11 .product-card { scroll-snap-align: start; }
  .product-card-body > p { min-height: 0; }
  .product-card-actions { grid-template-columns: 1fr; }
  .support-services-v11 article > a { display: block; }
  .support-services-v11 article img { height: auto !important; min-height: 0 !important; aspect-ratio: 16/9 !important; }
  .education-v11 { display: block; }
  .education-v11 > article + article { border-top: 1px solid #d8e0eb; border-left: 0; }
  .education-v11 > article > a { display: grid; grid-template-columns: 115px minmax(0,1fr); min-height: 122px; }
  .education-v11 > article img { height: 100% !important; min-height: 122px !important; aspect-ratio: auto !important; }
  .education-v11 > article > a > div { min-height: 0; }
  .contact-cta-card-v11 { padding: 30px 22px; border-radius: 14px; }
  .contact-cta-actions-v11 .button { width: 100%; }
  .service-detail-grid .detail-visual,
  .service-detail-image { min-height: 0 !important; }
}

@media (prefers-reduced-motion: reduce) {
  .product-card,
  .support-services-v11 article,
  .button { transition: none; }
}
