*{box-sizing:border-box}
body{margin:0;background:#FAF8F4;color:#15171E;font-family:'Instrument Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:#4B3CF0;text-decoration:none}
a:hover{color:#2E22B8}
input,select,button{font-family:inherit}
[hidden]{display:none!important}
.page{min-height:100vh;display:flex;flex-direction:column}
.wrap{max-width:1200px;margin:0 auto;padding-left:clamp(16px,4vw,24px);padding-right:clamp(16px,4vw,24px)}
.display{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800}
.logo-24{background:#4B3CF0;color:#fff;border-radius:8px;padding:0 6px;margin-left:2px}

/* Header */
.header{position:sticky;top:0;z-index:10;background:rgba(250,248,244,.92);backdrop-filter:blur(8px);border-bottom:1px solid #E4E0D8}
.header .wrap{padding-top:12px;padding-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:2px;color:#15171E;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:24px;letter-spacing:-.03em}
.brand:hover{color:#15171E}
.nav{display:flex;align-items:center;gap:24px;font-size:15px;font-weight:500;flex-wrap:wrap;justify-content:flex-end}
.nav a{color:#15171E}
.nav .btn-nav{background:#15171E;color:#fff;padding:10px 18px;border-radius:999px}
@media (max-width:719px){.nav .desk{display:none}}

/* Hero */
main{flex:1}
.hero{padding-top:clamp(32px,6vw,72px);padding-bottom:clamp(24px,4vw,40px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:clamp(32px,5vw,56px);align-items:start}
.hero-copy{padding-top:clamp(0px,2vw,24px);display:flex;flex-direction:column;gap:clamp(16px,3vw,24px)}
.hero h1{margin:0;font-family:'Montserrat',sans-serif;font-weight:700;font-size:clamp(40px,6vw,76px);line-height:1.02;letter-spacing:-.03em;text-wrap:balance}
.lead{margin:0;font-size:clamp(17px,2vw,20px);line-height:1.5;color:#5D6070;max-width:480px;text-wrap:pretty}
.steps{display:flex;flex-direction:column;gap:12px;margin-top:8px;font-size:16px}
.steps div{display:flex;gap:12px;align-items:center}
.steps span{width:28px;height:28px;border-radius:50%;background:#15171E;color:#fff;display:grid;place-items:center;font-size:13px;font-weight:600}

/* Cotizador */
.card{background:#fff;border:1px solid #E4E0D8;border-radius:clamp(20px,4vw,28px);padding:clamp(20px,5vw,32px);box-shadow:0 24px 60px -30px rgba(21,23,30,.25);display:flex;flex-direction:column;gap:22px;min-height:540px;min-width:0}
.card{scroll-margin-top:calc(64px + clamp(32px,6vw,72px))}
@media (max-width:719px){.card{min-height:0}}
.card-form{display:flex;flex-direction:column;gap:22px;flex:1}
.progress-head{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;color:#5D6070}
.progress-head strong{font-weight:600;color:#15171E}
.progress{height:6px;background:#F0EDE6;border-radius:999px;overflow:hidden;margin-top:12px}
.progress div{height:100%;width:20%;background:#4B3CF0;border-radius:999px;transition:width .3s}
.step{display:flex;flex-direction:column;gap:18px}
.step h2{margin:0;font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(24px,5vw,30px);letter-spacing:-.02em}
.field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;min-width:0}
.field small{font-weight:400;color:#5D6070;font-size:13px;margin-top:-4px}
.input{height:52px;border:1.5px solid #E4E0D8;border-radius:14px;padding:0 14px;font-size:16px;color:#15171E;background:#fff;width:100%}
.input:focus{outline:none;border-color:#4B3CF0}
.input.invalid{border-color:#B3261E}
.field .err{margin-top:0;font-weight:500;color:#B3261E}
.row-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px}
.group{display:flex;flex-direction:column;gap:10px}
.group > span{font-size:14px;font-weight:600}
.chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{height:48px;padding:0 22px;border-radius:999px;border:1.5px solid #E4E0D8;background:#fff;color:#15171E;font-size:16px;font-weight:500;cursor:pointer}
.chip.sm{height:44px;padding:0 18px;font-size:15px}
.chip.on{background:#15171E;color:#fff;border-color:#15171E}
.cob{text-align:left;padding:14px 18px;border-radius:16px;border:1.5px solid #E4E0D8;background:#fff;color:#15171E;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.cob b{font-size:16px;font-weight:600}
.cob span{font-size:14px;color:#5D6070}
.cob.on{border-color:#4B3CF0;background:#ECEAFE}
.actions{margin-top:auto;display:flex;gap:12px;align-items:center}
.btn{height:56px;padding:0 22px;border-radius:999px;font-size:17px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px}
.btn-ghost{border:1.5px solid #E4E0D8;background:#fff;color:#15171E;font-size:16px}
.btn-primary{flex:1;border:none;background:#4B3CF0;color:#fff}
.btn-primary:disabled{background:#C9C5DA;cursor:not-allowed}
.btn-wa{flex:1;background:#128C4A;color:#fff}
.btn-wa:hover{color:#fff}
.btn-wa.off{background:#B9CDBF;pointer-events:none}
.done{flex:1;display:flex;flex-direction:column;justify-content:center;gap:18px;text-align:center;align-items:center}
.done-icon{width:72px;height:72px;border-radius:50%;background:#E3F5EA;display:grid;place-items:center}
.done h2{margin:0;font-family:'Plus Jakarta Sans',sans-serif;font-size:32px;letter-spacing:-.02em}
.done p{margin:0;font-size:17px;line-height:1.5;color:#5D6070;max-width:340px}
.done-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:8px}
.done-actions .btn{height:52px;font-size:16px}

/* Escenas animadas */
.scene-hero{height:clamp(150px,16vw,210px);overflow:hidden}
.scene-night{height:clamp(200px,26vw,380px);margin-top:clamp(-8px,1vw,16px)}
.scene-hero svg,.scene-night svg{width:100%;height:100%;display:block}
@keyframes ts-drive{from{transform:translateX(-240px)}to{transform:translateX(1680px)}}
@keyframes ts-drift{from{transform:translateX(-140px)}to{transform:translateX(1580px)}}
@keyframes ts-spin{to{transform:rotate(360deg)}}
@keyframes ts-scroll{from{transform:translateX(0)}to{transform:translateX(-1440px)}}
@keyframes ts-dash{to{stroke-dashoffset:56}}
@keyframes ts-bob{from{transform:translateY(0)}to{transform:translateY(-1.5px)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}

/* Secciones */
.section{border-top:1px solid #E4E0D8}
.section-inner{padding-top:clamp(56px,8vw,88px);padding-bottom:clamp(56px,8vw,88px);display:flex;flex-direction:column;gap:clamp(28px,4vw,40px)}
.h2{margin:0;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:clamp(34px,4vw,48px);letter-spacing:-.03em;line-height:1.05}
.section-head{display:flex;flex-direction:column;gap:12px;max-width:640px}
.section-head p{margin:0;font-size:18px;line-height:1.5;color:#5D6070}
#aseguradoras{background:#fff}
.logos{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.logo-box{flex:0 1 170px;min-width:140px;height:clamp(96px,14vw,128px);border:1px solid #E4E0D8;border-radius:18px;display:flex;align-items:center;justify-content:center;background:#fff;padding:18px 20px}
.logo-box img{width:auto;height:auto;max-width:100%;object-fit:contain;display:block}

/* FAQ */
.faq-inner{max-width:880px;gap:clamp(16px,3vw,32px)}
.faq-list{border-top:1px solid #E4E0D8}
.faq-item{border-bottom:1px solid #E4E0D8}
.faq-q{width:100%;background:none;border:none;padding:clamp(18px,3vw,24px) 0;display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:left;cursor:pointer;color:#15171E;font-size:clamp(17px,2.2vw,19px);font-weight:600}
.faq-q i{font-style:normal;font-size:26px;font-weight:400;color:#4B3CF0;width:24px;text-align:center;flex-shrink:0}
.faq-a{margin:0 0 24px;font-size:17px;line-height:1.6;color:#5D6070;max-width:720px;text-wrap:pretty}

/* Cierre */
.closing{background:#FAF8F4;overflow:hidden}
.closing-inner{padding-top:clamp(56px,8vw,96px);display:flex;flex-direction:column;align-items:center;text-align:center;gap:24px}
.closing h2{margin:0;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:clamp(40px,7vw,96px);line-height:.95;letter-spacing:-.04em;text-wrap:balance;color:#15171E}
.closing h2 span{color:#4B3CF0}
.btn-dark{height:56px;padding:0 28px;border-radius:999px;background:#15171E;color:#fff;font-size:17px;font-weight:600;display:flex;align-items:center}
.btn-dark:hover{color:#fff}

/* Footer */
.footer{background:#0E0F14;color:#F4F2EE;margin-top:-1px}
.footer-inner{padding-top:clamp(48px,7vw,72px);padding-bottom:32px;display:flex;flex-direction:column;gap:clamp(36px,5vw,56px)}
.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:clamp(28px,4vw,40px)}
.footer-col{display:flex;flex-direction:column;gap:12px;font-size:15px}
.footer-col b{font-weight:600}
.footer-col a,.footer-col span{color:#A3A6B4}
.footer-col a:hover{color:#fff}
.footer-brand{display:flex;flex-direction:column;gap:14px}
.footer-brand .brand{color:#F4F2EE;font-size:28px}
.footer-brand p{margin:0;font-size:15px;line-height:1.5;color:#A3A6B4;max-width:260px}
.ssn{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:clamp(20px,4vw,32px);align-items:center;padding:clamp(20px,4vw,32px);background:#232D4E;border:1px solid #2F3A60;border-radius:clamp(18px,3vw,24px);color:#fff}
.ssn img{width:100%;max-width:420px;height:auto;display:block}
.ssn-data{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:16px 20px;font-size:14px;line-height:1.5}
.ssn-data div{display:flex;flex-direction:column;gap:2px}
.ssn-data span{color:#B9C0D9}
.ssn-data b,.ssn-data a{font-weight:600;color:#fff}
.legal{display:flex;flex-direction:column;gap:14px;font-size:13px;line-height:1.65;color:#A3A6B4;max-width:960px}
.legal p{margin:0}
.footer-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:24px;border-top:1px solid #2A2C36;font-size:13px;color:#A3A6B4}
.powered{display:flex;align-items:center;gap:6px;color:#8A8D99;font-size:11px;opacity:.8}
.powered:hover{color:#8A8D99;opacity:1}
.powered img{height:10px;width:auto;display:block;opacity:.7}

/* Nosotros / fotos */
.about{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:clamp(32px,5vw,64px);align-items:center}
.about-photo{position:relative;aspect-ratio:4/5;max-height:620px;border-radius:clamp(20px,4vw,28px);overflow:hidden;background:#EFEAE0;display:grid;place-items:center}
.about-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.about-copy{display:flex;flex-direction:column;gap:clamp(16px,3vw,24px)}
.about-points{display:flex;flex-direction:column;gap:18px;margin-top:8px}
.about-point{display:flex;gap:16px;align-items:center}
.about-point b{display:block;font-size:17px;font-weight:600;margin-bottom:2px}
.about-point span{font-size:15px;line-height:1.5;color:#5D6070}
.about-thumb{position:relative;width:72px;height:72px;flex-shrink:0;border-radius:18px;overflow:hidden;background:#EFEAE0}
.about-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* Combobox */
.field > label{cursor:pointer}
.combo{position:relative}
.combo .input{padding-right:42px}
.combo .input:disabled{background:#F7F5F0;color:#A3A6B4;cursor:not-allowed}
.combo-chev{position:absolute;right:16px;top:50%;width:8px;height:8px;border-right:2px solid #5D6070;border-bottom:2px solid #5D6070;transform:translateY(-70%) rotate(45deg);pointer-events:none;transition:transform .15s}
.combo.open .combo-chev{transform:translateY(-30%) rotate(-135deg)}
.combo.open .input{border-color:#4B3CF0;border-bottom-left-radius:0;border-bottom-right-radius:0}
.combo-list{position:absolute;left:0;right:0;top:100%;z-index:20;margin:0;padding:6px;list-style:none;background:#fff;border:1.5px solid #4B3CF0;border-top:1px solid #E4E0D8;border-radius:0 0 14px 14px;box-shadow:0 18px 40px -18px rgba(21,23,30,.3);max-height:248px;overflow-y:auto;font-size:15px;font-weight:400}
.combo-list li{padding:11px 12px;border-radius:10px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;color:#15171E}
.combo-list li mark{background:none;color:#4B3CF0;font-weight:600}
.combo-list li.act{background:#ECEAFE}
.combo-list li.sel::after{content:'';width:6px;height:11px;border-right:2px solid #4B3CF0;border-bottom:2px solid #4B3CF0;transform:rotate(45deg);margin-right:4px;flex-shrink:0}
.combo-list li.free{color:#5D6070}
.combo-list li.free b{color:#15171E;font-weight:600}
.combo-list .empty{padding:12px;color:#5D6070;cursor:default}
.combo-list .head{padding:8px 12px 4px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#A3A6B4;cursor:default}

/* Botón flotante WhatsApp */
.wa-float{position:fixed;right:clamp(16px,3vw,28px);bottom:clamp(16px,3vw,28px);z-index:50;width:60px;height:60px;border-radius:50%;background:#25D366;display:grid;place-items:center;box-shadow:0 10px 28px -8px rgba(18,140,74,.6);transition:transform .15s,box-shadow .15s}
.wa-float:hover{transform:scale(1.07);box-shadow:0 14px 32px -8px rgba(18,140,74,.7)}

/* Página 404 */
.notfound{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px;width:100%;padding-top:clamp(56px,10vw,120px);padding-bottom:clamp(56px,10vw,120px)}
.notfound-code{margin:0;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:18px;color:#4B3CF0}
.notfound h1{margin:0;font-family:'Montserrat',sans-serif;font-weight:700;font-size:clamp(36px,6vw,64px);line-height:1.05;letter-spacing:-.03em;text-wrap:balance}
.notfound-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}

/* Carga: skeletons con brillo mientras llegan el JS y las imágenes */
@keyframes ts-shimmer{from{background-position:150% 0}to{background-position:-50% 0}}
@keyframes ts-fade{from{opacity:0}to{opacity:1}}
.sk,.logo-box.sk{background:linear-gradient(100deg,#EFEAE0 35%,#FAF8F4 50%,#EFEAE0 65%) 0 0/300% 100%;animation:ts-shimmer 1.5s linear infinite}
.sk>img{opacity:0}
.logo-box img,.about-photo img,.about-thumb img{transition:opacity .35s}
.sk-chip{width:92px;border-color:transparent;cursor:default}
.sk-chip:nth-child(even){width:112px}
.sk-row{padding:clamp(18px,3vw,24px) 0}
.sk-line{display:block;height:24px;width:58%;border-radius:8px}
.sk-row:nth-child(even) .sk-line{width:42%}
.scene-hero svg,.scene-night svg{animation:ts-fade .6s ease both}

/* Campo trampa anti-bots (fuera de pantalla) */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
