
/* SOURCE: base-v17.css */
:root{--navy:#06172b;--navy2:#0d3155;--ink:#12243a;--muted:#687587;--paper:#fffdfa;--cream:#fff6ea;--gold:#d79a20;--orange:#ff7600;--red:#ef3b50;--line:#eadfce;--green:#25d366;--shadow:0 22px 60px rgba(6,23,43,.13)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);line-height:1.55}img{display:block;max-width:100%}a{text-decoration:none;color:inherit}.wrap{width:min(1180px,92%);margin:auto}section{padding:88px 0}.eyebrow{font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;font-weight:900;color:#f7b62e}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 20px;border-radius:999px;font-weight:850;border:0;cursor:pointer;background:linear-gradient(135deg,#ffc83f,#ff7600 58%,#ec3448);color:#fff;box-shadow:0 14px 30px rgba(255,112,0,.23)}.btn.alt{background:transparent;border:1px solid rgba(255,255,255,.46);box-shadow:none}.btn.dark{background:var(--navy);box-shadow:none}.btn.outline{background:#fff;color:var(--navy);border:1px solid var(--line);box-shadow:none}
header{position:sticky;top:0;z-index:50;background:rgba(255,253,250,.93);backdrop-filter:blur(15px);border-bottom:1px solid rgba(234,223,206,.8)}.nav{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand img{width:248px;height:72px;object-fit:contain}.menu{display:flex;gap:20px;font-size:.9rem;font-weight:800;color:#435064}.menu a:hover{color:var(--orange)}
.hero{position:relative;min-height:90vh;display:grid;align-items:center;overflow:hidden;background:var(--navy)}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,15,29,.97),rgba(3,15,29,.82) 50%,rgba(3,15,29,.3)),url('/assets/hero-real-2026.webp') center/cover no-repeat}.hero:after{content:"";position:absolute;inset:auto 0 0;height:130px;background:linear-gradient(transparent,var(--paper))}.hero .wrap{position:relative;z-index:2;padding:80px 0 145px}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:50px;align-items:center}.hero h1{font-size:clamp(2.6rem,5.3vw,5.15rem);line-height:.98;color:#fff;letter-spacing:-.045em;margin:12px 0 20px}.hero p{font-size:1.13rem;color:#e9edf2;max-width:680px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.hero-card{padding:14px;border-radius:30px;background:linear-gradient(145deg,rgba(255,255,255,.19),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.22);box-shadow:0 34px 90px rgba(0,0,0,.38)}.hero-card img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:20px}.operator{display:flex;align-items:center;gap:15px;margin-top:28px;color:#fff;font-weight:850}.operator img{width:150px;height:66px;object-fit:contain;background:#fff;border-radius:12px;padding:7px 12px}
.intro{margin-top:-72px;position:relative;z-index:4;padding-top:0}.intro-box,.panel{background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}.intro-box{padding:36px;display:grid;grid-template-columns:1.15fr .85fr;gap:38px;align-items:center}.intro h2,.section-head h2{font-size:clamp(2rem,4vw,3.45rem);line-height:1.06;letter-spacing:-.035em;margin:6px 0 16px}.intro p,.section-head p{color:var(--muted)}.signature{background:linear-gradient(145deg,var(--navy),var(--navy2));color:#fff;padding:28px;border-radius:24px}.signature p{color:#dbe5ef}.section-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:34px}.section-head p{max-width:590px;margin:0}
.promo{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;padding:28px}.promo-visual{border-radius:22px;overflow:hidden;background:#fff;display:grid;place-items:center;padding:18px;position:relative;border:1px solid var(--line)}.promo-visual:before{content:"PROMOCIÓN DEL MES";position:absolute;top:18px;left:18px;background:#fff;color:var(--navy);padding:8px 12px;border-radius:999px;font-size:.72rem;font-weight:900;letter-spacing:.08em}.promo-visual img{width:100%;height:auto;max-height:none;object-fit:contain;border-radius:14px;filter:none}.promo-copy{padding:20px}.promo-copy h2{font-size:clamp(2rem,3.8vw,3.3rem);line-height:1.05;margin:8px 0 15px}.small{font-size:.88rem;color:var(--muted)}
.stations{display:grid;grid-template-columns:repeat(2,1fr);gap:23px}.card{overflow:hidden;border-radius:25px;background:#fff;border:1px solid var(--line);box-shadow:0 15px 40px rgba(16,33,56,.08)}.photo{height:320px;overflow:hidden;position:relative}.photo img{width:100%;height:100%;object-fit:cover;transition:.45s}.card:hover img{transform:scale(1.035)}.card-body{padding:23px}.card h3{font-size:1.42rem;margin:0 0 6px}.card p{color:var(--muted);margin:0 0 15px}.link{font-weight:850;color:#d94c10}.services-section{background:linear-gradient(180deg,#fff7ed,#fffdfa)}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.service{background:#fff;border:1px solid var(--line);border-radius:21px;padding:25px}.service b{display:block;margin:8px 0 4px}.service span{color:var(--muted)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:26px}.dark-panel{background:linear-gradient(145deg,var(--navy),var(--navy2));color:#fff;padding:38px;border-radius:28px}.dark-panel p{color:#d8e1ec}.features{display:grid;grid-template-columns:1fr 1fr;gap:13px}.feature{padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff7ed}.feature b{display:block;font-size:1.05rem}.feature span{color:var(--muted);font-size:.91rem}
.form-panel{padding:34px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}label{font-size:.88rem;font-weight:800}input,select,textarea{width:100%;padding:13px 14px;border:1px solid #d9d4cb;border-radius:12px;background:#fff;font:inherit;color:var(--ink)}textarea{min-height:125px;resize:vertical}.check{display:flex;gap:10px;align-items:flex-start;font-size:.84rem;color:var(--muted)}.check input{width:auto;margin-top:4px}.legal-note{font-size:.8rem;color:var(--muted);background:#fff7ed;border:1px solid var(--line);padding:13px;border-radius:12px}.contact-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:25px}.contact-card{padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff}.contact-card b{display:block}.contact-card span{font-size:.9rem;color:var(--muted)}
.social{display:flex;gap:14px;flex-wrap:wrap}.social a{display:flex;align-items:center;gap:9px;padding:13px 17px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:850}.cta{background:linear-gradient(135deg,#ffe4a2,#ff922a 55%,#ef4553);border-radius:29px;padding:39px;display:flex;justify-content:space-between;align-items:center;gap:25px}.cta h2{margin:0 0 7px;font-size:clamp(1.8rem,3vw,2.65rem)}
footer{background:#06172b;color:#c9d3df;padding:42px 0 95px}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:28px}.footer-grid img{width:245px;background:#fff;border-radius:15px;padding:7px}.footer-grid h3{color:#fff;margin-top:0}.footer-grid a{display:block;margin:7px 0}.copyright{border-top:1px solid rgba(255,255,255,.13);margin-top:28px;padding-top:20px;font-size:.86rem}.floatbar{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;gap:8px}.floatbar a{padding:12px 15px;border-radius:999px;font-weight:900;box-shadow:0 12px 30px rgba(0,0,0,.22)}.wa{background:var(--green);color:#082a16}.mail{background:#fff;color:var(--navy)}
.cookie{position:fixed;left:18px;right:18px;bottom:18px;z-index:80;max-width:760px;margin:auto;padding:17px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);display:none;align-items:center;justify-content:space-between;gap:16px}.cookie.show{display:flex}.cookie p{margin:0;font-size:.87rem;color:var(--muted)}

.menu-toggle{display:none;border:0;background:transparent;font-size:1.7rem;color:var(--navy);cursor:pointer}.btn.compact{padding:10px 15px;font-size:.88rem}.station-meta{display:grid;gap:5px;margin:12px 0 14px;padding:14px;border-radius:15px;background:#fff7ed}.station-meta span{font-size:.86rem;color:var(--muted)}.station-meta strong{font-size:1.04rem}.station-meta a{font-weight:850;color:var(--navy)}.card-actions{display:flex;gap:10px;flex-wrap:wrap}.toggle-card{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:27px 30px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 15px 40px rgba(16,33,56,.07)}.toggle-card b{display:block;font-size:1.2rem}.toggle-card span{color:var(--muted)}.collapsible{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .42s ease,opacity .3s ease,margin .42s ease;margin-top:0}.collapsible.open{grid-template-rows:1fr;opacity:1;margin-top:20px}.collapsible>form{overflow:hidden}.contact-toggle{text-align:center;margin:4px 0 20px}.reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}.reveal.visible{opacity:1;transform:none}.call{background:#fff;color:var(--navy)}.location{background:var(--navy);color:#fff}.floatbar span{font-size:1rem}
@media(max-width:980px){.menu-toggle{display:block}.menu{display:none;position:absolute;top:88px;left:4%;right:4%;padding:16px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);flex-direction:column;gap:5px}.menu.open{display:flex}.menu a{padding:10px 12px;border-radius:10px}.menu a:hover{background:#fff7ed}.hero-grid,.intro-box,.promo,.split{grid-template-columns:1fr}.services{grid-template-columns:1fr 1fr}.contact-cards{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.hero-card{max-width:520px}}
@media(max-width:650px){section{padding:68px 0}.nav-wa{display:none}.brand img{width:205px}.hero .wrap{padding:65px 0 125px}.hero h1{font-size:2.55rem}.stations,.services,.features,.form-grid,.contact-cards,.footer-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.photo{height:255px}.section-head,.cta,.cookie{align-items:flex-start;flex-direction:column}.form-panel{padding:23px}.promo{padding:18px}.promo-visual{min-height:330px}.toggle-card{align-items:flex-start;flex-direction:column;padding:23px}.floatbar{left:8px;right:8px;bottom:8px;justify-content:stretch;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);padding:6px;border-radius:18px;box-shadow:0 12px 30px rgba(0,0,0,.18)}.floatbar a{flex:1;padding:10px 7px;font-size:.76rem;text-align:center;box-shadow:none}.floatbar span{display:block;font-size:1.1rem}}

/* CSV 4.0 Premium interactions */
.btn,.contact-card,.social a,.card-actions a{position:relative;isolation:isolate;overflow:hidden;transform:translateZ(0);transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}
.btn:before,.contact-card:before,.social a:before,.card-actions a:before{content:"";position:absolute;z-index:-1;inset:-60% auto -60% -45%;width:30%;transform:skewX(-20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transition:left .65s ease}
.btn:hover:before,.contact-card:hover:before,.social a:hover:before,.card-actions a:hover:before{left:120%}
.btn:hover,.contact-card:hover,.social a:hover,.card-actions a:hover{transform:translateY(-3px);filter:saturate(1.08);box-shadow:0 18px 34px rgba(6,23,43,.18)}
.btn:active,.contact-card:active,.social a:active,.card-actions a:active{transform:translateY(1px) scale(.985)}
.contact-card{background:linear-gradient(145deg,#fff,#f4f7fa);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 12px 28px rgba(6,23,43,.08)}
.floatbar{align-items:flex-end}.floatbar .call,.floatbar .location{display:none}
.wa-premium{width:68px;height:68px;padding:0!important;border-radius:50%!important;display:grid!important;place-items:center;background:radial-gradient(circle at 30% 22%,#6aff9d 0,#28d869 38%,#0aaa49 72%,#087a38 100%)!important;color:#fff!important;border:1px solid rgba(255,255,255,.7);box-shadow:inset 0 2px 3px rgba(255,255,255,.65),inset 0 -8px 14px rgba(0,82,35,.3),0 13px 28px rgba(4,83,36,.38)!important;animation:waPulse 4s ease-in-out infinite}
.wa-premium svg{width:36px;height:36px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.18))}.wa-premium:after{content:"";position:absolute;inset:7px;border-radius:50%;border:1px solid rgba(255,255,255,.38);pointer-events:none}
.wa-bubble{position:absolute;right:0;bottom:82px;width:min(290px,calc(100vw - 32px));padding:14px 42px 14px 16px;border-radius:18px;background:linear-gradient(145deg,#fff,#eef5f0);color:var(--navy);font-size:.9rem;font-weight:750;line-height:1.35;border:1px solid rgba(37,211,102,.35);box-shadow:0 18px 46px rgba(6,23,43,.2);opacity:0;transform:translateY(10px) scale(.96);pointer-events:none;transition:.35s ease}
.wa-bubble.show{opacity:1;transform:none;pointer-events:auto}.wa-bubble:after{content:"";position:absolute;right:24px;bottom:-8px;width:16px;height:16px;background:#eef5f0;transform:rotate(45deg);border-right:1px solid rgba(37,211,102,.35);border-bottom:1px solid rgba(37,211,102,.35)}
.wa-close{position:absolute;right:10px;top:8px;border:0;background:transparent;color:#64766d;font-size:1.2rem;cursor:pointer}.wa-bubble b{display:block;color:#087a38;margin-bottom:2px}
@keyframes waPulse{0%,72%,100%{transform:scale(1)}76%{transform:scale(1.08) rotate(-2deg)}80%{transform:scale(1.03) rotate(2deg)}84%{transform:scale(1.08) rotate(-1deg)}88%{transform:scale(1)}}
.hero-card{position:relative;overflow:hidden}.hero-card:after{content:"";position:absolute;inset:-80% -40%;background:linear-gradient(110deg,transparent 42%,rgba(255,255,255,.24) 50%,transparent 58%);transform:translateX(-75%) rotate(8deg);animation:heroShine 7s ease-in-out infinite;pointer-events:none}@keyframes heroShine{0%,55%{transform:translateX(-75%) rotate(8deg)}75%,100%{transform:translateX(75%) rotate(8deg)}}
.form-status{display:none;margin:0 0 16px;padding:13px 15px;border-radius:13px;font-weight:750}.form-status.info{display:block;background:#eef6ff;border:1px solid #bad7f5;color:#133e68}.form-status.error{display:block;background:#fff0f1;border:1px solid #f1bbc0;color:#8e1f2b}
@media(max-width:640px){.wa-premium{width:62px;height:62px}.floatbar{right:14px;bottom:14px}.wa-bubble{bottom:76px}.contact-card{min-height:92px}}
@media(prefers-reduced-motion:reduce){.wa-premium,.hero-card:after{animation:none!important}.btn,.contact-card,.social a,.card-actions a{transition:none}}

/* CSV 4.1: WhatsApp circular mobile + unread welcome */
.floatbar{width:auto!important;left:auto!important;background:transparent!important;padding:0!important;box-shadow:none!important;backdrop-filter:none!important;overflow:visible!important}
.floatbar .wa-premium{position:relative;flex:0 0 58px!important;width:58px!important;height:58px!important;min-width:58px!important;max-width:58px!important;min-height:58px!important;max-height:58px!important;aspect-ratio:1/1!important;padding:0!important;border-radius:999px!important;line-height:1!important}
.wa-unread{position:absolute;z-index:4;top:-5px;right:-5px;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#e32636;color:#fff;font:900 12px/1 Arial,sans-serif;border:3px solid #fff;box-shadow:0 5px 13px rgba(168,0,16,.38);opacity:0;transform:scale(.2);pointer-events:none}
.wa-unread.show{opacity:1;transform:scale(1);animation:badgePop .5s cubic-bezier(.2,.9,.25,1.35),badgeAttention 3.2s 1.2s ease-in-out 2}
@keyframes badgePop{0%{transform:scale(.2)}100%{transform:scale(1)}}
@keyframes badgeAttention{0%,78%,100%{transform:scale(1)}84%{transform:scale(1.18)}90%{transform:scale(1)}}
.wa-bubble{width:min(315px,calc(100vw - 28px));padding:17px 44px 16px 17px}
.wa-bubble p{margin:4px 0 13px;font-weight:650;color:#425368}
.wa-bubble .wa-open{display:inline-flex;align-items:center;justify-content:center;padding:10px 15px;border-radius:999px;background:linear-gradient(145deg,#34e477,#10a94d);color:#fff;font-weight:900;box-shadow:inset 0 1px 1px rgba(255,255,255,.55),0 9px 20px rgba(11,132,58,.22)}
@media(max-width:650px){.floatbar{right:max(16px,env(safe-area-inset-right))!important;bottom:max(18px,env(safe-area-inset-bottom))!important;justify-content:flex-end!important}.floatbar .wa-premium{flex:0 0 54px!important;width:54px!important;height:54px!important;min-width:54px!important;max-width:54px!important;min-height:54px!important;max-height:54px!important}.wa-premium svg{width:29px;height:29px}.wa-bubble{right:0;bottom:68px}}


.experience{background:linear-gradient(145deg,#06172b,#0d3155);color:#fff}.experience .section-head p{color:#dbe5ef}.promise-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:24px}.promise-main{padding:36px;border-radius:28px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16)}.promise-main h3{font-size:clamp(1.8rem,3.5vw,3rem);line-height:1.08;margin:8px 0 14px}.promise-main p{color:#dbe5ef}.promise-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}.promise-item{padding:20px;border-radius:20px;background:#fff;color:var(--ink)}.promise-item b{display:block;margin-bottom:5px}.promise-item span{color:var(--muted);font-size:.92rem}.service-cloud{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.service-chip{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;min-height:142px;box-shadow:0 12px 32px rgba(16,33,56,.06)}.service-chip i{font-style:normal;font-size:1.55rem}.service-chip b{display:block;margin:8px 0 4px}.service-chip span{display:block;color:var(--muted);font-size:.9rem}.payments{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.payment{padding:24px;border:1px solid var(--line);border-radius:22px;background:#fff;text-align:center}.payment strong{display:block;font-size:1.08rem;margin-top:7px}.station-highlight{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.highlight-card{padding:29px;border-radius:26px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}.highlight-card h3{margin:8px 0 10px;font-size:1.65rem}.highlight-card p{color:var(--muted)}.clean-banner{padding:38px;border-radius:30px;background:linear-gradient(135deg,#fff6ea,#fff);border:1px solid var(--line);display:grid;grid-template-columns:.8fr 1.2fr;gap:30px;align-items:center}.clean-icon{font-size:5rem;text-align:center}.clean-banner h2{font-size:clamp(2rem,4vw,3.2rem);margin:0 0 12px;line-height:1.05}.clean-banner p{color:var(--muted);margin-bottom:0}
@media(max-width:900px){.promise-grid,.clean-banner{grid-template-columns:1fr}.service-cloud,.payments{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.promise-list,.service-cloud,.payments,.station-highlight{grid-template-columns:1fr}}

/* CSV 11.4: WhatsApp flotante, desplazable y seguro en móvil/escritorio */
.floatbar{position:fixed!important;z-index:9990;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;transition:filter .2s ease}
.floatbar.is-dragging{cursor:grabbing;filter:drop-shadow(0 16px 22px rgba(6,23,43,.25))}
.floatbar.is-dragging .wa-premium{animation:none!important;transform:scale(1.04)}
.floatbar .wa-premium{touch-action:none}
.wa-bubble{touch-action:auto;user-select:text;-webkit-user-select:text;cursor:default}
@media(max-width:650px){.floatbar{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.floatbar{transition:none}}


/* SOURCE: corporate-v16.css */

/* CSV 16.0 Premium Corporate — visual refinement without external libraries */
:root{--corp-navy:#071b31;--corp-blue:#123b63;--corp-orange:#ff7200;--corp-red:#e83c50;--corp-ivory:#fffaf3;--corp-line:rgba(7,27,49,.12)}
body{font-feature-settings:"kern" 1,"liga" 1;text-rendering:optimizeLegibility}
header{box-shadow:0 1px 0 rgba(7,27,49,.05)}
.menu a{position:relative;padding:9px 0}.menu a:after{content:"";position:absolute;left:0;right:100%;bottom:3px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--corp-orange),var(--corp-red));transition:right .25s ease}.menu a:hover:after{right:0}
.hero:before{background:linear-gradient(90deg,rgba(3,15,29,.98),rgba(3,15,29,.86) 48%,rgba(3,15,29,.22)),url('../assets/hero-real-2026.webp') center/cover no-repeat}
.hero h1{max-width:850px;text-wrap:balance}.hero p{max-width:720px}.hero-card{transform:perspective(1100px) rotateY(-2deg);transition:transform .45s ease,box-shadow .45s ease}.hero-card:hover{transform:perspective(1100px) rotateY(0) translateY(-5px);box-shadow:0 42px 100px rgba(0,0,0,.44)}
.btn{transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}.btn:hover{transform:translateY(-2px);filter:saturate(1.05);box-shadow:0 18px 34px rgba(255,112,0,.28)}.btn.alt:hover,.btn.outline:hover,.btn.dark:hover{box-shadow:0 14px 28px rgba(7,27,49,.15)}
.brand-alliance{padding-top:28px;background:linear-gradient(180deg,var(--paper),#fffaf3)}
.alliance-shell{position:relative;overflow:hidden;padding:clamp(30px,5vw,58px);border:1px solid rgba(7,27,49,.12);border-radius:34px;background:linear-gradient(145deg,#071b31,#0e355c);box-shadow:0 28px 72px rgba(7,27,49,.16)}
.alliance-shell:before{content:"";position:absolute;width:420px;height:420px;right:-170px;top:-220px;border-radius:50%;background:radial-gradient(circle,rgba(255,118,0,.23),transparent 68%);pointer-events:none}
.alliance-heading{position:relative;display:grid;grid-template-columns:1fr .9fr;gap:38px;align-items:end;margin-bottom:30px}.alliance-heading h2{margin:7px 0 0;color:#fff;font-size:clamp(2rem,4vw,3.6rem);line-height:1.02;letter-spacing:-.04em}.alliance-heading p{margin:0;color:#dbe5ef;font-size:1.02rem}
.alliance-grid{position:relative;display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:stretch}.alliance-card{padding:28px;border-radius:24px;background:rgba(255,255,255,.96);box-shadow:0 18px 42px rgba(0,0,0,.16)}.alliance-card h3{font-size:1.55rem;margin:7px 0 14px}.alliance-card ul{margin:0;padding-left:19px;color:#5f6d7d}.alliance-card li+li{margin-top:8px}.alliance-kicker{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;font-weight:900;color:#c77c00}.csv-side{border-top:4px solid var(--corp-orange)}.repsol-side{border-top:4px solid var(--corp-red)}.alliance-plus{align-self:center;color:#fff;font-size:2rem;font-weight:900}.alliance-note{position:relative;margin-top:20px;display:flex;justify-content:space-between;gap:20px;padding:16px 20px;border:1px solid rgba(255,255,255,.17);border-radius:18px;color:#fff;background:rgba(255,255,255,.07)}.alliance-note span{color:#dbe5ef}
.station,.service-chip,.highlight-card,.payment,.contact-card{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.station:hover,.service-chip:hover,.highlight-card:hover,.payment:hover,.contact-card:hover{transform:translateY(-4px);border-color:rgba(255,118,0,.28);box-shadow:0 22px 48px rgba(7,27,49,.11)}
.section-head h2{text-wrap:balance}.section-head p{text-wrap:pretty}
@media(max-width:900px){.alliance-heading{grid-template-columns:1fr}.alliance-grid{grid-template-columns:1fr}.alliance-plus{text-align:center;line-height:1}.alliance-note{flex-direction:column}.hero-card{transform:none}}
@media(max-width:650px){.alliance-shell{border-radius:25px}.alliance-card{padding:23px}.alliance-heading h2{font-size:2.25rem}.hero h1{font-size:2.45rem}.menu a:after{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important;transform:none!important}}


/* SOURCE: traveler-v17.css */

:root{--v-navy:#06172b;--v-blue:#0d3155;--v-orange:#ff7600;--v-gold:#f7b62e;--v-paper:#fffdfa;--v-cream:#fff6ea;--v-ink:#12243a;--v-muted:#66758a;--v-line:#eadfce;--v-red:#d9273e;--v-green:#167a4a;--v-shadow:0 22px 60px rgba(6,23,43,.12)}
.traveler-hero{padding:96px 0 82px;background:radial-gradient(circle at 85% 20%,rgba(247,182,46,.2),transparent 28%),linear-gradient(135deg,#06172b,#0d3155);color:#fff;overflow:hidden}.traveler-hero .wrap{position:relative}.traveler-hero h1{max-width:850px;font-size:clamp(2.25rem,5vw,4.5rem);line-height:1.02;margin:.25rem 0 1.2rem}.traveler-hero p{max-width:780px;font-size:1.12rem;color:rgba(255,255,255,.82)}.traveler-kicker{font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;font-weight:900;color:var(--v-gold)}.traveler-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.traveler-actions a{display:inline-flex;align-items:center;justify-content:center;padding:13px 20px;border-radius:999px;font-weight:850;background:linear-gradient(135deg,#ffc83f,#ff7600 58%,#ec3448);color:#fff}.traveler-actions a.secondary{background:transparent;border:1px solid rgba(255,255,255,.45)}
.v-section{padding:78px 0}.v-section.alt{background:var(--v-cream)}.v-intro{max-width:780px;margin-bottom:32px}.v-intro h2{font-size:clamp(1.8rem,3.5vw,3rem);line-height:1.1;margin:0 0 10px;color:var(--v-navy)}.v-intro p{color:var(--v-muted)}.v-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.v-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.v-card{background:#fff;border:1px solid var(--v-line);border-radius:24px;padding:25px;box-shadow:0 14px 38px rgba(6,23,43,.07);transition:transform .2s ease,box-shadow .2s ease}.v-card:hover{transform:translateY(-4px);box-shadow:var(--v-shadow)}.v-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:1.55rem;background:linear-gradient(135deg,#fff1cc,#ffe2c4)}.v-card h3{margin:16px 0 8px;color:var(--v-navy);font-size:1.18rem}.v-card p{margin:0;color:var(--v-muted)}.v-card .v-link{display:inline-flex;margin-top:16px;font-weight:850;color:#c74f00}.v-badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#fff2cf;color:#815300;font-weight:850;font-size:.78rem}.v-note{border-left:5px solid var(--v-orange);background:#fff;border-radius:18px;padding:20px 22px;box-shadow:0 10px 30px rgba(6,23,43,.07)}.v-emergency{border:2px solid #f0b5bc;background:#fff7f8}.v-number{font-size:2rem;font-weight:950;color:var(--v-red);letter-spacing:-.03em}.v-call{display:inline-flex;padding:11px 16px;border-radius:999px;background:var(--v-navy);color:#fff;font-weight:850;margin-top:12px}.v-list{display:grid;gap:14px}.v-row{display:grid;grid-template-columns:minmax(150px,.8fr) 1.4fr auto;gap:16px;align-items:center;padding:18px 20px;background:#fff;border:1px solid var(--v-line);border-radius:18px}.v-row b{color:var(--v-navy)}.v-row span{color:var(--v-muted)}.v-row a{font-weight:850;color:#c74f00}.v-source{font-size:.82rem;color:var(--v-muted);margin-top:12px}.v-source a{text-decoration:underline}.v-safety{background:#06172b;color:#fff;border-radius:28px;padding:28px}.v-safety h2,.v-safety h3{color:#fff}.v-safety p,.v-safety li{color:rgba(255,255,255,.82)}.v-quick{position:sticky;bottom:16px;z-index:20;display:flex;justify-content:center;pointer-events:none}.v-quick a{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;background:#c91f38;color:#fff;padding:13px 20px;border-radius:999px;font-weight:900;box-shadow:0 16px 40px rgba(164,20,44,.3)}.v-footer-note{font-size:.86rem;color:var(--v-muted);border-top:1px solid var(--v-line);padding-top:18px;margin-top:30px}.menu .traveler-nav{color:#b94a00;font-weight:950}.home-traveler{background:linear-gradient(135deg,#06172b,#0d3155);color:#fff;border-radius:32px;padding:38px;display:grid;grid-template-columns:1.25fr .75fr;gap:28px;align-items:center;box-shadow:var(--v-shadow)}.home-traveler h2{font-size:clamp(1.8rem,3.5vw,3rem);margin:0 0 10px;color:#fff}.home-traveler p{color:rgba(255,255,255,.8)}.home-traveler-links{display:grid;gap:10px}.home-traveler-links a{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);padding:13px 15px;border-radius:14px;font-weight:850}.home-traveler-links a:hover{background:rgba(255,255,255,.16)}
@media(max-width:900px){.v-grid,.v-grid.two{grid-template-columns:1fr}.v-row{grid-template-columns:1fr}.home-traveler{grid-template-columns:1fr}.traveler-hero{padding-top:72px}}@media(max-width:620px){.v-section{padding:58px 0}.traveler-hero h1{font-size:2.35rem}.v-card{padding:20px}.home-traveler{padding:25px;border-radius:24px}}
@media(prefers-reduced-motion:reduce){.v-card{transition:none}.v-card:hover{transform:none}}


/* SOURCE: responsive-v17-3.css */
/* CSV 17.3 · Auditoría y refinamiento móvil */
:root{--csv-header-h:88px}
html{scroll-padding-top:calc(var(--csv-header-h) + 18px)}
body{overflow-x:hidden}
header{position:sticky;top:0;z-index:1000}

/* Menú móvil compacto, desplazable y seguro para iPhone */
@media(max-width:980px){
  body.menu-open{overflow:hidden;touch-action:none}
  .nav{position:relative;min-height:var(--csv-header-h)}
  .menu-toggle{display:grid!important;place-items:center;width:52px;height:52px;min-width:52px;border:1px solid rgba(234,223,206,.95)!important;border-radius:18px;background:#fff!important;box-shadow:0 8px 24px rgba(6,23,43,.08);font-size:1.65rem!important;line-height:1;color:#06172b!important;z-index:1003}
  .menu{display:none!important;position:fixed!important;top:calc(var(--csv-header-h) + env(safe-area-inset-top,0px));left:16px!important;right:16px!important;bottom:auto!important;max-height:calc(100dvh - var(--csv-header-h) - 24px - env(safe-area-inset-bottom,0px));overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px!important;background:rgba(255,255,255,.98)!important;border:1px solid #eadfce!important;border-radius:22px!important;box-shadow:0 24px 70px rgba(6,23,43,.22)!important;flex-direction:column!important;gap:3px!important;z-index:1002}
  .menu.open{display:flex!important}
  .menu a{display:block;padding:13px 16px!important;border-radius:13px;font-size:1rem;line-height:1.25}
  .menu a:hover,.menu a:focus-visible{background:#fff6ea}
  body.menu-open .floatbar{opacity:0!important;pointer-events:none!important;transform:translateY(10px)!important}
}
@media(max-width:650px){
  :root{--csv-header-h:82px}
  .brand img{width:205px;max-height:68px}
  .menu-toggle{width:48px;height:48px;min-width:48px;border-radius:16px}
  .menu{left:12px!important;right:12px!important;max-height:calc(100dvh - var(--csv-header-h) - 18px - env(safe-area-inset-bottom,0px))}
}

/* WhatsApp coherente y separado de las barras del navegador */
.floatbar{transition:opacity .2s ease,transform .2s ease!important;right:max(16px,env(safe-area-inset-right,0px))!important;bottom:max(22px,calc(env(safe-area-inset-bottom,0px) + 10px))!important}
@media(max-width:650px){.floatbar{right:max(14px,env(safe-area-inset-right,0px))!important;bottom:max(24px,calc(env(safe-area-inset-bottom,0px) + 12px))!important}}

/* Centro del Viajero: jerarquía, ritmo y tarjetas */
.traveler-hero{padding:72px 0 64px!important}
.traveler-hero h1{max-width:820px}
.v-section{padding:58px 0!important}
.v-intro{margin-bottom:26px!important}
.v-card{height:auto!important;min-height:0!important}
.v-card p,.v-intro p,.v-safety p{font-size:1rem;line-height:1.62}
.v-icon{font-family:Arial,"Apple Color Emoji","Segoe UI Emoji",sans-serif}
.v-footer-note{line-height:1.6}

@media(max-width:650px){
  main{min-width:0}
  .traveler-hero{padding:46px 0 42px!important}
  .traveler-hero h1{font-size:clamp(2.05rem,10vw,2.7rem)!important;line-height:1.08!important;margin-bottom:14px!important}
  .traveler-hero p{font-size:1rem!important;line-height:1.58!important}
  .traveler-actions{margin-top:20px!important}
  .traveler-actions a{width:100%;padding:13px 16px!important}
  .v-section{padding:42px 0!important}
  .v-intro{margin-bottom:22px!important}
  .v-intro h2{font-size:clamp(1.85rem,8vw,2.35rem)!important;line-height:1.12!important}
  .v-intro p,.v-card p,.v-safety p,.v-row span{font-size:1rem!important;line-height:1.58!important}
  .v-grid{gap:15px!important}
  .v-card{padding:20px!important;border-radius:20px!important}
  .v-card h3{font-size:1.3rem!important;line-height:1.2!important;margin:14px 0 8px!important}
  .v-icon{width:46px!important;height:46px!important;font-size:1.35rem!important;border-radius:14px!important}
  .v-row{padding:17px!important;gap:8px!important}
  .v-safety{padding:22px!important;border-radius:22px!important}
  .v-quick{bottom:calc(82px + env(safe-area-inset-bottom,0px))!important}
  footer{padding-bottom:110px!important}
  footer .footer-grid{gap:22px!important}
  footer .footer-grid h3{margin-bottom:8px!important}
  footer .footer-grid a{margin:6px 0!important}
  footer p,.copyright,.v-footer-note{font-size:.9rem!important;line-height:1.55!important}
}


/* SOURCE: traveler-premium-v17-4.css */

/* CSV 17.4 Premium Design System — Centro del Viajero */
:root{
  --csv-navy:#06172b;--csv-navy-2:#0b2542;--csv-blue:#123c66;
  --csv-gold:#e8b84a;--csv-gold-2:#f5d47f;--csv-cream:#fbf8f2;
  --csv-white:#fff;--csv-text:#142033;--csv-muted:#5d6978;--csv-border:#e7dfd1;
  --csv-success:#14815b;--csv-danger:#c73737;
  --radius-sm:12px;--radius-md:18px;--radius-lg:28px;
  --shadow-sm:0 8px 24px rgba(6,23,43,.08);
  --shadow-md:0 18px 48px rgba(6,23,43,.13);
  --shadow-lg:0 30px 80px rgba(6,23,43,.18);
  --ease:cubic-bezier(.2,.8,.2,1);
}
html{scroll-behavior:smooth}
body.traveler-page{background:linear-gradient(180deg,#fff 0,#fbfaf7 42%,#f8f5ef 100%);color:var(--csv-text)}
body.traveler-page main{overflow:hidden}
body.traveler-page .wrap{width:min(1180px,calc(100% - 36px))}
body.traveler-page header{backdrop-filter:saturate(140%) blur(16px);-webkit-backdrop-filter:saturate(140%) blur(16px);background:rgba(255,255,255,.92);border-bottom:1px solid rgba(6,23,43,.08);box-shadow:0 6px 24px rgba(6,23,43,.05)}
body.traveler-page .traveler-nav{position:relative;font-weight:800;color:var(--csv-navy)!important}
body.traveler-page .traveler-nav:after{content:"";position:absolute;left:10px;right:10px;bottom:2px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--csv-gold),var(--csv-gold-2))}

.traveler-hero{position:relative;isolation:isolate;padding:clamp(74px,9vw,132px) 0 clamp(68px,8vw,118px)!important;background:var(--csv-navy);color:#fff;overflow:hidden}
.traveler-hero:before{content:"";position:absolute;inset:0;z-index:-3;background-image:linear-gradient(90deg,rgba(6,23,43,.96) 0%,rgba(6,23,43,.88) 42%,rgba(6,23,43,.54) 100%),var(--hero-img,url('/assets/les-coves-panoramica-frontal-1600.webp'));background-size:cover;background-position:center}
.traveler-hero:after{content:"";position:absolute;inset:auto -10% -52% 34%;height:120%;z-index:-2;background:radial-gradient(circle,rgba(232,184,74,.22),transparent 62%);pointer-events:none}
.traveler-hero .wrap{position:relative}
.traveler-kicker{display:inline-flex!important;align-items:center;gap:10px;margin-bottom:20px!important;padding:9px 14px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.12);font-size:.78rem!important;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:#fff!important}
.traveler-kicker:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--csv-gold);box-shadow:0 0 0 5px rgba(232,184,74,.16)}
.traveler-hero h1{max-width:860px;margin:0 0 20px!important;font-size:clamp(2.65rem,6vw,5.25rem)!important;line-height:.96!important;letter-spacing:-.045em;color:#fff!important;text-wrap:balance}
.traveler-hero p{max-width:740px;margin:0 0 32px!important;font-size:clamp(1.05rem,1.8vw,1.3rem)!important;line-height:1.66!important;color:rgba(255,255,255,.86)!important;text-wrap:pretty}
.traveler-actions{display:flex!important;flex-wrap:wrap;gap:12px!important;margin-top:24px!important}
.traveler-actions a,.v-link,.v-call,.cta-button{display:inline-flex!important;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 20px!important;border-radius:14px!important;border:1px solid transparent!important;text-decoration:none!important;font-weight:850!important;line-height:1.1!important;transition:transform .22s var(--ease),box-shadow .22s var(--ease),background .22s var(--ease),border-color .22s var(--ease)!important;cursor:pointer}
.traveler-actions a:not(.secondary),.v-link,.v-call,.cta-button.primary{background:linear-gradient(135deg,var(--csv-gold-2),var(--csv-gold))!important;color:var(--csv-navy)!important;box-shadow:0 12px 28px rgba(232,184,74,.24)!important}
.traveler-actions a.secondary,.cta-button.secondary{background:rgba(255,255,255,.1)!important;color:#fff!important;border-color:rgba(255,255,255,.32)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.1)!important}
.v-card .traveler-actions a.secondary{background:#fff!important;color:var(--csv-navy)!important;border-color:var(--csv-border)!important}
.traveler-actions a:hover,.v-link:hover,.v-call:hover,.cta-button:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(6,23,43,.16)!important}
.traveler-actions a:focus-visible,.v-link:focus-visible,.v-call:focus-visible{outline:3px solid rgba(232,184,74,.4);outline-offset:3px}
.cta-icon{width:19px;height:19px;flex:none}

.v-section{padding:clamp(58px,7vw,96px) 0!important;position:relative}
.v-section.alt{background:linear-gradient(180deg,#f7f2e9,#fbf8f2)!important;border-block:1px solid rgba(6,23,43,.06)}
.v-intro{max-width:790px;margin-bottom:34px!important}
.v-intro .v-badge{margin-bottom:14px}
.v-intro h2{margin:0 0 14px!important;font-size:clamp(2rem,4.1vw,3.35rem)!important;line-height:1.05!important;letter-spacing:-.035em;color:var(--csv-navy)!important;text-wrap:balance}
.v-intro p{font-size:1.08rem!important;line-height:1.74!important;color:var(--csv-muted)!important}
.v-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:22px!important;align-items:stretch}
.v-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.v-card{position:relative;display:flex;flex-direction:column;min-height:100%;padding:28px!important;border:1px solid rgba(6,23,43,.09)!important;border-radius:var(--radius-lg)!important;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(255,255,255,.88))!important;box-shadow:var(--shadow-sm)!important;overflow:hidden;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease)!important}
.v-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--csv-gold),transparent 74%);opacity:.9}
.v-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)!important;border-color:rgba(232,184,74,.35)!important}
.v-card h3{margin:18px 0 10px!important;font-size:clamp(1.32rem,2vw,1.62rem)!important;line-height:1.18!important;letter-spacing:-.02em;color:var(--csv-navy)!important;text-wrap:balance}
.v-card p,.v-card li{color:var(--csv-muted)!important;line-height:1.67!important}
.v-card .v-link{margin-top:auto;align-self:flex-start;min-height:48px;padding:13px 17px!important}
.v-icon{display:grid!important;place-items:center;width:58px!important;height:58px!important;margin:0!important;border-radius:17px!important;background:linear-gradient(145deg,#fff8e9,#f2dfac)!important;color:var(--csv-navy)!important;box-shadow:inset 0 0 0 1px rgba(232,184,74,.35),0 10px 24px rgba(6,23,43,.08)!important;font-size:0!important}
.v-icon svg{width:29px;height:29px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.v-emergency .v-icon{background:linear-gradient(145deg,#fff0ef,#f7c9c5)!important;color:#9f2525!important}
.v-badge{display:inline-flex!important;align-items:center;gap:7px;width:max-content;max-width:100%;padding:7px 11px!important;border-radius:999px!important;background:#f5efe3!important;color:#6b5320!important;border:1px solid #ead9ad!important;font-size:.74rem!important;line-height:1.2!important;font-weight:850!important;letter-spacing:.035em!important;text-transform:uppercase}
.v-source{margin-top:16px;padding:14px 16px;border-radius:14px;background:#f7f4ee;color:#586270!important;border-left:4px solid var(--csv-gold)}
.v-safety{position:relative;padding:clamp(30px,5vw,52px)!important;border-radius:var(--radius-lg)!important;background:linear-gradient(135deg,var(--csv-navy),var(--csv-navy-2))!important;color:#fff!important;box-shadow:var(--shadow-lg)!important;overflow:hidden}
.v-safety:after{content:"";position:absolute;width:280px;height:280px;right:-100px;top:-130px;border-radius:50%;background:radial-gradient(circle,rgba(232,184,74,.28),transparent 67%)}
.v-safety h2{margin:0 0 14px!important;font-size:clamp(1.8rem,3.5vw,2.85rem)!important;line-height:1.1!important;color:#fff!important}
.v-safety p,.v-safety li{color:rgba(255,255,255,.83)!important;font-size:1.03rem!important;line-height:1.72!important}
.v-safety .v-call{margin-top:10px;position:relative;z-index:1}
.v-quick{padding:0 18px 28px!important;background:transparent!important}
.v-quick a{display:flex!important;align-items:center;justify-content:center;max-width:520px;margin:auto;min-height:54px;border-radius:15px;background:#a92828!important;color:#fff!important;font-weight:900!important;text-decoration:none;box-shadow:0 14px 32px rgba(169,40,40,.22)}
.v-footer-note{max-width:860px!important;opacity:.72!important;line-height:1.6!important}

/* cards with media */
.v-card.media-card{padding:0!important}
.media-card .card-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:#dfe6ec}
.media-card .card-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.media-card:hover .card-media img{transform:scale(1.045)}
.media-card .card-body{display:flex;flex-direction:column;flex:1;padding:25px 26px 27px}
.media-card .v-badge{margin-bottom:3px}

@media(max-width:900px){
 .v-grid,.v-grid.two{grid-template-columns:1fr 1fr!important}
 .traveler-hero:before{background-image:linear-gradient(90deg,rgba(6,23,43,.96),rgba(6,23,43,.72)),var(--hero-img,url('/assets/les-coves-panoramica-frontal-960.webp'))}
}
@media(max-width:640px){
 body.traveler-page .wrap{width:min(100% - 28px,1180px)}
 .traveler-hero{padding:62px 0 66px!important}
 .traveler-hero h1{font-size:clamp(2.38rem,12vw,3.45rem)!important}
 .traveler-hero p{font-size:1.03rem!important}
 .traveler-actions{display:grid!important;grid-template-columns:1fr!important;width:100%}
 .traveler-actions a{width:100%}
 .v-section{padding:52px 0!important}
 .v-grid,.v-grid.two{grid-template-columns:1fr!important;gap:16px!important}
 .v-card{padding:23px!important;border-radius:22px!important}
 .v-card .v-link{width:100%;align-self:stretch}
 .v-safety{padding:28px 23px!important;border-radius:22px!important}
 .v-intro{margin-bottom:25px!important}
 .v-intro h2{font-size:2.05rem!important}
 .traveler-kicker{font-size:.7rem!important;letter-spacing:.085em}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}


/* SOURCE: touch-v18.css */
/* CSV18.0 Touch — sistema de interacción premium, ligero y accesible */
:root{--touch-ease:cubic-bezier(.2,.85,.25,1);--touch-gold:#e8b84a;--touch-navy:#06172b;--touch-green:#19a966}
.touch-card,.touch-btn,.v-link,.v-call,.traveler-actions a,.wa-premium{position:relative;isolation:isolate;-webkit-tap-highlight-color:transparent;transform:translateZ(0);will-change:transform;overflow:hidden}
.touch-card:after,.touch-btn:after,.v-link:after,.v-call:after,.traveler-actions a:after,.wa-premium:after{content:"";position:absolute;inset:-45%;z-index:-1;background:radial-gradient(circle at var(--touch-x,30%) var(--touch-y,15%),rgba(255,255,255,.72),rgba(255,255,255,.16) 14%,transparent 34%);opacity:.54;pointer-events:none;transition:opacity .2s ease,transform .35s var(--touch-ease)}
.touch-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;border:1px solid rgba(255,255,255,.72);border-radius:28px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(245,247,249,.9));box-shadow:0 2px 0 rgba(255,255,255,.9) inset,0 -2px 0 rgba(6,23,43,.035) inset,0 18px 42px rgba(6,23,43,.12),0 4px 10px rgba(6,23,43,.06);transition:transform .22s var(--touch-ease),box-shadow .22s var(--touch-ease),border-color .22s ease}
.touch-card:hover{transform:translateY(-7px) scale(1.008);box-shadow:0 2px 0 rgba(255,255,255,.95) inset,0 -2px 0 rgba(6,23,43,.04) inset,0 28px 58px rgba(6,23,43,.17),0 7px 16px rgba(6,23,43,.08);border-color:rgba(232,184,74,.48)}
.touch-card:active,.touch-card.is-pressed{transform:translateY(2px) scale(.982);box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 3px 8px rgba(6,23,43,.12) inset,0 8px 18px rgba(6,23,43,.1);transition-duration:.09s}
.touch-card .card-media{overflow:hidden;border-radius:27px 27px 0 0;position:relative;aspect-ratio:16/10}
.touch-card .card-media:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.34),transparent 28%,transparent 68%,rgba(6,23,43,.15));pointer-events:none}
.touch-card .card-media img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--touch-ease),filter .35s ease}
.touch-card:hover .card-media img{transform:scale(1.045);filter:saturate(1.05) contrast(1.02)}
.touch-card .card-body{padding:25px 26px 28px;display:flex;flex-direction:column;flex:1}
.touch-card h3{margin:10px 0 8px;color:var(--touch-navy);font-size:clamp(1.35rem,2vw,1.72rem);letter-spacing:-.025em;line-height:1.12}
.touch-card p{margin:0;color:#5d6978;line-height:1.58}
.touch-card .touch-action{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:20px;color:#72540e;font-weight:900}
.touch-card .touch-action svg{width:18px;transition:transform .2s var(--touch-ease)}
.touch-card:hover .touch-action svg{transform:translateX(4px)}
.touch-btn,.traveler-actions a,.v-link,.v-call{border-radius:16px!important;box-shadow:0 2px 0 rgba(255,255,255,.58) inset,0 -3px 0 rgba(91,61,0,.18) inset,0 13px 25px rgba(6,23,43,.14)!important;transition:transform .16s var(--touch-ease),box-shadow .16s var(--touch-ease),filter .16s ease!important}
.touch-btn:hover,.traveler-actions a:hover,.v-link:hover,.v-call:hover{transform:translateY(-3px) scale(1.012);filter:saturate(1.04)}
.touch-btn:active,.touch-btn.is-pressed,.traveler-actions a:active,.traveler-actions a.is-pressed,.v-link:active,.v-link.is-pressed,.v-call:active,.v-call.is-pressed{transform:translateY(2px) scale(.97)!important;box-shadow:0 1px 0 rgba(255,255,255,.44) inset,0 4px 8px rgba(6,23,43,.18) inset,0 5px 10px rgba(6,23,43,.1)!important;transition-duration:.07s!important}
.wa-premium{border-radius:50%!important;background:radial-gradient(circle at 32% 22%,#7af0ae 0,#25c978 32%,#0d9855 72%,#087740 100%)!important;box-shadow:0 3px 3px rgba(255,255,255,.65) inset,0 -7px 11px rgba(0,70,34,.3) inset,0 16px 28px rgba(7,119,64,.32),0 5px 9px rgba(6,23,43,.18)!important;transition:transform .18s var(--touch-ease),box-shadow .18s var(--touch-ease)!important}
.wa-premium:hover{transform:translateY(-4px) scale(1.055)}
.wa-premium:active,.wa-premium.is-pressed{transform:scale(.88,.94) rotate(-2deg)!important;box-shadow:0 2px 3px rgba(255,255,255,.45) inset,0 7px 12px rgba(0,70,34,.28) inset,0 7px 14px rgba(7,119,64,.25)!important}
.touch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.touch-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.touch-card.compact{padding:27px}
.touch-card.compact .touch-icon{display:grid;place-items:center;width:62px;height:62px;border-radius:20px;background:linear-gradient(145deg,#fff8e8,#e8c878);box-shadow:0 2px 2px #fff inset,0 -3px 5px rgba(100,70,5,.16) inset,0 11px 24px rgba(6,23,43,.1)}
.touch-card.compact .touch-icon svg{width:30px;height:30px;fill:none;stroke:var(--touch-navy);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.utility-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}
.utility-pill{display:flex;align-items:center;justify-content:center;gap:10px;min-height:58px;padding:14px 18px;border-radius:18px;text-decoration:none;font-weight:900;color:var(--touch-navy);background:linear-gradient(145deg,#fff,#f4efe4);border:1px solid rgba(232,184,74,.34);box-shadow:0 2px 0 #fff inset,0 -2px 0 rgba(91,61,0,.08) inset,0 10px 22px rgba(6,23,43,.09);transition:.16s var(--touch-ease)}
.utility-pill:hover{transform:translateY(-3px);box-shadow:0 17px 30px rgba(6,23,43,.13)}
.utility-pill:active{transform:translateY(2px) scale(.98);box-shadow:0 3px 8px rgba(6,23,43,.12) inset}
.v-quick{display:none!important}
.touch-note{font-size:.9rem;color:#687483;margin-top:18px}
@media(max-width:900px){.touch-grid{grid-template-columns:1fr 1fr}.utility-strip{grid-template-columns:1fr}}
@media(max-width:640px){.touch-grid,.touch-grid.two{grid-template-columns:1fr}.touch-card:hover{transform:none}.touch-card .card-body{padding:22px}.touch-card.compact{padding:23px}.floatbar{bottom:max(18px,env(safe-area-inset-bottom))!important}}
@media(prefers-reduced-motion:reduce){.touch-card,.touch-btn,.v-link,.v-call,.traveler-actions a,.wa-premium,.touch-card img{transition:none!important;transform:none!important}}


/* SOURCE: premium-depth-v19.css */
:root{
  --csv19-navy:#06172b;--csv19-navy2:#0d3155;--csv19-orange:#ff7600;--csv19-orange2:#ff9b23;
  --csv19-green:#20c864;--csv19-red:#ef3f35;--csv19-paper:#fffdf9;--csv19-shadow:rgba(6,23,43,.22);
  --csv19-ease:cubic-bezier(.2,.8,.2,1)
}
/* V19 Premium Depth: one visual language on desktop and mobile */
:is(.btn,.touch-btn,.touch-action,.v-link,.v-call,.traveler-actions a,.utility-pill,.nav-wa){
  position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(255,255,255,.62)!important;
  box-shadow:inset 0 2px 2px rgba(255,255,255,.68),inset 0 -5px 8px rgba(67,29,0,.18),0 3px 0 rgba(91,42,0,.16),0 12px 24px rgba(6,23,43,.16),0 26px 50px rgba(6,23,43,.08)!important;
  transition:transform .18s var(--csv19-ease),box-shadow .18s var(--csv19-ease),filter .18s ease!important
}
:is(.btn,.touch-btn,.touch-action,.v-link,.v-call,.traveler-actions a,.utility-pill,.nav-wa)::before{
  content:"";position:absolute;inset:1px 4px auto;height:48%;border-radius:inherit;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.64),rgba(255,255,255,.12) 48%,transparent);opacity:.78;z-index:-1
}
:is(.btn,.touch-btn,.touch-action,.v-link,.v-call,.traveler-actions a,.utility-pill,.nav-wa):hover{transform:translateY(-3px) scale(1.015);filter:saturate(1.08) contrast(1.02)}
:is(.btn,.touch-btn,.touch-action,.v-link,.v-call,.traveler-actions a,.utility-pill,.nav-wa):active{transform:translateY(2px) scale(.975)!important;box-shadow:inset 0 5px 10px rgba(6,23,43,.22),inset 0 1px 1px rgba(255,255,255,.45),0 4px 10px rgba(6,23,43,.13)!important}

.traveler-actions a:not(.secondary),.v-call,.btn:not(.alt):not(.outline):not(.dark),.touch-action{
  background:radial-gradient(circle at 28% 12%,#ffd37a 0 7%,transparent 22%),linear-gradient(160deg,var(--csv19-orange2),var(--csv19-orange) 55%,#d84a00)!important;color:#fff!important;text-shadow:0 1px 1px rgba(84,28,0,.35)
}
.traveler-actions a.secondary,.utility-pill,.btn.alt,.btn.outline,.btn.dark{
  background:linear-gradient(160deg,#fff,#f3f6f8 52%,#d8e0e7)!important;color:var(--csv19-navy)!important;border-color:rgba(6,23,43,.12)!important
}

:is(.touch-card,.v-card,.v-row,.section,.home-traveler,.v-safety){
  position:relative;isolation:isolate;border-color:rgba(255,255,255,.72)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.92),0 2px 2px rgba(6,23,43,.06),0 14px 32px rgba(6,23,43,.10),0 32px 70px rgba(6,23,43,.07)!important;
  transition:transform .25s var(--csv19-ease),box-shadow .25s var(--csv19-ease)!important
}
:is(.touch-card,.v-card,.v-row,.section)::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(145deg,rgba(255,255,255,.56),transparent 34%,rgba(255,118,0,.035) 100%);z-index:-1}
:is(.touch-card,.v-card,.v-row,.section):hover{transform:translateY(-5px);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 4px 5px rgba(6,23,43,.07),0 20px 42px rgba(6,23,43,.14),0 42px 82px rgba(6,23,43,.08)!important}

.touch-icon,.v-icon{
  border:1px solid rgba(255,255,255,.84)!important;
  background:radial-gradient(circle at 30% 18%,#fff4d7 0 8%,transparent 25%),linear-gradient(155deg,#ffb32f,#ff7600 58%,#cf4300)!important;
  color:#fff!important;box-shadow:inset 0 2px 3px rgba(255,255,255,.7),inset 0 -5px 8px rgba(86,26,0,.26),0 3px 0 rgba(111,42,0,.17),0 12px 24px rgba(6,23,43,.18)!important
}
.touch-icon svg,.v-icon svg{filter:drop-shadow(0 2px 1px rgba(6,23,43,.28))}

/* Circular tactile actions, same shape on all screens */
a[href^="tel:"]:not(.back):not(.utility-pill),a[href*="google.com/maps"] .touch-action{
  text-decoration:none
}
.v-row>a[href^="tel:"],.v-list .v-row>a[href^="tel:"]{
  display:inline-grid!important;place-items:center;min-width:54px;min-height:54px;padding:0 17px!important;border-radius:999px!important;
  background:radial-gradient(circle at 28% 14%,#ffd17a 0 7%,transparent 23%),linear-gradient(155deg,#ff9f26,#ff6a00 58%,#c94300)!important;color:#fff!important;
  box-shadow:inset 0 2px 3px rgba(255,255,255,.72),inset 0 -5px 9px rgba(90,27,0,.27),0 3px 0 rgba(100,35,0,.2),0 12px 25px rgba(6,23,43,.2)!important
}

/* WhatsApp: glassy, visible, safe-area aware */
.floatbar{right:max(22px,calc(env(safe-area-inset-right) + 14px))!important;bottom:max(26px,calc(env(safe-area-inset-bottom) + 18px))!important;overflow:visible!important}
.wa-premium,#csv-whatsapp-float{
  width:66px!important;height:66px!important;border-radius:50%!important;overflow:visible!important;
  background:radial-gradient(circle at 31% 15%,#b9ffd0 0 7%,rgba(185,255,208,.45) 12%,transparent 27%),linear-gradient(155deg,#3be47b,#16b94f 58%,#087d32)!important;
  border:2px solid rgba(255,255,255,.9)!important;color:#fff!important;
  box-shadow:inset 0 3px 4px rgba(255,255,255,.72),inset 0 -7px 11px rgba(0,75,28,.36),0 4px 0 rgba(0,83,32,.25),0 13px 28px rgba(6,23,43,.28),0 0 0 7px rgba(37,211,102,.08)!important
}
.wa-premium::after,#csv-whatsapp-float::after{content:"";position:absolute;inset:7px 10px auto;height:22px;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.65),rgba(255,255,255,0));pointer-events:none}
.wa-unread,#csv-whatsapp-float .badge{top:-5px!important;right:-5px!important;min-width:23px!important;height:23px!important;padding:0 6px!important;border-radius:999px!important;background:linear-gradient(145deg,#ff655b,#e1261c)!important;color:#fff!important;border:2px solid #fff!important;box-shadow:0 5px 12px rgba(106,10,5,.34)!important;overflow:visible!important;font-weight:900!important}

header{box-shadow:0 8px 28px rgba(6,23,43,.08)}
.menu-toggle{border-radius:16px!important;background:linear-gradient(145deg,#fff,#e9eef2)!important;border:1px solid rgba(6,23,43,.12)!important;box-shadow:inset 0 2px 2px rgba(255,255,255,.9),0 6px 14px rgba(6,23,43,.12)!important}

@media(max-width:760px){
  .wrap{width:min(100% - 30px,1180px)!important}
  .v-section{padding:54px 0!important}.v-intro{margin-bottom:22px!important}
  .v-list{gap:14px!important}.v-row{grid-template-columns:1fr auto!important;gap:8px 14px!important;padding:18px!important;border-radius:22px!important;align-items:center!important}
  .v-row>b{grid-column:1}.v-row>span{grid-column:1;line-height:1.45!important}.v-row>a{grid-column:2;grid-row:1/span 2;align-self:center!important}
  .touch-card{border-radius:24px!important}.touch-card.compact{padding:22px!important}
  .traveler-actions{display:grid!important;grid-template-columns:1fr!important}.traveler-actions a{width:100%!important;min-height:56px!important}
  .utility-strip{display:grid!important;grid-template-columns:1fr!important}.utility-pill{width:100%!important;justify-content:center!important;min-height:54px!important}
  .wa-premium,#csv-whatsapp-float{width:62px!important;height:62px!important}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}:is(.touch-card,.v-card,.v-row,.section,.btn,.touch-btn,.touch-action,.v-link,.v-call,.traveler-actions a,.utility-pill,.nav-wa){transition:none!important}}

/* =========================================================
   CSV 19.1 — FINAL REFINEMENT
   Azul corporativo, contraste contextual y marcos premium
   ========================================================= */
:root{
  --csv19-blue:#123f70;
  --csv19-blue2:#071f3b;
  --csv19-blue3:#23679f;
  --csv19-graphite:#101820;
}

/* Botón principal: azul serio con texto blanco y destello sutil */
:is(.btn,.touch-action,.traveler-actions a:not(.secondary)){
  background:
    radial-gradient(circle at 28% 10%,rgba(150,213,255,.64) 0 5%,transparent 21%),
    linear-gradient(155deg,var(--csv19-blue3),var(--csv19-blue) 55%,var(--csv19-blue2))!important;
  color:#fff!important;
  text-shadow:0 1px 1px rgba(0,20,42,.38)!important;
  border-color:rgba(255,255,255,.72)!important;
  box-shadow:inset 0 2px 3px rgba(255,255,255,.62),inset 0 -6px 10px rgba(1,18,36,.30),0 3px 0 rgba(1,24,47,.20),0 12px 25px rgba(6,23,43,.20),0 25px 48px rgba(6,23,43,.09)!important;
}

/* Sobre fondos oscuros: botón blanco con texto azul */
:is(.hero,.experience,.dark-panel,.promise-main,.v-hero,.traveler-hero) :is(.btn,.touch-action,.traveler-actions a){
  background:linear-gradient(155deg,#ffffff,#f4f7fa 54%,#dce4eb)!important;
  color:var(--csv19-blue2)!important;
  text-shadow:none!important;
  border-color:rgba(255,255,255,.88)!important;
  box-shadow:inset 0 2px 2px rgba(255,255,255,.98),inset 0 -5px 8px rgba(6,23,43,.09),0 3px 0 rgba(1,24,47,.12),0 13px 28px rgba(0,12,28,.28)!important;
}

/* WhatsApp: identidad reconocible en cabecera y flotante */
.nav-wa,
a.btn.nav-wa{
  background:radial-gradient(circle at 28% 12%,#baffcf 0 6%,transparent 22%),linear-gradient(155deg,#35df73,#25d366 55%,#11863b)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.85)!important;
  text-shadow:0 1px 1px rgba(0,72,28,.35)!important;
}

/* El naranja queda reservado para promoción comercial */
:is(#promocion,.promo,.promotion,.promo-card) .btn{
  background:radial-gradient(circle at 28% 12%,#ffd37a 0 7%,transparent 22%),linear-gradient(160deg,var(--csv19-orange2),var(--csv19-orange) 55%,#d84a00)!important;
  color:#fff!important;
}

/* Acciones dentro de las tarjetas del Centro del Viajero: centradas */
.touch-card .touch-action{
  display:flex!important;
  width:min(100%,280px)!important;
  min-height:52px!important;
  margin:18px auto 0!important;
  justify-content:center!important;
  align-items:center!important;
  text-align:center!important;
  border-radius:999px!important;
}

/* Marco grafito luminoso y profundidad para tarjetas con imagen */
:is(.station-card,.touch-card,.card,.v-card){
  border:1px solid rgba(16,24,32,.78)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.96),
    0 0 0 1px rgba(255,255,255,.55),
    0 2px 3px rgba(6,23,43,.08),
    0 15px 34px rgba(6,23,43,.13),
    0 34px 72px rgba(6,23,43,.08)!important;
}
:is(.station-card,.touch-card,.card,.v-card)::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:4;
  background:linear-gradient(125deg,rgba(255,255,255,.62) 0,rgba(255,255,255,.12) 13%,transparent 29%);
  opacity:.55
}
:is(.station-card,.touch-card,.card,.v-card):hover{
  border-color:rgba(5,17,30,.94)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.98),0 0 0 1px rgba(255,255,255,.66),0 4px 6px rgba(6,23,43,.09),0 22px 46px rgba(6,23,43,.17),0 43px 86px rgba(6,23,43,.09)!important;
}

/* Contorno preciso de las fotografías y zoom contenido */
:is(.station-card .photo,.touch-card .card-media){
  position:relative;overflow:hidden;
  border-bottom:1px solid rgba(16,24,32,.76)!important;
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.38)
}
:is(.station-card .photo,.touch-card .card-media)::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.34),inset 0 16px 22px rgba(255,255,255,.10),inset 0 -18px 25px rgba(3,16,30,.14)
}
:is(.station-card .photo img,.touch-card .card-media img){transition:transform .45s var(--csv19-ease),filter .45s ease!important}
:is(.station-card,.touch-card):hover :is(.photo img,.card-media img){transform:scale(1.025);filter:contrast(1.025) saturate(1.025)}

/* Azul también para iconos interactivos; menos presencia naranja */
.touch-icon,.v-icon{
  background:radial-gradient(circle at 30% 18%,#d8f0ff 0 7%,transparent 24%),linear-gradient(155deg,var(--csv19-blue3),var(--csv19-blue) 58%,var(--csv19-blue2))!important;
  box-shadow:inset 0 2px 3px rgba(255,255,255,.7),inset 0 -5px 8px rgba(1,18,36,.30),0 3px 0 rgba(1,24,47,.18),0 12px 24px rgba(6,23,43,.18)!important
}

@media(max-width:760px){
  .touch-card .touch-action{width:100%!important}
}

/* CSV 19.1.1 — corrección de caché y WhatsApp de cabecera */
header .nav > a.btn.nav-wa,
header .nav > a.nav-wa {
  background:linear-gradient(155deg,#35df73,#25d366 55%,#11863b)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.88)!important;
  text-shadow:0 1px 1px rgba(0,72,28,.35)!important;
}


/* SOURCE: correction-v19-1-3.css */
/* CSV 19.1.3 — corrección Centro del Viajero */
.centro-viajero .touch-card .card-media{background:#e9eef2}
.centro-viajero .touch-card .card-media img{object-fit:cover!important;transform:none!important;filter:none!important}
.centro-viajero .touch-card:hover .card-media img{transform:scale(1.018)!important}
.centro-viajero .touch-card .touch-action{
  width:min(88%,320px)!important;
  min-height:50px!important;
  margin:22px auto 0!important;
  padding:12px 24px!important;
  justify-content:center!important;
  border-radius:999px!important;
  background:linear-gradient(150deg,#ffffff 0%,#f7f9fc 46%,#dfe7ef 100%)!important;
  color:#082848!important;
  border:1px solid rgba(255,255,255,.98)!important;
  box-shadow:inset 0 2px 2px #fff,inset 0 -3px 6px rgba(6,23,43,.10),0 9px 18px rgba(6,23,43,.18),0 2px 4px rgba(6,23,43,.14)!important;
  text-shadow:none!important;
}
.centro-viajero .touch-card .touch-action::before{background:linear-gradient(110deg,transparent 16%,rgba(255,255,255,.92) 43%,transparent 66%)!important}
.centro-viajero .touch-card:hover .touch-action{transform:translateY(-2px) scale(1.015)!important;box-shadow:inset 0 2px 2px #fff,inset 0 -3px 7px rgba(6,23,43,.11),0 13px 24px rgba(6,23,43,.22),0 3px 5px rgba(6,23,43,.14)!important}
@media(max-width:640px){.centro-viajero .touch-card .touch-action{width:100%!important}}


/* SOURCE: csv29-sistema-tactil-unificado.css */
/* CSV29 — sistema visual táctil unificado para todo el sitio */
:root{
  --csv-ink:#06172b;
  --csv-blue:#0a3f73;
  --csv-blue-deep:#05294e;
  --csv-orange:#ef7d00;
  --csv-gold:#d69a20;
  --csv-surface:#f7f9fb;
  --csv-radius-sm:14px;
  --csv-radius-md:20px;
  --csv-radius-lg:28px;
  --csv-ease:cubic-bezier(.2,.8,.2,1);
  --csv-shadow-1:0 7px 16px rgba(4,20,38,.10),0 2px 5px rgba(4,20,38,.08);
  --csv-shadow-2:0 15px 30px rgba(4,20,38,.15),0 5px 11px rgba(4,20,38,.10);
  --csv-shadow-3:0 24px 50px rgba(4,20,38,.20),0 9px 18px rgba(4,20,38,.12);
  --csv-inset:inset 0 2px 0 rgba(255,255,255,.78),inset 0 -5px 10px rgba(4,20,38,.12);
  --csv-press:inset 0 4px 9px rgba(4,20,38,.20),0 3px 7px rgba(4,20,38,.10);
}

/* Un solo lenguaje tipográfico y de superficie */
html{scroll-behavior:smooth}
body{color:var(--csv-ink);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
main{isolation:isolate}
section{position:relative}
.section-head p,.lead,.intro,p{line-height:1.66}

/* La información permanece en el plano de fondo */
.notice,.small,.help-meta,.station-switch-note,.alliance-note,.hero-live,
article:not(a):not([onclick]),.is-informational{
  transform:none;
}

/* Clasificación universal de elementos accionables */
.csv-touch,
a.btn,button.btn,.menu a,.menu-toggle,.station-tab,.station-action,
.contact-card[href],.social a,.card-actions a,.wa-open,.repsol-pill,
a.card,a.help-card,a.service-card,a.service-chip,a.quick-card,
[role="button"],[onclick]{
  position:relative;
  isolation:isolate;
  border-radius:var(--csv-radius-md);
  transform:translateZ(0);
  box-shadow:var(--csv-inset),var(--csv-shadow-2)!important;
  transition:transform .18s var(--csv-ease),box-shadow .18s var(--csv-ease),filter .18s ease,border-color .18s ease!important;
  -webkit-tap-highlight-color:transparent;
  cursor:pointer;
}

/* Reflejo común: todas las piezas parecen fabricadas con el mismo material */
.csv-touch::before,
a.btn::before,button.btn::before,.menu a::before,.menu-toggle::before,.station-tab::before,
.station-action::before,.contact-card[href]::before,.social a::before,.card-actions a::before,
.wa-open::before,.repsol-pill::before,a.card::before,a.help-card::before,a.service-card::before,
a.service-chip::before,a.quick-card::before,[role="button"]::before,[onclick]::before{
  content:"";
  position:absolute;
  z-index:2;
  left:8%;right:8%;top:4%;height:34%;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.58),rgba(255,255,255,.12) 58%,transparent);
  opacity:.60;
  pointer-events:none;
}

/* Borde de espesor óptico */
.csv-touch::after,a.card::after,a.help-card::after,a.service-card::after,a.service-chip::after,a.quick-card::after{
  content:"";
  position:absolute;
  inset:1px;
  z-index:1;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.50);
  pointer-events:none;
}

@media (hover:hover){
  .csv-touch:hover,a.btn:hover,button.btn:hover,.menu a:hover,.menu-toggle:hover,.station-tab:hover,
  .station-action:hover,.contact-card[href]:hover,.social a:hover,.card-actions a:hover,.wa-open:hover,
  .repsol-pill:hover,a.card:hover,a.help-card:hover,a.service-card:hover,a.service-chip:hover,a.quick-card:hover,
  [role="button"]:hover,[onclick]:hover{
    transform:translateY(-5px) scale(1.008)!important;
    box-shadow:var(--csv-inset),var(--csv-shadow-3)!important;
    filter:saturate(1.04) brightness(1.015);
  }
}

.csv-touch:active,a.btn:active,button.btn:active,.menu a:active,.menu-toggle:active,.station-tab:active,
.station-action:active,.contact-card[href]:active,.social a:active,.card-actions a:active,.wa-open:active,
.repsol-pill:active,a.card:active,a.help-card:active,a.service-card:active,a.service-chip:active,a.quick-card:active,
[role="button"]:active,[onclick]:active{
  transform:translateY(2px) scale(.985)!important;
  box-shadow:var(--csv-press)!important;
  filter:saturate(.98);
}

/* Foco accesible y homogéneo */
:where(a,button,[role="button"],[tabindex]):focus-visible{
  outline:3px solid rgba(239,125,0,.62)!important;
  outline-offset:4px!important;
}

/* Tarjetas navegables: placa flotante, nunca un bloque plano */
a.card,a.help-card,a.service-card,a.quick-card{
  overflow:hidden;
  border:1px solid rgba(6,23,43,.09)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(244,247,250,.96))!important;
  text-decoration:none;
}
a.card .icon,a.help-card .icon,a.service-card .icon,a.quick-card .icon,
a.card i,a.service-chip i{
  filter:drop-shadow(0 5px 7px rgba(4,20,38,.18));
  transform:translateZ(0);
}

/* Botones: policarbonato premium, misma geometría */
a.btn,button.btn{
  min-height:46px;
  border-radius:999px!important;
  font-weight:750;
  letter-spacing:.01em;
  border:1px solid rgba(6,23,43,.10)!important;
}
.btn.alt,.btn.outline{
  background:linear-gradient(180deg,#fff,#eef2f6)!important;
  color:var(--csv-ink)!important;
}
.btn.dark{
  background:linear-gradient(180deg,#124f85,#052d55)!important;
}

/* Navegación fija: visible pero subordinada */
header{
  backdrop-filter:blur(18px) saturate(1.16);
  -webkit-backdrop-filter:blur(18px) saturate(1.16);
}
header .nav{min-height:58px}
.menu a{
  border-radius:999px!important;
  font-size:clamp(.72rem,.66rem + .18vw,.84rem)!important;
  font-weight:650!important;
  letter-spacing:.012em;
  padding:8px 11px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 4px 10px rgba(4,20,38,.08)!important;
}
.brand{box-shadow:none!important}
.brand::before,.brand::after{display:none!important}

/* WhatsApp: esfera suspendida, con cuerpo y reflejo */
.wa-premium,.floatbar a[href*="wa.me"],a[href*="wa.me"].floating-whatsapp{
  border-radius:999px!important;
  box-shadow:inset 0 4px 5px rgba(255,255,255,.75),inset 0 -10px 16px rgba(0,80,34,.33),0 21px 34px rgba(2,90,40,.34),0 7px 13px rgba(4,20,38,.20)!important;
}
.wa-premium::after{
  content:"";
  position:absolute;
  width:44%;height:24%;left:22%;top:11%;
  border-radius:50%;
  background:rgba(255,255,255,.55);
  filter:blur(1px);
  pointer-events:none;
}

/* Inputs y buscadores: misma familia, menor elevación por ser herramientas */
input,select,textarea,.help-search{
  border-radius:var(--csv-radius-sm)!important;
  border:1px solid rgba(6,23,43,.13)!important;
  box-shadow:inset 0 2px 5px rgba(4,20,38,.06),0 5px 12px rgba(4,20,38,.07)!important;
}

/* Ajustes móviles: volumen perceptible sin ocupar demasiado */
@media(max-width:980px){
  header .nav{min-height:54px}
  .menu a{font-size:.80rem!important;padding:11px 13px!important;border-radius:15px!important}
  .menu-toggle{border-radius:15px!important;box-shadow:var(--csv-inset),var(--csv-shadow-1)!important}
}
@media(max-width:650px){
  a.card,a.help-card,a.service-card,a.quick-card{border-radius:22px!important}
  a.btn,button.btn{min-height:44px;font-size:.88rem}
  .section-head{margin-bottom:24px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .csv-touch,a.btn,button.btn,.menu a,.menu-toggle,.station-tab,.station-action,.contact-card[href],
  .social a,.card-actions a,.wa-open,.repsol-pill,a.card,a.help-card,a.service-card,a.service-chip,a.quick-card,
  [role="button"],[onclick]{transition:none!important}
}


/* SOURCE: csv31-objetos-flotantes.css */
/* CSV31 — Objetos flotantes: sistema inmersivo y homogéneo */
:root{
  --csv31-light-x: 34%;
  --csv31-light-y: 8%;
  --csv31-radius: 22px;
  --csv31-radius-pill: 999px;
  --csv31-lift: 7px;
  --csv31-shadow-rest:
    0 2px 2px rgba(255,255,255,.72) inset,
    0 -7px 12px rgba(6,29,55,.12) inset,
    0 10px 16px rgba(6,23,43,.13),
    0 24px 40px rgba(6,23,43,.16);
  --csv31-shadow-hover:
    0 3px 3px rgba(255,255,255,.82) inset,
    0 -9px 14px rgba(6,29,55,.13) inset,
    0 15px 22px rgba(6,23,43,.15),
    0 34px 56px rgba(6,23,43,.20);
  --csv31-shadow-press:
    0 1px 1px rgba(255,255,255,.55) inset,
    0 -3px 7px rgba(6,29,55,.18) inset,
    0 4px 7px rgba(6,23,43,.13),
    0 9px 15px rgba(6,23,43,.12);
  --csv31-ease: cubic-bezier(.2,.85,.2,1);
  --csv31-spring: cubic-bezier(.18,1.22,.34,1);
}

/* Todo objeto accionable comparte material, luz y física. */
.csv31-object{
  position:relative!important;
  isolation:isolate;
  transform:translate3d(0,0,0);
  transform-origin:center;
  overflow:visible;
  box-shadow:var(--csv31-shadow-rest)!important;
  transition:
    transform .22s var(--csv31-spring),
    box-shadow .22s var(--csv31-ease),
    filter .22s ease,
    border-color .22s ease!important;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  cursor:pointer;
}

/* Reflejo superior, como policarbonato pulido. */
.csv31-object::before{
  content:"";
  position:absolute;
  z-index:4;
  pointer-events:none;
  left:9%; right:9%; top:5%;
  height:33%;
  border-radius:inherit;
  background:
    radial-gradient(ellipse at var(--csv31-light-x) var(--csv31-light-y),rgba(255,255,255,.88),rgba(255,255,255,.26) 38%,transparent 72%),
    linear-gradient(180deg,rgba(255,255,255,.46),rgba(255,255,255,.08) 68%,transparent);
  opacity:.64;
  mix-blend-mode:screen;
}

/* Aro fino que define el espesor del objeto. */
.csv31-object::after{
  content:"";
  position:absolute;
  z-index:3;
  pointer-events:none;
  inset:1px;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.55);
  box-shadow:inset 0 0 0 1px rgba(6,23,43,.035);
}

/* El contenido queda por encima de los reflejos. */
.csv31-object > *{position:relative;z-index:5}

@media (hover:hover) and (pointer:fine){
  .csv31-object:hover{
    transform:translate3d(0,calc(var(--csv31-lift) * -1),0) scale(1.012)!important;
    box-shadow:var(--csv31-shadow-hover)!important;
    filter:saturate(1.045) brightness(1.018);
  }
}

.csv31-object:active,
.csv31-object.is-pressing{
  transform:translate3d(0,3px,0) scale(.976)!important;
  box-shadow:var(--csv31-shadow-press)!important;
  filter:saturate(.985) brightness(.99);
  transition-duration:.09s!important;
}

.csv31-object.is-releasing{
  animation:csv31-release .38s var(--csv31-spring);
}
@keyframes csv31-release{
  0%{transform:translate3d(0,3px,0) scale(.976)}
  58%{transform:translate3d(0,-3px,0) scale(1.012)}
  100%{transform:translate3d(0,0,0) scale(1)}
}

/* Botones y acciones: pieza compacta y claramente pulsable. */
:where(a.btn,button.btn,.station-action,.card-actions a,.social a,.wa-open,
       a[href^="tel:"],a[href^="mailto:"],a[href*="wa.me"],a[href*="maps"],
       .menu-toggle,.repsol-pill).csv31-object{
  border-radius:var(--csv31-radius-pill)!important;
  border:1px solid rgba(6,23,43,.10)!important;
}

/* Tarjetas navegables: placa suspendida completa. */
:where(a.card,a.help-card,a.service-card,a.quick-card,a.contact-card,
       a.service-chip,.csv31-card-object).csv31-object{
  border-radius:var(--csv31-radius)!important;
  overflow:hidden;
  border:1px solid rgba(6,23,43,.08)!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.99),rgba(239,244,249,.97))!important;
}

/* Los iconos accionables parecen piezas independientes encima de la placa. */
.csv31-object :where(.icon,.ico,i,svg,img.icon){
  filter:drop-shadow(0 7px 8px rgba(6,23,43,.21));
  transition:transform .22s var(--csv31-spring),filter .22s ease;
}
@media (hover:hover) and (pointer:fine){
  .csv31-object:hover :where(.icon,.ico,i,svg,img.icon){
    transform:translateY(-2px) scale(1.035);
    filter:drop-shadow(0 10px 11px rgba(6,23,43,.24));
  }
}

/* WhatsApp conserva su identidad pero gana cuerpo esférico. */
:where(.wa-premium,.floating-whatsapp,.floatbar a[href*="wa.me"],a[href*="wa.me"]).csv31-object{
  border-radius:50%!important;
  box-shadow:
    inset 0 5px 7px rgba(255,255,255,.78),
    inset 0 -12px 18px rgba(0,88,39,.35),
    0 12px 17px rgba(0,108,48,.28),
    0 27px 44px rgba(3,83,39,.35)!important;
}
:where(.wa-premium,.floating-whatsapp,.floatbar a[href*="wa.me"],a[href*="wa.me"]).csv31-object::before{
  left:22%;right:28%;top:10%;height:29%;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(255,255,255,.88),rgba(255,255,255,.10) 72%);
  opacity:.78;
}

/* El selector azul sigue siendo el patrón de máxima flotación. */
.station-tab.active.csv31-object,
.station-tab[aria-selected="true"].csv31-object{
  --csv31-lift:10px;
  z-index:20!important;
  overflow:visible!important;
  box-shadow:
    inset 0 5px 7px rgba(255,255,255,.76),
    inset 0 -12px 18px rgba(0,40,128,.36),
    0 12px 17px rgba(8,64,170,.25),
    0 29px 44px rgba(4,37,91,.29)!important;
}

/* Acciones sobre fondos oscuros: halo local para separarlas del plano. */
:is(.hero,.dark,.station-visual,.promo-card) .csv31-object{
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.08));
}

/* La información no accionable permanece en el fondo. */
.csv31-informational{
  box-shadow:none!important;
  transform:none!important;
  filter:none!important;
}

/* Foco accesible sin romper el material. */
.csv31-object:focus-visible{
  outline:3px solid rgba(239,125,0,.72)!important;
  outline-offset:5px!important;
}

/* En móvil el volumen se conserva, pero sin saltos exagerados. */
@media(max-width:650px){
  :root{--csv31-lift:5px}
  .csv31-object{transition-duration:.18s!important}
  .csv31-object:active,.csv31-object.is-pressing{
    transform:translate3d(0,2px,0) scale(.972)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .csv31-object{transition:none!important;animation:none!important}
  .csv31-object:hover,.csv31-object:active,.csv31-object.is-pressing,.csv31-object.is-releasing{
    transform:none!important;
  }
}


/* SOURCE: csv33-controles-elevados.css */
/* CSV33 — Controles elevados: los elementos accionables se distinguen de la información */
:root{
  --csv33-radius:999px;
  --csv33-ease:cubic-bezier(.2,.82,.22,1);
  --csv33-spring:cubic-bezier(.2,1.35,.35,1);
  --csv33-rest:
    inset 0 2px 1px rgba(255,255,255,.82),
    inset 0 -5px 8px rgba(4,25,48,.15),
    0 5px 7px rgba(4,25,48,.11),
    0 13px 20px rgba(4,25,48,.18);
  --csv33-hover:
    inset 0 3px 2px rgba(255,255,255,.88),
    inset 0 -6px 10px rgba(4,25,48,.16),
    0 8px 10px rgba(4,25,48,.12),
    0 20px 30px rgba(4,25,48,.22);
  --csv33-press:
    inset 0 3px 8px rgba(4,25,48,.22),
    inset 0 -1px 1px rgba(255,255,255,.42),
    0 2px 3px rgba(4,25,48,.10),
    0 6px 9px rgba(4,25,48,.12);
}

/* Únicamente los controles accionables adquieren cuerpo y elevación. */
.csv33-action{
  position:relative!important;
  isolation:isolate;
  border-radius:var(--csv33-radius)!important;
  box-shadow:var(--csv33-rest)!important;
  transform:translate3d(0,-2px,0);
  transform-origin:center;
  transition:transform .2s var(--csv33-spring),box-shadow .2s var(--csv33-ease),filter .2s ease!important;
  -webkit-tap-highlight-color:transparent;
  cursor:pointer;
}

/* Luz superior y canto inferior: la pieza parece fabricada, no dibujada. */
.csv33-action::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:1!important;
  pointer-events:none!important;
  left:8%!important;
  right:8%!important;
  top:4%!important;
  height:34%!important;
  border-radius:inherit!important;
  background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.18) 58%,transparent)!important;
  opacity:.62!important;
  mix-blend-mode:screen;
}
.csv33-action::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:1!important;
  pointer-events:none!important;
  inset:1px!important;
  border-radius:inherit!important;
  border:1px solid rgba(255,255,255,.48)!important;
  box-shadow:inset 0 -1px 0 rgba(4,25,48,.10)!important;
  background:none!important;
}
.csv33-action > *{position:relative;z-index:2}

@media (hover:hover) and (pointer:fine){
  .csv33-action:hover{
    transform:translate3d(0,-7px,0) scale(1.012)!important;
    box-shadow:var(--csv33-hover)!important;
    filter:saturate(1.035) brightness(1.018);
  }
}

.csv33-action:active,
.csv33-action.csv33-pressed{
  transform:translate3d(0,2px,0) scale(.976)!important;
  box-shadow:var(--csv33-press)!important;
  filter:brightness(.985) saturate(.99);
  transition-duration:.08s!important;
}
.csv33-action.csv33-release{animation:csv33-release .36s var(--csv33-spring)}
@keyframes csv33-release{
  0%{transform:translate3d(0,2px,0) scale(.976)}
  60%{transform:translate3d(0,-4px,0) scale(1.012)}
  100%{transform:translate3d(0,-2px,0) scale(1)}
}

/* Las tarjetas completas que son enlaces conservan su geometría, pero flotan como placas. */
.csv33-action.csv33-card{
  border-radius:22px!important;
  overflow:hidden;
}

/* Los selectores de estación replican el patrón de las cuatro bolitas azules. */
.station-tab.csv33-action{
  border-radius:999px!important;
  overflow:visible!important;
}
.station-tab.csv33-action[aria-selected="true"],
.station-tab.csv33-action.active{
  transform:translate3d(0,-6px,0);
  box-shadow:
    inset 0 4px 6px rgba(255,255,255,.78),
    inset 0 -10px 15px rgba(0,43,128,.34),
    0 8px 11px rgba(5,55,146,.20),
    0 20px 31px rgba(4,36,89,.28)!important;
}

/* WhatsApp queda visualmente intacto; no recibe el material CSV33. */
.wa-premium.csv33-action,
#waLauncher.csv33-action,
.floatbar .wa-premium.csv33-action,
a[href*="wa.me"].wa-premium.csv33-action{
  box-shadow:revert-layer!important;
  transform:none!important;
  filter:none!important;
}
.wa-premium.csv33-action::before,
#waLauncher.csv33-action::before,
.wa-premium.csv33-action::after,
#waLauncher.csv33-action::after{display:none!important}

/* Foco visible y preciso. */
.csv33-action:focus-visible{outline:3px solid rgba(239,125,0,.74)!important;outline-offset:5px!important}

@media(max-width:650px){
  .csv33-action{transform:translate3d(0,-1px,0)}
  .csv33-action:active,.csv33-action.csv33-pressed{transform:translate3d(0,2px,0) scale(.97)!important}
}
@media(prefers-reduced-motion:reduce){
  .csv33-action{transition:none!important;animation:none!important}
  .csv33-action:hover,.csv33-action:active,.csv33-action.csv33-pressed,.csv33-action.csv33-release{transform:none!important}
}

/* CSV34 — ajuste de profundidad y contraste de controles */
.csv33-action{
  transform:translate3d(0,-4px,0);
  box-shadow:
    inset 0 2px 1px rgba(255,255,255,.86),
    inset 0 -6px 10px rgba(4,25,48,.18),
    0 7px 9px rgba(4,25,48,.13),
    0 17px 27px rgba(4,25,48,.22)!important;
}
.csv33-action.csv33-on-dark,
.csv33-action.csv33-on-dark:link,
.csv33-action.csv33-on-dark:visited,
.csv33-action.csv33-on-dark:hover,
.csv33-action.csv33-on-dark:focus,
.csv33-action.csv33-on-dark:active{
  color:#fff!important;
  text-shadow:0 1px 2px rgba(0,20,52,.35)!important;
}
.csv33-action.csv33-on-dark *,
.csv33-action.csv33-on-dark svg{
  color:#fff!important;
  fill:currentColor;
}
.csv33-action.csv33-on-light,
.csv33-action.csv33-on-light:link,
.csv33-action.csv33-on-light:visited{
  color:#083861!important;
}
.csv33-action.csv33-on-light *{color:inherit!important}

/* Clases semánticas conocidas: contraste inequívoco. */
.btn.dark.csv33-action,
.location.csv33-action,
.hero-station-nav a.csv33-action,
.station-actions a.location.csv33-action,
.menu a.csv33-action[aria-current="page"]{
  color:#fff!important;
}
.btn.outline.csv33-action,
.call.csv33-action,
.menu-toggle.csv33-action{
  color:#083861!important;
}

@media(max-width:650px){
  .csv33-action{transform:translate3d(0,-3px,0)}
}


/* SOURCE: csv36-profundidad-espacial.css */
/* CSV36 — Profundidad espacial premium
   Capas: atmósfera -> panel -> placa -> control -> primer plano.
   Refinamiento visual independiente; no altera navegación ni contenido. */
:root{
  --csv36-light-x:38%;
  --csv36-light-y:8%;
  --csv36-deep:#03101f;
  --csv36-shadow:4,18,36;
  --csv36-ease:cubic-bezier(.2,.82,.22,1);
}

/* El escenario se percibe detrás del cristal. */
body{background:#f4f6f8;}
.hero{
  perspective:1500px;
  perspective-origin:50% 34%;
  background:#07182a;
}
.hero::before{
  filter:saturate(.92) contrast(1.05) brightness(.76);
  transform:scale(1.075)!important;
}
.hero::after{height:170px!important;}
.hero .wrap::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:5% -8% 6%;
  pointer-events:none;
  background:
    radial-gradient(ellipse at var(--csv36-light-x) var(--csv36-light-y),rgba(255,255,255,.13),transparent 38%),
    radial-gradient(ellipse at 78% 52%,rgba(24,91,170,.19),transparent 44%),
    linear-gradient(180deg,rgba(3,12,24,.02),rgba(3,12,24,.42));
  filter:blur(18px);
  transform:translateZ(-90px) scale(1.08);
}

/* Plano intermedio: la copia queda dentro del escenario, no pegada al fondo. */
.hero-copy{
  position:relative;
  z-index:3;
  transform:translateZ(34px);
  text-shadow:0 2px 18px rgba(0,0,0,.17);
}
.hero-copy::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-34px -36px -30px -42px;
  border-radius:42px;
  background:linear-gradient(135deg,rgba(5,24,45,.38),rgba(5,24,45,.08));
  border:1px solid rgba(255,255,255,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 30px 80px rgba(0,0,0,.12);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
  opacity:.7;
}

/* Vitrina principal: marco, cristal, cámara de aire y objeto al fondo. */
.hero-card.csv-brand-plaque{
  position:relative!important;
  z-index:4;
  width:min(100%,560px);
  justify-self:end;
  padding:13px!important;
  overflow:visible!important;
  border-radius:40px!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.34),rgba(255,255,255,.07) 42%,rgba(2,14,28,.19)),
    rgba(7,27,48,.32)!important;
  border:1px solid rgba(255,255,255,.32)!important;
  box-shadow:
    inset 0 2px 1px rgba(255,255,255,.54),
    inset 0 -2px 4px rgba(1,12,25,.28),
    0 3px 0 rgba(255,255,255,.08),
    0 18px 28px rgba(0,0,0,.22),
    0 55px 100px rgba(0,0,0,.42)!important;
  transform:perspective(1250px) rotateY(-4deg) rotateX(1.7deg) translateZ(58px)!important;
  transform-style:preserve-3d;
  transition:transform .65s var(--csv36-ease),box-shadow .65s var(--csv36-ease)!important;
}
.hero-card.csv-brand-plaque::before{
  content:""!important;
  position:absolute!important;
  z-index:8!important;
  inset:2px!important;
  border-radius:37px!important;
  pointer-events:none!important;
  background:
    linear-gradient(117deg,rgba(255,255,255,.28),transparent 21% 74%,rgba(255,255,255,.07)),
    radial-gradient(ellipse at 26% 5%,rgba(255,255,255,.24),transparent 31%)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  box-shadow:inset 0 0 24px rgba(255,255,255,.06)!important;
  opacity:1!important;
  animation:none!important;
}
.hero-card.csv-brand-plaque::after{
  content:""!important;
  position:absolute!important;
  z-index:-1!important;
  inset:9% 5% -9% 9%!important;
  border-radius:40px!important;
  pointer-events:none!important;
  background:rgba(0,0,0,.32)!important;
  filter:blur(22px)!important;
  transform:translate3d(18px,26px,-30px)!important;
  opacity:.75!important;
  animation:none!important;
}
.csv-logo-stage{
  position:relative!important;
  display:block!important;
  width:100%!important;
  aspect-ratio:1/1!important;
  overflow:hidden!important;
  border-radius:29px!important;
  background:#0a1724!important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.14),
    inset 0 18px 34px rgba(255,255,255,.06),
    inset 0 -28px 46px rgba(0,0,0,.25)!important;
  transform:translateZ(-16px);
}
.csv-logo-stage > .csv-logo-main{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  aspect-ratio:1/1!important;
  object-fit:contain!important;
  object-position:center!important;
  border-radius:29px!important;
  filter:saturate(.98) contrast(1.035) brightness(.98)!important;
  transform:scale(.985) translateZ(-8px)!important;
}
.hero-proof{
  position:relative;
  z-index:9;
  margin-top:10px!important;
  border-radius:20px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.055))!important;
  border:1px solid rgba(255,255,255,.14)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 10px 22px rgba(0,0,0,.18)!important;
  transform:translateZ(22px);
}

/* Profundidad por capas en el contenido. */
main>section:not(.hero){position:relative;isolation:isolate;}
main>section:not(.hero)::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:8% 0;
  pointer-events:none;
  background:radial-gradient(ellipse at 50% 45%,rgba(24,68,118,.045),transparent 65%);
}
.card,.service-card,.help-card,.quick-card,.contact-card,.alliance-card,.station-card,.promo,.intro-box,.cta,.form-shell{
  transform-style:preserve-3d;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.82),
    0 2px 3px rgba(var(--csv36-shadow),.05),
    0 13px 28px rgba(var(--csv36-shadow),.10),
    0 34px 62px rgba(var(--csv36-shadow),.07)!important;
}

/* Los objetos accionables quedan delante de las placas. */
.csv33-action{
  transform:perspective(750px) rotateX(1.8deg) translate3d(0,-7px,24px)!important;
  transform-style:preserve-3d;
  border-top-color:rgba(255,255,255,.72)!important;
  border-bottom-color:rgba(3,26,54,.3)!important;
  box-shadow:
    inset 0 3px 2px rgba(255,255,255,.9),
    inset 0 -8px 12px rgba(3,25,52,.22),
    0 2px 0 rgba(255,255,255,.36),
    0 8px 0 rgba(4,31,66,.13),
    0 16px 22px rgba(4,25,48,.19),
    0 34px 42px rgba(4,25,48,.16)!important;
}
.csv33-action::before{
  top:3%!important;
  height:42%!important;
  opacity:.72!important;
  background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(255,255,255,.25) 52%,transparent)!important;
}
.csv33-action::after{
  inset:1px 1px 3px!important;
  border:1px solid rgba(255,255,255,.52)!important;
  box-shadow:inset 0 -2px 1px rgba(2,25,54,.14)!important;
}
@media(hover:hover) and (pointer:fine){
  .csv33-action:hover{
    transform:perspective(750px) rotateX(0deg) translate3d(0,-12px,34px) scale(1.018)!important;
    box-shadow:
      inset 0 3px 2px rgba(255,255,255,.94),
      inset 0 -9px 14px rgba(3,25,52,.21),
      0 3px 0 rgba(255,255,255,.38),
      0 9px 0 rgba(4,31,66,.12),
      0 22px 28px rgba(4,25,48,.2),
      0 46px 55px rgba(4,25,48,.19)!important;
  }
  .hero-card.csv-brand-plaque:hover{
    transform:perspective(1250px) rotateY(-1deg) rotateX(.4deg) translate3d(0,-8px,72px)!important;
    box-shadow:inset 0 2px 1px rgba(255,255,255,.58),inset 0 -2px 4px rgba(1,12,25,.25),0 22px 34px rgba(0,0,0,.23),0 68px 115px rgba(0,0,0,.45)!important;
  }
}
.csv33-action:active,.csv33-action.csv33-pressed{
  transform:perspective(750px) rotateX(-1deg) translate3d(0,1px,8px) scale(.972)!important;
  box-shadow:
    inset 0 5px 11px rgba(3,25,52,.26),
    inset 0 -1px 1px rgba(255,255,255,.48),
    0 2px 0 rgba(4,31,66,.11),
    0 7px 12px rgba(4,25,48,.14)!important;
}

/* WhatsApp conserva exactamente su material y comportamiento. */
.wa-premium,.wa-premium:hover,.wa-premium:active,#waLauncher,#waLauncher:hover,#waLauncher:active{
  transform:none!important;
}

/* Pantallas pequeñas: profundidad visible, perspectiva controlada y sin recortes. */
@media(max-width:980px){
  .hero{perspective:1100px;}
  .hero-copy{transform:none;}
  .hero-copy::after{inset:-24px -18px -22px;border-radius:30px;}
  .hero-card.csv-brand-plaque{
    justify-self:center;
    width:min(100%,540px);
    transform:perspective(1000px) rotateX(1.2deg) translate3d(0,0,26px)!important;
  }
}
@media(max-width:650px){
  .hero .wrap{padding-bottom:132px!important;}
  .hero-copy::after{opacity:.48;filter:none;-webkit-backdrop-filter:none;backdrop-filter:none;}
  .hero-card.csv-brand-plaque{padding:9px!important;border-radius:29px!important;}
  .csv-logo-stage,.csv-logo-stage>.csv-logo-main{border-radius:21px!important;}
  .csv33-action{
    transform:perspective(650px) rotateX(1.5deg) translate3d(0,-5px,18px)!important;
    box-shadow:inset 0 2px 1px rgba(255,255,255,.88),inset 0 -7px 10px rgba(3,25,52,.2),0 6px 0 rgba(4,31,66,.12),0 13px 18px rgba(4,25,48,.17),0 25px 30px rgba(4,25,48,.13)!important;
  }
  .csv33-action:active,.csv33-action.csv33-pressed{transform:perspective(650px) translate3d(0,1px,5px) scale(.97)!important;}
}
@media(prefers-reduced-motion:reduce){
  .hero-card.csv-brand-plaque,.csv33-action{transition:none!important;}
  .hero-card.csv-brand-plaque:hover{transform:none!important;}
}


/* SOURCE: csv38-correccion-botones.css */
/* CSV38 — Corrección quirúrgica de botones y contraste.
   Regla: el color se decide por la función visual del control, no mediante
   detección automática del gradiente, evitando falsos positivos por reflejos. */

/* Promoción Repsol: conserva inequívocamente el material naranja. */
#promocion .btn,
.promo .btn,
.promotion .btn,
.promo-card .btn{
  background:
    radial-gradient(circle at 28% 12%,#ffd37a 0 7%,transparent 22%),
    linear-gradient(160deg,#ff9a18,#ff7600 55%,#d84a00)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border-color:rgba(255,255,255,.72)!important;
  text-shadow:0 1px 2px rgba(117,43,0,.34)!important;
}
#promocion .btn *,
.promo .btn *,
.promotion .btn *,
.promo-card .btn *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Explorador de estaciones: tres materiales y contrastes fijos. */
.station-actions .btn.dark,
.station-actions a[data-station-phone-link]{
  background:
    radial-gradient(circle at 27% 10%,rgba(194,225,255,.82) 0 5%,transparent 23%),
    linear-gradient(180deg,#145b95,#06365f 64%,#032846)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:0 1px 2px rgba(0,24,58,.44)!important;
}
.station-actions .btn.dark *,
.station-actions a[data-station-phone-link] *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

.station-actions .btn.outline,
.station-actions a[data-station-route]{
  background:linear-gradient(180deg,#fff,#eef3f7)!important;
  color:#083861!important;
  -webkit-text-fill-color:#083861!important;
  text-shadow:none!important;
  border-color:rgba(8,56,97,.14)!important;
}
.station-actions .btn.outline *,
.station-actions a[data-station-route] *{
  color:#083861!important;
  -webkit-text-fill-color:#083861!important;
}

.station-actions .btn:not(.dark):not(.outline),
.station-actions a[data-station-page]{
  background:
    radial-gradient(circle at 28% 12%,#ffd37a 0 7%,transparent 22%),
    linear-gradient(160deg,#ff9a18,#ff7600 55%,#d84a00)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:0 1px 2px rgba(117,43,0,.34)!important;
  border-color:rgba(255,255,255,.72)!important;
}
.station-actions .btn:not(.dark):not(.outline) *,
.station-actions a[data-station-page] *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Clases semánticas generales: sin alterar fondos ya correctos. */
.btn.dark,
a.location,
.hero-station-nav a,
.nav-wa{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
.btn.dark *,
a.location *,
.hero-station-nav a *,
.nav-wa *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

.btn.outline,
.btn.alt{
  color:#083861!important;
  -webkit-text-fill-color:#083861!important;
}
.btn.outline *,
.btn.alt *{
  color:#083861!important;
  -webkit-text-fill-color:#083861!important;
}

/* El estado visitado nunca cambia el contraste del botón. */
#promocion .btn:visited,
.station-actions .btn.dark:visited,
.station-actions a[data-station-phone-link]:visited,
.station-actions .btn:not(.dark):not(.outline):visited,
.station-actions a[data-station-page]:visited{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
.station-actions .btn.outline:visited,
.station-actions a[data-station-route]:visited{
  color:#083861!important;
  -webkit-text-fill-color:#083861!important;
}


/* SOURCE: csv39-acabado-final.css */
/* CSV39 — Acabado final y salvaguardas de consistencia.
   Capa conservadora: no altera estructura ni lógica. */

:root{
  --csv39-navy:#073b66;
  --csv39-orange-1:#ff9f1c;
  --csv39-orange-2:#ff7600;
  --csv39-orange-3:#d94c00;
}

/* Legibilidad estable en todos los controles táctiles. */
a.btn,button.btn{
  min-height:48px;
  line-height:1.18;
  text-align:center;
  text-wrap:balance;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Controles claros: tinta azul siempre visible, incluidos descendientes. */
.btn.outline,.btn.alt{
  color:var(--csv39-navy)!important;
  -webkit-text-fill-color:var(--csv39-navy)!important;
}
.btn.outline *,.btn.alt *{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}

/* Controles oscuros: texto blanco inequívoco. */
.btn.dark,.nav-wa,a.location,.hero-station-nav a{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
.btn.dark *,.nav-wa *,a.location *,.hero-station-nav a *{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}

/* CTA oficial de promoción: material naranja premium, nunca blanco. */
#promocion a.btn,
#promocion button.btn,
.promo a.btn,
.promo button.btn{
  background:
    radial-gradient(ellipse at 28% 5%,rgba(255,240,185,.92) 0 5%,rgba(255,202,100,.45) 12%,transparent 27%),
    linear-gradient(160deg,var(--csv39-orange-1),var(--csv39-orange-2) 55%,var(--csv39-orange-3))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border-color:rgba(255,255,255,.74)!important;
  text-shadow:0 1px 2px rgba(111,36,0,.38)!important;
}
#promocion a.btn *,#promocion button.btn *,
.promo a.btn *,.promo button.btn *{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}

/* Explorador: materiales semánticos fijos, inmunes a :visited y herencias. */
.station-actions [data-station-phone-link],
.station-actions .btn.dark{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
.station-actions [data-station-route],
.station-actions .btn.outline{
  background:linear-gradient(180deg,#fff 0%,#f5f8fb 52%,#e7eef4 100%)!important;
  color:var(--csv39-navy)!important;
  -webkit-text-fill-color:var(--csv39-navy)!important;
  text-shadow:none!important;
}
.station-actions [data-station-page],
.station-actions .btn:not(.dark):not(.outline){
  background:
    radial-gradient(ellipse at 28% 5%,rgba(255,240,185,.92) 0 5%,rgba(255,202,100,.45) 12%,transparent 27%),
    linear-gradient(160deg,var(--csv39-orange-1),var(--csv39-orange-2) 55%,var(--csv39-orange-3))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border-color:rgba(255,255,255,.74)!important;
  text-shadow:0 1px 2px rgba(111,36,0,.38)!important;
}
.station-actions a:visited,
#promocion a.btn:visited{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}

/* Foco accesible y elegante sin cambiar el material del botón. */
:is(a,button,input,select,textarea):focus-visible{
  outline:3px solid rgba(255,150,25,.92);
  outline-offset:4px;
}

/* Evita recortes de texto en móvil y mantiene respiración óptica. */
@media(max-width:650px){
  .station-actions .btn{
    padding-inline:16px;
    min-height:54px;
    white-space:normal;
  }
  .station-actions [data-station-phone-link]{
    font-variant-numeric:tabular-nums;
  }
  #promocion .btn,.promo .btn{
    width:min(100%,420px);
    padding-inline:18px;
  }
}

/* Movimiento reducido: acabado intacto sin desplazamientos innecesarios. */
@media(prefers-reduced-motion:reduce){
  .btn,.card,.station-tab{transition:none!important}
}


/* SOURCE: csv40-master-consolidacion.css */
/* CSV40 MASTER — Consolidación definitiva del sistema táctil.
   Fuente única de verdad para materiales, contraste y estados de botones. */
:root{
  --csv40-blue-top:#17639f;
  --csv40-blue-mid:#084979;
  --csv40-blue-bottom:#042b4d;
  --csv40-blue-ink:#073b66;
  --csv40-orange-top:#ffad20;
  --csv40-orange-mid:#ff7600;
  --csv40-orange-bottom:#d94b00;
  --csv40-light-top:#ffffff;
  --csv40-light-mid:#f7fafc;
  --csv40-light-bottom:#e5edf3;
}

/* Geometría y material común. */
a.btn,button.btn{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:50px;
  padding:13px 22px;
  border-radius:999px!important;
  border:1px solid rgba(255,255,255,.76)!important;
  font-weight:800;
  line-height:1.18;
  letter-spacing:-.01em;
  text-align:center;
  text-wrap:balance;
  box-shadow:
    inset 0 2px 2px rgba(255,255,255,.84),
    inset 0 -5px 8px rgba(46,28,8,.18),
    0 3px 0 rgba(6,23,43,.15),
    0 13px 25px rgba(6,23,43,.17),
    0 28px 52px rgba(6,23,43,.08)!important;
}
a.btn::before,button.btn::before{
  content:"";
  position:absolute;
  z-index:-1;
  pointer-events:none;
  left:5%;
  top:2px;
  width:43%;
  height:42%;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.18) 55%,transparent);
  filter:blur(.15px);
  opacity:.82;
}

/* MATERIAL NARANJA — CTA principal y promoción. */
a.btn:not(.alt):not(.outline):not(.dark):not(.nav-wa),
button.btn:not(.alt):not(.outline):not(.dark):not(.nav-wa),
#promocion .btn,.promo .btn,.promotion .btn,.promo-card .btn,
.station-actions [data-station-page]{
  background:
    radial-gradient(ellipse at 27% 7%,rgba(255,239,178,.90) 0 5%,rgba(255,196,72,.42) 13%,transparent 28%),
    linear-gradient(160deg,var(--csv40-orange-top),var(--csv40-orange-mid) 56%,var(--csv40-orange-bottom))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:0 1px 2px rgba(102,34,0,.40)!important;
}

/* MATERIAL AZUL — acciones secundarias oscuras. */
a.btn.dark,button.btn.dark,
.station-actions [data-station-phone-link],
.services-section .actions a.btn.alt{
  background:
    radial-gradient(ellipse at 27% 6%,rgba(203,231,255,.84) 0 5%,rgba(111,181,235,.34) 14%,transparent 29%),
    linear-gradient(180deg,var(--csv40-blue-top),var(--csv40-blue-mid) 58%,var(--csv40-blue-bottom))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:0 1px 2px rgba(0,25,52,.48)!important;
  border-color:rgba(190,221,246,.76)!important;
}

/* MATERIAL CLARO — acciones alternativas y rutas. */
a.btn.alt,button.btn.alt,
a.btn.outline,button.btn.outline,
.station-actions [data-station-route]{
  background:linear-gradient(180deg,var(--csv40-light-top) 0%,var(--csv40-light-mid) 52%,var(--csv40-light-bottom) 100%)!important;
  color:var(--csv40-blue-ink)!important;
  -webkit-text-fill-color:var(--csv40-blue-ink)!important;
  text-shadow:none!important;
  border-color:rgba(7,59,102,.15)!important;
  box-shadow:
    inset 0 2px 2px rgba(255,255,255,.98),
    inset 0 -4px 7px rgba(7,59,102,.08),
    0 3px 0 rgba(7,59,102,.10),
    0 13px 25px rgba(6,23,43,.14),
    0 27px 48px rgba(6,23,43,.07)!important;
}

/* La sección de servicios utiliza azul para sus dos accesos secundarios. */
.services-section .actions a.btn.alt{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Descendientes, visitados y estados conservan el contraste del material. */
a.btn *,button.btn *{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}
a.btn:link,a.btn:visited,a.btn:hover,a.btn:active,
button.btn:hover,button.btn:active{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}
a.btn:hover,button.btn:hover{
  transform:translateY(-2px) scale(1.008)!important;
  filter:saturate(1.035) contrast(1.01)!important;
}
a.btn:active,button.btn:active{
  transform:translateY(2px) scale(.985)!important;
  box-shadow:
    inset 0 5px 10px rgba(6,23,43,.20),
    inset 0 1px 1px rgba(255,255,255,.48),
    0 4px 9px rgba(6,23,43,.14)!important;
}
a.btn:focus-visible,button.btn:focus-visible{
  outline:3px solid rgba(255,154,28,.95)!important;
  outline-offset:4px!important;
}

/* WhatsApp mantiene su identidad visual existente. */
a.btn.nav-wa{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

@media(max-width:650px){
  a.btn,button.btn{min-height:54px;padding-inline:17px;white-space:normal}
  .services-section .actions{gap:14px!important}
}
@media(prefers-reduced-motion:reduce){
  a.btn,button.btn{transition:none!important}
}


/* SOURCE: pwa-install.css */
/* CSV44.4 · Invitación Preferente · tarjeta de visita óptica */
.csv-pwa-install{position:fixed;inset:0;z-index:2147482000;display:none;align-items:center;justify-content:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));font-family:inherit;background:rgba(3,13,24,.42);backdrop-filter:blur(22px) saturate(1.12);-webkit-backdrop-filter:blur(22px) saturate(1.12);overscroll-behavior:contain}.csv-pwa-install.is-visible{display:flex;animation:csvVipFade .28s ease both}.csv-pwa-install__card{position:relative;isolation:isolate;width:min(430px,100%);padding:28px 27px 24px;border-radius:28px;overflow:hidden;color:#f8fbff;background:linear-gradient(145deg,rgba(255,255,255,.22),rgba(255,255,255,.09) 42%,rgba(8,34,58,.44));border:1px solid rgba(255,255,255,.72);box-shadow:0 30px 78px rgba(0,0,0,.42),0 10px 26px rgba(1,20,38,.33),inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(255,255,255,.18);backdrop-filter:blur(34px) saturate(1.45);-webkit-backdrop-filter:blur(34px) saturate(1.45);transform-origin:center;animation:csvVipCard .42s cubic-bezier(.2,.8,.2,1) both}.csv-pwa-install__card::before{content:"";position:absolute;z-index:-2;inset:-30%;background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.46),transparent 24%),radial-gradient(circle at 88% 15%,rgba(255,198,74,.22),transparent 22%),linear-gradient(118deg,transparent 35%,rgba(255,255,255,.19) 48%,transparent 61%);pointer-events:none}.csv-pwa-install__card::after{content:"";position:absolute;z-index:-1;inset:6px;border-radius:22px;border:1px solid rgba(255,215,129,.24);pointer-events:none}.csv-pwa-install__seal{display:block;width:116px;height:116px;object-fit:contain;margin:0 auto 15px;filter:drop-shadow(0 12px 18px rgba(0,0,0,.25));transition:transform .3s ease}.csv-pwa-install__eyebrow{margin:0 0 7px;text-align:center;color:#f6d78c;font-size:10.5px;font-weight:850;letter-spacing:.22em;text-transform:uppercase}.csv-pwa-install__title{margin:0 0 10px;text-align:center;color:#fff;font-size:clamp(25px,7vw,31px);line-height:1.08;letter-spacing:-.035em}.csv-pwa-install__text{max-width:335px;margin:0 auto 21px;text-align:center;color:rgba(247,251,255,.88);font-size:14.5px;line-height:1.5}.csv-pwa-install__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.csv-pwa-install__button{min-height:49px;padding:11px 16px;border-radius:999px;font:inherit;font-size:13px;font-weight:850;cursor:pointer;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}.csv-pwa-install__button:focus-visible,.csv-pwa-install__close:focus-visible{outline:3px solid #ffd472;outline-offset:3px}.csv-pwa-install__button:active{transform:translateY(1px)}.csv-pwa-install__button--primary{color:#102840;border:1px solid rgba(255,255,255,.86);background:linear-gradient(180deg,#fff2c7,#eebd56 52%,#d69522);box-shadow:0 9px 22px rgba(0,0,0,.24),inset 0 1px 0 #fff}.csv-pwa-install__button--secondary{color:#f8fbff;border:1px solid rgba(255,255,255,.36);background:rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}.csv-pwa-install__close{position:absolute;top:15px;right:15px;width:38px;height:38px;border:1px solid rgba(255,255,255,.48);border-radius:50%;background:rgba(9,31,52,.34);color:#fff;font-size:23px;line-height:1;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 6px 15px rgba(0,0,0,.18)}.csv-pwa-install__signature{margin:16px 0 0;text-align:center;color:rgba(247,251,255,.58);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.csv-pwa-install__guide{margin:2px 0 18px;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.105);border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}.csv-pwa-install__guide[hidden]{display:none}.csv-pwa-install__guide p{margin:4px 0;color:#f8fbff;font-size:13px;line-height:1.45}.csv-pwa-install__guide strong{color:#f4c65f}.csv-pwa-install__share{float:right;display:grid;place-items:center;width:35px;height:35px;margin-left:10px;border-radius:12px;color:#112d46;background:linear-gradient(180deg,#fff2c7,#e0a734);font-size:24px;font-weight:900;box-shadow:inset 0 1px 0 #fff}.csv-pwa-install__card.is-guide .csv-pwa-install__seal{width:88px;height:88px;margin-bottom:10px}.csv-pwa-install.is-closing{animation:csvVipOut .22s ease both}@keyframes csvVipFade{from{opacity:0}to{opacity:1}}@keyframes csvVipCard{from{opacity:0;transform:translateY(18px) scale(.965)}to{opacity:1;transform:none}}@keyframes csvVipOut{to{opacity:0}}
@media(max-width:470px){.csv-pwa-install{padding:calc(14px + env(safe-area-inset-top)) 14px calc(70px + env(safe-area-inset-bottom))}.csv-pwa-install__card{padding:24px 20px 21px;border-radius:25px}.csv-pwa-install__seal{width:104px;height:104px}.csv-pwa-install__actions{grid-template-columns:1fr}.csv-pwa-install__button{width:100%}.csv-pwa-install__signature{margin-top:13px}}
@media(orientation:landscape) and (max-height:560px){.csv-pwa-install{padding:max(8px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.csv-pwa-install__card{width:min(700px,calc(100vw - 28px));display:grid;grid-template-columns:165px minmax(0,1fr);grid-template-areas:"seal eyebrow" "seal title" "seal text" "seal guide" "seal actions" "seal signature";column-gap:25px;padding:20px 24px;border-radius:24px;max-height:calc(100dvh - 16px);overflow:auto}.csv-pwa-install__seal{grid-area:seal;width:145px;height:145px;margin:auto}.csv-pwa-install__eyebrow{grid-area:eyebrow;text-align:left;margin-top:3px}.csv-pwa-install__title{grid-area:title;text-align:left;margin:0;font-size:25px}.csv-pwa-install__text{grid-area:text;text-align:left;margin:2px 0 10px;max-width:none;font-size:13px}.csv-pwa-install__guide{grid-area:guide;margin:0 0 10px;padding:9px 12px}.csv-pwa-install__guide p{font-size:11.5px}.csv-pwa-install__actions{grid-area:actions}.csv-pwa-install__button{min-height:42px;padding:8px 13px;font-size:12px}.csv-pwa-install__signature{grid-area:signature;text-align:left;margin:9px 0 0}.csv-pwa-install__close{top:12px;right:12px}.csv-pwa-install__card.is-guide .csv-pwa-install__seal{width:120px;height:120px}}
@media(prefers-reduced-motion:reduce){.csv-pwa-install,.csv-pwa-install__card,.csv-pwa-install.is-closing{animation:none!important}.csv-pwa-install__button,.csv-pwa-install__seal{transition:none!important}}@media print{.csv-pwa-install{display:none!important}}
/* Corrección del artefacto visual de Configurar cookies en iOS */
footer .cookie-settings-link,footer button.cookie-settings-link,footer a.cookie-settings-link{-webkit-appearance:none!important;appearance:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;outline:none;text-decoration:none!important;-webkit-tap-highlight-color:transparent!important;max-width:max-content!important;overflow:visible!important;padding-inline:0!important}
footer .cookie-settings-link::before,footer .cookie-settings-link::after{content:none!important;display:none!important}
footer .cookie-settings-link:focus-visible{outline:2px solid #ffd166!important;outline-offset:4px!important}


/* SOURCE: csv44-8-objetos-editorial.css */
/* CSV44.8 · Sistema editorial y objetos táctiles premium */
:root{
  --csv-object-radius:18px;
  --csv-object-shadow:0 14px 26px rgba(5,25,49,.20),0 4px 8px rgba(5,25,49,.12),inset 0 1px 0 rgba(255,255,255,.92),inset 0 -5px 12px rgba(7,43,78,.08);
  --csv-object-shadow-hover:0 20px 36px rgba(5,25,49,.24),0 7px 13px rgba(5,25,49,.13),inset 0 1px 0 rgba(255,255,255,.96),inset 0 -6px 14px rgba(7,43,78,.10);
  --csv-object-blue:#083a6a;
  --csv-object-ink:#06172b;
}
.csv-object{
  position:relative!important; isolation:isolate; overflow:hidden;
  display:inline-flex!important; align-items:center; justify-content:center; gap:.58rem;
  min-height:46px; padding:.72rem 1rem!important; border-radius:var(--csv-object-radius)!important;
  border:1px solid rgba(255,255,255,.88)!important;
  background:linear-gradient(155deg,#fff 0%,#f7fbff 43%,#e8f1f8 100%)!important;
  color:var(--csv-object-ink)!important; font-weight:850!important; letter-spacing:-.01em;
  box-shadow:var(--csv-object-shadow)!important;
  transform:translate3d(0,0,0); transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease,filter .18s ease!important;
  -webkit-tap-highlight-color:transparent;
}
.csv-object::before{
  content:""; position:absolute; z-index:-1; inset:1px 2px auto; height:48%; border-radius:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.12)); pointer-events:none;
}
.csv-object::after{
  content:""; position:absolute; inset:-80% auto -80% -34%; width:24%; z-index:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent); transform:skewX(-18deg);
  transition:left .55s ease; pointer-events:none;
}
.csv-object:hover{transform:translateY(-3px) scale(1.012);box-shadow:var(--csv-object-shadow-hover)!important;filter:saturate(1.04)}
.csv-object:hover::after{left:118%}
.csv-object:active,.csv-object.is-pressed{transform:translateY(2px) scale(.985)!important;box-shadow:0 5px 10px rgba(5,25,49,.18),inset 0 3px 7px rgba(5,25,49,.12),inset 0 -1px 0 rgba(255,255,255,.8)!important}
.csv-object:focus-visible{outline:3px solid rgba(25,118,210,.38)!important;outline-offset:3px!important}
.csv-object__icon{position:relative;z-index:1;flex:0 0 auto;width:1.48rem;height:1.48rem;display:grid;place-items:center;border-radius:10px;color:#fff;background:linear-gradient(145deg,#1574bd,#073763);box-shadow:inset 0 1px 1px rgba(255,255,255,.65),inset 0 -4px 7px rgba(0,0,0,.2),0 5px 10px rgba(4,47,84,.25)}
.csv-object__icon svg{width:.98rem;height:.98rem;display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.18))}
.csv-object__label{position:relative;z-index:1;line-height:1.12}
.csv-object--call .csv-object__icon{background:linear-gradient(145deg,#3aa5ff,#075ca5)}
.csv-object--route .csv-object__icon{background:linear-gradient(145deg,#68b9ff,#1264ab)}
.csv-object--whatsapp{background:linear-gradient(155deg,#f4fff7,#e8f8ed)!important;border-color:rgba(74,218,127,.65)!important}
.csv-object--whatsapp .csv-object__icon{background:radial-gradient(circle at 30% 22%,#67f397,#25d366 48%,#0d9e46 100%)}
.csv-object--emergency{background:linear-gradient(155deg,#fff,#fff0f1)!important;border-color:rgba(227,38,54,.26)!important}
.csv-object--emergency .csv-object__icon{background:linear-gradient(145deg,#ff6673,#be1022)}
.csv-object--official .csv-object__icon{background:linear-gradient(145deg,#d1a34e,#7c5419)}
.csv-object--brand img,.csv-object--official img{position:relative;z-index:1;max-height:28px;width:auto;object-fit:contain}
.csv-editorial-kicker{font-size:.78rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:#55718a}
@media(max-width:640px){.csv-object{min-height:48px;padding:.7rem .88rem!important}.csv-object__label{font-size:.91rem}.csv-object__icon{width:1.42rem;height:1.42rem}}
@media(prefers-reduced-motion:reduce){.csv-object,.csv-object::after{transition:none!important}.csv-object:hover{transform:none}}


/* SOURCE: csv45-refinamiento.css */
/* CSV45 · refinamiento visual, menos lectura y acciones fiables */
:root{--csv45-navy:#032f53;--csv45-ink:#06172b;--csv45-blue:#0877b9}
.csv45-brand-object{position:relative;isolation:isolate;overflow:hidden;box-shadow:0 18px 34px rgba(2,36,63,.20),0 5px 10px rgba(2,36,63,.10),inset 0 2px 1px rgba(255,255,255,.95),inset 0 -4px 9px rgba(3,56,91,.10)!important;border:1px solid rgba(255,255,255,.9)!important;background:linear-gradient(145deg,#fff 0%,#f8fbff 42%,#dfeaf4 100%)!important}
.csv45-brand-object:before{content:"";position:absolute;z-index:-1;left:5%;right:5%;top:2px;height:43%;border-radius:999px 999px 46% 46%;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.15));pointer-events:none}
.csv45-brand-object:after{content:"";position:absolute;inset:auto 12% 7px;height:9px;border-radius:50%;background:rgba(0,42,75,.13);filter:blur(8px);pointer-events:none}
.csv45-map-mark,.csv45-share-mark{width:48px;height:48px;display:block;filter:drop-shadow(0 8px 8px rgba(2,38,66,.20))}
.csv-object--route .csv-object__icon{background:linear-gradient(145deg,#fff,#e8f1f8)!important;box-shadow:0 9px 18px rgba(0,44,78,.18),inset 0 2px 2px #fff!important}
.csv-object--route .csv-object__icon svg{display:none!important}
.csv-object--route .csv-object__icon:after{content:"";display:block;width:40px;height:40px;background:url('/assets/google-maps-premium.svg?v=45') center/contain no-repeat}
/* Menos palabras: marcas y acciones visuales */
.csv-contact-brand__text b{font-size:1.13rem}.csv-contact-brand__text span{font-size:.82rem;color:#526477}
.csv-contact-brand[data-csv-share] .csv-contact-brand__text span{display:none}
.csv45-email-label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
/* Payment emblems with stronger luxury composition */
.payment.csv-brand-payment{min-height:180px!important;border-radius:30px!important;box-shadow:0 22px 42px rgba(2,35,62,.17),0 7px 14px rgba(2,35,62,.08),inset 0 2px 1px #fff,inset 0 -5px 12px rgba(5,64,103,.08)!important}
.csv-payment-logo{filter:drop-shadow(0 10px 10px rgba(2,39,67,.16))}
.csv-payment-logo--brand{padding:8px!important;background:linear-gradient(145deg,#fff,#e7eef5)!important;border:1px solid rgba(255,255,255,.95);box-shadow:0 12px 24px rgba(3,35,61,.20),inset 0 2px 2px #fff!important}
/* Share sheet */
.csv45-share-backdrop{position:fixed;inset:0;z-index:100000;background:rgba(0,17,31,.48);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;align-items:end;opacity:0;visibility:hidden;transition:.22s ease}
.csv45-share-backdrop.is-open{opacity:1;visibility:visible}
.csv45-share-sheet{width:min(620px,calc(100% - 18px));margin:0 auto 10px;padding:18px;border-radius:32px;background:linear-gradient(155deg,rgba(255,255,255,.99),rgba(226,238,248,.98));border:1px solid rgba(255,255,255,.95);box-shadow:0 30px 80px rgba(0,15,28,.45),inset 0 2px 1px #fff;transform:translateY(28px);transition:.25s ease}
.is-open .csv45-share-sheet{transform:none}.csv45-share-head{display:flex;align-items:center;gap:12px;padding:4px 4px 15px}.csv45-share-head img{width:48px;height:48px}.csv45-share-head strong{display:block;font-size:1.22rem;color:var(--csv45-ink)}.csv45-share-head span{font-size:.84rem;color:#526477}
.csv45-share-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.csv45-share-action{border:0;border-radius:23px;padding:15px 8px 13px;min-height:100px;background:linear-gradient(145deg,#fff,#e7f0f7);box-shadow:0 12px 24px rgba(2,35,62,.15),inset 0 2px 2px #fff;color:var(--csv45-ink);font-weight:800;font-size:.84rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px}.csv45-share-action:active{transform:translateY(2px);box-shadow:0 6px 14px rgba(2,35,62,.14),inset 0 2px 5px rgba(2,35,62,.08)}.csv45-share-action img,.csv45-share-action svg{width:38px;height:38px}.csv45-share-close{width:100%;margin-top:12px;border:0;border-radius:999px;padding:14px;background:#092f50;color:#fff;font-weight:850;font-size:1rem}
@media(min-width:700px){.csv45-share-backdrop{align-items:center}.csv45-share-sheet{margin:auto}.csv45-share-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:420px){.csv45-share-grid{grid-template-columns:repeat(3,1fr)}.csv45-share-action{min-height:92px;padding-inline:4px}}
/* CSV45.1 · jerarquía uniforme de iconos y redes */
.csv-object__icon,.csv-contact-brand__icon{flex:0 0 64px!important;width:64px!important;height:64px!important;display:grid!important;place-items:center!important;border-radius:22px!important;margin:0!important}
.csv-object--route .csv-object__icon:after{width:52px!important;height:52px!important;background-image:url('/assets/google-maps-premium.svg?v=45.3')!important;filter:none!important}
.contact-cards{display:grid!important;gap:16px!important}.contact-card{min-height:92px!important;display:grid!important;grid-template-columns:64px minmax(0,1fr)!important;align-items:center!important;gap:18px!important;padding:14px 22px!important;text-align:left!important}.contact-card .csv-object__label,.csv-contact-brand__text{justify-self:start!important;text-align:left!important}.contact-card.csv-object--route .csv-object__label{font-size:1.12rem!important}
.social{display:grid!important;grid-template-columns:1fr!important;gap:16px!important;margin-top:8px!important}.social a{display:grid!important;grid-template-columns:64px minmax(0,1fr)!important;align-items:center!important;gap:18px!important;min-height:94px!important;padding:14px 24px!important;border-radius:30px!important;background:linear-gradient(145deg,#fff,#e8f0f7)!important;border:1px solid rgba(255,255,255,.95)!important;box-shadow:0 18px 34px rgba(2,36,63,.18),inset 0 2px 2px #fff,inset 0 -5px 12px rgba(3,56,91,.08)!important;color:#07385f!important;text-decoration:none!important;font-weight:850!important;font-size:1.08rem!important}.social a:before{content:"";width:56px;height:56px;display:block;background:center/contain no-repeat;filter:drop-shadow(0 8px 8px rgba(2,38,66,.18))}.social a.csv-social--facebook:before{background-image:url('/assets/facebook-oficial.svg?v=45.3')}.social a.csv-social--instagram:before{background-image:url('/assets/instagram-oficial.svg?v=45.3')}
@media(max-width:430px){.contact-card,.social a{grid-template-columns:56px minmax(0,1fr)!important;gap:14px!important;padding-inline:16px!important}.csv-object__icon,.csv-contact-brand__icon{width:56px!important;height:56px!important;flex-basis:56px!important}.csv-object--route .csv-object__icon:after{width:48px!important;height:48px!important}.social a:before{width:50px;height:50px}}
/* CSV45.2 · iconografía legible, delimitada y premium */
.csv-object__icon,.csv-contact-brand__icon{
  position:relative!important;overflow:hidden!important;
  border:2px solid rgba(255,255,255,.96)!important;
  outline:1px solid rgba(4,41,70,.22)!important;
  outline-offset:-4px!important;
  box-shadow:0 12px 22px rgba(1,34,59,.24),inset 0 2px 2px rgba(255,255,255,.88),inset 0 -5px 10px rgba(0,30,55,.18)!important;
}
.csv-object__icon:before,.csv-contact-brand__icon:before{content:"";position:absolute;left:8%;right:8%;top:5%;height:38%;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,0));pointer-events:none}
.csv-object--call .csv-object__icon{background:linear-gradient(145deg,#24a9f3 0%,#0879c1 52%,#034775 100%)!important}
.csv-object--whatsapp .csv-object__icon{background:linear-gradient(145deg,#3ce88a 0%,#15bb62 52%,#08783f 100%)!important}
.csv-object--call .csv-object__icon svg,.csv-object--whatsapp .csv-object__icon svg{display:none!important}
.csv-object--call .csv-object__icon:after,.csv-object--whatsapp .csv-object__icon:after{content:"";position:relative;z-index:2;width:34px;height:34px;display:block;background:center/contain no-repeat}
.csv-object--call .csv-object__icon:after{background-image:url('/assets/phone-white.svg?v=45.3')}
.csv-object--whatsapp .csv-object__icon:after{background-image:url('/assets/whatsapp-white.svg?v=45.3')}
.csv45-share-mark{width:50px!important;height:50px!important;object-fit:contain!important;filter:none!important}
.csv-contact-brand[data-csv-share] .csv-contact-brand__icon{background:linear-gradient(145deg,#eef9ff,#cfeafa 50%,#91c9e8)!important}
.contact-card,.social a,.btn,.payment.csv-brand-payment{
  border:2px solid rgba(255,255,255,.96)!important;
  outline:1px solid rgba(3,39,67,.20)!important;
  outline-offset:-5px!important;
}
.contact-card:focus-visible,.social a:focus-visible,.btn:focus-visible{outline:3px solid #0b7fc3!important;outline-offset:3px!important}
.csv-object__label,.csv-contact-brand__text,.social a{letter-spacing:-.01em}

/* CSV45.3 · corrección de iconografía oficial, redes y proporciones */
.csv-object--call .csv-object__icon:after{width:38px!important;height:38px!important;background-image:url('/assets/phone-white.svg?v=45.3')!important}
.csv-object--whatsapp .csv-object__icon:after{width:40px!important;height:40px!important;background-image:url('/assets/whatsapp-white.svg?v=45.3')!important}
.csv-contact-brand[data-csv-share] .csv-contact-brand__icon{background:linear-gradient(145deg,#f5fbff 0%,#d7edf9 55%,#a7d4eb 100%)!important}
.csv-contact-brand[data-csv-share] .csv-contact-brand__icon svg{width:42px!important;height:42px!important;display:block!important;filter:drop-shadow(0 7px 7px rgba(0,47,80,.22))}
.cta{align-items:center!important}.cta .social{flex:0 1 430px!important;width:min(100%,430px)!important;min-width:0!important}.social a{width:100%!important;box-sizing:border-box!important;grid-template-columns:64px minmax(0,1fr)!important;overflow:hidden!important}.social a:before{display:none!important}.csv-social-logo{display:block!important;width:56px!important;height:56px!important;object-fit:contain!important;filter:drop-shadow(0 8px 8px rgba(2,38,66,.18))}.social a span{min-width:0!important;overflow-wrap:anywhere!important;line-height:1.18!important}
.csv-payment-logo--brand img[src*="waylet-actual"]{width:auto!important;height:112px!important;max-width:170px!important;object-fit:contain!important}
@media(max-width:760px){.cta{display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important;padding:30px 22px!important}.cta .social{width:100%!important;max-width:none!important;flex:none!important}.social a{grid-template-columns:56px minmax(0,1fr)!important;min-height:88px!important;padding:14px 18px!important}.csv-social-logo{width:52px!important;height:52px!important}}
@media(max-width:390px){.social a{grid-template-columns:50px minmax(0,1fr)!important;gap:13px!important;padding-inline:14px!important;font-size:1rem!important}.csv-social-logo{width:48px!important;height:48px!important}}


/* SOURCE: csv45-4-acabado.css */
/* CSV45.4 — Acabado vectorial, proporciones y orden visual */
.csv-object__icon{width:54px!important;height:54px!important;flex:0 0 54px!important;border-radius:18px!important;border:2px solid rgba(255,255,255,.92)!important;box-shadow:0 10px 20px rgba(3,40,70,.22),inset 0 2px 2px rgba(255,255,255,.78),inset 0 -7px 12px rgba(0,24,48,.22)!important}
.csv-object__icon:after{width:28px!important;height:28px!important;background-size:contain!important;background-repeat:no-repeat!important;background-position:center!important;filter:none!important}
.csv-object--call .csv-object__icon:after{width:28px!important;height:28px!important;background-image:url('/assets/phone-white.svg?v=45.4')!important}
.csv-object--whatsapp .csv-object__icon:after{width:30px!important;height:30px!important;background-image:url('/assets/whatsapp-white.svg?v=45.4')!important}
.csv-object--route .csv-object__icon:after{width:38px!important;height:38px!important;background-image:url('/assets/google-maps-premium.svg?v=45.4')!important}
.csv-object--official .csv-object__icon:after{content:"";display:block;width:29px!important;height:29px!important;background-image:url('/assets/landmark-white.svg?v=45.4')!important}
.csv-object__icon>svg{display:none!important}

.utility-strip{gap:16px!important}.utility-pill{min-height:78px!important;border-radius:28px!important;padding:13px 22px!important;gap:14px!important;font-size:1.02rem!important;border:1px solid rgba(255,255,255,.96)!important;box-shadow:0 15px 29px rgba(5,32,56,.16),inset 0 2px 2px #fff,inset 0 -5px 11px rgba(4,48,82,.08)!important}
.utility-pill .csv45-utility-icon{width:48px;height:48px;flex:0 0 48px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#fff,#dceaf4);border:1px solid #fff;box-shadow:0 8px 15px rgba(4,43,73,.16),inset 0 2px 2px #fff}
.utility-pill .csv45-utility-icon svg{width:27px;height:27px;display:block}

.csv45-travel-card{display:grid!important;grid-template-columns:64px minmax(0,1fr)!important;gap:18px!important;align-items:center!important;text-align:left!important;padding:20px!important;min-height:116px!important}
.csv45-travel-card .csv-object__icon{grid-row:1/3!important}.csv45-travel-card .csv-object__label{font-size:1.16rem!important;line-height:1.15!important}.csv45-travel-card small{display:block;color:#5d6d7f;font-size:.92rem;line-height:1.35;font-weight:650;margin-top:5px}

.touch-icon{overflow:hidden}.touch-icon svg{width:28px!important;height:28px!important;stroke-width:1.9!important}
.traveler-actions .csv-object--call{min-width:190px!important}
.traveler-actions .csv-object--call .csv-object__icon{width:48px!important;height:48px!important;flex-basis:48px!important}
.traveler-actions .csv-object--call .csv-object__icon:after{width:25px!important;height:25px!important}

@media(max-width:430px){
 .csv-object__icon{width:50px!important;height:50px!important;flex-basis:50px!important;border-radius:16px!important}
 .csv-object--call .csv-object__icon:after{width:25px!important;height:25px!important}
 .csv-object--whatsapp .csv-object__icon:after{width:27px!important;height:27px!important}
 .csv-object--route .csv-object__icon:after{width:35px!important;height:35px!important}
 .utility-pill{min-height:72px!important;padding:12px 16px!important}
 .utility-pill .csv45-utility-icon{width:44px;height:44px;flex-basis:44px}
 .csv45-travel-card{grid-template-columns:56px minmax(0,1fr)!important;padding:17px!important;gap:15px!important}.csv45-travel-card .csv-object__label{font-size:1.03rem!important}
}


/* SOURCE: csv45-5-santuario.css */
/* CSV45.5 — restauración protegida Mare de Déu dels Àngels */
.csv45-shrine-card{
  position:relative!important;
  display:grid!important;
  grid-template-columns:72px minmax(0,1fr) 28px!important;
  align-items:center!important;
  gap:18px!important;
  min-height:126px!important;
  padding:22px 24px!important;
  border-radius:28px!important;
  text-align:left!important;
  color:#06172b!important;
  text-decoration:none!important;
  overflow:hidden!important;
  background:linear-gradient(145deg,#fff 0%,#f7fbff 54%,#e9f1f8 100%)!important;
  border:2px solid rgba(255,255,255,.98)!important;
  outline:1px solid rgba(125,84,25,.16)!important;
  box-shadow:0 17px 30px rgba(4,35,63,.18),inset 0 2px 2px #fff,inset 0 -10px 20px rgba(78,102,125,.10)!important;
}
.csv45-shrine-card:before{
  content:"";position:absolute;left:18px;right:18px;top:8px;height:38%;border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,0));pointer-events:none
}
.csv45-shrine-card__icon{
  position:relative;z-index:1;width:68px;height:68px;border-radius:22px;display:grid;place-items:center;
  background:linear-gradient(145deg,#e2bb6e 0%,#a97525 50%,#69420e 100%);
  border:2px solid rgba(255,255,255,.96);
  box-shadow:0 11px 20px rgba(91,56,11,.28),inset 0 2px 2px rgba(255,255,255,.88),inset 0 -9px 14px rgba(60,34,0,.28)
}
.csv45-shrine-card__icon:before{
  content:"";position:absolute;inset:5px 7px auto;height:31%;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.75),transparent)
}
.csv45-shrine-card__icon svg{position:relative;z-index:1;width:38px;height:38px;fill:#fff;stroke:#fff;stroke-width:1.8;stroke-linejoin:round;filter:drop-shadow(0 2px 1px rgba(74,43,0,.24))}
.csv45-shrine-card__content{position:relative;z-index:1;min-width:0;display:block}
.csv45-shrine-card__content strong{display:block;font-size:1.22rem;line-height:1.16;font-weight:850;letter-spacing:-.018em}
.csv45-shrine-card__content small{display:block;margin-top:7px;color:#657387;font-size:.94rem;line-height:1.3;font-weight:650}
.csv45-shrine-card__arrow{position:relative;z-index:1;font-size:1.45rem;font-weight:800;color:#8a5c17;transform:translateX(0);transition:transform .18s ease}
.csv45-shrine-card:hover .csv45-shrine-card__arrow,.csv45-shrine-card:focus-visible .csv45-shrine-card__arrow{transform:translateX(4px)}
.csv45-shrine-card:active{transform:translateY(2px) scale(.995)!important;box-shadow:0 9px 17px rgba(4,35,63,.15),inset 0 3px 8px rgba(5,36,60,.10)!important}
@media(max-width:430px){
 .csv45-shrine-card{grid-template-columns:62px minmax(0,1fr) 22px!important;gap:14px!important;min-height:112px!important;padding:18px!important;border-radius:25px!important}
 .csv45-shrine-card__icon{width:60px;height:60px;border-radius:19px}
 .csv45-shrine-card__icon svg{width:33px;height:33px}
 .csv45-shrine-card__content strong{font-size:1.08rem}
 .csv45-shrine-card__content small{font-size:.88rem}
}


/* SOURCE: csv45-6-uniformidad.css */
/* CSV45.6 — uniformidad final, proporciones de iconos y restauración protegida */
.csv-object__icon,.csv-contact-brand__icon{
  box-sizing:border-box!important;display:grid!important;place-items:center!important;
  width:54px!important;height:54px!important;flex:0 0 54px!important;
  border-radius:18px!important;overflow:hidden!important;
}
.csv-object__icon:after,.csv-contact-brand__icon:after{
  box-sizing:border-box!important;background-position:center!important;background-repeat:no-repeat!important;background-size:contain!important;
}
.csv-object--call .csv-object__icon:after{width:27px!important;height:27px!important}
.csv-object--whatsapp .csv-object__icon:after{width:29px!important;height:29px!important}
.csv-object--official .csv-object__icon:after{width:28px!important;height:28px!important}
.csv-object--route .csv-object__icon:after{width:37px!important;height:37px!important}
.contact-card,.social a,.csv45-travel-card{box-sizing:border-box!important;align-items:center!important}
.contact-card .csv-object__label,.csv45-travel-card .csv-object__label,.csv-contact-brand__text{min-width:0!important;line-height:1.2!important}

/* Tarjeta Mare de Déu dels Àngels: misma familia visual, sin deformación heredada */
.csv45-shrine-card{
  box-sizing:border-box!important;position:relative!important;display:grid!important;
  grid-template-columns:64px minmax(0,1fr) 24px!important;align-items:center!important;
  gap:18px!important;width:100%!important;min-height:116px!important;margin:0!important;
  padding:20px!important;border-radius:28px!important;text-align:left!important;
  color:#06172b!important;text-decoration:none!important;overflow:hidden!important;
  background:linear-gradient(145deg,#fff 0%,#f7fbff 56%,#e8f0f7 100%)!important;
  border:2px solid rgba(255,255,255,.97)!important;outline:1px solid rgba(82,57,20,.18)!important;outline-offset:-5px!important;
  box-shadow:0 18px 34px rgba(2,36,63,.17),inset 0 2px 2px #fff,inset 0 -6px 13px rgba(3,56,91,.08)!important;
}
.csv45-shrine-card:before{content:""!important;position:absolute!important;inset:7px 14px auto!important;height:38%!important;border-radius:999px!important;background:linear-gradient(180deg,rgba(255,255,255,.88),transparent)!important;pointer-events:none!important}
.csv45-shrine-card__icon{
  position:relative!important;z-index:1!important;box-sizing:border-box!important;
  width:64px!important;height:64px!important;border-radius:21px!important;display:grid!important;place-items:center!important;overflow:hidden!important;
  background:linear-gradient(145deg,#d9b060 0%,#9a681f 54%,#68400c 100%)!important;
  border:2px solid rgba(255,255,255,.96)!important;outline:1px solid rgba(76,45,6,.30)!important;outline-offset:-5px!important;
  box-shadow:0 11px 20px rgba(91,56,11,.25),inset 0 2px 2px rgba(255,255,255,.82),inset 0 -8px 14px rgba(60,34,0,.24)!important;
}
.csv45-shrine-card__icon:before{content:""!important;position:absolute!important;inset:6px 8px auto!important;height:30%!important;border-radius:999px!important;background:linear-gradient(180deg,rgba(255,255,255,.64),transparent)!important}
.csv45-shrine-card__icon:after{content:""!important;position:absolute!important;z-index:1!important;left:50%!important;bottom:13px!important;width:8px!important;height:12px!important;transform:translateX(-50%)!important;border-radius:5px 5px 2px 2px!important;background:#fff!important;box-shadow:0 2px 3px rgba(74,43,0,.22)!important}
.csv45-shrine-card__icon svg{position:relative!important;z-index:2!important;width:36px!important;height:36px!important;display:block!important;fill:none!important;stroke:#fff!important;stroke-width:3.1!important;stroke-linecap:round!important;stroke-linejoin:round!important;filter:drop-shadow(0 2px 1px rgba(74,43,0,.24))!important}
.csv45-shrine-card__content{position:relative!important;z-index:1!important;min-width:0!important;display:block!important}
.csv45-shrine-card__content strong{display:block!important;margin:0!important;font-size:1.16rem!important;line-height:1.16!important;font-weight:850!important;letter-spacing:-.018em!important;overflow-wrap:anywhere!important}
.csv45-shrine-card__content small{display:block!important;margin-top:6px!important;color:#657387!important;font-size:.92rem!important;line-height:1.28!important;font-weight:650!important}
.csv45-shrine-card__arrow{position:relative!important;z-index:1!important;justify-self:end!important;font-size:1.35rem!important;line-height:1!important;font-weight:850!important;color:#8a5c17!important}
.csv45-shrine-card:hover .csv45-shrine-card__arrow,.csv45-shrine-card:focus-visible .csv45-shrine-card__arrow{transform:translateX(3px)!important}
.csv45-shrine-card:focus-visible{outline:3px solid #0b7fc3!important;outline-offset:3px!important}

@media(max-width:430px){
 .csv-object__icon,.csv-contact-brand__icon{width:50px!important;height:50px!important;flex-basis:50px!important;border-radius:16px!important}
 .csv-object--call .csv-object__icon:after{width:24px!important;height:24px!important}
 .csv-object--whatsapp .csv-object__icon:after{width:26px!important;height:26px!important}
 .csv45-shrine-card{grid-template-columns:56px minmax(0,1fr) 20px!important;gap:14px!important;min-height:106px!important;padding:17px!important;border-radius:25px!important}
 .csv45-shrine-card__icon{width:56px!important;height:56px!important;border-radius:18px!important}
 .csv45-shrine-card__icon svg{width:31px!important;height:31px!important}
 .csv45-shrine-card__icon:after{bottom:11px!important;width:7px!important;height:10px!important}
 .csv45-shrine-card__content strong{font-size:1.04rem!important}
 .csv45-shrine-card__content small{font-size:.86rem!important}
}

/* CSV45.7 — Santuario restaurado como tarjeta completa, igual a las demás */
.touch-grid > .csv45-shrine-full{min-height:100%!important}
.csv45-shrine-full .card-media{aspect-ratio:16/10!important}
.csv45-shrine-full .official-sign{display:block!important;width:100%!important;height:100%!important}
.csv45-shrine-full .card-body{min-height:315px!important}
@media(max-width:640px){
 .csv45-shrine-full .card-body{min-height:0!important}
}


/* SOURCE: csv45-8-consolidacion-luz.css */
/* CSV45.8 — consolidación de volumen, brillo óptico y destello dorado protegido */
:root{
  --csv458-gold:#d7ad55;
  --csv458-gold-deep:#8b5b14;
  --csv458-shadow:0 12px 22px rgba(1,34,59,.23),inset 0 2px 2px rgba(255,255,255,.92),inset 0 -7px 13px rgba(0,30,55,.17);
}

/* Mantiene las proporciones aprobadas de CSV45.6 y mejora únicamente el acabado óptico. */
.csv-object__icon,
.csv-contact-brand__icon,
.csv45-shrine-card__icon{
  isolation:isolate!important;
  transform:translateZ(0);
  box-shadow:var(--csv458-shadow)!important;
}

/* Reflejo superior común: visible también sobre iconos blancos y el botón compartir. */
.csv-object__icon:before,
.csv-contact-brand__icon:before,
.csv45-shrine-card__icon:before{
  content:""!important;
  position:absolute!important;
  z-index:4!important;
  left:8%!important;
  right:8%!important;
  top:5%!important;
  height:40%!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.46) 42%,rgba(255,255,255,0) 100%)!important;
  opacity:.84!important;
  pointer-events:none!important;
  mix-blend-mode:screen;
}

/* Halo inferior fino para separar iconos claros del fondo. */
.csv-object__icon{filter:drop-shadow(0 7px 8px rgba(2,36,63,.13))}
.csv-object--route .csv-object__icon,
.csv-contact-brand[data-csv-share] .csv-contact-brand__icon{
  background:linear-gradient(145deg,#ffffff 0%,#eaf4fa 48%,#bfdced 100%)!important;
  box-shadow:0 13px 24px rgba(1,40,68,.22),inset 0 3px 3px #fff,inset 0 -8px 14px rgba(22,92,133,.14)!important;
}
.csv-contact-brand[data-csv-share] .csv-contact-brand__icon svg,
.csv-object--route .csv-object__icon:after{
  filter:drop-shadow(0 5px 5px rgba(0,45,76,.24))!important;
}

/* Píldoras y controles: borde de luz y profundidad uniforme, sin cambiar geometría. */
.btn,
.hero-station-nav a,
.repsol-pill,
.station-tab,
.csv45-share-action,
.csv45-share-close{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.btn:before,
.hero-station-nav a:before,
.repsol-pill:before,
.station-tab:before,
.csv45-share-action:before,
.csv45-share-close:before{
  content:"";
  position:absolute;
  z-index:0;
  left:7%;right:7%;top:4%;height:42%;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.64),rgba(255,255,255,0));
  pointer-events:none;
}
.btn > *,
.hero-station-nav a > *,
.repsol-pill > *,
.station-tab > *,
.csv45-share-action > *,
.csv45-share-close > *{position:relative;z-index:1}

/* Destello dorado recuperado en la placa de identidad y elementos premium. */
.csv-brand-plaque,
.csv-logo-stage,
.csv45-shrine-card,
.payment.csv-brand-payment{
  position:relative!important;
  isolation:isolate;
  overflow:hidden!important;
}
.csv-brand-plaque:after,
.csv-logo-stage:after,
.csv45-shrine-card:after,
.payment.csv-brand-payment:after{
  content:"";
  position:absolute;
  z-index:5;
  top:-42%;
  left:-48%;
  width:25%;
  height:184%;
  transform:rotate(18deg);
  background:linear-gradient(90deg,transparent,rgba(255,247,211,.18),rgba(255,218,126,.74),rgba(255,251,231,.92),rgba(215,173,85,.48),transparent);
  filter:blur(.2px) drop-shadow(0 0 10px rgba(215,173,85,.42));
  opacity:0;
  pointer-events:none;
  animation:csv458GoldenSweep 8.5s cubic-bezier(.2,.7,.2,1) infinite;
}
.csv-logo-stage:after{animation-delay:1.1s}
.csv45-shrine-card:after{animation-delay:2.2s}
.payment.csv-brand-payment:after{animation-delay:3.1s}

/* Línea dorada estática, discreta y siempre perceptible en la placa principal. */
.csv-brand-plaque:before{
  content:""!important;
  position:absolute!important;
  z-index:3!important;
  inset:1px 12% auto!important;
  height:2px!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,transparent,rgba(215,173,85,.42),#ffe8a9,rgba(215,173,85,.42),transparent)!important;
  box-shadow:0 1px 8px rgba(215,173,85,.42)!important;
  pointer-events:none!important;
}

/* Respuesta táctil coherente. */
@media (hover:hover){
  .csv-object:hover .csv-object__icon,
  .csv-contact-brand:hover .csv-contact-brand__icon,
  .social a:hover .csv-social-logo{
    transform:translateY(-2px) scale(1.025);
    filter:drop-shadow(0 10px 10px rgba(2,36,63,.19));
  }
}
.csv-object:active .csv-object__icon,
.csv-contact-brand:active .csv-contact-brand__icon{transform:translateY(1px) scale(.985)}

@keyframes csv458GoldenSweep{
  0%,62%{left:-48%;opacity:0}
  66%{opacity:.18}
  74%{opacity:.92}
  83%{left:132%;opacity:.12}
  100%{left:132%;opacity:0}
}

@media (prefers-reduced-motion:reduce){
  .csv-brand-plaque:after,.csv-logo-stage:after,.csv45-shrine-card:after,.payment.csv-brand-payment:after{animation:none!important;display:none!important}
  .csv-object__icon,.csv-contact-brand__icon{transition:none!important}
}


/* SOURCE: csv45-9-botones-tactiles.css */
/* CSV45.9 · Sistema de llamadas a la acción táctiles
   Volumen óptico, brillo controlado y respuesta física sin alterar la estructura. */
:root{
  --csv-cta-blue-1:#63c8ff;
  --csv-cta-blue-2:#0868df;
  --csv-cta-blue-3:#043a9f;
  --csv-cta-orange-1:#ffd07a;
  --csv-cta-orange-2:#ff7a18;
  --csv-cta-orange-3:#d84709;
  --csv-cta-green-1:#73f58a;
  --csv-cta-green-2:#22c65a;
  --csv-cta-green-3:#078a36;
}

/* Solo controles de acción; navegación y enlaces informativos quedan intactos. */
:where(.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"].is-interactive){
  --cta-top:var(--csv-cta-orange-1);
  --cta-mid:var(--csv-cta-orange-2);
  --cta-bottom:var(--csv-cta-orange-3);
  --cta-edge:#b73605;
  --cta-glow:rgba(255,132,28,.34);
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.72)!important;
  border-radius:999px;
  color:#fff!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.46) 0%,rgba(255,255,255,.08) 31%,rgba(255,255,255,0) 47%),
    radial-gradient(120% 105% at 50% -10%,var(--cta-top) 0%,var(--cta-mid) 48%,var(--cta-bottom) 100%)!important;
  box-shadow:
    inset 0 2px 1px rgba(255,255,255,.88),
    inset 0 -5px 9px rgba(45,18,0,.28),
    inset 0 0 0 2px rgba(255,255,255,.14),
    0 2px 0 var(--cta-edge),
    0 8px 14px rgba(6,23,43,.20),
    0 14px 30px var(--cta-glow)!important;
  text-shadow:0 1px 1px rgba(0,0,0,.38);
  transform:translateY(0) translateZ(0);
  transition:transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s ease,filter .16s ease;
  -webkit-tap-highlight-color:transparent;
  will-change:transform;
}

:where(.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"].is-interactive)::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:8%;right:8%;top:5%;height:45%;
  border-radius:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.18));
  opacity:.72;
  pointer-events:none;
  transform:translateY(-2px);
}

:where(.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"].is-interactive)::after{
  content:"";
  position:absolute;
  z-index:2;
  inset:-45% auto -45% -42%;
  width:28%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent);
  transform:skewX(-18deg) translateX(-230%);
  pointer-events:none;
  transition:transform .62s cubic-bezier(.2,.7,.2,1);
}

@media (hover:hover){
  :where(.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"].is-interactive):hover{
    transform:translateY(-3px) scale(1.015);
    filter:saturate(1.08) brightness(1.045);
    box-shadow:
      inset 0 2px 1px rgba(255,255,255,.94),
      inset 0 -5px 9px rgba(45,18,0,.24),
      inset 0 0 0 2px rgba(255,255,255,.17),
      0 3px 0 var(--cta-edge),
      0 12px 20px rgba(6,23,43,.23),
      0 18px 38px var(--cta-glow)!important;
  }
  :where(.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"].is-interactive):hover::after{
    transform:skewX(-18deg) translateX(650%);
  }
}

:where(.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"].is-interactive):active,
:where(.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"].is-interactive).csv-cta-pressed{
  transform:translateY(2px) scale(.985);
  filter:brightness(.96) saturate(1.03);
  box-shadow:
    inset 0 4px 10px rgba(0,0,0,.25),
    inset 0 -1px 2px rgba(255,255,255,.48),
    0 1px 0 var(--cta-edge),
    0 4px 8px rgba(6,23,43,.18)!important;
}

/* Azul: llamada, rutas, acciones secundarias y utilidades. */
:where(.btn.dark,.btn.outline,.btn.alt,.csv-object--call,.csv-object--route,.csv-utility-actions .btn,.station-tab.is-interactive){
  --cta-top:var(--csv-cta-blue-1);
  --cta-mid:var(--csv-cta-blue-2);
  --cta-bottom:var(--csv-cta-blue-3);
  --cta-edge:#032c7b;
  --cta-glow:rgba(14,111,224,.34);
}

/* WhatsApp conserva identidad verde, con el mismo acabado premium. */
:where(.csv-object--whatsapp,.wa-open.is-interactive){
  --cta-top:var(--csv-cta-green-1);
  --cta-mid:var(--csv-cta-green-2);
  --cta-bottom:var(--csv-cta-green-3);
  --cta-edge:#056b2c;
  --cta-glow:rgba(24,190,83,.34);
}

/* Pestaña activa: lectura inmediata del estado seleccionado. */
.station-tab.is-interactive[aria-selected="true"]{
  --cta-top:#fff1a8;
  --cta-mid:#f2a900;
  --cta-bottom:#b76900;
  --cta-edge:#8e5200;
  --cta-glow:rgba(242,169,0,.35);
}
.station-tab.is-interactive[aria-selected="false"]{opacity:.91}

/* Iconos: placa interior elevada, no círculo duplicado. */
:where(.btn,.wa-open) .csv-object__icon{
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  width:1.9em;height:1.9em;
  border-radius:50%;
  background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,.08));
  box-shadow:inset 0 1px 1px rgba(255,255,255,.6),inset 0 -2px 4px rgba(0,0,0,.16),0 1px 2px rgba(0,0,0,.14);
}
:where(.btn,.wa-open) .csv-object__icon svg{width:1.05em;height:1.05em;filter:drop-shadow(0 1px 1px rgba(0,0,0,.28))}
:where(.btn,.wa-open) .csv-object__label{position:relative;z-index:3}

/* Foco visible y accesible. */
:where(.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"].is-interactive):focus-visible{
  outline:3px solid #fff!important;
  outline-offset:3px;
  box-shadow:0 0 0 6px rgba(5,83,173,.72),0 12px 28px var(--cta-glow)!important;
}

/* La barra móvil mantiene la respiración y no convierte los CTA en bloques pesados. */
@media(max-width:650px){
  :where(.btn.is-interactive,.toggle-form,.wa-open.is-interactive,button[type="submit"].is-interactive){min-height:48px;padding-inline:17px}
  .station-actions .btn{min-height:50px}
  .station-tab.is-interactive{border-radius:18px}
}

@media(prefers-reduced-motion:reduce){
  :where(.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"].is-interactive){transition:none!important}
  :where(.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"].is-interactive)::after{display:none}
}


/* SOURCE: csv46-direccion-arte.css */
/* CSV46 · Dirección de arte unificada
   Cristal óptico + metal mecanizado + respuesta táctil consistente.
   Capa exclusivamente visual: no altera layout estructural ni funcionalidad. */
:root{
  --csv46-light-angle: 145deg;
  --csv46-radius-control: 999px;
  --csv46-radius-card: 24px;
  --csv46-ease: cubic-bezier(.2,.78,.2,1);
  --csv46-blue-a:#74d4ff; --csv46-blue-b:#0879e8; --csv46-blue-c:#063a9b;
  --csv46-green-a:#8af59d; --csv46-green-b:#24c861; --csv46-green-c:#087b37;
  --csv46-orange-a:#ffd68a; --csv46-orange-b:#ff811f; --csv46-orange-c:#c94508;
  --csv46-white-a:#ffffff; --csv46-white-b:#e8f1fb; --csv46-white-c:#aebfd3;
  --csv46-chrome-a:#fdfefe; --csv46-chrome-b:#aeb9c6; --csv46-chrome-c:#4e5c6c;
  --csv46-gold-a:#fff0a2; --csv46-gold-b:#d9a629; --csv46-gold-c:#75500b;
  --csv46-shadow:0 14px 28px rgba(8,27,50,.18),0 4px 9px rgba(8,27,50,.16);
}

/* Una única lógica de iluminación para todos los objetos táctiles. */
:where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"]){
  --csv46-a:var(--csv46-blue-a); --csv46-b:var(--csv46-blue-b); --csv46-c:var(--csv46-blue-c);
  --csv46-metal-a:var(--csv46-chrome-a); --csv46-metal-b:var(--csv46-chrome-b); --csv46-metal-c:var(--csv46-chrome-c);
  position:relative; isolation:isolate; overflow:hidden;
  border:2px solid transparent!important;
  border-radius:var(--csv46-radius-control)!important;
  background:
    linear-gradient(var(--csv46-light-angle),var(--csv46-a),var(--csv46-b) 48%,var(--csv46-c)) padding-box,
    linear-gradient(var(--csv46-light-angle),var(--csv46-metal-a),var(--csv46-metal-b) 45%,var(--csv46-metal-c) 76%,#eef4fa) border-box!important;
  box-shadow:
    inset 0 2px 1px rgba(255,255,255,.9),
    inset 0 -7px 11px rgba(0,20,55,.25),
    inset 0 0 0 1px rgba(255,255,255,.22),
    0 2px 0 rgba(35,49,67,.72),
    var(--csv46-shadow)!important;
  color:#fff!important;
  text-shadow:0 1px 2px rgba(0,0,0,.42);
  transform:translate3d(0,0,0);
  transition:transform .2s var(--csv46-ease),filter .2s ease,box-shadow .2s ease!important;
  -webkit-tap-highlight-color:transparent;
}
:where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"])::before{
  content:""; position:absolute; z-index:-1; pointer-events:none;
  left:7%; right:7%; top:5%; height:43%; border-radius:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(255,255,255,.27) 54%,transparent);
  opacity:.72;
}
:where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"])::after{
  content:""; position:absolute; z-index:3; pointer-events:none;
  width:24%; top:-45%; bottom:-45%; left:-42%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.68),transparent);
  transform:skewX(-18deg) translateX(-240%);
  transition:transform .7s var(--csv46-ease);
}
@media (hover:hover){
  :where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"]):hover{
    transform:translateY(-3px) scale(1.012); filter:brightness(1.055) saturate(1.05);
    box-shadow:inset 0 2px 1px #fff,inset 0 -7px 11px rgba(0,20,55,.21),inset 0 0 0 1px rgba(255,255,255,.26),0 3px 0 rgba(35,49,67,.68),0 18px 34px rgba(8,27,50,.22),0 6px 12px rgba(8,27,50,.16)!important;
  }
  :where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"]):hover::after{transform:skewX(-18deg) translateX(720%)}
}
:where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"]):active,
:where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"]).csv46-pressed{
  transform:translateY(2px) scale(.986); filter:brightness(.94);
  box-shadow:inset 0 6px 13px rgba(0,12,38,.35),inset 0 -1px 2px rgba(255,255,255,.5),0 1px 0 rgba(35,49,67,.68),0 4px 8px rgba(8,27,50,.16)!important;
}

/* Jerarquía de materiales. */
:where(.csv46-control--premium,.csv-object--whatsapp,.wa-open.is-interactive,.btn.primary,.btn.cta){
  --csv46-metal-a:var(--csv46-gold-a); --csv46-metal-b:var(--csv46-gold-b); --csv46-metal-c:var(--csv46-gold-c);
}
:where(.csv46-control--whatsapp,.csv-object--whatsapp,.wa-open.is-interactive){--csv46-a:var(--csv46-green-a);--csv46-b:var(--csv46-green-b);--csv46-c:var(--csv46-green-c)}
:where(.csv46-control--orange,.btn:not(.dark):not(.outline):not(.alt):not(.csv-object--call):not(.csv-object--route):not(.csv-object--whatsapp)){--csv46-a:var(--csv46-orange-a);--csv46-b:var(--csv46-orange-b);--csv46-c:var(--csv46-orange-c)}
:where(.csv46-control--white){--csv46-a:var(--csv46-white-a);--csv46-b:var(--csv46-white-b);--csv46-c:var(--csv46-white-c);color:#12355b!important;text-shadow:none}
.station-tab.is-interactive[aria-selected="true"]{--csv46-a:#fff3a8;--csv46-b:#eeb52e;--csv46-c:#9a6507}

/* Iconografía: placa interior común, sin círculos duplicados. */
:where(.csv46-control,.btn,.wa-open,.touch-action) :where(.csv-object__icon,.icon,.svg-icon,.csv-icon){
  display:inline-grid; place-items:center; flex:0 0 auto;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.28));
}
:where(.csv46-control,.btn,.wa-open) .csv-object__icon{
  width:1.9em;height:1.9em;border-radius:50%;
  background:linear-gradient(145deg,rgba(255,255,255,.42),rgba(255,255,255,.08));
  box-shadow:inset 0 1px 1px rgba(255,255,255,.72),inset 0 -3px 5px rgba(0,0,0,.18),0 1px 2px rgba(0,0,0,.16);
}

/* Tarjetas y píldoras: mismo radio, luz y profundidad; no afecta dimensiones. */
:where(.card,.panel,.help-card,.touch-card,.v-card,.contact-card,.gallery-item,.csv46-card){
  border-radius:var(--csv46-radius-card)!important;
  border:1px solid rgba(255,255,255,.68)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(244,249,255,.72))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),inset 0 0 0 1px rgba(118,147,178,.08),0 14px 32px rgba(14,42,72,.11),0 3px 8px rgba(14,42,72,.08)!important;
}
:where(.service-chip,.help-chip,.utility-pill,.v-badge,.payment,.csv46-pill){
  border-radius:999px!important;
  border:1px solid rgba(152,170,192,.56)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(224,235,247,.82))!important;
  box-shadow:inset 0 1px 0 #fff,inset 0 -2px 4px rgba(40,68,99,.1),0 4px 9px rgba(16,42,72,.1)!important;
}

:where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"]):focus-visible{
  outline:3px solid #fff!important;outline-offset:3px;
  box-shadow:0 0 0 6px rgba(0,91,190,.72),0 15px 30px rgba(8,27,50,.22)!important;
}
@media(max-width:650px){
  :where(.csv46-control,.btn.is-interactive,.toggle-form,.wa-open.is-interactive,button[type="submit"]){min-height:48px}
  :where(.card,.panel,.help-card,.touch-card,.v-card,.contact-card,.gallery-item,.csv46-card){border-radius:20px!important}
}
@media(prefers-reduced-motion:reduce){
  :where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"]){transition:none!important}
  :where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"])::after{display:none}
}
/* Clasificación semántica aplicada por CSV46; se declara al final para prevalecer. */
:where(.csv46-control--blue){--csv46-a:var(--csv46-blue-a);--csv46-b:var(--csv46-blue-b);--csv46-c:var(--csv46-blue-c)}
:where(.csv46-control--orange){--csv46-a:var(--csv46-orange-a);--csv46-b:var(--csv46-orange-b);--csv46-c:var(--csv46-orange-c)}


/* CSV46.2 · Corrección profesional del sistema de llamada
   Un único activo canónico. Se elimina la placa naranja, el SVG anterior y cualquier texto visible. */
:where(a.csv-object--call){
  --csv-call-size:76px;
  display:inline-grid!important;
  place-items:center!important;
  flex:0 0 auto!important;
  width:var(--csv-call-size)!important;
  height:var(--csv-call-size)!important;
  min-width:var(--csv-call-size)!important;
  min-height:var(--csv-call-size)!important;
  aspect-ratio:1/1!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  box-shadow:none!important;
  text-shadow:none!important;
  overflow:visible!important;
  isolation:isolate;
  line-height:0!important;
}
:where(a.csv-object--call)::before,
:where(a.csv-object--call)::after{display:none!important;content:none!important}
:where(a.csv-object--call) > :not(.csv-call-premium-icon){display:none!important}
:where(a.csv-object--call) .csv-call-premium-icon{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:contain!important;
  border-radius:50%!important;
  filter:drop-shadow(0 10px 14px rgba(7,27,55,.22)) drop-shadow(0 2px 3px rgba(7,27,55,.2));
  transform:translateZ(0);
  transition:transform .18s cubic-bezier(.2,.78,.2,1),filter .18s ease!important;
}
@media(hover:hover){
  :where(a.csv-object--call):hover{transform:none!important;filter:none!important;box-shadow:none!important}
  :where(a.csv-object--call):hover .csv-call-premium-icon{
    transform:translateY(-2px) scale(1.035);
    filter:drop-shadow(0 13px 17px rgba(7,27,55,.25)) drop-shadow(0 3px 4px rgba(7,27,55,.2)) brightness(1.035);
  }
}
:where(a.csv-object--call):active,
:where(a.csv-object--call).csv46-pressed{transform:none!important;filter:none!important;box-shadow:none!important}
:where(a.csv-object--call):active .csv-call-premium-icon,
:where(a.csv-object--call).csv46-pressed .csv-call-premium-icon{
  transform:translateY(2px) scale(.965);
  filter:drop-shadow(0 4px 6px rgba(7,27,55,.18)) brightness(.95);
}
:where(a.csv-object--call):focus-visible{
  outline:3px solid #fff!important;
  outline-offset:4px!important;
  box-shadow:0 0 0 7px rgba(0,91,190,.72)!important;
}
/* Contextos compactos: conserva jerarquía sin deformar tarjetas ni barras. */
:where(.utility-strip,.station-actions,.buttons,.traveler-actions,.contact-cards,.facts,.v-safety) a.csv-object--call{
  --csv-call-size:72px;
}
@media(max-width:650px){
  :where(a.csv-object--call){--csv-call-size:68px}
  :where(.utility-strip,.station-actions,.buttons,.traveler-actions,.contact-cards,.facts,.v-safety) a.csv-object--call{--csv-call-size:64px}
}
@media(prefers-reduced-motion:reduce){
  :where(a.csv-object--call) .csv-call-premium-icon{transition:none!important}
}

/* CSV46.3 · Escala óptica unificada del icono de llamada
   El activo ocupa de forma proporcionada el control que lo contiene en todos los contextos. */
:where(a.csv-object--call){
  --csv-call-size:clamp(84px,9.2vw,104px)!important;
}
:where(a.csv-object--call) .csv-call-premium-icon{
  width:100%!important;
  height:100%!important;
  transform:scale(1.08) translateZ(0)!important;
  transform-origin:center!important;
}
:where(.v-row,.v-card,.touch-card,.utility-strip,.station-actions,.buttons,.traveler-actions,.contact-cards,.facts,.v-safety) a.csv-object--call{
  --csv-call-size:clamp(88px,10vw,108px)!important;
}
@media(max-width:650px){
  :where(a.csv-object--call){--csv-call-size:88px!important}
  :where(.v-row,.v-card,.touch-card,.utility-strip,.station-actions,.buttons,.traveler-actions,.contact-cards,.facts,.v-safety) a.csv-object--call{--csv-call-size:94px!important}
}
@media(max-width:380px){
  :where(a.csv-object--call){--csv-call-size:82px!important}
  :where(.v-row,.v-card,.touch-card,.utility-strip,.station-actions,.buttons,.traveler-actions,.contact-cards,.facts,.v-safety) a.csv-object--call{--csv-call-size:88px!important}
}
@media(hover:hover){
  :where(a.csv-object--call):hover .csv-call-premium-icon{transform:translateY(-2px) scale(1.115)!important}
}
:where(a.csv-object--call):active .csv-call-premium-icon,
:where(a.csv-object--call).csv46-pressed .csv-call-premium-icon{transform:translateY(2px) scale(1.035)!important}

/* CSV46.4 · Corrección real en página web
   Anula los estilos heredados naranjas de premium-depth-v19 y hace que el activo
   circular sea el botón completo, no un icono pequeño dentro de otro botón. */
a.csv-object.csv-object--call,
.v-row > a.csv-object.csv-object--call,
.v-list .v-row > a.csv-object.csv-object--call,
.v-card a.csv-object.csv-object--call,
.touch-card a.csv-object.csv-object--call,
.utility-strip a.csv-object.csv-object--call,
.station-actions a.csv-object.csv-object--call,
.traveler-actions a.csv-object.csv-object--call,
.contact-cards a.csv-object.csv-object--call,
.facts a.csv-object.csv-object--call,
.v-safety a.csv-object.csv-object--call{
  --csv-call-size:104px!important;
  display:inline-grid!important;
  place-items:center!important;
  width:var(--csv-call-size)!important;
  height:var(--csv-call-size)!important;
  min-width:var(--csv-call-size)!important;
  min-height:var(--csv-call-size)!important;
  max-width:var(--csv-call-size)!important;
  max-height:var(--csv-call-size)!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:50%!important;
  background:none!important;
  background-color:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
  color:transparent!important;
  overflow:visible!important;
}
a.csv-object.csv-object--call > img.csv-call-premium-icon,
.v-row > a.csv-object.csv-object--call > img.csv-call-premium-icon,
.v-list .v-row > a.csv-object.csv-object--call > img.csv-call-premium-icon{
  display:block!important;
  width:var(--csv-call-size)!important;
  height:var(--csv-call-size)!important;
  min-width:var(--csv-call-size)!important;
  min-height:var(--csv-call-size)!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  border-radius:50%!important;
}
@media(max-width:650px){
  a.csv-object.csv-object--call,
  .v-row > a.csv-object.csv-object--call,
  .v-list .v-row > a.csv-object.csv-object--call,
  .v-card a.csv-object.csv-object--call,
  .touch-card a.csv-object.csv-object--call,
  .utility-strip a.csv-object.csv-object--call,
  .station-actions a.csv-object.csv-object--call,
  .traveler-actions a.csv-object.csv-object--call,
  .contact-cards a.csv-object.csv-object--call,
  .facts a.csv-object.csv-object--call,
  .v-safety a.csv-object.csv-object--call{--csv-call-size:96px!important}
}
@media(max-width:380px){
  a.csv-object.csv-object--call,
  .v-row > a.csv-object.csv-object--call,
  .v-list .v-row > a.csv-object.csv-object--call{--csv-call-size:90px!important}
}


/* SOURCE: csv47-3-proporcion-header.css */
/* CSV47.3 · Corrección de proporción del WhatsApp de cabecera en móvil */
header .nav > a.nav-wa,
header .nav > a.btn.nav-wa,
header .nav > a.nav-wa.csv-object--whatsapp{
  box-sizing:border-box!important;
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  min-height:0!important;
  height:50px!important;
  padding:5px 13px 5px 7px!important;
  gap:8px!important;
  border-radius:25px!important;
  overflow:hidden!important;
  background:linear-gradient(180deg,#36dc70 0%,#21c45a 52%,#0b9840 100%)!important;
  background-color:#20bf55!important;
  border:1px solid rgba(8,126,52,.75)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:inset 0 2px 1px rgba(255,255,255,.56),inset 0 -4px 7px rgba(0,76,30,.22),0 7px 15px rgba(0,96,39,.20)!important;
}
header .nav > a.nav-wa::before,
header .nav > a.nav-wa::after{border-radius:inherit!important}
header .nav > a.nav-wa .csv-object__icon{
  flex:0 0 38px!important;
  width:38px!important;
  height:38px!important;
  border-radius:13px!important;
  margin:0!important;
}
header .nav > a.nav-wa .csv-object__icon:after{
  width:22px!important;
  height:22px!important;
}
header .nav > a.nav-wa .csv-object__label{
  font-size:15px!important;
  line-height:1!important;
  font-weight:800!important;
  white-space:nowrap!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
@media(max-width:650px){
  header .nav{gap:10px!important}
  header .nav > a.nav-wa,
  header .nav > a.btn.nav-wa,
  header .nav > a.nav-wa.csv-object--whatsapp{
    display:inline-flex!important;
    width:clamp(124px,34vw,146px)!important;
    height:48px!important;
    padding:5px 10px 5px 6px!important;
    gap:7px!important;
    border-radius:24px!important;
  }
  header .nav > a.nav-wa .csv-object__icon{
    flex-basis:36px!important;
    width:36px!important;
    height:36px!important;
    border-radius:12px!important;
  }
  header .nav > a.nav-wa .csv-object__icon:after{width:21px!important;height:21px!important}
  header .nav > a.nav-wa .csv-object__label{font-size:clamp(13px,3.5vw,15px)!important}
}
@media(max-width:380px){
  header .nav > a.nav-wa,
  header .nav > a.btn.nav-wa,
  header .nav > a.nav-wa.csv-object--whatsapp{
    width:122px!important;
    height:46px!important;
  }
  header .nav > a.nav-wa .csv-object__icon{flex-basis:34px!important;width:34px!important;height:34px!important}
  header .nav > a.nav-wa .csv-object__label{font-size:13px!important}
}


/* SOURCE: csv47-5-performance.css */
/* CSV47.5 · Optimización de carga y estabilidad visual */
:root{--csv-hero-mobile:image-set(url('/assets/hero-real-960-2026.webp') 1x,url('/assets/hero-real-1536-2026.webp') 2x);--csv-hero-desktop:image-set(url('/assets/hero-real-1536-2026.webp') 1x,url('/assets/hero-real-2560-2026.webp') 2x)}
.hero::before{background-image:linear-gradient(90deg,rgba(3,15,29,.94) 0%,rgba(3,15,29,.79) 38%,rgba(3,15,29,.34) 68%,rgba(3,15,29,.14) 100%),radial-gradient(circle at 72% 26%,rgba(255,211,112,.18),transparent 34%),var(--csv-hero-desktop)!important;background-repeat:no-repeat!important;background-size:cover!important;background-position:center center!important;will-change:transform;backface-visibility:hidden}
img{max-width:100%;height:auto}
section:not(.hero){content-visibility:auto;contain-intrinsic-size:1px 900px}
.hero,.site-header,.floatbar{content-visibility:visible}
@media(max-width:980px){.hero::before{background-image:linear-gradient(180deg,rgba(3,15,29,.83) 0%,rgba(3,15,29,.72) 46%,rgba(3,15,29,.48) 100%),radial-gradient(circle at 65% 22%,rgba(255,211,112,.16),transparent 38%),var(--csv-hero-mobile)!important;background-position:center top!important}}
@media(max-width:650px){.hero::before{background-position:61% top!important}}
@media(prefers-reduced-data:reduce){.hero::before{background-image:linear-gradient(180deg,rgba(3,15,29,.86),rgba(3,15,29,.52)),url('/assets/hero-real-960-2026.webp')!important}.hero .wrap::after,.hero-copy::before{animation:none!important}}


/* SOURCE: csv47-8-footer-logo.css */
/* CSV47.8 · Logotipo final con proporción bloqueada */
footer .footer-logo-frame{
  display:block!important;
  position:relative!important;
  width:min(100%,360px)!important;
  aspect-ratio:1557 / 844!important;
  height:auto!important;
  min-height:0!important;
  margin:0 0 20px!important;
  padding:0!important;
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
}
footer .footer-logo-frame>img,
footer .footer-grid>div:first-child>.footer-logo-frame>img{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:left center!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  transform:none!important;
  filter:none!important;
}
@media(max-width:650px){
  footer .footer-logo-frame{
    width:min(86vw,330px)!important;
    margin:0 auto 18px!important;
  }
  footer .footer-logo-frame>img,
  footer .footer-grid>div:first-child>.footer-logo-frame>img{
    object-position:center!important;
  }
}


/* SOURCE: csv48-consolidacion-visual.css */
/* CSV48.0 · Consolidación visual quirúrgica
   Corrige contraste, jerarquía, proporción y alineación sin alterar funcionalidad. */

/* 1. CTA azules: contraste estable frente a cascadas antiguas. */
.csv-utility-actions .btn.alt,
.csv-aenor-actions .btn.alt,
.csv-aenor-actions .csv-aenor-verify,
#informacion-oficial .actions .btn,
.services-section .actions .btn,
a.btn.dark,
button.btn.dark,
.contact-toggle .btn.dark{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:0 1px 2px rgba(0,0,0,.42)!important;
}
.csv-utility-actions .btn.alt *,
.csv-aenor-actions .btn.alt *,
.csv-aenor-actions .csv-aenor-verify *,
#informacion-oficial .actions .btn *,
.services-section .actions .btn *,
a.btn.dark *,button.btn.dark *,
.contact-toggle .btn.dark *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* El brillo queda por encima del campo de lectura y nunca oscurece el rótulo. */
.btn::after,
.contact-card::after{
  pointer-events:none!important;
  opacity:.42!important;
  transform:translateY(-18%)!important;
}
.btn,.btn .csv-object__label,.contact-card,.contact-card .csv-object__label{
  font-weight:800!important;
}

/* 2. Tarjetas de servicios: proporción y ritmo editorial coherentes. */
.service-cloud{
  align-items:stretch!important;
}
.service-chip{
  min-height:0!important;
  padding:24px 22px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:4px!important;
}
.service-chip i{margin:0 0 5px!important;line-height:1!important}
.service-chip b{
  margin:0 0 7px!important;
  font-size:clamp(1.05rem,1.6vw,1.2rem)!important;
  line-height:1.18!important;
  letter-spacing:-.012em!important;
}
.service-chip span{
  margin:0!important;
  font-size:.96rem!important;
  line-height:1.5!important;
}

/* 3. Contacto: todas las tarjetas conservan la misma arquitectura. */
.contact-cards{
  align-items:stretch!important;
}
.contact-card{
  min-width:0!important;
  overflow:hidden!important;
}
.csv-contact-brand__text,
.csv-contact-brand__text span{
  min-width:0!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
.csv-contact-brand__text span{
  font-size:clamp(.82rem,2.8vw,1rem)!important;
  line-height:1.3!important;
}
.contact-cards > a.contact-card.csv-object--call{
  overflow:visible!important;
}

/* 4. AENOR: botones y texto con respiración uniforme. */
.csv-aenor-actions{
  gap:16px!important;
  align-items:stretch!important;
}
.csv-aenor-actions .btn{
  min-height:76px!important;
  line-height:1.2!important;
  text-align:center!important;
  justify-content:center!important;
}
.csv-aenor-help{
  margin-top:28px!important;
  line-height:1.55!important;
}

/* 5. Comportamiento móvil específico. */
@media(max-width:720px){
  .service-cloud{gap:18px!important}
  .service-chip{
    min-height:0!important;
    padding:26px 28px!important;
    border-radius:34px!important;
    justify-content:center!important;
  }
  .service-chip b{
    font-size:1.08rem!important;
    margin-bottom:8px!important;
  }
  .service-chip span{
    font-size:.98rem!important;
    line-height:1.48!important;
  }
  .csv-aenor-actions .btn{
    width:100%!important;
    min-height:72px!important;
    padding:16px 22px!important;
  }
  .csv-aenor-actions .csv-object__label{
    font-size:1rem!important;
    line-height:1.18!important;
  }
  .contact-cards .contact-card{
    min-height:104px!important;
  }
  .contact-card.csv-contact-brand{
    padding-inline:18px!important;
  }
}

@media(max-width:390px){
  .service-chip{padding:24px 22px!important}
  .csv-aenor-actions .btn{padding-inline:16px!important}
  .csv-contact-brand__text span{font-size:.78rem!important}
}


/* SOURCE: csv48-6-unificacion-pildoras.css */
/* CSV48.6 · Unificación final de píldoras azules
   Una única receta cromática y de luz para CTA recientes y existentes. */
:root{
  --csv48-pill-blue-top:#63c8ff;
  --csv48-pill-blue-mid:#0868df;
  --csv48-pill-blue-bottom:#043a9f;
  --csv48-pill-blue-edge:#032c7b;
  --csv48-pill-blue-glow:rgba(14,111,224,.34);
}

/* Controles azules funcionales, aunque no lleven la clase is-interactive. */
:where(
  .csv-utility-actions .btn,
  .csv-aenor-actions .btn,
  #informacion-oficial .actions .btn,
  .services-section .actions .btn,
  .contact-toggle .btn.dark,
  a.btn.dark,
  button.btn.dark,
  .btn.alt,
  .btn.outline,
  .csv-object--call,
  .csv-object--route
){
  --cta-top:var(--csv48-pill-blue-top);
  --cta-mid:var(--csv48-pill-blue-mid);
  --cta-bottom:var(--csv48-pill-blue-bottom);
  --cta-edge:var(--csv48-pill-blue-edge);
  --cta-glow:var(--csv48-pill-blue-glow);
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.72)!important;
  border-radius:999px!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.46) 0%,rgba(255,255,255,.08) 31%,rgba(255,255,255,0) 47%),
    radial-gradient(120% 105% at 50% -10%,var(--cta-top) 0%,var(--cta-mid) 48%,var(--cta-bottom) 100%)!important;
  box-shadow:
    inset 0 2px 1px rgba(255,255,255,.88),
    inset 0 -5px 9px rgba(0,22,69,.28),
    inset 0 0 0 2px rgba(255,255,255,.14),
    0 2px 0 var(--cta-edge),
    0 8px 14px rgba(6,23,43,.20),
    0 14px 30px var(--cta-glow)!important;
  text-shadow:0 1px 2px rgba(0,0,0,.42)!important;
  transform:translateY(0) translateZ(0);
  transition:transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s ease,filter .16s ease!important;
  -webkit-tap-highlight-color:transparent;
}

:where(
  .csv-utility-actions .btn,
  .csv-aenor-actions .btn,
  #informacion-oficial .actions .btn,
  .services-section .actions .btn,
  .contact-toggle .btn.dark,
  a.btn.dark,
  button.btn.dark,
  .btn.alt,
  .btn.outline,
  .csv-object--call,
  .csv-object--route
)::before{
  content:"";
  position:absolute;
  z-index:0;
  left:8%;right:8%;top:5%;height:45%;
  border-radius:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.18));
  opacity:.72;
  pointer-events:none;
  transform:translateY(-2px);
}

:where(
  .csv-utility-actions .btn,
  .csv-aenor-actions .btn,
  #informacion-oficial .actions .btn,
  .services-section .actions .btn,
  .contact-toggle .btn.dark,
  a.btn.dark,
  button.btn.dark,
  .btn.alt,
  .btn.outline,
  .csv-object--call,
  .csv-object--route
)::after{
  content:"";
  position:absolute;
  z-index:2;
  inset:-45% auto -45% -42%;
  width:28%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent);
  opacity:.42!important;
  transform:skewX(-18deg) translateX(-230%)!important;
  pointer-events:none;
  transition:transform .62s cubic-bezier(.2,.7,.2,1),opacity .2s ease!important;
}

:where(
  .csv-utility-actions .btn,
  .csv-aenor-actions .btn,
  #informacion-oficial .actions .btn,
  .services-section .actions .btn,
  .contact-toggle .btn.dark,
  a.btn.dark,
  button.btn.dark,
  .btn.alt,
  .btn.outline,
  .csv-object--call,
  .csv-object--route
) > *{position:relative;z-index:3;color:#fff!important;-webkit-text-fill-color:#fff!important}

@media (hover:hover){
  :where(
    .csv-utility-actions .btn,
    .csv-aenor-actions .btn,
    #informacion-oficial .actions .btn,
    .services-section .actions .btn,
    .contact-toggle .btn.dark,
    a.btn.dark,
    button.btn.dark,
    .btn.alt,
    .btn.outline,
    .csv-object--call,
    .csv-object--route
  ):hover{
    transform:translateY(-3px) scale(1.015)!important;
    filter:saturate(1.08) brightness(1.045)!important;
    box-shadow:
      inset 0 2px 1px rgba(255,255,255,.94),
      inset 0 -5px 9px rgba(0,22,69,.24),
      inset 0 0 0 2px rgba(255,255,255,.17),
      0 3px 0 var(--cta-edge),
      0 12px 20px rgba(6,23,43,.23),
      0 18px 38px var(--cta-glow)!important;
  }
  :where(
    .csv-utility-actions .btn,
    .csv-aenor-actions .btn,
    #informacion-oficial .actions .btn,
    .services-section .actions .btn,
    .contact-toggle .btn.dark,
    a.btn.dark,
    button.btn.dark,
    .btn.alt,
    .btn.outline,
    .csv-object--call,
    .csv-object--route
  ):hover::after{transform:skewX(-18deg) translateX(650%)!important;opacity:.58!important}
}

:where(
  .csv-utility-actions .btn,
  .csv-aenor-actions .btn,
  #informacion-oficial .actions .btn,
  .services-section .actions .btn,
  .contact-toggle .btn.dark,
  a.btn.dark,
  button.btn.dark,
  .btn.alt,
  .btn.outline,
  .csv-object--call,
  .csv-object--route
):active{
  transform:translateY(2px) scale(.985)!important;
  filter:brightness(.96) saturate(1.03)!important;
  box-shadow:
    inset 0 4px 10px rgba(0,0,0,.25),
    inset 0 -1px 2px rgba(255,255,255,.48),
    0 1px 0 var(--cta-edge),
    0 4px 8px rgba(6,23,43,.18)!important;
}

/* WhatsApp queda excluido: conserva su verde oficial. */
:where(.csv-object--whatsapp,.wa-open){
  --cta-top:var(--csv-cta-green-1,#73f58a);
  --cta-mid:var(--csv-cta-green-2,#22c65a);
  --cta-bottom:var(--csv-cta-green-3,#078a36);
  --cta-edge:#056b2c;
  --cta-glow:rgba(24,190,83,.34);
}

@media(max-width:650px){
  :where(.csv-utility-actions .btn,.csv-aenor-actions .btn,#informacion-oficial .actions .btn,.services-section .actions .btn){
    min-height:50px;
    padding-inline:17px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  :where(.csv-utility-actions .btn,.csv-aenor-actions .btn,#informacion-oficial .actions .btn,.services-section .actions .btn,.contact-toggle .btn.dark,a.btn.dark,button.btn.dark,.btn.alt,.btn.outline,.csv-object--call,.csv-object--route){transition:none!important}
  :where(.csv-utility-actions .btn,.csv-aenor-actions .btn,#informacion-oficial .actions .btn,.services-section .actions .btn,.contact-toggle .btn.dark,a.btn.dark,button.btn.dark,.btn.alt,.btn.outline,.csv-object--call,.csv-object--route)::after{display:none!important}
}


/* SOURCE: csv60-premium-ux.css */
/* CSV60 Premium UX — capa aditiva, segura y reversible */
:root{--csv60-header-h:86px;--csv60-ease:cubic-bezier(.22,.8,.22,1)}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--csv60-header-h) + 18px)}
body{overflow-x:hidden}

/* Progreso de lectura */
#csv60-progress{position:fixed;z-index:2147483000;left:0;top:0;width:100%;height:3px;pointer-events:none;background:transparent}
#csv60-progress>i{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,#0066d5,#18b86b,#f7b500);box-shadow:0 0 12px rgba(0,102,213,.35);will-change:transform}

/* Cabecera inteligente: gana espacio sin alterar identidad */
header,.site-header,.header{transition:transform .36s var(--csv60-ease),box-shadow .36s ease,background-color .36s ease}
body.csv60-scrolled header,body.csv60-scrolled .site-header,body.csv60-scrolled .header{box-shadow:0 10px 28px rgba(3,18,34,.14)}
body.csv60-header-hidden header,body.csv60-header-hidden .site-header,body.csv60-header-hidden .header{transform:translateY(-100%)}
body.menu-open header,body.menu-open .site-header,body.menu-open .header{transform:none!important}

/* Respuesta táctil premium y coherente */
a,button,[role="button"],.card,.station-card,.service-card{ -webkit-tap-highlight-color:transparent }
a[href],button,[role="button"]{transition:transform .18s ease,filter .18s ease,box-shadow .22s ease}
.csv60-press{transform:scale(.975)!important;filter:brightness(.98)}
@media (hover:hover){a[href]:not(.plain-link):hover,button:hover,[role="button"]:hover{filter:brightness(1.025)}}

/* Aparición progresiva sin saltos de maquetación */
.csv60-reveal{opacity:0;transform:translateY(18px);transition:opacity .62s var(--csv60-ease),transform .62s var(--csv60-ease);will-change:opacity,transform}
.csv60-reveal.csv60-visible{opacity:1;transform:none}

/* Enfoque accesible y visible */
:focus-visible{outline:3px solid rgba(0,102,213,.72)!important;outline-offset:4px!important}

/* Banner de cookies menos invasivo en móvil */
@media (max-width:700px){
  #cookieBanner,.cookie-banner,.cookies-banner,[class*="cookie-banner"]{padding:12px 14px!important;gap:10px!important;min-height:auto!important;align-items:center!important}
  #cookieBanner p,.cookie-banner p,.cookies-banner p,[class*="cookie-banner"] p{font-size:13px!important;line-height:1.3!important;margin:0!important}
  #cookieBanner button,.cookie-banner button,.cookies-banner button,[class*="cookie-banner"] button{min-height:44px!important;padding:10px 14px!important;font-size:14px!important}
}

/* Evita que controles flotantes compitan con la zona segura inferior */
.floatbar,.floating-actions,.wa-float,#waFloat{bottom:max(18px,env(safe-area-inset-bottom))}

/* Retroalimentación de navegación */
#csv60-pageveil{position:fixed;z-index:2147482999;inset:0;background:rgba(250,252,255,.72);backdrop-filter:blur(4px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}
#csv60-pageveil.show{opacity:1;visibility:visible}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.csv60-reveal{opacity:1!important;transform:none!important;transition:none!important}header,.site-header,.header,a,button,[role="button"]{transition:none!important}#csv60-pageveil{display:none}}


/* SOURCE: csv61-auditoria-pildoras.css */
/* CSV61 · Auditoría integral de contraste y legibilidad de botones píldora */
:root{
  --csv61-text-on-cta:#fff;
  --csv61-shadow-text:0 1px 2px rgba(0,0,0,.62),0 0 1px rgba(0,0,0,.35);
}

/* Toda acción tipo píldora conserva texto e iconos por encima del acabado de cristal. */
:where(
  a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
  .traveler-actions a,.csv-object--call,.csv-object--route,.csv-object--official,
  .v-link,.v-call,.nav-wa,.wa-open,.repsol-pill
){
  position:relative!important;
  isolation:isolate!important;
  color:var(--csv61-text-on-cta)!important;
  -webkit-text-fill-color:var(--csv61-text-on-cta)!important;
  text-shadow:var(--csv61-shadow-text)!important;
  font-weight:800!important;
  opacity:1!important;
}

:where(
  a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
  .traveler-actions a,.csv-object--call,.csv-object--route,.csv-object--official,
  .v-link,.v-call,.nav-wa,.wa-open,.repsol-pill
):visited{
  color:var(--csv61-text-on-cta)!important;
  -webkit-text-fill-color:var(--csv61-text-on-cta)!important;
}

/* El brillo decorativo nunca puede cubrir las palabras ni los símbolos. */
:where(
  a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
  .traveler-actions a,.csv-object--call,.csv-object--route,.csv-object--official,
  .v-link,.v-call,.nav-wa,.wa-open,.repsol-pill
)::before,
:where(
  a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
  .traveler-actions a,.csv-object--call,.csv-object--route,.csv-object--official,
  .v-link,.v-call,.nav-wa,.wa-open,.repsol-pill
)::after{
  pointer-events:none!important;
  z-index:-1!important;
}

:where(
  a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
  .traveler-actions a,.csv-object--call,.csv-object--route,.csv-object--official,
  .v-link,.v-call,.nav-wa,.wa-open,.repsol-pill
) :where(span,strong,b,em,small,i,svg,use,path,img){
  position:relative!important;
  z-index:2!important;
  color:var(--csv61-text-on-cta)!important;
  -webkit-text-fill-color:var(--csv61-text-on-cta)!important;
  opacity:1!important;
  filter:none;
}

/* Píldoras azules: contraste uniforme en normal, visitado, hover, foco y pulsación. */
:where(
  .btn.alt,.btn.outline,.btn.dark,
  .csv-utility-actions .btn,.csv-aenor-actions .btn,
  #informacion-oficial .actions .btn,.services-section .actions .btn,
  .csv-object--call,.csv-object--route,.utility-pill,.v-link,.v-call
){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.38) 0%,rgba(255,255,255,.10) 30%,rgba(255,255,255,0) 47%),
    radial-gradient(120% 110% at 50% -12%,#63c8ff 0%,#0868df 47%,#043a9f 100%)!important;
}

/* Píldoras principales naranjas: texto blanco garantizado. */
:where(a.btn,button.btn):not(.alt):not(.outline):not(.dark):not(.nav-wa):not(.csv-object--whatsapp){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* WhatsApp conserva verde oficial y máxima legibilidad. */
:where(.csv-object--whatsapp,.nav-wa,.wa-open){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Foco de teclado visible sin modificar la identidad visual. */
:where(
  a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
  .traveler-actions a,.csv-object--call,.csv-object--route,.csv-object--official,
  .v-link,.v-call,.nav-wa,.wa-open,.repsol-pill
):focus-visible{
  outline:3px solid #fff!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 6px rgba(8,104,223,.38),0 14px 30px rgba(6,23,43,.25)!important;
}

/* Evita que textos largos pierdan legibilidad o queden cortados en móvil. */
@media(max-width:650px){
  :where(a.btn,button.btn,.utility-pill,.traveler-actions a,.v-link){
    min-height:50px!important;
    line-height:1.16!important;
    text-align:center!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  .links{
    align-items:stretch!important;
  }
  .links > :where(a.btn,button.btn){
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
}


/* SOURCE: csv62-botones-premium.css */
/* CSV62 · Corrección quirúrgica de botones
   Solo diferencia acabados blancos y azules. Los CTA naranjas no se modifican. */
:root{
  --csv62-navy:#082b4d;
  --csv62-gold-1:#fff0a8;
  --csv62-gold-2:#dba62f;
  --csv62-gold-3:#8a5a09;
}

/* BOTONES BLANCOS: texto azul oscuro, marco dorado y acabado plástico brillante. */
:where(
  a.btn.outline,button.btn.outline,
  .utility-pill,
  .csv-object--route.btn.outline
){
  color:var(--csv62-navy)!important;
  -webkit-text-fill-color:var(--csv62-navy)!important;
  border:1px solid var(--csv62-gold-2)!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.92) 34%,rgba(238,244,249,.98) 67%,rgba(215,226,236,.98) 100%)!important;
  box-shadow:
    inset 0 2px 1px rgba(255,255,255,1),
    inset 0 -5px 10px rgba(7,43,77,.13),
    inset 0 0 0 2px rgba(255,255,255,.56),
    0 2px 0 var(--csv62-gold-3),
    0 8px 15px rgba(6,23,43,.20),
    0 15px 30px rgba(219,166,47,.20)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.95)!important;
}

:where(
  a.btn.outline,button.btn.outline,
  .utility-pill,
  .csv-object--route.btn.outline
):visited,
:where(
  a.btn.outline,button.btn.outline,
  .utility-pill,
  .csv-object--route.btn.outline
) :where(span,strong,b,em,small,i,svg,use,path){
  color:var(--csv62-navy)!important;
  -webkit-text-fill-color:var(--csv62-navy)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.95)!important;
}

:where(
  a.btn.outline,button.btn.outline,
  .utility-pill,
  .csv-object--route.btn.outline
)::before{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  left:7%!important;
  right:7%!important;
  top:5%!important;
  height:43%!important;
  border-radius:inherit!important;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.28))!important;
  opacity:.92!important;
  pointer-events:none!important;
}

/* BOTONES AZULES: letras blancas y volumen premium. */
:where(
  a.btn.alt,button.btn.alt,a.btn.dark,button.btn.dark,
  .csv-object--call,
  .csv-utility-actions .btn:not(.outline),
  .csv-aenor-actions .btn:not(.outline),
  #informacion-oficial .actions .btn:not(.outline),
  .services-section .actions .btn:not(.outline),
  .v-link,.v-call
){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border:1px solid rgba(255,255,255,.76)!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.45) 0%,rgba(255,255,255,.10) 31%,rgba(255,255,255,0) 48%),
    radial-gradient(120% 108% at 50% -10%,#63c8ff 0%,#0868df 48%,#043a9f 100%)!important;
  box-shadow:
    inset 0 2px 1px rgba(255,255,255,.9),
    inset 0 -5px 9px rgba(0,22,69,.28),
    inset 0 0 0 2px rgba(255,255,255,.14),
    0 2px 0 #032c7b,
    0 8px 14px rgba(6,23,43,.20),
    0 14px 30px rgba(14,111,224,.34)!important;
  text-shadow:0 1px 2px rgba(0,0,0,.48)!important;
}

:where(
  a.btn.alt,button.btn.alt,a.btn.dark,button.btn.dark,
  .csv-object--call,
  .csv-utility-actions .btn:not(.outline),
  .csv-aenor-actions .btn:not(.outline),
  #informacion-oficial .actions .btn:not(.outline),
  .services-section .actions .btn:not(.outline),
  .v-link,.v-call
):visited,
:where(
  a.btn.alt,button.btn.alt,a.btn.dark,button.btn.dark,
  .csv-object--call,
  .csv-utility-actions .btn:not(.outline),
  .csv-aenor-actions .btn:not(.outline),
  #informacion-oficial .actions .btn:not(.outline),
  .services-section .actions .btn:not(.outline),
  .v-link,.v-call
) :where(span,strong,b,em,small,i,svg,use,path){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Verde WhatsApp y CTA naranjas quedan fuera de esta hoja. */
@media (hover:hover){
  :where(a.btn.outline,button.btn.outline,.utility-pill,.csv-object--route.btn.outline):hover{
    transform:translateY(-3px) scale(1.012)!important;
    filter:brightness(1.025)!important;
    box-shadow:
      inset 0 2px 1px #fff,
      inset 0 -5px 10px rgba(7,43,77,.11),
      inset 0 0 0 2px rgba(255,255,255,.64),
      0 3px 0 var(--csv62-gold-3),
      0 12px 20px rgba(6,23,43,.22),
      0 20px 38px rgba(219,166,47,.25)!important;
  }
}


/* SOURCE: csv63-correccion-centro-viajero.css */
/* CSV63 · Corrección exclusiva de los dos CTA del Centro del Viajero.
   No modifica botones naranjas ni otros componentes. */
body.centro-viajero .traveler-hero .traveler-actions > a,
body.centro-viajero .traveler-hero .traveler-actions > a.secondary,
body.centro-viajero .traveler-hero .traveler-actions > a:visited,
body.centro-viajero .traveler-hero .traveler-actions > a.secondary:visited {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  color: #082b4d !important;
  -webkit-text-fill-color: #082b4d !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,.98) 34%, rgba(244,247,250,.98) 64%, rgba(220,229,237,.98) 100%) !important;
  border: 1.5px solid #d7a52e !important;
  border-radius: 24px !important;
  box-shadow:
    inset 0 3px 2px rgba(255,255,255,1),
    inset 0 -7px 13px rgba(8,43,77,.16),
    inset 0 0 0 2px rgba(255,255,255,.60),
    0 2px 0 #8b5b0b,
    0 9px 18px rgba(3,22,42,.24),
    0 18px 34px rgba(190,139,27,.20) !important;
  text-shadow: 0 1px 0 #fff !important;
  font-weight: 850 !important;
  opacity: 1 !important;
}

body.centro-viajero .traveler-hero .traveler-actions > a svg,
body.centro-viajero .traveler-hero .traveler-actions > a svg path {
  position: relative !important;
  z-index: 2 !important;
  color: #082b4d !important;
  stroke: #082b4d !important;
  -webkit-text-fill-color: #082b4d !important;
  opacity: 1 !important;
}

body.centro-viajero .traveler-hero .traveler-actions > a::before {
  content: "" !important;
  position: absolute !important;
  z-index: 0 !important;
  left: 5% !important;
  right: 5% !important;
  top: 5% !important;
  height: 42% !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.18)) !important;
  opacity: .95 !important;
  pointer-events: none !important;
}

body.centro-viajero .traveler-hero .traveler-actions > a::after {
  z-index: 0 !important;
  pointer-events: none !important;
}

body.centro-viajero .traveler-hero .traveler-actions > a:hover {
  color: #082b4d !important;
  -webkit-text-fill-color: #082b4d !important;
}

body.centro-viajero .traveler-hero .traveler-actions > a:active {
  transform: translateY(2px) scale(.985) !important;
  box-shadow:
    inset 0 5px 10px rgba(8,43,77,.18),
    inset 0 1px 1px rgba(255,255,255,.75),
    0 1px 0 #8b5b0b,
    0 5px 10px rgba(3,22,42,.18) !important;
}


/* SOURCE: csv64-restauracion-pildoras.css */
/* CSV64 · Restauración quirúrgica de píldoras blancas del Centro del Viajero.
   Alcance exclusivo: CTA blancos de centro-viajero.html. No afecta botones azules, naranjas ni otros componentes. */
body.centro-viajero .traveler-actions > a,
body.centro-viajero .traveler-actions > a:link,
body.centro-viajero .traveler-actions > a:visited,
body.centro-viajero .touch-card > .touch-action,
body.centro-viajero .touch-card > .card-body > .touch-action {
  color:#082b4d !important;
  -webkit-text-fill-color:#082b4d !important;
  opacity:1 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.98) !important;
}
body.centro-viajero .traveler-actions > a,
body.centro-viajero .touch-card > .touch-action,
body.centro-viajero .touch-card > .card-body > .touch-action {
  position:relative !important;
  isolation:isolate !important;
  overflow:hidden !important;
  border:1.5px solid #d7a52e !important;
  background:
    linear-gradient(180deg,rgba(255,255,255,1) 0%,rgba(255,255,255,.98) 34%,rgba(245,248,251,.98) 64%,rgba(220,229,237,.98) 100%) !important;
  box-shadow:
    inset 0 3px 2px rgba(255,255,255,1),
    inset 0 -7px 13px rgba(8,43,77,.15),
    inset 0 0 0 2px rgba(255,255,255,.62),
    0 2px 0 #8b5b0b,
    0 9px 18px rgba(3,22,42,.22),
    0 18px 34px rgba(190,139,27,.18) !important;
}
body.centro-viajero .touch-card > .touch-action,
body.centro-viajero .touch-card > .card-body > .touch-action {
  display:flex !important;
  width:100% !important;
  min-height:54px !important;
  margin-top:20px !important;
  padding:14px 20px !important;
  border-radius:999px !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  font-weight:900 !important;
  line-height:1.1 !important;
}
body.centro-viajero .traveler-actions > a > *,
body.centro-viajero .touch-action > *,
body.centro-viajero .traveler-actions > a svg,
body.centro-viajero .traveler-actions > a svg path,
body.centro-viajero .touch-action svg,
body.centro-viajero .touch-action svg path {
  position:relative !important;
  z-index:3 !important;
  color:#082b4d !important;
  -webkit-text-fill-color:#082b4d !important;
  stroke:#082b4d !important;
  opacity:1 !important;
}
body.centro-viajero .traveler-actions > a::before,
body.centro-viajero .touch-action::before {
  content:"" !important;
  position:absolute !important;
  z-index:1 !important;
  left:6% !important;
  right:6% !important;
  top:5% !important;
  height:42% !important;
  border-radius:999px !important;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.16)) !important;
  opacity:.95 !important;
  pointer-events:none !important;
}
body.centro-viajero .traveler-actions > a:active,
body.centro-viajero .touch-card:active .touch-action {
  transform:translateY(2px) scale(.988) !important;
}


/* SOURCE: csv65-sistema-pildoras-definitivo.css */
/* CSV65 · Sistema definitivo de píldoras y botones
   Capa final de consistencia visual. No altera contenido, enlaces, JS ni CTA naranjas. */
:root{
  --csv-pill-navy:#082b4d;
  --csv-pill-blue-top:#65caff;
  --csv-pill-blue-mid:#0868df;
  --csv-pill-blue-bottom:#043a9f;
  --csv-pill-gold:#d7a52e;
  --csv-pill-gold-dark:#85570a;
}

/* Base común: geometría, legibilidad y contenido siempre por encima del brillo. */
:where(a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
.traveler-actions>a,.csv-object--call,.csv-object--route,.csv-object--official,
.v-link,.v-call,.nav-wa,.wa-open,.repsol-pill){
  position:relative!important;
  isolation:isolate!important;
  opacity:1!important;
  font-weight:800!important;
  line-height:1.15!important;
  text-decoration:none!important;
  -webkit-font-smoothing:antialiased;
}
:where(a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
.traveler-actions>a,.csv-object--call,.csv-object--route,.csv-object--official,
.v-link,.v-call,.nav-wa,.wa-open,.repsol-pill)>*{
  position:relative!important;
  z-index:3!important;
  opacity:1!important;
}

/* BLANCAS · texto azul oscuro, marco dorado, volumen y brillo plástico. */
:where(a.btn.outline,button.btn.outline,.utility-pill:not(.csv-object--call),
.csv-object--route.btn.outline,body.centro-viajero .traveler-actions>a,
body.centro-viajero .touch-action){
  color:var(--csv-pill-navy)!important;
  -webkit-text-fill-color:var(--csv-pill-navy)!important;
  border:1.5px solid var(--csv-pill-gold)!important;
  background:
    linear-gradient(180deg,#fff 0%,rgba(255,255,255,.98) 34%,#f2f6f9 66%,#dbe5ed 100%)!important;
  box-shadow:
    inset 0 3px 2px #fff,
    inset 0 -7px 13px rgba(8,43,77,.14),
    inset 0 0 0 2px rgba(255,255,255,.60),
    0 2px 0 var(--csv-pill-gold-dark),
    0 9px 18px rgba(3,22,42,.22),
    0 18px 34px rgba(190,139,27,.18)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.98)!important;
}
:where(a.btn.outline,button.btn.outline,.utility-pill:not(.csv-object--call),
.csv-object--route.btn.outline,body.centro-viajero .traveler-actions>a,
body.centro-viajero .touch-action):visited,
:where(a.btn.outline,button.btn.outline,.utility-pill:not(.csv-object--call),
.csv-object--route.btn.outline,body.centro-viajero .traveler-actions>a,
body.centro-viajero .touch-action) :where(span,strong,b,em,small,i,svg,use,path){
  color:var(--csv-pill-navy)!important;
  -webkit-text-fill-color:var(--csv-pill-navy)!important;
  stroke:currentColor!important;
  text-shadow:0 1px 0 rgba(255,255,255,.98)!important;
}

/* AZULES · azul corporativo uniforme y texto/iconos blancos. */
:where(a.btn.alt,button.btn.alt,a.btn.dark,button.btn.dark,
.csv-object--call,.csv-utility-actions .btn:not(.outline),
.csv-aenor-actions .btn:not(.outline),#informacion-oficial .actions .btn:not(.outline),
.services-section .actions .btn:not(.outline),.v-link,.v-call){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border:1px solid rgba(255,255,255,.78)!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.45) 0%,rgba(255,255,255,.10) 31%,transparent 48%),
    radial-gradient(120% 108% at 50% -10%,var(--csv-pill-blue-top) 0%,var(--csv-pill-blue-mid) 48%,var(--csv-pill-blue-bottom) 100%)!important;
  box-shadow:
    inset 0 2px 1px rgba(255,255,255,.92),
    inset 0 -6px 10px rgba(0,22,69,.30),
    inset 0 0 0 2px rgba(255,255,255,.14),
    0 2px 0 #032c7b,
    0 9px 16px rgba(6,23,43,.22),
    0 16px 32px rgba(14,111,224,.34)!important;
  text-shadow:0 1px 2px rgba(0,0,0,.50)!important;
}
:where(a.btn.alt,button.btn.alt,a.btn.dark,button.btn.dark,
.csv-object--call,.csv-utility-actions .btn:not(.outline),
.csv-aenor-actions .btn:not(.outline),#informacion-oficial .actions .btn:not(.outline),
.services-section .actions .btn:not(.outline),.v-link,.v-call):visited,
:where(a.btn.alt,button.btn.alt,a.btn.dark,button.btn.dark,
.csv-object--call,.csv-utility-actions .btn:not(.outline),
.csv-aenor-actions .btn:not(.outline),#informacion-oficial .actions .btn:not(.outline),
.services-section .actions .btn:not(.outline),.v-link,.v-call) :where(span,strong,b,em,small,i,svg,use,path){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  stroke:currentColor!important;
}

/* NARANJAS · se conserva el acabado existente; solo se protege la lectura. */
:where(a.btn,button.btn):not(.alt):not(.outline):not(.dark):not(.nav-wa):not(.csv-object--whatsapp){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:0 1px 2px rgba(0,0,0,.55)!important;
}
:where(a.btn,button.btn):not(.alt):not(.outline):not(.dark):not(.nav-wa):not(.csv-object--whatsapp)
:where(span,strong,b,em,small,i,svg,use,path){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  stroke:currentColor!important;
}

/* WhatsApp mantiene su verde oficial y texto blanco. */
:where(.csv-object--whatsapp,.nav-wa,.wa-open),
:where(.csv-object--whatsapp,.nav-wa,.wa-open):visited,
:where(.csv-object--whatsapp,.nav-wa,.wa-open) :where(span,strong,b,em,small,i,svg,use,path){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  stroke:currentColor!important;
}

/* Interacciones coherentes sin desplazar la composición. */
@media (hover:hover){
  :where(a.btn.outline,button.btn.outline,.utility-pill:not(.csv-object--call),
  body.centro-viajero .traveler-actions>a,body.centro-viajero .touch-action):hover{
    transform:translateY(-3px) scale(1.01)!important;
    filter:brightness(1.025)!important;
  }
}
:where(a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
.traveler-actions>a,.v-link,.v-call,.nav-wa,.wa-open):focus-visible{
  outline:3px solid #fff!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 6px rgba(8,104,223,.38),0 14px 30px rgba(6,23,43,.25)!important;
}

@media(max-width:650px){
  :where(a.btn,button.btn,.utility-pill,.traveler-actions>a,.touch-action,.v-link){
    min-height:50px!important;
    line-height:1.16!important;
    text-align:center!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
}

/* ========================================================================== 
   CSV65 GOLD MASTER · CAPA PROTEGIDA CONTRA REGRESIONES
   --------------------------------------------------------------------------
   REGLAS BASE:
   1) No redefinir colores de texto de botones fuera de esta hoja.
   2) Mantener un mínimo táctil de 44 px y foco visible.
   3) Los CTA naranjas y WhatsApp conservan su identidad cromática.
   4) Cualquier variante nueva debe reutilizar estas variables.
   ========================================================================== */
:root{
  --csv-pill-radius:999px;
  --csv-pill-min-height:46px;
  --csv-pill-padding-block:.78rem;
  --csv-pill-padding-inline:1.25rem;
  --csv-pill-gap:.55rem;
  --csv-pill-font-size:clamp(.88rem,.82rem + .18vw,1rem);
  --csv-pill-transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease,filter .22s ease,background-color .22s ease;
  --csv-focus-ring:#8fd3ff;
}

/* Geometría única para todos los controles de acción. */
:where(a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
.traveler-actions>a,.csv-object--call,.csv-object--route,.csv-object--official,
.v-link,.v-call,.nav-wa,.wa-open,.repsol-pill){
  min-height:var(--csv-pill-min-height)!important;
  padding:var(--csv-pill-padding-block) var(--csv-pill-padding-inline)!important;
  border-radius:var(--csv-pill-radius)!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:var(--csv-pill-gap)!important;
  max-width:100%;
  font-size:var(--csv-pill-font-size)!important;
  letter-spacing:.012em!important;
  transition:var(--csv-pill-transition)!important;
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}

/* Evita iconos deformados y desplazamientos verticales. */
:where(a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
.traveler-actions>a,.csv-object--call,.csv-object--route,.csv-object--official,
.v-link,.v-call,.nav-wa,.wa-open,.repsol-pill) :where(svg,img,.icon,.csv-icon){
  flex:0 0 auto!important;
  width:1.15em;
  height:1.15em;
  object-fit:contain;
}

/* Estado pulsado sin alterar el flujo ni provocar saltos de layout. */
:where(a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
.traveler-actions>a,.csv-object--call,.csv-object--route,.csv-object--official,
.v-link,.v-call,.nav-wa,.wa-open,.repsol-pill):active{
  transform:translateY(1px) scale(.985)!important;
  filter:saturate(.98) brightness(.98)!important;
}

/* Foco WCAG: visible incluso sobre fondos claros, oscuros o fotográficos. */
:where(a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
.traveler-actions>a,.csv-object--call,.csv-object--route,.csv-object--official,
.v-link,.v-call,.nav-wa,.wa-open,.repsol-pill):focus-visible{
  outline:3px solid var(--csv-focus-ring)!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 6px rgba(255,255,255,.92),0 0 0 9px rgba(8,43,77,.72),0 14px 30px rgba(6,23,43,.24)!important;
}

/* Respeta preferencias de accesibilidad y reduce trabajo de composición. */
@media (prefers-reduced-motion:reduce){
  :where(a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
  .traveler-actions>a,.csv-object--call,.csv-object--route,.csv-object--official,
  .v-link,.v-call,.nav-wa,.wa-open,.repsol-pill){
    transition:none!important;
    animation:none!important;
    scroll-behavior:auto!important;
  }
}

@media(max-width:650px){
  :where(a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
  .traveler-actions>a,.v-link,.v-call){
    width:auto;
    max-width:100%;
    min-height:48px!important;
    padding:.8rem 1.05rem!important;
  }
}


/* SOURCE: csv67-premium-gold-integral.css */
/* ========================================================================== 
   CSV67 PREMIUM GOLD — CAPA VISUAL AISLADA Y PROTEGIDA
   --------------------------------------------------------------------------
   REGLA DE PROTECCIÓN:
   - Aplicar únicamente mediante .csv-premium-card, .csv-pill--light y
     .csv-pill--navy.
   - No sustituir IDs, nombres de formulario, clases funcionales ni atributos.
   - No extender estas reglas a button, .card o .btn de forma global.
   ========================================================================== */
:root {
  --csv-navy-950: #071426;
  --csv-navy-900: #0b203d;
  --csv-navy-800: #12365f;
  --csv-gold-500: #d4af37;
  --csv-gold-400: #e2c35c;
  --csv-gold-border: rgba(212, 175, 55, .48);
  --csv-gold-glow: rgba(212, 175, 55, .20);
  --csv-white: #fff;
  --csv-text-dark: #102844;
  --csv-radius-card: 20px;
  --csv-radius-pill: 999px;
  --csv-shadow-card: 0 18px 45px rgba(7,20,38,.14), 0 2px 8px rgba(7,20,38,.08);
  --csv-shadow-gold: 0 16px 32px rgba(7,20,38,.22), 0 0 0 1px rgba(212,175,55,.18), 0 0 24px var(--csv-gold-glow);
  --csv-transition-premium: 220ms cubic-bezier(.22,1,.36,1);
}

.csv-premium-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: linear-gradient(145deg, rgba(255,255,255,.985), rgba(245,248,252,.955));
  border: 1px solid rgba(15,40,70,.11) !important;
  border-radius: var(--csv-radius-card) !important;
  box-shadow: var(--csv-shadow-card) !important;
  color: var(--csv-text-dark);
  transition: transform var(--csv-transition-premium), box-shadow var(--csv-transition-premium), border-color var(--csv-transition-premium) !important;
}
.csv-premium-card::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0 0 auto;
  height: 2px;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.98), rgba(212,175,55,.62), transparent);
}
.csv-premium-card > * { position: relative; z-index: 1; }
.csv-premium-card :is(h1,h2,h3,h4,strong) { color: inherit; }

.csv-pill--light,
.csv-pill--navy {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .55rem !important;
  min-height: 44px;
  max-width: 100%;
  border-radius: var(--csv-radius-pill) !important;
  font-weight: 700 !important;
  letter-spacing: .01em !important;
  line-height: 1.15 !important;
  text-align: center;
  text-decoration: none !important;
  transition: transform var(--csv-transition-premium), box-shadow var(--csv-transition-premium), border-color var(--csv-transition-premium), filter var(--csv-transition-premium) !important;
  -webkit-tap-highlight-color: transparent;
}
.csv-pill--light {
  color: var(--csv-navy-900) !important;
  background: linear-gradient(180deg,#fff 0%,#f7f9fc 58%,#e9eef5 100%) !important;
  border: 1px solid var(--csv-gold-border) !important;
  box-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 rgba(7,20,38,.08), 0 7px 16px rgba(7,20,38,.16) !important;
}
.csv-pill--navy {
  color: var(--csv-white) !important;
  background: linear-gradient(180deg,#174f88 0%,var(--csv-navy-800) 48%,var(--csv-navy-950) 100%) !important;
  border: 1px solid rgba(226,195,92,.66) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), inset 0 -2px 4px rgba(0,0,0,.20), 0 9px 20px rgba(7,20,38,.30) !important;
  text-shadow: 0 1px 1px rgba(0,0,0,.28);
}
.csv-pill--light :is(svg,img), .csv-pill--navy :is(svg,img) {
  width: 1.05em;
  height: 1.05em;
  flex: 0 0 auto;
  object-fit: contain;
}
.csv-pill--light:focus-visible, .csv-pill--navy:focus-visible {
  outline: 3px solid rgba(212,175,55,.40) !important;
  outline-offset: 3px !important;
}
.csv-pill--light:active, .csv-pill--navy:active { transform: translateY(0) scale(.985); }

@media (hover:hover) and (pointer:fine) {
  .csv-premium-card:hover {
    transform: translateY(-3px);
    border-color: var(--csv-gold-border) !important;
    box-shadow: var(--csv-shadow-gold) !important;
  }
  .csv-pill--light:hover, .csv-pill--navy:hover {
    transform: translateY(-2px);
    filter: saturate(1.05);
    box-shadow: 0 12px 24px rgba(7,20,38,.24), 0 0 18px var(--csv-gold-glow) !important;
  }
}
@media (max-width: 640px) {
  .csv-premium-card { border-radius: 16px !important; }
  .csv-pill--light, .csv-pill--navy { min-height: 44px; }
}
@media (hover:none), (pointer:coarse) {
  .csv-premium-card, .csv-pill--light, .csv-pill--navy { transform: none; }
}
@media (prefers-reduced-motion:reduce) {
  .csv-premium-card, .csv-pill--light, .csv-pill--navy { transition: none !important; }
}


/* SOURCE: csv68-hotfix-gold.css */
/* ========================================================================== 
   CSV68 HOTFIX GOLD — PESTAÑA CSV TÁCTIL + LOGO PRECIOS RESPONSIVE
   --------------------------------------------------------------------------
   Corrección puntual y protegida. No modifica IDs, scripts ni estructura.
   ========================================================================== */

/* 1) Menú y pestaña CSV: prioridad táctil real en smartphones. */
@media (max-width: 900px), (pointer: coarse) {
  header,
  header .nav,
  header .menu {
    position: relative;
    z-index: 1010;
  }

  header .menu.open {
    z-index: 1100 !important;
    pointer-events: auto !important;
    isolation: isolate;
  }

  header .menu a,
  header .menu a[href="nuestra-historia.html"],
  header .menu a[href="/nuestra-historia.html"] {
    position: relative !important;
    z-index: 10 !important;
    pointer-events: auto !important;
    touch-action: manipulation;
    overflow: visible !important;
    -webkit-tap-highlight-color: rgba(212, 175, 55, .18);
  }

  /* Evita que decoraciones o capas de tarjetas intercepten el toque. */
  header .menu a::before,
  header .menu a::after {
    pointer-events: none !important;
  }
}

/* 2) Logo del footer de la página de precios: dimensiones estrictas. */
body.csv68-prices-page footer .footer-grid > div:first-child > img,
body.csv68-prices-page footer img[src$="csv-logo-premium-2026-mejorado.png"],
body.csv68-prices-page footer img[alt="CSV Vinromà"] {
  display: block !important;
  width: min(100%, 300px) !important;
  max-width: 300px !important;
  height: auto !important;
  max-height: 164px !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: left center !important;
  margin: 0 0 18px !important;
}

@media (max-width: 650px) {
  body.csv68-prices-page footer .footer-grid > div:first-child > img,
  body.csv68-prices-page footer img[src$="csv-logo-premium-2026-mejorado.png"],
  body.csv68-prices-page footer img[alt="CSV Vinromà"] {
    width: min(72vw, 230px) !important;
    max-width: 230px !important;
    max-height: 126px !important;
    margin: 0 auto 16px !important;
    object-position: center !important;
  }
}

@media (max-width: 380px) {
  body.csv68-prices-page footer .footer-grid > div:first-child > img,
  body.csv68-prices-page footer img[src$="csv-logo-premium-2026-mejorado.png"],
  body.csv68-prices-page footer img[alt="CSV Vinromà"] {
    width: min(68vw, 205px) !important;
    max-width: 205px !important;
    max-height: 112px !important;
  }
}


/* SOURCE: csv69-responsive-image-fix.css */
/* ========================================================================== 
   CSV69 — HOTFIX RESPONSIVE QUIRÚRGICO
   Corrige exclusivamente la imagen corporativa de "Nuestra historia" y
   compacta el consentimiento de cookies en móvil. No altera scripts ni IDs.
   ========================================================================== */

/* Aísla esta página de las reglas globales históricas asignadas a .hero. */
body.csv69-story-page .hero {
  min-height: auto !important;
  display: block !important;
  overflow: hidden !important;
}
body.csv69-story-page .hero > .wrap.hero-grid {
  width: min(1160px, calc(100% - 40px)) !important;
  padding: 0 !important;
  margin-inline: auto !important;
}
body.csv69-story-page .hero-mark {
  width: 100% !important;
  max-width: 480px !important;
  min-width: 0 !important;
  height: auto !important;
  margin-inline: auto !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
body.csv69-story-page .hero-mark > img[src*="csv-logo-reference-premium"] {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
  object-position: center !important;
  transform: none !important;
  margin: 0 auto !important;
}

@media (max-width: 820px) {
  body.csv69-story-page .hero {
    padding: 56px 0 48px !important;
  }
  body.csv69-story-page .hero > .wrap.hero-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 34px !important;
  }
  body.csv69-story-page .hero-mark {
    max-width: min(100%, 460px) !important;
    padding: 16px !important;
    transform: none !important;
    border-radius: 22px !important;
  }
}

@media (max-width: 480px) {
  body.csv69-story-page .hero > .wrap.hero-grid {
    width: calc(100% - 24px) !important;
    gap: 28px !important;
  }
  body.csv69-story-page .hero-mark {
    width: 100% !important;
    max-width: 100% !important;
    padding: 12px !important;
    border-radius: 18px !important;
  }
  body.csv69-story-page .hero-mark > img[src*="csv-logo-reference-premium"] {
    border-radius: 12px !important;
  }
}

/* Banner de consentimiento: evita que reglas globales de píldoras agranden
   los botones y reduzcan excesivamente el espacio útil en smartphones. */
@media (max-width: 640px) {
  #csv-consent-banner {
    min-height: 0 !important;
    padding: 8px max(10px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left)) !important;
    gap: 8px !important;
    align-items: center !important;
  }
  #csv-consent-banner p {
    flex: 1 1 auto !important;
    max-width: none !important;
    min-width: 0 !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
  }
  #csv-consent-actions {
    display: flex !important;
    flex: 0 0 auto !important;
    gap: 5px !important;
    align-items: center !important;
  }
  #csv-consent-actions button {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 36px !important;
    height: 36px !important;
    padding: 0 10px !important;
    margin: 0 !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    transform: none !important;
    box-shadow: 0 4px 10px rgba(7, 20, 38, .10) !important;
  }
}

@media (max-width: 360px) {
  #csv-consent-banner { gap: 5px !important; }
  #csv-consent-banner p { font-size: 10px !important; }
  #csv-consent-actions { gap: 3px !important; }
  #csv-consent-actions button {
    height: 34px !important;
    min-height: 34px !important;
    padding-inline: 8px !important;
    font-size: 10px !important;
  }
}


/* SOURCE: csv75-premium-unificado.css */
/* CSV75 — Unificación Premium de tarjetas y controles
   Objetivo: dar profundidad coherente sin alterar estructura ni responsive. */
:root{
  --csv75-gold:#d5a11e;
  --csv75-gold-soft:rgba(213,161,30,.42);
  --csv75-ink:#07192d;
  --csv75-shadow:0 18px 42px rgba(4,20,38,.14),0 4px 12px rgba(4,20,38,.08);
  --csv75-shadow-hover:0 24px 54px rgba(4,20,38,.20),0 7px 18px rgba(4,20,38,.11);
}

/* Tarjetas / paneles principales: marco fino dorado + profundidad controlada */
:where(
  .card,.csv-premium-card,.panel,.help-card,.touch-card,.service-card,.quick-card,
  .contact-card,.alliance-card,.station-card,.promo,.promo-card,.intro-box,.cta,
  .form-shell,.csv-utility-card,.csv-trust-shell,.csv-station-cert,.v-card,
  .station-meta,.toggle-card,.fact,.notice,.warning,.step,.field
){
  border:1px solid var(--csv75-gold-soft)!important;
  box-shadow:var(--csv75-shadow)!important;
  outline:1px solid rgba(7,25,45,.07);
  outline-offset:-2px;
  transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,filter .24s ease;
}

/* Marco interior muy sutil: aspecto de pieza acabada */
:where(.card,.csv-premium-card,.panel,.help-card,.touch-card,.service-card,.quick-card,
.contact-card,.alliance-card,.station-card,.promo,.promo-card,.intro-box,.cta,.form-shell,
.csv-utility-card,.csv-trust-shell,.csv-station-cert,.v-card){
  background-clip:padding-box;
}

@media (hover:hover) and (pointer:fine){
  :where(a.card,a.csv-premium-card,a.help-card,a.touch-card,a.service-card,a.quick-card,
  a.contact-card,a.station-card,a.csv-station-cert,.is-interactive.card,.is-interactive.csv-premium-card):hover{
    transform:translateY(-4px)!important;
    border-color:rgba(213,161,30,.78)!important;
    box-shadow:var(--csv75-shadow-hover)!important;
  }
}

/* Botones: mismo lenguaje visual premium, conservando sus colores funcionales */
:where(a.btn,button.btn,.station-action,.card-actions a,.touch-action,.csv-aenor-more){
  border:1px solid rgba(213,161,30,.62)!important;
  box-shadow:0 10px 24px rgba(4,20,38,.14),inset 0 1px 0 rgba(255,255,255,.42)!important;
  font-weight:800;
  letter-spacing:.005em;
}

:where(.btn.outline,.btn.alt){
  border-color:rgba(213,161,30,.72)!important;
  box-shadow:0 9px 22px rgba(4,20,38,.10),inset 0 1px 0 rgba(255,255,255,.9)!important;
}

:where(.btn.dark,.station-action.dark){
  border-color:rgba(213,161,30,.76)!important;
  box-shadow:0 12px 28px rgba(4,20,38,.22),inset 0 1px 0 rgba(255,255,255,.15)!important;
}

@media (hover:hover) and (pointer:fine){
  :where(a.btn,button.btn,.station-action,.card-actions a,.touch-action,.csv-aenor-more):hover{
    transform:translateY(-2px)!important;
    box-shadow:0 15px 32px rgba(4,20,38,.20),0 0 0 1px rgba(213,161,30,.18)!important;
  }
}

/* Píldoras/chips: profundidad menor para no competir con las tarjetas */
:where(.csv-pill--light,.csv-pill--navy,.service-chip,.help-chip,.utility-pill,.v-badge){
  border:1px solid rgba(213,161,30,.35)!important;
  box-shadow:0 7px 16px rgba(4,20,38,.08),inset 0 1px 0 rgba(255,255,255,.42)!important;
}

/* En móvil mantenemos profundidad, pero reducimos sombras para legibilidad y rendimiento */
@media(max-width:700px){
  :where(.card,.csv-premium-card,.panel,.help-card,.touch-card,.service-card,.quick-card,
  .contact-card,.alliance-card,.station-card,.promo,.promo-card,.intro-box,.cta,.form-shell,
  .csv-utility-card,.csv-trust-shell,.csv-station-cert,.v-card,.station-meta,.toggle-card,
  .fact,.notice,.warning,.step,.field){
    box-shadow:0 12px 26px rgba(4,20,38,.12),0 3px 8px rgba(4,20,38,.06)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  :where(.card,.csv-premium-card,.panel,.help-card,.touch-card,.service-card,.quick-card,
  .contact-card,.station-card,a.btn,button.btn,.station-action,.card-actions a){transition:none!important}
}


/* SOURCE: csv76-tarjetas-premium-cuadradas.css */
/* CSV76 — Tarjetas premium cuadradas
   Corrige exclusivamente las tarjetas de servicios que habían quedado
   como cápsulas/óvalos. No altera botones, badges ni controles. */

.service-chip{
  border-radius:16px !important;
  border:1px solid rgba(213,161,30,.46) !important;
  background:linear-gradient(155deg,#ffffff 0%,#fbfcfe 68%,#f5f8fb 100%) !important;
  box-shadow:
    0 18px 38px rgba(4,20,38,.13),
    0 4px 10px rgba(4,20,38,.07),
    inset 0 1px 0 rgba(255,255,255,.95) !important;
  outline:1px solid rgba(7,25,45,.07);
  outline-offset:-2px;
  overflow:hidden;
}

.service-chip::after{
  border-radius:14px !important;
}

@media (hover:hover) and (pointer:fine){
  .service-chip:hover{
    transform:translateY(-4px) !important;
    border-color:rgba(213,161,30,.78) !important;
    box-shadow:
      0 24px 50px rgba(4,20,38,.18),
      0 7px 16px rgba(4,20,38,.10),
      inset 0 1px 0 rgba(255,255,255,.98) !important;
  }
}

/* En móvil mantenemos el aspecto de tarjeta, sin volverla ovalada. */
@media(max-width:700px){
  .service-chip{
    border-radius:15px !important;
    box-shadow:
      0 12px 26px rgba(4,20,38,.12),
      0 3px 8px rgba(4,20,38,.06) !important;
  }
  .service-chip::after{
    border-radius:13px !important;
  }
}


/* SOURCE: csv79-regresiones-mobile.css */

/* CSV79 — Reparación de regresiones móviles y coherencia visual
   Capa final deliberadamente específica. No modifica el módulo de precios CSV77. */

:root{
  --csv79-navy:#082b4d;
  --csv79-navy-deep:#06172b;
  --csv79-gold:#d5a11e;
  --csv79-alert-bg:#fff7df;
  --csv79-alert-ink:#493100;
}

/* REGLA DEFINITIVA DE PÍLDORAS
   Blanca = texto azul. Azul = texto blanco. */
.csv-pill--light,
.csv-pill--light:visited{
  color:var(--csv79-navy)!important;
  -webkit-text-fill-color:var(--csv79-navy)!important;
  background:linear-gradient(180deg,#fff 0%,#fbfdff 48%,#e9f0f6 100%)!important;
  border-color:rgba(213,161,30,.72)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.95)!important;
}
.csv-pill--light :is(span,strong,b,em,small,i,svg,path,use){
  color:var(--csv79-navy)!important;
  -webkit-text-fill-color:var(--csv79-navy)!important;
  stroke:currentColor!important;
}
.csv-pill--navy,
.csv-pill--navy:visited,
a.btn.alt.csv-pill--navy,
a.btn.dark.csv-pill--navy{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:linear-gradient(180deg,#276aa8 0%,#124f87 46%,#082b4d 100%)!important;
  border-color:rgba(213,161,30,.72)!important;
  text-shadow:0 1px 2px rgba(0,0,0,.48)!important;
}
.csv-pill--navy :is(span,strong,b,em,small,i,svg,path,use){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  stroke:currentColor!important;
}

/* Aviso operacional visible */
.csv-service-alert{
  position:relative;
  z-index:15;
  background:linear-gradient(180deg,#fffaf0,#fff2cb);
  border-top:1px solid rgba(213,161,30,.55);
  border-bottom:1px solid rgba(213,161,30,.68);
  color:var(--csv79-alert-ink);
}
.csv-service-alert .wrap{
  padding:14px 0;
  display:flex;
  align-items:center;
  gap:12px;
}
.csv-service-alert__icon{
  flex:0 0 36px;width:36px;height:36px;border-radius:50%;
  display:grid;place-items:center;
  background:#f5b400;color:#2f2200;font-weight:950;font-size:1.15rem;
  box-shadow:0 5px 14px rgba(111,77,0,.18);
}
.csv-service-alert__copy{min-width:0;line-height:1.35;font-size:.94rem}
.csv-service-alert__copy strong{display:block;color:#382700;margin-bottom:2px}
.csv-service-alert__copy a{font-weight:900;text-decoration:underline;text-underline-offset:2px}

/* HOME: imagen corporativa completa, sin franja vacía */
body .hero-card.csv-brand-plaque .csv-logo-stage{
  width:100%!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  min-height:0!important;
  background:#efe5d2!important;
  overflow:hidden!important;
}
body .hero-card.csv-brand-plaque .csv-logo-stage > .csv-logo-main{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  aspect-ratio:1/1!important;
  object-fit:cover!important;
  object-position:center!important;
  transform:none!important;
  margin:0!important;
}

/* NUESTRA HISTORIA: anula alturas/resizes históricos */
body.csv69-story-page .hero{
  min-height:0!important;
  height:auto!important;
  display:block!important;
  overflow:hidden!important;
  padding:58px 0 52px!important;
}
body.csv69-story-page .hero > .wrap.hero-grid{
  min-height:0!important;
  height:auto!important;
  align-items:center!important;
}
body.csv69-story-page .hero-mark{
  width:min(100%,420px)!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  padding:14px!important;
  margin:0 auto!important;
  transform:none!important;
  overflow:hidden!important;
}
body.csv69-story-page .hero-mark > img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  min-height:0!important;
  aspect-ratio:1/1!important;
  object-fit:cover!important;
  object-position:center!important;
  transform:none!important;
}
body.csv69-story-page main,
body.csv69-story-page main>section{
  min-height:0!important;
}

/* Movilidad: píldora blanca legible y botones de teléfono con etiqueta */
body.movilidad-asistencia .traveler-actions .csv-pill--light{
  color:var(--csv79-navy)!important;
  -webkit-text-fill-color:var(--csv79-navy)!important;
}
body.movilidad-asistencia .utility-strip .csv-object--call{
  width:auto!important;
  min-width:150px!important;
  padding:.75rem 1rem!important;
  gap:9px!important;
}
body.movilidad-asistencia .utility-strip .csv-object--call .csv-call-premium-icon{
  width:46px!important;height:46px!important;
}

/* WhatsApp flotante: evita tapar el último control útil */
.floatbar{bottom:max(18px,env(safe-area-inset-bottom))!important}
@media(max-width:700px){
  .floatbar{right:14px!important}
}

/* Evita huecos heredados por min-height en móvil, salvo componentes que realmente lo requieren */
@media(max-width:700px){
  body.csv69-story-page .hero,
  body.csv69-story-page .hero-grid,
  body.csv69-story-page .hero-mark,
  body.csv69-story-page main>section{
    min-height:0!important;
  }
  body.csv69-story-page .hero-grid{
    grid-template-columns:1fr!important;
    gap:28px!important;
  }
  body.csv69-story-page .hero-mark{
    max-width:330px!important;
  }
  body.csv69-story-page .hero h1{
    font-size:clamp(2.5rem,12vw,3.5rem)!important;
  }
  .csv-service-alert .wrap{padding:11px 0;align-items:flex-start}
  .csv-service-alert__copy{font-size:.88rem}
}

/* Header: la capa JS añade csv79-header-up al detectar subida. */
header,.site-header,.header{
  will-change:transform;
}
body.csv79-header-up header,
body.csv79-header-up .site-header,
body.csv79-header-up .header{
  transform:translateY(0)!important;
}


/* SOURCE: csv83-nav-mobile.css */
/* CSV83 — navegación móvil única y corrección iPhone/Safari */
@media(max-width:900px){
  body>header{
    position:sticky!important;top:0!important;z-index:1200!important;
    transform:translate3d(0,0,0)!important;
    transition:transform .24s cubic-bezier(.22,.61,.36,1)!important;
    pointer-events:auto!important;visibility:visible!important;opacity:1!important;
  }
  body>header.csv83-hidden{transform:translate3d(0,-105%,0)!important}
  body>header.csv83-visible{transform:translate3d(0,0,0)!important}
  body>header .nav{position:relative!important;z-index:1!important}
  body>header .menu-toggle,body>header .brand,body>header .nav-wa{pointer-events:auto!important;touch-action:manipulation!important}

  /* iOS: no congelar todo el body al abrir el menú. */
  body.menu-open{overflow:visible!important;touch-action:auto!important}
  body>header .menu{
    position:fixed!important;
    top:calc(var(--csv-header-h,88px) + env(safe-area-inset-top,0px))!important;
    left:12px!important;right:12px!important;bottom:auto!important;
    max-height:calc(100dvh - var(--csv-header-h,88px) - 24px)!important;
    overflow:auto!important;-webkit-overflow-scrolling:touch!important;
    z-index:1210!important;pointer-events:auto!important;
    background:rgba(255,255,255,.985)!important;
  }
  body>header .menu.open{display:flex!important}
  body>header .menu a{pointer-events:auto!important;touch-action:manipulation!important;color:#435064!important}

  /* Salud / contactos: reserva columna real para el icono y evita números cortados. */
  .traveler-page .v-list .v-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 78px!important;
    grid-template-rows:auto auto!important;
    column-gap:12px!important;row-gap:8px!important;
    align-items:center!important;
    padding:20px 16px 20px 20px!important;
    min-width:0!important;overflow:hidden!important;
  }
  .traveler-page .v-list .v-row>b{grid-column:1!important;grid-row:1!important;min-width:0!important}
  .traveler-page .v-list .v-row>span{
    grid-column:1!important;grid-row:2!important;min-width:0!important;max-width:100%!important;
    white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important;line-height:1.35!important;
  }
  .traveler-page .v-list .v-row>a.csv-object--call{
    grid-column:2!important;grid-row:1/span 2!important;
    width:70px!important;height:70px!important;min-width:70px!important;
    padding:0!important;display:grid!important;place-items:center!important;justify-self:center!important;align-self:center!important;
  }
  .traveler-page .v-list .v-row>a.csv-object--call .csv-call-premium-icon{width:66px!important;height:66px!important;max-width:66px!important}
}

/* Landscape: evitar alturas heredadas y lienzos vacíos en iPhone. */
@media(max-width:950px) and (orientation:landscape){
  html,body{min-height:100%!important;height:auto!important}
  main,main>section,.hero,.traveler-hero{min-height:0!important;height:auto!important}
  body>header .menu{top:72px!important;max-height:calc(100dvh - 84px)!important}
}


/* SOURCE: csv86-1-contraste-pildoras-footer.css */
/* CSV86.1 — corrección quirúrgica de contraste y logo footer.
   No altera estructura, layout, navegación, precios, responsive ni contenidos. */
:root{--csv861-navy:#082b4d;}

/* Píldora clara: SIEMPRE fondo claro + texto azul oscuro. */
a.csv-pill--light,
a.csv-pill--light:link,
a.csv-pill--light:visited,
button.csv-pill--light,
.btn.csv-pill--light,
.btn.alt.csv-pill--light,
.btn.dark.csv-pill--light,
.btn.outline.csv-pill--light{
  color:var(--csv861-navy)!important;
  -webkit-text-fill-color:var(--csv861-navy)!important;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 52%,#e9f0f6 100%)!important;
  border-color:rgba(213,161,30,.72)!important;
  text-shadow:none!important;
}
.csv-pill--light :is(span,strong,b,em,small,i){
  color:var(--csv861-navy)!important;
  -webkit-text-fill-color:var(--csv861-navy)!important;
  text-shadow:none!important;
}
.csv-pill--light :is(svg,path,use){color:var(--csv861-navy)!important;stroke:currentColor!important;}

/* Píldora azul: SIEMPRE fondo azul + texto blanco. */
a.csv-pill--navy,
a.csv-pill--navy:link,
a.csv-pill--navy:visited,
button.csv-pill--navy,
.btn.csv-pill--navy,
.btn.alt.csv-pill--navy,
.btn.dark.csv-pill--navy,
.btn.outline.csv-pill--navy{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:linear-gradient(180deg,#276aa8 0%,#124f87 46%,#082b4d 100%)!important;
  border-color:rgba(213,161,30,.72)!important;
}
.csv-pill--navy :is(span,strong,b,em,small,i){color:#fff!important;-webkit-text-fill-color:#fff!important;}
.csv-pill--navy :is(svg,path,use){color:#fff!important;stroke:currentColor!important;}

/* Centro de ayuda/footer: el PNG/WebP del logo es transparente; no crear placa blanca. */
footer .footer-grid>div:first-child>img,
footer img[src*="csv-logo-premium"],
footer img[alt="CSV Vinromà"]{
  background:transparent!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}


/* SOURCE: csv86-4-ajustes-finales.css */
/* CSV86.4 — ajustes finales verificados.
   Alcance: 1) proporción de logotipo CSV en footers legacy;
            2) alineación/legibilidad de acciones de asistencia mecánica.
   No modifica navegación, contenidos, precios, formularios ni scripts. */

/* Footers antiguos con el logo como <img> directo: limitar tamaño y preservar proporción. */
footer .footer-grid > div:first-child > img[src*="csv-logo-premium"]{
  display:block!important;
  width:min(220px,100%)!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:220px!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:left center!important;
  margin:0 0 18px!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  transform:none!important;
}

/* Movilidad y asistencia: las tres acciones deben formar una fila coherente.
   Se anula SOLO aquí la conversión global de los botones de llamada a círculos sueltos. */
.movilidad-asistencia .utility-strip{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:stretch!important;
  gap:18px!important;
}
.movilidad-asistencia .utility-strip > a.utility-pill{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  min-height:78px!important;
  max-height:none!important;
  margin:0!important;
  padding:12px 18px!important;
  border-radius:24px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:14px!important;
  overflow:hidden!important;
  text-align:left!important;
}

/* Las llamadas 011/112 vuelven a ser píldoras completas con icono + texto legible. */
.movilidad-asistencia .utility-strip > a.utility-pill.csv-object--call{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.30) 0%,rgba(255,255,255,.07) 34%,rgba(255,255,255,0) 50%),
    linear-gradient(180deg,#276aa8 0%,#124f87 48%,#082b4d 100%)!important;
  border:1px solid rgba(213,161,30,.72)!important;
  box-shadow:inset 0 2px 1px rgba(255,255,255,.75),inset 0 -4px 9px rgba(0,22,69,.24),0 8px 18px rgba(6,23,43,.20)!important;
}
.movilidad-asistencia .utility-strip > a.utility-pill.csv-object--call > img.csv-call-premium-icon{
  display:block!important;
  position:relative!important;
  flex:0 0 54px!important;
  width:54px!important;
  height:54px!important;
  min-width:54px!important;
  min-height:54px!important;
  max-width:54px!important;
  max-height:54px!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  border-radius:50%!important;
  transform:none!important;
}
.movilidad-asistencia .utility-strip > a.utility-pill.csv-object--call > span{
  display:block!important;
  position:relative!important;
  z-index:2!important;
  flex:1 1 auto!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
  visibility:visible!important;
  font-weight:850!important;
  line-height:1.15!important;
  text-shadow:0 1px 2px rgba(0,0,0,.38)!important;
}

/* La acción de ruta conserva el acabado claro y alineación equivalente. */
.movilidad-asistencia .utility-strip > a.utility-pill.csv-object--route{
  color:#082b4d!important;
  -webkit-text-fill-color:#082b4d!important;
}
.movilidad-asistencia .utility-strip > a.utility-pill.csv-object--route .csv-object__icon{
  flex:0 0 50px!important;
  width:50px!important;
  height:50px!important;
  margin:0!important;
}
.movilidad-asistencia .utility-strip > a.utility-pill.csv-object--route .csv-object__label{
  display:block!important;
  color:#082b4d!important;
  -webkit-text-fill-color:#082b4d!important;
}

@media(max-width:820px){
  .movilidad-asistencia .utility-strip{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .movilidad-asistencia .utility-strip > a.utility-pill{
    min-height:70px!important;
  }
  .movilidad-asistencia .utility-strip > a.utility-pill.csv-object--call > img.csv-call-premium-icon{
    flex-basis:50px!important;
    width:50px!important;
    height:50px!important;
    min-width:50px!important;
    min-height:50px!important;
    max-width:50px!important;
    max-height:50px!important;
  }
  footer .footer-grid > div:first-child > img[src*="csv-logo-premium"]{
    width:min(190px,72vw)!important;
    max-width:190px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    object-position:center!important;
  }
}

/* CSV86.7 — Hero HOME: mapa territorial fotorealista aprobado. Solo afecta a la imagen interna de la placa principal. */
body .hero-card.csv-brand-plaque .csv-logo-stage{
  aspect-ratio:3/2!important;
  background:#0b2435!important;
}
body .hero-card.csv-brand-plaque .csv-logo-stage > .csv-logo-main{
  width:100%!important;
  height:100%!important;
  aspect-ratio:3/2!important;
  object-fit:cover!important;
  object-position:center center!important;
  border-radius:clamp(18px,3vw,31px)!important;
}
@media(max-width:650px){
  body .hero-card.csv-brand-plaque .csv-logo-stage,
  body .hero-card.csv-brand-plaque .csv-logo-stage > .csv-logo-main{
    aspect-ratio:3/2!important;
  }
}


/* SOURCE: csv96-stability-verified.css */
/* CSV96 · Stability / Responsive / Contrast invariants
   Loaded LAST on every page. This file intentionally defines only final
   visual invariants that must not be reversed by historical CSS layers. */
:root{
  --csv96-navy:#071a31;
  --csv96-muted:#516273;
  --csv96-gold:rgba(213,161,30,.54);
  --csv96-card-bg:linear-gradient(155deg,#ffffff 0%,#fbfcfe 68%,#f4f7fa 100%);
}

/* -------------------------------------------------------------------------
   1) CONTRAST CONTRACT
   Light pill = light surface + dark navy text.
   Navy pill  = navy surface + pure white text.
   Descendants inherit the same visible color to avoid white-on-white bugs.
   ------------------------------------------------------------------------- */
:where(a,button).csv-pill--light,
:where(a,button).csv-pill--light:link,
:where(a,button).csv-pill--light:visited,
.btn.csv-pill--light,
.btn.alt.csv-pill--light,
.btn.dark.csv-pill--light,
.btn.outline.csv-pill--light{
  color:var(--csv96-navy)!important;
  -webkit-text-fill-color:var(--csv96-navy)!important;
  background:linear-gradient(180deg,#fff 0%,#fbfdff 52%,#e9f0f6 100%)!important;
  border-color:rgba(213,161,30,.72)!important;
  text-shadow:none!important;
}
.csv-pill--light :is(span,strong,b,em,small,i){
  color:var(--csv96-navy)!important;
  -webkit-text-fill-color:var(--csv96-navy)!important;
  text-shadow:none!important;
}
.csv-pill--light :is(svg,path,use){color:var(--csv96-navy)!important;stroke:currentColor!important}

:where(a,button).csv-pill--navy,
:where(a,button).csv-pill--navy:link,
:where(a,button).csv-pill--navy:visited,
.btn.csv-pill--navy,
.btn.alt.csv-pill--navy,
.btn.dark.csv-pill--navy,
.btn.outline.csv-pill--navy{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:linear-gradient(180deg,#276aa8 0%,#124f87 46%,#082b4d 100%)!important;
  border-color:rgba(213,161,30,.72)!important;
  text-shadow:0 1px 2px rgba(0,0,0,.28)!important;
}
.csv-pill--navy :is(span,strong,b,em,small,i){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
.csv-pill--navy :is(svg,path,use){color:#fff!important;stroke:currentColor!important}

/* -------------------------------------------------------------------------
   2) SERVICE CARDS — one architecture on phone, tablet and desktop.
   They are CARDS, never capsules/pills.
   ------------------------------------------------------------------------- */
.service-cloud{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:16px!important;
  align-items:stretch!important;
  grid-auto-rows:1fr!important;
}
.service-chip{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  min-height:154px!important;
  height:100%!important;
  padding:22px 20px!important;
  border-radius:16px!important;
  border:1px solid var(--csv96-gold)!important;
  outline:1px solid rgba(7,25,45,.055)!important;
  outline-offset:-2px!important;
  background:var(--csv96-card-bg)!important;
  color:var(--csv96-navy)!important;
  -webkit-text-fill-color:var(--csv96-navy)!important;
  box-shadow:0 13px 28px rgba(4,20,38,.10),0 3px 8px rgba(4,20,38,.05),inset 0 1px 0 rgba(255,255,255,.98)!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-items:flex-start!important;
  gap:0!important;
  text-align:left!important;
  overflow:hidden!important;
}
.service-chip::before{border-radius:14px!important;opacity:.34!important}
.service-chip::after{border-radius:14px!important}
.service-chip > i{
  width:34px!important;
  height:34px!important;
  min-height:34px!important;
  display:grid!important;
  place-items:center!important;
  margin:0 0 12px!important;
  line-height:1!important;
  color:#175c96!important;
  -webkit-text-fill-color:#175c96!important;
}
.service-chip > i .csv-icon{width:1.55rem!important;height:1.55rem!important}
.service-chip > b{
  display:block!important;
  margin:0 0 7px!important;
  color:var(--csv96-navy)!important;
  -webkit-text-fill-color:var(--csv96-navy)!important;
  font-size:1.06rem!important;
  font-weight:800!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
}
.service-chip > span{
  display:block!important;
  margin:0!important;
  color:var(--csv96-muted)!important;
  -webkit-text-fill-color:var(--csv96-muted)!important;
  font-size:.94rem!important;
  line-height:1.48!important;
  text-wrap:pretty!important;
}
a.service-chip{text-decoration:none!important}

/* Section headings: controlled editorial hierarchy instead of oversized text. */
#servicios .section-head,
#ayuda-conductor .section-head{
  display:grid!important;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.75fr)!important;
  align-items:end!important;
  gap:28px!important;
  margin-bottom:28px!important;
}
#servicios .section-head h2,
#ayuda-conductor .section-head h2{
  max-width:760px!important;
  margin:6px 0 0!important;
  font-size:clamp(2rem,3.1vw,3.05rem)!important;
  line-height:1.05!important;
  letter-spacing:-.035em!important;
  text-wrap:balance!important;
}
#servicios .section-head p,
#ayuda-conductor .section-head p{
  max-width:520px!important;
  margin:0!important;
  font-size:1rem!important;
  line-height:1.58!important;
  color:var(--csv96-muted)!important;
  -webkit-text-fill-color:var(--csv96-muted)!important;
  text-wrap:pretty!important;
}

@media(max-width:1000px){
  .service-cloud{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
  .service-chip{min-height:148px!important}
  #servicios .section-head,#ayuda-conductor .section-head{
    grid-template-columns:minmax(0,1fr) minmax(260px,.78fr)!important;
    gap:22px!important;
  }
}

@media(max-width:650px){
  .service-cloud{grid-template-columns:1fr!important;gap:14px!important;grid-auto-rows:auto!important}
  .service-chip{
    min-height:0!important;
    height:auto!important;
    padding:20px 18px!important;
    border-radius:14px!important;
    box-shadow:0 10px 22px rgba(4,20,38,.10),0 2px 6px rgba(4,20,38,.05),inset 0 1px 0 rgba(255,255,255,.98)!important;
  }
  .service-chip::before,.service-chip::after{border-radius:12px!important}
  .service-chip > i{margin-bottom:10px!important}
  .service-chip > b{font-size:1.04rem!important;margin-bottom:6px!important}
  .service-chip > span{font-size:.93rem!important;line-height:1.45!important}
  #servicios .section-head,#ayuda-conductor .section-head{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:10px!important;
    margin-bottom:22px!important;
  }
  #servicios .section-head h2,#ayuda-conductor .section-head h2{
    font-size:clamp(2rem,9.2vw,2.45rem)!important;
    line-height:1.06!important;
  }
  #servicios .section-head p,#ayuda-conductor .section-head p{
    max-width:100%!important;
    font-size:.97rem!important;
    line-height:1.52!important;
  }
}

/* Keep physical feedback subtle and consistent; no geometry change on interaction. */
@media(hover:hover) and (pointer:fine){
  .service-chip:hover{
    transform:translateY(-3px)!important;
    border-radius:16px!important;
    border-color:rgba(213,161,30,.78)!important;
    box-shadow:0 19px 38px rgba(4,20,38,.14),0 5px 12px rgba(4,20,38,.07),inset 0 1px 0 #fff!important;
  }
}
.service-chip:active{transform:translateY(1px) scale(.993)!important}
@media(prefers-reduced-motion:reduce){.service-chip{transition:none!important}}

/* Legacy button variants that do not yet carry an explicit csv-pill token.
   This closes the historic V19/CSV48 contradiction that could leave a light
   surface with white text after cascade overrides. */
.btn.alt:not(.csv-pill--navy),
.btn.outline:not(.csv-pill--navy),
.utility-pill:not(.csv-pill--navy):not(.csv-object--call){
  color:var(--csv96-navy)!important;
  -webkit-text-fill-color:var(--csv96-navy)!important;
  background:linear-gradient(180deg,#fff 0%,#fbfdff 52%,#e9f0f6 100%)!important;
  text-shadow:none!important;
}
.btn.alt:not(.csv-pill--navy) :is(span,strong,b,em,small,i),
.btn.outline:not(.csv-pill--navy) :is(span,strong,b,em,small,i),
.utility-pill:not(.csv-pill--navy):not(.csv-object--call) :is(span,strong,b,em,small,i){
  color:var(--csv96-navy)!important;
  -webkit-text-fill-color:var(--csv96-navy)!important;
}
.btn.dark:not(.csv-pill--light){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:linear-gradient(180deg,#276aa8 0%,#124f87 46%,#082b4d 100%)!important;
  text-shadow:0 1px 2px rgba(0,0,0,.28)!important;
}
.btn.dark:not(.csv-pill--light) :is(span,strong,b,em,small,i){color:#fff!important;-webkit-text-fill-color:#fff!important}

/* CSV97 — invariant: recovered mobile header is fully interactive at any scroll position. */
@media(max-width:980px){
 body>header.csv83-visible{transform:translate3d(0,0,0)!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important}
 body>header.csv83-hidden{transform:translate3d(0,-105%,0)!important;pointer-events:none!important}
 body>header.csv83-visible .menu-toggle,body>header.csv83-visible .menu,body>header.csv83-visible .menu a{pointer-events:auto!important}
 body>header{will-change:transform;transition:transform .22s cubic-bezier(.2,.7,.2,1),opacity .18s ease!important}
}

/* CSV97 — price-row status keeps card geometry stable during refresh. */
.manual-badge.csv-price-freshness{min-height:22px;display:flex;align-items:center}


/* SOURCE: csv100-control-calidad.css */

/* CSV100 · Control de calidad final
   Última capa: semántica visual, consistencia responsive y prevención de regresiones. */

:root{
  --csv100-navy:#06172b;
  --csv100-blue:#0b4b86;
  --csv100-white:#ffffff;
  --csv100-line:#dbe3ea;
}

/* Never allow layout-wide accidental horizontal scrolling */
html,body{max-width:100%;overflow-x:hidden}
img,svg,video,canvas{max-width:100%}

/* ACTION PILLS: exactly two approved contrast systems */
a.csv-pill--navy,
button.csv-pill--navy,
.btn.csv-pill--navy,
input[type="submit"].csv-pill--navy{
  background:var(--csv100-navy)!important;
  background-image:none!important;
  color:var(--csv100-white)!important;
  -webkit-text-fill-color:var(--csv100-white)!important;
  border-color:var(--csv100-navy)!important;
}
.csv-pill--navy :is(span,strong,b,em,small,i){
  color:var(--csv100-white)!important;
  -webkit-text-fill-color:var(--csv100-white)!important;
}
.csv-pill--navy :is(svg,path,use){color:var(--csv100-white)!important;stroke:currentColor!important}

a.csv-pill--light,
button.csv-pill--light,
.btn.csv-pill--light,
.link.csv-pill--light{
  background:var(--csv100-white)!important;
  background-image:none!important;
  color:var(--csv100-navy)!important;
  -webkit-text-fill-color:var(--csv100-navy)!important;
  border-color:var(--csv100-line)!important;
}
.csv-pill--light :is(span,strong,b,em,small,i){
  color:var(--csv100-navy)!important;
  -webkit-text-fill-color:var(--csv100-navy)!important;
}
.csv-pill--light :is(svg,path,use){color:var(--csv100-navy)!important;stroke:currentColor!important}

/* All real button/link pills have adequate touch target and clear pointer */
:is(a,button).csv-pill--navy,
:is(a,button).csv-pill--light,
a.btn,button.btn{
  min-height:44px;
  cursor:pointer!important;
}

/* Informational chips/badges are explicitly NOT interactive */
:is(.help-chip,.v-badge,.manual-badge,.promo-live-badge,.station-visual-badge,.csv-cert-badge){
  cursor:default!important;
  transform:none!important;
  user-select:text;
}
:is(.help-chip,.v-badge,.manual-badge,.promo-live-badge,.station-visual-badge,.csv-cert-badge):hover{
  transform:none!important;
}

/* A service card only gets an interactive lift when it actually is a link/button */
.service-chip:not(a):not(button),
.card:not(a):not(button){
  cursor:default;
}
@media(hover:hover){
  .service-chip:not(a):not(button):hover{
    transform:none!important;
  }
}

/* JS actions must be real buttons but retain link/card appearance */
.csv-link-button{
  appearance:none;
  border:0;
  padding:0;
  margin:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
footer .csv-link-button{
  display:block;
  color:inherit;
  opacity:.92;
  padding:4px 0;
}
.csv-contact-button{
  appearance:none;
  width:100%;
  font:inherit;
  text-align:left;
  cursor:pointer;
}

/* Native upload input: readable, neutral and not confused with primary CTA */
.csv-file-input{
  width:100%;
  min-height:48px;
  padding:8px;
  border:1px solid var(--csv100-line);
  border-radius:14px;
  background:#fff;
  color:var(--csv100-navy);
}
.csv-file-input::file-selector-button{
  min-height:36px;
  margin-right:10px;
  padding:7px 12px;
  border:0;
  border-radius:999px;
  background:var(--csv100-navy);
  color:#fff;
  font-weight:800;
  cursor:pointer;
}

/* Card/grid composition: equal rhythm without forcing content heights */
.grid,
.service-cloud,
.contact-cards,
.csv99-quick-grid,
.csv99-station-cards,
.csv99-contact-grid{
  align-items:stretch;
}
.grid > .card,
.service-cloud > .service-chip,
.contact-cards > .contact-card,
.csv99-quick-grid > .csv99-quick-card,
.csv99-station-cards > .csv99-station-mini,
.csv99-contact-grid > .csv99-contact-action{
  min-width:0;
  height:100%;
}

/* Prevent text from forcing cards/buttons outside their grid tracks */
:is(.card,.service-chip,.contact-card,.csv99-quick-card,.csv99-station-mini,.csv99-contact-action,
     .btn,.csv-pill--navy,.csv-pill--light){
  overflow-wrap:anywhere;
}

/* HERO: approved 1536×1024 composition is itself 3:2, so show it uncropped */
body .hero-card.csv-brand-plaque .csv-logo-stage{
  width:100%!important;
  aspect-ratio:3/2!important;
  overflow:hidden!important;
}
body .hero-card.csv-brand-plaque .csv-logo-stage > .csv-logo-main{
  display:block!important;
  width:100%!important;
  height:100%!important;
  aspect-ratio:3/2!important;
  object-fit:contain!important;
  object-position:center!important;
}

/* Desktop/tablet/mobile grid synchronization */
@media(max-width:1100px){
  .csv99-station-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:900px){
  .service-cloud{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:650px){
  .csv99-station-cards,
  .service-cloud,
  .csv99-quick-grid,
  .csv99-contact-grid{grid-template-columns:1fr!important}
  :is(a,button).csv-pill--navy,
  :is(a,button).csv-pill--light,
  a.btn,button.btn{max-width:100%}
}

/* Landscape tablets: retain two-column hierarchy rather than oversized desktop tracks */
@media(min-width:651px) and (max-width:1100px) and (orientation:landscape){
  .csv99-quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .csv99-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Reduced motion: no usability depends on animation */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
}


/* SOURCE: csv104-final.css */

/* CSV101 · Cristal + burbujas 3D + Butano/Compartir */
:root{
 --csv101-glass:rgba(255,255,255,.72);
 --csv101-glass-line:rgba(255,255,255,.78);
 --csv101-glass-shadow:0 18px 48px rgba(6,23,43,.13), inset 0 1px 0 rgba(255,255,255,.92);
 --csv101-navy:#06172b;
}

/* The page behaves like a polished glass plane; important cards float above it. */
:is(.csv99-quick-card,.csv99-station-mini,.csv99-contact-action,.service-family-grid .card,
    .station-card,.contact-card,.csv-signup-card,.csv-premium-card){
  position:relative;
  isolation:isolate;
}
:is(.csv99-quick-card,.csv99-station-mini,.csv99-contact-action,.service-family-grid .card,
    .station-card,.contact-card,.csv-signup-card)::before{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:inherit;
  pointer-events:none;
  z-index:-1;
  background:
    radial-gradient(circle at 18% 8%,rgba(255,255,255,.88),transparent 28%),
    linear-gradient(145deg,rgba(255,255,255,.42),rgba(255,255,255,.07) 45%,rgba(7,49,91,.05));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.88);
}

/* Small specular 'bubble' reflection — depth without visual clutter. */
:is(.csv99-quick-card,.csv99-station-mini,.service-family-grid .card,.csv-signup-card)::after{
  content:"";
  position:absolute;
  top:10px;
  right:12px;
  width:18px;
  height:18px;
  border-radius:50%;
  pointer-events:none;
  opacity:.58;
  background:radial-gradient(circle at 32% 28%,#fff 0 16%,rgba(255,255,255,.5) 18% 36%,rgba(255,255,255,.08) 62%,transparent 68%);
  filter:drop-shadow(0 4px 6px rgba(6,23,43,.10));
}

/* Butano new-customer glass card */
.csv101-butano-alta{
  margin-top:18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  padding:20px 22px;
  border:1px solid rgba(232,181,74,.46);
  border-radius:24px;
  background:
    radial-gradient(circle at 5% 0%,rgba(255,255,255,.92),transparent 28%),
    linear-gradient(135deg,rgba(255,250,241,.94),rgba(255,255,255,.68));
  backdrop-filter:blur(18px) saturate(125%);
  -webkit-backdrop-filter:blur(18px) saturate(125%);
  box-shadow:var(--csv101-glass-shadow);
}
.csv101-butano-copy{min-width:0}
.csv101-butano-copy strong{display:block;color:var(--csv101-navy);font-size:1.12rem}
.csv101-butano-copy p{margin:5px 0 0;color:#637184;max-width:760px}
.csv101-kicker{display:block;margin-bottom:4px;color:#b76a00;font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.csv101-butano-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:11px 17px;
  border-radius:999px;
  white-space:nowrap;
  text-decoration:none;
  font-weight:900;
}

/* Share = unmistakable floating glass bubble. */
.csv101-share-fab{
  position:fixed;
  right:18px;
  bottom:88px;
  z-index:1200;
  display:flex;
  align-items:center;
  gap:9px;
  min-height:48px;
  padding:6px 13px 6px 6px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:999px;
  background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(238,246,255,.70));
  color:var(--csv101-navy);
  backdrop-filter:blur(18px) saturate(145%);
  -webkit-backdrop-filter:blur(18px) saturate(145%);
  box-shadow:
    0 14px 36px rgba(6,23,43,.20),
    inset 0 1px 0 rgba(255,255,255,.98),
    inset 0 -8px 18px rgba(25,94,153,.05);
  cursor:pointer;
  font:inherit;
  transition:transform .18s ease,box-shadow .18s ease;
}
.csv101-share-orb{
  position:relative;
  display:grid;
  place-items:center;
  width:38px;height:38px;
  border-radius:50%;
  color:#fff;
  background:
    radial-gradient(circle at 30% 22%,rgba(255,255,255,.92) 0 7%,transparent 8%),
    radial-gradient(circle at 35% 28%,#5b98cd 0,#174f83 45%,#062b51 78%);
  box-shadow:
    inset 0 1px 4px rgba(255,255,255,.8),
    inset 0 -8px 15px rgba(0,0,0,.18),
    0 7px 15px rgba(6,23,43,.24);
}
.csv101-share-label{font-size:.84rem;font-weight:900;letter-spacing:.01em}
@media(hover:hover){
 .csv101-share-fab:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 19px 42px rgba(6,23,43,.25),inset 0 1px 0 #fff}
}
.csv101-share-fab:active{transform:translateY(1px) scale(.98)}

@media(max-width:650px){
 .csv101-butano-alta{align-items:flex-start;flex-direction:column}
 .csv101-butano-button{width:100%}
 .csv101-share-fab{right:14px;bottom:82px}
 .csv101-share-label{display:none}
 .csv101-share-fab{padding:5px;border-radius:50%}
 .csv101-share-orb{width:42px;height:42px}
}
@media(prefers-reduced-motion:reduce){
 .csv101-share-fab{transition:none}
}


/* CSV102 preproduction fixes: protect floating controls from legacy enhancers. */
html body .csv101-share-fab{
  position:fixed!important;
  right:18px!important;
  left:auto!important;
  top:auto!important;
  bottom:96px!important;
}
@media(max-width:650px){html body .csv101-share-fab{right:14px!important;bottom:84px!important}}

/* Definitive pill contrast. Preserve glass depth while enforcing the approved palette. */
html body :is(a,button,input[type="submit"]).csv-pill--navy{
  --csv46-a:#2c77b7!important;
  --csv46-b:#0b4b86!important;
  --csv46-c:#06172b!important;
  background:linear-gradient(145deg,#2c77b7 0%,#0b4b86 46%,#06172b 100%) padding-box,
             linear-gradient(145deg,#f8fbff,#aab9c9 46%,#526477 78%,#fff) border-box!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:0 1px 2px rgba(0,0,0,.32)!important;
}
html body :is(a,button,input[type="submit"]).csv-pill--navy :is(span,strong,b,em,small,i){
  color:#fff!important;-webkit-text-fill-color:#fff!important;
}
html body :is(a,button).csv-pill--light{
  --csv46-a:#fff!important;
  --csv46-b:#f5f9fd!important;
  --csv46-c:#e3ecf5!important;
  background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(246,250,254,.96) 52%,rgba(225,235,245,.94)) padding-box,
             linear-gradient(145deg,#fff,#b7c5d4 52%,#788a9d 84%,#fff) border-box!important;
  color:#06172b!important;
  -webkit-text-fill-color:#06172b!important;
  text-shadow:none!important;
}
html body :is(a,button).csv-pill--light :is(span,strong,b,em,small,i){
  color:#06172b!important;-webkit-text-fill-color:#06172b!important;text-shadow:none!important;
}


/* CSV102.1 — definitive action palette, beats legacy high-specificity selectors. */
html body :is(a,button,input[type="submit"]).csv-pill--navy:not(#csv-never){
  --csv46-a:#347ebc!important;--csv46-b:#0b4b86!important;--csv46-c:#06172b!important;
  background:
    radial-gradient(circle at 28% 8%,rgba(255,255,255,.72) 0 4%,rgba(255,255,255,.18) 11%,transparent 28%),
    linear-gradient(155deg,#347ebc 0%,#0b4b86 48%,#06172b 100%)!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.30)!important;
}
html body :is(a,button,input[type="submit"]).csv-pill--navy:not(#csv-never) :is(span,strong,b,em,small,i){color:#fff!important;-webkit-text-fill-color:#fff!important}
html body :is(a,button).csv-pill--light:not(#csv-never){
  --csv46-a:#fff!important;--csv46-b:#f7fbff!important;--csv46-c:#e4edf6!important;
  background:
    radial-gradient(circle at 28% 8%,rgba(255,255,255,.98) 0 6%,rgba(255,255,255,.52) 16%,transparent 34%),
    linear-gradient(155deg,#fff 0%,#f7fbff 50%,#e4edf6 100%)!important;
  color:#06172b!important;-webkit-text-fill-color:#06172b!important;text-shadow:none!important;
  border-color:rgba(6,23,43,.13)!important;
}
html body :is(a,button).csv-pill--light:not(#csv-never) :is(span,strong,b,em,small,i){color:#06172b!important;-webkit-text-fill-color:#06172b!important;text-shadow:none!important}

/* Real approved logo floating on a frosted glass plate over the map hero. */
.csv-logo-stage{position:relative!important;isolation:isolate}
.csv102-hero-logo-glass{
  position:absolute;z-index:6;left:7%;right:7%;top:3.5%;height:39%;
  display:grid;place-items:center;padding:1.5% 4%;border-radius:clamp(14px,2.2vw,28px);
  background:linear-gradient(145deg,rgba(4,20,38,.86),rgba(8,38,67,.69));
  border:1px solid rgba(255,255,255,.32);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -18px 34px rgba(0,0,0,.12),0 15px 34px rgba(6,23,43,.24);
  -webkit-backdrop-filter:blur(16px) saturate(115%);backdrop-filter:blur(16px) saturate(115%);
  overflow:hidden;pointer-events:none;
}
.csv102-hero-logo-glass::before{
  content:"";position:absolute;left:7%;right:7%;top:5%;height:35%;border-radius:50%;
  background:linear-gradient(180deg,rgba(255,255,255,.32),transparent);filter:blur(2px);pointer-events:none
}
.csv102-hero-logo-glass img{display:block;width:min(94%,760px);height:94%;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(0,0,0,.22));position:relative;z-index:2}
@media(max-width:650px){
  .csv102-hero-logo-glass{left:5%;right:5%;top:3%;height:40%;padding:1% 3%;border-radius:14px}
  .csv102-hero-logo-glass img{width:96%;height:96%}
}


/* CSV103 · HERO FINAL — fotografía real Sant Mateu + mapa corporativo.
   Evita cualquier screenshot/maqueta antigua embebida como fondo. */
html body.home-page .hero::before{
  background-image:
    linear-gradient(90deg,rgba(3,15,29,.965) 0%,rgba(3,15,29,.88) 38%,rgba(3,15,29,.52) 68%,rgba(3,15,29,.28) 100%),
    radial-gradient(circle at 74% 24%,rgba(255,206,104,.17),transparent 34%),
    url('/assets/sant-mateu-zona-repostaje-1600.webp')!important;
  background-size:cover!important;
  background-position:center 48%!important;
  background-repeat:no-repeat!important;
}
@media(max-width:980px){
  html body.home-page .hero::before{
    background-image:
      linear-gradient(180deg,rgba(3,15,29,.93) 0%,rgba(3,15,29,.84) 43%,rgba(3,15,29,.62) 72%,rgba(3,15,29,.48) 100%),
      radial-gradient(circle at 68% 22%,rgba(255,206,104,.14),transparent 35%),
      url('/assets/sant-mateu-zona-repostaje-960.webp')!important;
    background-position:center 46%!important;
  }
}
/* Make the approved transparent full logo actually visible over the baked map mark. */
html body .csv102-hero-logo-glass img{
  display:block!important;
  width:92%!important;
  height:92%!important;
  max-width:92%!important;
  max-height:92%!important;
  min-width:0!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:center!important;
  border-radius:0!important;
  margin:auto!important;
}
@media(max-width:650px){
  html body .csv102-hero-logo-glass img{width:94%!important;height:94%!important;max-width:94%!important;max-height:94%!important}
}
/* CSV103.1: lock approved hero logo inside the frosted plate. */
html body .csv102-hero-logo-glass > img{
  position:absolute!important;
  inset:8%!important;
  width:84%!important;
  height:84%!important;
  max-width:none!important;
  max-height:none!important;
  min-width:0!important;
  min-height:0!important;
  object-fit:contain!important;
  object-position:center!important;
  aspect-ratio:auto!important;
}
/* CSV103.2: desktop logo plate proportion closer to the approved horizontal lock-up. */
@media(min-width:651px){
  html body .csv102-hero-logo-glass{left:16%!important;right:16%!important;height:39%!important}
}


/* CSV104 final verification: the official horizontal logo fully covers the baked mark in the territorial artwork. */
html body .csv102-hero-logo-glass{
  left:10%!important;right:10%!important;top:2.2%!important;height:34%!important;
  background:linear-gradient(145deg,rgba(4,20,38,.94),rgba(8,38,67,.88))!important;
  -webkit-backdrop-filter:blur(22px) saturate(120%)!important;backdrop-filter:blur(22px) saturate(120%)!important;
}
html body .csv102-hero-logo-glass > img{inset:7%!important;width:86%!important;height:86%!important}
@media(max-width:650px){
 html body .csv102-hero-logo-glass{left:5%!important;right:5%!important;top:2%!important;height:35%!important}
 html body .csv102-hero-logo-glass > img{inset:6%!important;width:88%!important;height:88%!important}
}


/* SOURCE: csv108-master.css */
/* CSV108 MASTER · final visual contract */
:root{--csv-navy:#0D2340;--csv-navy2:#06172b;--csv-white:#fff;--csv-gold:#d8a63a;}
html,body{max-width:100%;overflow-x:hidden}
img,svg,video{max-width:100%}

/* Mobile header: fixed, hides on downward scroll and returns immediately on upward scroll. */
@media(max-width:900px){
 body.csv108-nav-ready>header{position:fixed!important;top:0!important;left:0!important;right:0!important;width:100%!important;z-index:9999!important;transform:translate3d(0,0,0)!important;transition:transform .18s ease!important;will-change:transform!important}
 body.csv108-nav-ready>header.csv108-header-hidden{transform:translate3d(0,-115%,0)!important;pointer-events:none!important}
 body.csv108-nav-ready>header.csv108-header-visible{transform:translate3d(0,0,0)!important;pointer-events:auto!important}
 .csv108-header-spacer{display:block!important;width:100%!important}
}
@media(min-width:901px){.csv108-header-spacer{display:none!important;height:0!important}}

/* Pill contract: white => navy text; navy => white text. */
html body :is(a,button,.btn,.back,.secondary).csv-pill--light,
html body .csv-pill--light{
 background:#fff!important;background-image:linear-gradient(155deg,#fff 0%,#f6f9fc 65%,#eaf0f5 100%)!important;
 color:var(--csv-navy)!important;-webkit-text-fill-color:var(--csv-navy)!important;text-shadow:none!important;
 border-color:rgba(13,35,64,.18)!important;
}
html body .csv-pill--light *{color:var(--csv-navy)!important;-webkit-text-fill-color:var(--csv-navy)!important;text-shadow:none!important}
html body :is(a,button,.btn).csv-pill--navy,
html body .csv-pill--navy{background:var(--csv-navy2)!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
html body .csv-pill--navy *{color:#fff!important;-webkit-text-fill-color:#fff!important}

/* Hero: exact user-approved sun/mountains image, inside and outside the glass card. */
html body.home-page .hero{position:relative;isolation:isolate;background:var(--csv-navy2)!important}
html body.home-page .hero::before{
 content:""!important;position:absolute!important;inset:0!important;z-index:-2!important;
 background-image:linear-gradient(90deg,rgba(3,15,29,.90) 0%,rgba(3,15,29,.73) 42%,rgba(3,15,29,.34) 78%,rgba(3,15,29,.18) 100%),url('/assets/sant-mateu-zona-repostaje-1600.webp')!important;
 background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important;opacity:1!important;
}
html body.home-page .hero-card.csv-brand-plaque .csv-logo-stage{aspect-ratio:3/2!important;overflow:hidden!important;background:#071a30!important}
html body.home-page .hero-card.csv-brand-plaque .csv-logo-stage>img.csv-logo-main{
 display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;opacity:1!important;
}
/* The approved Hero is shown intact; no duplicate logo overlay is placed over it. */
/* Approved full logo wherever CSV corporate logo is shown. */
html body img[data-csv-logo='official-full']{object-fit:contain!important;aspect-ratio:auto!important;height:auto!important}
html body footer img[data-csv-logo='official-full']{width:min(100%,430px)!important;max-height:none!important}

/* Glass / depth language without making informational elements look clickable. */
:is(.csv99-quick-card,.csv99-station-mini,.csv99-contact-action,.service-family-grid .card,.station-card,.contact-card,.csv-signup-card){
 box-shadow:0 18px 46px rgba(6,23,43,.12),inset 0 1px 0 rgba(255,255,255,.94)!important;
}
:is(.help-chip,.v-badge,.manual-badge,.promo-live-badge,.station-visual-badge,.csv-cert-badge){cursor:default!important;transform:none!important}
:is(a,button).csv-pill--light,:is(a,button).csv-pill--navy,a.btn,button.btn{min-height:44px;cursor:pointer!important}

/* Responsive card rhythm. */
.grid,.service-cloud,.contact-cards,.csv99-quick-grid,.csv99-station-cards,.csv99-contact-grid{align-items:stretch}
:is(.card,.service-chip,.contact-card,.csv99-quick-card,.csv99-station-mini,.csv99-contact-action){min-width:0;overflow-wrap:anywhere}
@media(max-width:1100px){.csv99-station-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:650px){.csv99-station-cards,.service-cloud,.csv99-quick-grid,.csv99-contact-grid{grid-template-columns:1fr!important}}
/* Share must be self-explanatory on mobile, not icon-only. */
@media(max-width:650px){
 html body .csv101-share-fab{padding:5px 12px 5px 5px!important;border-radius:999px!important;max-width:calc(100vw - 28px)!important}
 html body .csv101-share-label{display:inline!important;color:#0D2340!important;-webkit-text-fill-color:#0D2340!important;font-weight:900!important}
}


/* SOURCE: csv109-architecture.css */

/* CSV109 · Arquitectura clara CSV / Repsol */
.csv109-repsol-nav{
  position:relative;
}
.csv109-repsol-nav::after{
  content:"";
  display:inline-block;
  width:6px;height:6px;margin-left:5px;border-radius:50%;
  background:#f5a400;vertical-align:middle;
}
.csv109-architecture{padding:22px 0 56px;background:#fff}
.csv109-architecture-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.csv109-architecture-card{
  min-width:0;padding:26px;border-radius:26px;border:1px solid #dfe6ed;
  box-shadow:0 16px 42px rgba(6,23,43,.08);
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(247,250,253,.84));
  position:relative;overflow:hidden;
}
.csv109-architecture-card::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 14% 0%,rgba(255,255,255,.95),transparent 28%);
}
.csv109-architecture-card>span{
  position:relative;display:block;font-size:.72rem;letter-spacing:.1em;font-weight:900;
  color:#6a7888;margin-bottom:7px;
}
.csv109-architecture-card h2{position:relative;margin:0 0 8px;color:#06172b;font-size:clamp(1.45rem,3vw,2.05rem)}
.csv109-architecture-card p{position:relative;color:#637184;margin:0 0 18px;max-width:650px}
.csv109-architecture-card--repsol{border-color:rgba(245,164,0,.34);background:linear-gradient(145deg,#fffdfa,#fff7e8)}
.csv109-architecture-links{position:relative;display:flex;flex-wrap:wrap;gap:8px}
.csv109-architecture-links a{
  padding:8px 11px;border-radius:999px;background:#eef4f8;color:#0D2340;font-size:.82rem;font-weight:850
}
.csv109-architecture-cta{position:relative;display:inline-flex;padding:10px 15px;border-radius:999px;font-weight:900}

.csv109-hub-link{display:inline-flex!important;align-items:center;justify-content:center;padding:9px 13px;border-radius:999px;font-weight:850;margin-top:12px}

.csv109-repsol-hero{
  padding:78px 0 54px;
  background:
    radial-gradient(circle at 82% 12%,rgba(245,164,0,.22),transparent 28%),
    linear-gradient(135deg,#06172b,#10385f);
  color:#fff;
}
.csv109-repsol-hero h1{font-size:clamp(2.4rem,6vw,5rem);line-height:.98;margin:8px 0 16px}
.csv109-repsol-hero p{max-width:800px;color:#dbe6ef;font-size:1.05rem;line-height:1.65}
.csv109-repsol-section{padding:64px 0}
.csv109-repsol-soft{background:#f7f9fb}
.csv109-repsol-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.csv109-repsol-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.csv109-repsol-card{
  display:flex;flex-direction:column;min-width:0;min-height:260px;padding:24px;border-radius:24px;
  background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(248,250,252,.86));
  border:1px solid #dfe6ed;box-shadow:0 16px 42px rgba(6,23,43,.08);color:#06172b;
}
.csv109-repsol-card:hover{transform:translateY(-2px);box-shadow:0 20px 48px rgba(6,23,43,.13)}
.csv109-repsol-kicker{font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#b66a00;margin-bottom:8px}
.csv109-repsol-card strong{font-size:1.25rem;line-height:1.2}
.csv109-repsol-card p{color:#637184;line-height:1.55}
.csv109-repsol-cta{margin-top:auto;font-weight:900;color:#0b4b86}
.csv109-repsol-note{padding:0 0 70px;background:#f7f9fb}
.csv109-note-card{padding:22px 24px;border-radius:22px;background:#fff7e8;border:1px solid rgba(245,164,0,.34)}
.csv109-note-card strong{display:block;color:#06172b;font-size:1.08rem}.csv109-note-card p{margin:5px 0 0;color:#637184}

.csv109-services-split{padding:24px 0 0}
.csv109-split-row{
  display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;
  border-radius:20px;background:#f7f9fb;border:1px solid #dfe6ed
}
.csv109-split-row strong{display:block;color:#06172b;font-size:1.03rem;margin-top:3px}

@media(max-width:900px){
  .csv109-architecture-grid,.csv109-repsol-grid,.csv109-repsol-grid--2{grid-template-columns:1fr}
  .csv109-split-row{align-items:flex-start;flex-direction:column}
  .csv109-split-row>a{width:100%;text-align:center}
}


/* CSV109.1 · Identidad principal CSV + encabezado móvil robusto */
.csv109-brand{
  display:flex;align-items:center;gap:10px;min-width:0;text-decoration:none
}
.csv109-brand>img{
  width:48px!important;height:48px!important;object-fit:cover!important;border-radius:14px;
  box-shadow:0 7px 18px rgba(6,23,43,.16)
}
.csv109-brand-copy{display:flex;flex-direction:column;min-width:0;line-height:1.05}
.csv109-brand-copy strong{color:#06172b;font-size:.96rem;white-space:nowrap}
.csv109-brand-copy small{margin-top:4px;color:#687587;font-size:.58rem;white-space:nowrap}
header .navlinks{display:flex;align-items:center;gap:14px}
header .navlinks a{font-weight:800;color:#06172b;font-size:.88rem}
@media(max-width:650px){
  .csv109-brand>img{width:42px!important;height:42px!important;border-radius:12px}
  .csv109-brand-copy strong{font-size:.82rem}
  .csv109-brand-copy small{display:none}
  header .navlinks{gap:9px;min-width:0}
  header .navlinks a{font-size:.73rem;white-space:nowrap}
}

@media(max-width:900px){
 body.csv109-nav-ready>header{
   position:fixed!important;top:0!important;left:0!important;right:0!important;width:100%!important;
   z-index:9999!important;transform:translate3d(0,0,0)!important;
   transition:transform .12s ease-out!important;will-change:transform!important
 }
 body.csv109-nav-ready>header.csv109-hidden{
   transform:translate3d(0,-115%,0)!important;pointer-events:none!important
 }
 body.csv109-nav-ready>header.csv109-visible{
   transform:translate3d(0,0,0)!important;pointer-events:auto!important
 }
 .csv109-header-spacer{display:block!important;width:100%!important}
}
@media(min-width:901px){.csv109-header-spacer{display:none!important;height:0!important}}

