
/* SOURCE: csv43-7-utilidad-confianza.css */
/* CSV43.7 · Utilidad 24 h, Solred + Waylet y confianza AENOR */
.csv-utility-band{padding:30px 0}.csv-utility-card{position:relative;overflow:hidden;border-radius:30px;padding:clamp(24px,5vw,48px);background:linear-gradient(135deg,#06172b 0%,#0b3158 58%,#0b4774 100%);color:#fff;box-shadow:0 24px 55px rgba(6,23,43,.22);border:1px solid rgba(255,255,255,.18)}.csv-utility-card:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-70px;top:-90px;background:radial-gradient(circle,rgba(255,190,45,.32),transparent 68%);pointer-events:none}.csv-utility-card .eyebrow{color:#ffc64a}.csv-utility-card h2{margin:.35rem 0 .75rem;font-size:clamp(1.75rem,4vw,3rem);line-height:1.06}.csv-utility-card p{max-width:820px;color:#e6eef7;font-size:1.05rem}.csv-utility-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.csv-utility-actions .btn.alt{background:#fff;color:#082641}
.csv-trust-section{padding:64px 0}.csv-trust-shell{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:30px;align-items:center;border:1px solid #dce7f1;border-radius:32px;padding:clamp(22px,4vw,42px);background:linear-gradient(145deg,#fff,#f4f9fd);box-shadow:0 22px 55px rgba(6,23,43,.10)}.csv-trust-media img{width:100%;display:block;border-radius:22px;box-shadow:0 15px 34px rgba(6,23,43,.18)}.csv-trust-copy h2{font-size:clamp(1.9rem,4vw,3rem);line-height:1.08;margin:.35rem 0 1rem}.csv-trust-copy p{color:#536579}.csv-trust-points{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.csv-trust-point{padding:15px 16px;border-radius:18px;background:#fff;border:1px solid #dce7f1;font-weight:800;color:#102a43}.csv-cert-badge{display:inline-flex;align-items:center;gap:9px;padding:9px 13px;border-radius:999px;background:#eaf5ff;color:#07558b;border:1px solid #bcdcf2;font-weight:900;font-size:.87rem}
.csv-solred-card{margin:26px 0;padding:clamp(22px,4vw,36px);border-radius:28px;background:linear-gradient(145deg,#fff8e9,#fff);border:1px solid #f1d7a6;box-shadow:0 18px 42px rgba(99,67,8,.10)}.csv-solred-card h2{margin:.35rem 0 .75rem;font-size:clamp(1.65rem,3.4vw,2.35rem)}.csv-solred-card p{color:#536579}.csv-solred-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.csv-solred-step{background:#fff;border:1px solid #eadfce;border-radius:18px;padding:16px}.csv-solred-step strong{display:block;color:#082641;margin-bottom:4px}.csv-note-24h{margin:22px 0;padding:18px 20px;border-left:5px solid #ff9b1f;border-radius:16px;background:#fff7e8;color:#24384d}.csv-note-24h strong{color:#071f38}.csv-station-cert{margin-top:18px;padding:14px 16px;border-radius:16px;background:#edf7ff;border:1px solid #c9e2f4;color:#173d59;font-weight:800}
@media(max-width:800px){.csv-trust-shell,.csv-solred-grid{grid-template-columns:1fr}.csv-trust-points{grid-template-columns:1fr}.csv-utility-card{border-radius:24px}.csv-trust-shell{border-radius:25px}.csv-utility-actions .btn{width:100%;text-align:center}}

/* 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-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: 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}}

