:root {
    --y:#f6be18;
    --ink:#141a1c;
    --ink2:#202729;
    --paper:#f3f1eb;
    --white:#fff;
    --muted:#6d7472;
    --line:#d9d6cd;
    --green:#20ad67;
}
* {
    box-sizing:border-box;
}
html {
    scroll-behavior:smooth;
}
body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:Arial,Helvetica,sans-serif;
}
a {
    color:inherit;
    text-decoration:none;
}
button,input,select,textarea {
    font:inherit;
}
svg {
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
header {
    height:84px;
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 clamp(22px,6vw,96px);
    position:sticky;
    top:0;
    z-index:50;
    border-bottom:1px solid #eee;
}
.brand {
    display:flex;
    align-items:center;
    gap:12px;
    font-size:18px;
    font-weight:900;
    letter-spacing:.07em;
}
.brand img {
    width:56px;
    height:56px;
    object-fit:contain;
}
.brand small {
    display:block;
    font-size:8px;
    color:#858b89;
    letter-spacing:.15em;
    margin-top:3px;
}
.menu {
    display:none;
    background:none;
    border:0;
}
.menu i {
    display:block;
    width:26px;
    height:2px;
    background:#222;
    margin:5px;
}
nav {
    display:flex;
    align-items:center;
    gap:29px;
    font-size:12px;
    font-weight:700;
}
nav>a:not(.cta):hover {
    color:#b98400;
}
.cta {
    display:flex;
    align-items:center;
    gap:12px;
    background:var(--y);
    padding:14px 19px;
}
.hero {
    min-height:690px;
    background:
        linear-gradient(
            90deg,
            rgba(10,16,18,.96) 0%,
            rgba(10,16,18,.86) 38%,
            rgba(10,16,18,.36) 70%,
            rgba(10,16,18,.12) 100%
        ),
        url("../img/Portada.png") center center / cover no-repeat;
    color:#fff;
    position:relative;
    overflow:hidden;
    padding:100px clamp(24px,8vw,130px);
    display:grid;
    grid-template-columns:1fr;
    align-items:center;
}
.grid {
    display:none;
}
.hero-copy {
    position:relative;
    z-index:2;
    max-width:850px;
}
.eyebrow,.label {
    font-size:10px;
    letter-spacing:.19em;
    font-weight:800;
}
.eyebrow {
    color:#c1c6c5;
    display:flex;
    gap:10px;
    align-items:center;
}
.eyebrow span {
    width:32px;
    height:2px;
    background:var(--y);
}
h1,h2,h3,p {
    margin-top:0;
}
.hero h1 {
    font-size:clamp(46px,5.8vw,79px);
    line-height:1.01;
    letter-spacing:-.055em;
    margin:27px 0;
}
.hero h1 em,.contact h2 em {
    font-style:normal;
    color:var(--y);
}
.hero-copy>p:not(.eyebrow) {
    max-width:620px;
    color:#aeb5b4;
    font-size:17px;
    line-height:1.75;
}
.actions {
    display:flex;
    gap:12px;
    margin-top:35px;
}
.button {
    min-height:52px;
    padding:0 24px;
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:13px;
    border:1px solid transparent;
    font-size:12px;
    font-weight:800;
    cursor:pointer;
    transition:.2s;
}
.button:hover {
    transform:translateY(-2px);
}
.yellow {
    background:var(--y);
    color:var(--ink);
}
.outline {
    border-color:#536063;
    color:#fff;
}
.dark {
    background:var(--ink);
    color:#fff;
}
.hero-proof {
    display:flex;
    gap:44px;
    margin-top:55px;
}
.hero-proof span {
    display:flex;
    flex-direction:column;
    border-left:2px solid var(--y);
    padding-left:12px;
    color:#89918f;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.hero-proof b {
    color:#fff;
    font-size:25px;
    letter-spacing:0;
    margin-bottom:4px;
}
.hero-mark {
    display:none!important;
}
.hero-mark .ring {
    position:absolute;
    width:440px;
    height:440px;
    border:60px solid var(--y);
    border-radius:50%;
    opacity:.9;
}
.hero-mark img {
    position:relative;
    z-index:2;
    width:min(430px,90%);
    filter:drop-shadow(0 30px 25px #0008);
}
.split-intro {
    padding:90px clamp(24px,8vw,130px);
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:90px;
    align-items:end;
}
.label {
    color:#a87600;
    margin-bottom:20px;
}
.split-intro h2,.catalog-title h2,.section-title h2,.location h2,.contact h2 {
    font-size:clamp(38px,4.1vw,60px);
    line-height:1.07;
    letter-spacing:-.045em;
    margin:0;
}
.split-intro>p,.catalog-title>p,.section-title>p {
    color:var(--muted);
    line-height:1.8;
}
.catalog {
    padding:90px clamp(24px,7vw,110px);
}
.commercial {
    background:#fff;
}
.technical {
    background:var(--ink);
    color:#fff;
}
.catalog-title,.section-title {
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:50px;
    margin-bottom:50px;
}
.catalog-title>p,.section-title>p {
    max-width:430px;
}
.light .label {
    color:var(--y);
}
.light>p {
    color:#a6aeac;
}
.cards {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
}
.cards article {
    background:#fff;
    color:var(--ink);
    border:1px solid #e2e0d9;
    transition:.25s;
}
.cards article:hover {
    transform:translateY(-5px);
    box-shadow:0 18px 35px #0002;
}
.product-top {
    height:280px;
    background:#e8e6e0;
    position:relative;
    display:grid;
    place-items:center;
    overflow:hidden;
}
.product-image-button {
    width:100%;
    height:100%;
    border:0;
    padding:35px;
    background:transparent;
    cursor:zoom-in;
    display:flex;
    align-items:center;
    justify-content:center;
}
.product-image-button img {
    display:block;
    width:100%;
    height:100%;
    max-width:100%;
    max-height:100%;
    object-fit:contain;
    object-position:center;
    transition:transform .25s ease;
}
.product-image-button:hover img {
    transform:scale(1.06);
}
.image-placeholder {
    width:115px;
    height:135px;
    border:2px dashed #aaa79f;
    display:grid;
    place-items:center;
    text-align:center;
    color:#77746d;
    font-size:12px;
    line-height:1.5;
}
.product-top>span {
    position:absolute;
    left:14px;
    top:14px;
    background:#fff;
    padding:7px 9px;
    font-size:9px;
    font-weight:900;
}
.product-top>b {
    position:absolute;
    right:14px;
    top:14px;
    background:var(--ink);
    color:#fff;
    padding:7px 9px;
    font-size:8px;
    text-transform:uppercase;
    letter-spacing:.09em;
}
.can {
    width:105px;
    height:135px;
    background:linear-gradient(135deg,#f7c520 0 50%,#e22127 51%);
    border-radius:5px 5px 11px 11px;
    box-shadow:15px 17px 25px #0003;
    display:grid;
    place-items:center;
    transform:rotate(-3deg);
}
.can:before {
    content:"";
    position:absolute;
    top:-10px;
    width:90px;
    height:17px;
    background:#ddd;
    border-radius:50%;
}
.can i {
    font-style:normal;
    background:#fff;
    color:#d51f25;
    padding:9px;
    font-size:16px;
    font-weight:900;
}
.tech-can {
    background:linear-gradient(135deg,#f1b800 0 42%,#2d3335 43%);
}
.tech-can i {
    color:#222;
}
.cards article>div:last-child {
    padding:21px;
}
.cards small {
    display:block;
    color:#888e8c;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.cards h3 {
    font-size:17px;
    margin:10px 0 18px;
}
.cards a {
    display:inline-flex;
    align-items:center;
    gap:9px;
    font-size:10px;
    font-weight:800;
    color:#a87900;
}
.cards a svg {
    width:16px;
}
.center {
    text-align:center;
    margin-top:38px;
}
.section {
    padding:95px clamp(24px,8vw,130px);
}
.videos {
    background:#fff;
}
.video-grid {
    display:grid;
    grid-template-columns:1.35fr .65fr;
    grid-template-rows:220px 220px;
    gap:15px;
}
.video {
    border:0;
    padding:0;
    position:relative;
    overflow:hidden;
    color:#fff;
    text-align:left;
    cursor:pointer;
}
.main-video {
    grid-row:1/3;
}
.video-bg {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:.4s;
}
.video:hover .video-bg {
    transform:scale(1.04);
}
.video-bg:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(transparent 25%,#080c0ddd);
}
.waterproof {
    background:linear-gradient(135deg,#7b8788,#1d292b);
}
.waterproof:before {
    content:"";
    position:absolute;
    left:18%;
    bottom:-10%;
    width:60%;
    height:90%;
    background:repeating-linear-gradient(90deg,#616c6c 0 55px,#313a3b 56px 62px);
    transform:skew(-8deg);
}
.injection {
    background:linear-gradient(135deg,#bf9410,#342e1d);
}
.anchor {
    background:repeating-linear-gradient(60deg,#717878 0 12px,#303738 12px 28px);
}
.video>span {
    position:absolute;
    z-index:2;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    width:58px;
    height:58px;
    border:1px solid #fff8;
    border-radius:50%;
    display:grid;
    place-items:center;
}
.video>span svg {
    width:32px;
    stroke:none;
}
.video>div:last-child {
    position:absolute;
    z-index:2;
    left:25px;
    bottom:24px;
}
.video small {
    display:block;
    color:var(--y);
    font-size:9px;
    letter-spacing:.14em;
    margin-bottom:7px;
}
.video strong {
    font-size:18px;
}
.partners {
    background:#fff;
    padding:1px clamp(24px,6vw,95px) 50px;
    text-align:center;
}
.partners .partners-list {
    display:grid;
    grid-template-columns:repeat(2,minmax(240px,320px));
    justify-content:center;
    gap:80px;
    align-items:center;
    background:#fff !important;
}
.partner-item {
    min-height:190px;
    display:grid;
    place-items:center;
    background:#fff;
}
.partner-item img {
    width:100%;
    max-width:300px;
    height:180px;
    object-fit:contain;
    display:block;
}
.product-modal {
    position:fixed;
    inset:0;
    z-index:100;
    display:none;
    place-items:center;
    padding:24px;
}
.product-modal.open {
    display:grid;
}
.product-modal-backdrop {
    position:absolute;
    inset:0;
    background:rgba(9,14,15,.78);
    backdrop-filter:blur(4px);
}
.product-modal-dialog {
    position:relative;
    z-index:1;
    width:min(920px,100%);
    max-height:90vh;
    overflow:auto;
    background:#fff;
    display:grid;
    grid-template-columns:1fr 1fr;
    box-shadow:0 28px 80px rgba(0,0,0,.38);
    animation:modalProductEntrance .42s cubic-bezier(.2,.8,.2,1);
}
.product-modal-image {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    min-height:480px;
    padding:45px;
    background:#eceae4;
    display:grid;
    place-items:center;
    perspective:1100px;
}
.product-modal-image::before {
    content:"";
    position:absolute;
    inset:8% 10%;
    z-index:-1;
    border-radius:50%;
    background:radial-gradient(circle,rgba(255,255,255,.9) 0,rgba(255,255,255,.35) 38%,transparent 72%);
    transform:translate3d(var(--light-x,0),var(--light-y,0),0);
    transition:transform .25s ease-out;
    pointer-events:none;
}
.product-modal-image::after {
    content:"";
    position:absolute;
    left:29%;
    right:29%;
    bottom:10%;
    height:30px;
    z-index:-1;
    border-radius:50%;
    background:rgba(0,0,0,.25);
    filter:blur(15px);
    transform:scaleX(var(--shadow-scale,1));
    transition:transform .25s ease-out,opacity .25s ease-out;
    pointer-events:none;
}
.product-modal-image img {
    width:100%;
    height:100%;
    max-height:520px;
    object-fit:contain;
    transform-style:preserve-3d;
    transform:rotateX(var(--rotate-x,0deg)) rotateY(var(--rotate-y,0deg)) translateY(var(--lift,0px)) scale(var(--product-scale,1));
    filter:drop-shadow(0 24px 15px rgba(0,0,0,.24));
    transition:transform .18s ease-out,filter .25s ease-out;
    will-change:transform;
}
.product-modal-image:hover {
    --lift:-9px;
    --product-scale:1.055;
    --shadow-scale:.86;
}
.product-modal-image:hover img {
    filter:drop-shadow(0 32px 20px rgba(0,0,0,.3));
}
.product-modal.open .product-modal-image img {
    animation:productImageEntrance .75s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes modalProductEntrance {
    from {opacity:0;transform:translateY(22px) scale(.97)}
    to {opacity:1;transform:translateY(0) scale(1)}
}
@keyframes productImageEntrance {
    from {opacity:0;transform:translateY(42px) rotateY(-16deg) scale(.84)}
    to {opacity:1;transform:translateY(0) rotateY(0) scale(1)}
}
.product-modal-content {
    padding:58px 48px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.product-modal-content h2 {
    font-size:36px;
    line-height:1.08;
    margin-bottom:20px;
}
.product-modal-content>p:not(.label) {
    color:var(--muted);
    line-height:1.7;
    white-space:pre-line;
    margin-bottom:0;
}
.product-modal-actions {
    display:grid;
    gap:12px;
    margin-top:30px;
}
.product-document-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}
.product-action {
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:11px;
    padding:13px 16px;
    border:1px solid var(--ink);
    color:var(--ink);
    background:#fff;
    font-size:12px;
    font-weight:900;
    text-align:center;
    text-decoration:none;
    transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.product-action:hover {
    transform:translateY(-2px);
    box-shadow:0 9px 22px rgba(0,0,0,.12);
}
.product-action-primary {
    background:var(--y);
    border-color:var(--y);
}
.product-action-icon {
    width:23px;
    height:23px;
    flex:0 0 23px;
}
.product-action-icon svg {
    display:block;
    width:100%;
    height:100%;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.product-action-primary .product-action-icon svg path:first-child {
    fill:none;
}
.product-action.is-disabled {
    color:#969b99;
    border-color:#d7d9d8;
    background:#f5f5f3;
    cursor:not-allowed;
    pointer-events:none;
    box-shadow:none;
}
.product-modal-close {
    position:absolute;
    z-index:2;
    right:15px;
    top:12px;
    width:42px;
    height:42px;
    border:0;
    background:var(--ink);
    color:#fff;
    font-size:28px;
    cursor:pointer;
}
body.modal-open {
    overflow:hidden;
}
@media (hover:none) {
    .product-modal.open .product-modal-image img {
        animation:productImageEntrance .75s cubic-bezier(.2,.8,.2,1) both,productImageFloat 3.8s ease-in-out .75s infinite;
    }
    @keyframes productImageFloat {
        0%,100% {transform:translateY(0) rotateY(-3deg)}
        50% {transform:translateY(-10px) rotateY(3deg)}
    }
}
@media (prefers-reduced-motion:reduce) {
    .product-modal-dialog,
    .product-modal-image img {
        animation:none !important;
        transition:none !important;
    }
}
.video-modal {
    position:fixed;
    inset:0;
    z-index:110;
    display:none;
    place-items:center;
    padding:24px;
}
.video-modal.open {
    display:grid;
}
.video-modal-backdrop {
    position:absolute;
    inset:0;
    background:rgba(4,8,9,.88);
    backdrop-filter:blur(5px);
}
.video-modal-dialog {
    position:relative;
    z-index:1;
    width:min(1000px,100%);
    background:#000;
    box-shadow:0 30px 90px rgba(0,0,0,.55);
}
.video-player {
    position:relative;
    width:100%;
    aspect-ratio:16/9;
}
.video-player iframe {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border:0;
}
.video-modal-close {
    position:absolute;
    right:0;
    top:-50px;
    width:44px;
    height:44px;
    border:1px solid rgba(255,255,255,.45);
    background:#fff;
    color:var(--ink);
    font-size:29px;
    cursor:pointer;
    z-index:2;
}
.partners>p {
    font-size:9px;
    font-weight:900;
    letter-spacing:.2em;
    margin-bottom:25px;
}
.partners>div {
    display:grid;
    grid-template-columns:repeat(2,minmax(240px,320px));
    justify-content:center;
    align-items:center;
    gap:80px;
    background:#fff;
}
.partners span {
    height:80px;
    background:#FFFFFF;
    display:grid;
    place-items:center;
    font-size:14px;
    font-weight:900;
    letter-spacing:.07em;
    color:#594500;
}
.partners span.sika {
    background:#e51e2a;
    color:#fff;
    font-size:24px;
    font-style:italic;
}
.partners>small {
    display:block;
    margin-top:18px;
    color:#745a00;
    font-size:9px;
}
.location {
    display:grid;
    grid-template-columns:.82fr 1.18fr;
    background:#e9e6df;
}
.location-copy {
    padding:90px clamp(28px,7vw,105px);
}
.location-copy>p:not(.label) {
    color:var(--muted);
    line-height:1.8;
    margin:27px 0;
}
.location dl {
    display:flex;
    gap:45px;
    margin:32px 0;
}
.location dt {
    font-size:8px;
    letter-spacing:.14em;
    color:#8b8f8d;
    font-weight:800;
    margin-bottom:7px;
}
.location dd {
    margin:0;
    font-size:12px;
    line-height:1.6;
    font-weight:700;
}
.map {
    min-height:560px;
    position:relative;
}
.map iframe {
    width:100%;
    height:100%;
    border:0;
    filter:grayscale(1);
}
.map-pin {
    position:absolute;
    left:50%;
    top:48%;
    transform:translate(-50%,-50%);
    background:#fff;
    padding:11px 16px;
    display:flex;
    align-items:center;
    gap:10px;
    box-shadow:0 10px 30px #0003;
}
.map-pin img {
    width:45px;
    height:45px;
    object-fit:contain;
}
.map-pin b,.map-pin small {
    display:block;
}
.map-pin b {
    font-size:11px;
}
.map-pin small {
    font-size:8px;
    color:#777;
    margin-top:3px;
}

/* =========================================================
   LOCALIZADOR DE SUCURSALES — MAPA DEL ECUADOR
   ========================================================= */
.branch-locator{
    display:grid;
    grid-template-columns:minmax(360px,34%) minmax(0,66%);
    min-height:clamp(650px,52vw,850px);
    padding:0;
    background:#f3f1ec;
    overflow:hidden;
}
.branch-sidebar{
    position:relative;
    z-index:6;
    padding:clamp(62px,6vw,105px) clamp(34px,4vw,76px);
    background:linear-gradient(135deg,#f8f6f1 0%,#efede7 100%);
    box-shadow:18px 0 45px rgba(31,40,42,.08);
}
.branch-heading{display:block;margin:0 0 34px}
.branch-heading h2{
    max-width:520px;
    margin:28px 0 28px;
    font-size:clamp(48px,4.7vw,78px);
    line-height:.92;
    letter-spacing:-.058em;
}
.branch-intro{max-width:470px;margin:0;color:#647073;font-size:clamp(14px,1.05vw,18px);line-height:1.65}
.branch-list{display:grid;grid-template-columns:1fr;gap:12px;margin:0}
.branch-option{
    width:100%;
    min-height:68px;
    padding:0 24px;
    border:1px solid #d4d0c7;
    border-radius:7px;
    background:rgba(255,255,255,.9);
    color:#171c1e;
    display:grid;
    grid-template-columns:22px 1fr 14px;
    align-items:center;
    gap:15px;
    text-align:left;
    font:inherit;
    font-size:14px;
    font-weight:850;
    cursor:pointer;
    transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
.branch-option b{font-size:26px;font-weight:400;line-height:1}
.branch-option:hover{transform:translateX(5px);border-color:#b6afa2}
.branch-option.is-active{border-color:var(--yellow);background:var(--yellow);box-shadow:0 14px 30px rgba(197,145,0,.2)}
.branch-option-pin{width:16px;height:21px;border:2px solid currentColor;border-radius:50% 50% 50% 0;transform:rotate(-45deg);position:relative}
.branch-option-pin::after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:currentColor;left:4px;top:5px}
.google-map-panel{
    position:relative;
    min-width:0;
    min-height:100%;
    overflow:hidden;
    background:radial-gradient(circle at 42% 47%,#eef9fc 0%,#cfeaf4 43%,#dfe5e4 78%,#cfd6d4 100%);
}
.google-map-panel::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(124,207,238,.3),transparent 45%,rgba(170,177,174,.18));pointer-events:none}
.map-border-label{position:absolute;z-index:2;color:#627277;font-size:11px;font-weight:900;letter-spacing:.34em;line-height:1.8;text-transform:uppercase}
.map-ocean{left:6%;top:18%;color:#6c9bb0}.map-colombia{right:9%;top:8%}.map-peru{right:12%;bottom:11%}
.custom-map{position:absolute;z-index:3;width:min(73%,760px);aspect-ratio:1/1;left:48%;top:50%;transform:translate(-50%,-50%)}
.custom-map-image{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;filter:drop-shadow(0 24px 25px rgba(21,36,43,.23));user-select:none;-webkit-user-drag:none}
.map-point{position:absolute;z-index:4;padding:0;border:0;background:transparent;color:#111;display:flex;flex-direction:column;align-items:center;gap:5px;font:inherit;font-weight:900;cursor:pointer;transform:translate(-50%,-50%)}
.map-point>span{width:31px;height:31px;border:5px solid #fff;border-radius:50% 50% 50% 0;background:var(--yellow);box-shadow:0 5px 14px rgba(0,0,0,.3);transform:rotate(-45deg);transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.map-point>span::after{content:"";position:absolute;width:9px;height:9px;left:6px;top:6px;border-radius:50%;background:#111}
.map-point>small{padding:2px 6px;border-radius:4px;background:rgba(255,255,255,.88);box-shadow:0 3px 10px rgba(0,0,0,.12);white-space:nowrap;font-size:10px}
.map-point:hover>span,.map-point.is-active>span{transform:rotate(-45deg) scale(1.2);box-shadow:0 0 0 8px rgba(255,194,26,.3),0 8px 20px rgba(0,0,0,.28)}
.point-manta{left:12%;top:34%}
.point-gye-norte{left:20%;top:50%}
.point-gye-centro{left:20%;top:57%}
.point-cuenca-1{left:30%;top:60%}
.point-cuenca-2{left:39%;top:60%}
.point-ambato{
    left:40%;
    top:50%;
}

.branch-map-card{
    position:absolute;
    z-index:7;
    right:5%;
    top:43%;
    transform:translateY(-50%);
    width:min(440px,45%);
    padding:24px;
    border:1px solid rgba(138,149,146,.3);
    border-radius:12px;
    background:rgba(255,255,255,.97);
    box-shadow:0 24px 55px rgba(25,35,36,.24);
    display:grid;
    grid-template-columns:72px 1fr;
    gap:20px;
    align-items:start;
}
.branch-map-card img{width:68px;height:68px;object-fit:contain;padding-right:17px;border-right:1px solid #ddd}
.branch-map-card h3{margin:0 0 6px;font-size:22px;letter-spacing:-.025em}
.branch-map-card p{margin:0 0 5px;color:#626a68;font-size:13px}
.branch-map-card small{display:block;color:#777f7d;font-size:10px;line-height:1.5}
.branch-map-card a{min-height:42px;margin-top:16px;padding:0 16px;border-radius:5px;background:var(--yellow);color:#111;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;text-align:center}
@media(max-width:1120px){
    .branch-locator{grid-template-columns:minmax(320px,38%) minmax(0,62%)}
    .branch-sidebar{padding:58px 34px}
    .branch-heading h2{font-size:50px}
    .custom-map{width:min(82%,620px);left:45%}
    .branch-map-card{right:3%;width:min(360px,49%);padding:19px}
}
@media(max-width:780px){
    .branch-locator{display:block;min-height:0}
    .branch-sidebar{padding:52px 22px 28px}
    .branch-heading{margin-bottom:24px}
    .branch-heading h2{margin:20px 0;font-size:46px}
    .branch-list{grid-template-columns:1fr 1fr;gap:9px}
    .branch-option{min-height:56px;padding:0 15px;font-size:11px}
    .google-map-panel{min-height:690px}
    .custom-map{width:min(94vw,560px);left:50%;top:35%}
    .map-border-label{font-size:8px}
    .map-point>small{font-size:8px}
    .branch-map-card{left:18px;right:18px;top:auto;bottom:18px;transform:none;width:auto;grid-template-columns:58px 1fr;padding:18px}
    .branch-map-card img{width:54px;height:54px;padding-right:12px}
}
@media(max-width:480px){.branch-list{grid-template-columns:1fr}.branch-map-card{grid-template-columns:48px 1fr}.branch-map-card img{width:44px;height:44px}}
.contact {
    background:#fff;
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:90px;
}
.contact>div>p:not(.label) {
    color:var(--muted);
    line-height:1.8;
    margin:25px 0;
}
.wa {
    display:flex;
    gap:13px;
    align-items:center;
    margin-top:32px;
}
.wa>b {
    width:44px;
    height:44px;
    border-radius:50%;
    background:var(--green);
    color:#fff;
    display:grid;
    place-items:center;
    font-size:10px;
}
.wa span {
    font-weight:800;
}
.wa small {
    display:block;
    color:#8b908e;
    font-size:8px;
    letter-spacing:.14em;
    margin-bottom:4px;
}
.contact .contact-form {
    position:relative;
    overflow:hidden;
    padding:clamp(28px,3vw,44px);
    border:1px solid #e0dbd1;
    border-radius:18px;
    background:linear-gradient(145deg,#f7f4ee 0%,#eeebe4 100%);
    box-shadow:0 24px 55px rgba(24,31,33,.12);
}
.contact .contact-form::after {
    position:absolute;
    right:-70px;
    bottom:-90px;
    width:190px;
    height:190px;
    border:28px solid rgba(251,187,18,.2);
    border-radius:50%;
    content:"";
    pointer-events:none;
}
.contact-form-heading {
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:27px;
}
.contact-form-icon {
    display:grid;
    flex:0 0 auto;
    width:46px;
    height:46px;
    place-items:center;
    border-radius:12px;
    color:#fff;
    background:var(--green);
    box-shadow:0 10px 22px rgba(21,155,104,.22);
    font-size:10px;
    font-weight:900;
}
.contact-form-heading h3 {
    margin:0 0 5px;
    font-size:clamp(22px,2vw,29px);
    letter-spacing:-.025em;
}
.contact-form-heading p {
    margin:0;
    color:var(--muted);
    font-size:13px;
}
.contact-fields {
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:17px;
}
.contact .contact-field {
    display:grid;
    gap:8px;
    margin:0;
    font-size:12px;
    font-weight:800;
    letter-spacing:0;
    text-transform:none;
}
.contact-field-wide {
    grid-column:1/-1;
}
.contact .contact-field input,
.contact .contact-field select,
.contact .contact-field textarea {
    display:block;
    width:100%;
    min-height:50px;
    margin:0;
    padding:13px 15px;
    border:1px solid #d8d2c8;
    border-radius:10px;
    outline:0;
    color:#202426;
    background:rgba(255,255,255,.78);
    font:inherit;
    font-size:14px;
    font-weight:400;
    letter-spacing:0;
    text-transform:none;
    transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.contact .contact-field textarea {
    min-height:116px;
    resize:vertical;
}
.contact .contact-field input:focus,
.contact .contact-field select:focus,
.contact .contact-field textarea:focus {
    border-color:#dca800;
    background:#fff;
    box-shadow:0 0 0 4px rgba(251,187,18,.16);
}
.contact-form-actions {
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-top:22px;
}
.contact-privacy {
    max-width:250px;
    margin:0;
    color:var(--muted);
    font-size:11px;
    line-height:1.5;
}
.contact .whatsapp {
    display:inline-flex;
    width:auto;
    min-height:50px;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:0 20px;
    border:0;
    border-radius:10px;
    color:#fff;
    background:var(--green);
    box-shadow:0 12px 25px rgba(21,155,104,.22);
}
.whatsapp-button-icon {
    display:grid;
    width:25px;
    height:25px;
    place-items:center;
    border:1px solid rgba(255,255,255,.55);
    border-radius:50%;
    font-size:7px;
    font-weight:900;
}
.success {
    font-size:11px;
    color:#08723d;
    text-align:center;
    margin:13px 0 0;
}
.site-footer {
    position:relative;
    overflow:hidden;
    background:#0e1416;
    color:#fff;
    padding:0 clamp(24px,7vw,120px);
}
.site-footer::after {
    content:"";
    position:absolute;
    right:-160px;
    bottom:-220px;
    width:470px;
    height:470px;
    border:1px solid rgba(255,190,0,.1);
    border-radius:50%;
    box-shadow:0 0 0 70px rgba(255,190,0,.025),0 0 0 140px rgba(255,190,0,.018);
    pointer-events:none;
}
.footer-cta {
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:35px;
    padding:42px 0;
    border-bottom:1px solid #2d3639;
}
.footer-cta span {
    display:block;
    margin-bottom:8px;
    color:var(--y);
    font-size:9px;
    font-weight:900;
    letter-spacing:.18em;
}
.footer-cta h2 {
    max-width:690px;
    margin:0;
    font-size:clamp(25px,3vw,42px);
    line-height:1.08;
    letter-spacing:-.035em;
}
.footer-cta>a {
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    min-height:58px;
    padding:0 24px;
    background:var(--y);
    color:#111719;
    font-size:11px;
    font-weight:900;
    box-shadow:0 12px 30px rgba(255,190,0,.12);
    transition:transform .2s ease,background .2s ease;
}
.footer-cta>a:hover {
    color:#111719;
    background:#ffd13c;
    transform:translateY(-2px);
}
.footer-cta>a strong {
    font-size:18px;
}
.footer-main {
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:1.35fr .8fr 1.15fr 1fr;
    gap:clamp(35px,5vw,80px);
    padding:58px 0 52px;
}
.footer-logo {
    display:grid;
    place-items:center;
    width:112px;
    height:112px;
    padding:10px;
    background:#f7f5ef;
    border-radius:2px;
}
.footer-logo img {
    width:100%;
    height:100%;
    object-fit:contain;
}
.footer-brand p {
    max-width:280px;
    margin:22px 0 13px;
    color:#aab2b0;
    font-size:13px;
    line-height:1.7;
}
.footer-location {
    color:var(--y);
    font-size:9px;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.footer-column {
    display:flex;
    flex-direction:column;
    gap:14px;
    color:#aab2b0;
    font-size:11px;
}
.footer-column h3 {
    margin:4px 0 12px;
    color:#fff;
    font-size:10px;
    letter-spacing:.16em;
    text-transform:uppercase;
}
.footer-column>a {
    display:flex;
    justify-content:space-between;
    gap:10px;
    padding-bottom:8px;
    border-bottom:1px solid transparent;
    transition:color .2s ease,border-color .2s ease;
}
.footer-column>a:hover {
    color:var(--y);
    border-color:#364043;
}
.footer-column>a span {
    color:var(--y);
}
.footer-contact a {
    display:block;
    color:#fff;
    font-size:12px;
    line-height:1.5;
}
.footer-contact a small {
    display:block;
    color:#717d7a;
    font-size:8px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.footer-contact p {
    margin:2px 0 0;
    line-height:1.6;
}
.footer-hours p {
    display:flex;
    justify-content:space-between;
    gap:14px;
    margin:0;
    padding-bottom:12px;
    border-bottom:1px solid #273033;
}
.footer-hours b {
    color:#fff;
    font-size:10px;
    white-space:nowrap;
}
.footer-status {
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:4px;
    color:#8c9694;
    font-size:9px;
}
.footer-status i {
    width:7px;
    height:7px;
    border-radius:50%;
    background:#19b46b;
    box-shadow:0 0 0 4px rgba(25,180,107,.12);
}
.footer-bottom {
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    padding:22px 0 26px;
    border-top:1px solid #2d3639;
    color:#66716f;
    font-size:9px;
}
.footer-bottom p {
    margin:0;
}
.footer-bottom a {
    color:#aab2b0;
    font-weight:800;
    letter-spacing:.05em;
}
.footer-bottom a:hover {
    color:var(--y);
}
.footer-bottom a span {
    margin-left:7px;
    color:var(--y);
}
.floating {
    position:fixed;
    right:22px;
    bottom:22px;
    width:55px;
    height:55px;
    border-radius:50%;
    background:var(--green);
    color:#fff;
    display:grid;
    place-items:center;
    font-size:11px;
    font-weight:900;
    z-index:40;
    box-shadow:0 8px 25px #0004;
}
@media(max-width:1000px) {
    nav {
        display:none;
        position:absolute;
        top:84px;
        left:0;
        right:0;
        background:#fff;
        flex-direction:column;
        align-items:stretch;
        padding:25px;
    }
    nav.open {
        display:flex;
    }
    .menu {
        display:block;
    }
    .hero {
        grid-template-columns:1fr;
    }
    .hero-mark {
        position:absolute;
        right:-120px;
        opacity:.32;
    }
    .hero-copy {
        z-index:3;
    }
    .cards {
        grid-template-columns:repeat(2,1fr);
    }
    .location {
        grid-template-columns:1fr;
    }
    .map {
        min-height:420px;
    }
    .contact {
        gap:45px;
    }
}
@media(max-width:680px) {
    header {
        height:72px;
    }
    .brand img {
        width:46px;
        height:46px;
    }
    .brand {
        font-size:15px;
    }
    nav {
        top:72px;
    }
    .hero {
        min-height:690px;
        padding:75px 24px;
        background-position:65% center;
    }
    .hero h1 {
        font-size:48px;
    }
    .actions {
        flex-direction:column;
    }
    .hero-proof {
        gap:16px;
        justify-content:space-between;
    }
    .hero-proof b {
        font-size:20px;
    }
    .hero-mark {
        right:-270px;
    }
    .split-intro,.contact {
        grid-template-columns:1fr;
        gap:35px;
        padding:70px 24px;
    }
    .catalog,.section {
        padding:70px 24px;
    }
    .catalog-title,.section-title {
        display:block;
    }
    .catalog-title>p,.section-title>p {
        margin-top:24px;
    }
    .cards {
        grid-template-columns:1fr;
    }
    .product-top {
        height:260px;
    }
    .product-image-button {
        padding:30px;
    }
    .video-grid {
        display:block;
    }
    .video {
        width:100%;
        height:230px;
        margin-bottom:13px;
    }
    .main-video {
        height:340px;
    }
    .partners .partners-list {
        grid-template-columns:repeat(2,minmax(0,1fr));
        justify-content:center;
        gap:20px;
    }
    .product-modal-dialog {
        grid-template-columns:1fr;
    }
    .product-modal-image {
        min-height:280px;
        height:38vh;
        padding:30px;
    }
    .product-modal-content {
        padding:38px 25px;
    }
    .product-modal-content h2 {
        font-size:28px;
    }
    .product-document-actions {
        grid-template-columns:1fr;
    }
    .product-action {
        min-height:54px;
    }
    .partners span:last-child {
        grid-column:auto;
    }
    .location-copy {
        padding:70px 24px;
    }
    .location dl {
        display:block;
    }
    .location dl>div {
        margin-bottom:20px;
    }
    .contact .contact-form {
        padding:25px 20px;
    }
    .contact-fields {
        grid-template-columns:1fr;
    }
    .contact-field-wide {
        grid-column:auto;
    }
    .contact-form-actions {
        align-items:stretch;
        flex-direction:column-reverse;
    }
    .contact-privacy {
        max-width:none;
    }
    .contact .whatsapp {
        width:100%;
    }
    .footer-cta {
        align-items:flex-start;
        flex-direction:column;
    }
    .footer-main {
        grid-template-columns:1fr 1fr;
    }
    .footer-brand {
        grid-column:1/-1;
    }
    .floating {
        right:15px;
        bottom:15px;
    }
}
@media(max-width:620px) {
    .site-footer {
        padding:0 22px;
    }
    .footer-cta {
        padding:35px 0;
    }
    .footer-cta>a {
        width:100%;
    }
    .footer-main {
        grid-template-columns:1fr;
        gap:38px;
        padding:45px 0 40px;
    }
    .footer-brand {
        grid-column:auto;
    }
    .footer-bottom {
        align-items:flex-start;
        flex-direction:column;
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
    * {
        transition:none!important;
    }
}
/* Logo principal preparado para fondos oscuros */
.hero-mark .ring {
    display:none;
}
.hero-mark .logo-hero-blanco {
    width:min(520px,95%);
    height:auto;
    object-fit:contain;
    filter:drop-shadow(0 22px 24px rgba(0,0,0,.35));
}

/* =========================================================
   DISTRIBUIDORES AUTORIZADOS: LOGOS CENTRADOS Y MÁS GRANDES
   Estas reglas están al final para evitar que otras las anulen.
   ========================================================= */
.partners > div,
.partners .partners-list {
    width:100% !important;
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    flex-wrap:wrap !important;
    gap:70px !important;
    background:#fff !important;
}

.partners > div > *,
.partners .partner-item {
    width:320px !important;
    min-height:210px !important;
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    background:#fff !important;
}

.partners img,
.partners .partner-item img {
    width:300px !important;
    max-width:100% !important;
    height:200px !important;
    object-fit:contain !important;
    display:block !important;
}

@media(max-width:680px) {
    .partners > div,
    .partners .partners-list {
        flex-direction:column !important;
        gap:25px !important;
    }

    .partners > div > *,
    .partners .partner-item {
        width:100% !important;
        min-height:160px !important;
    }

    .partners img,
    .partners .partner-item img {
        width:min(280px,85vw) !important;
        height:170px !important;
    }
}
