.oleada-campaign{padding-top:120px;margin-bottom:-80px;position:relative;z-index:10}.oleada-campaign:empty{display:none}@media(max-width:767px){.oleada-campaign{padding-top:115px;margin-bottom:-90px}}

.campaign-shell { padding: 18px clamp(12px,2.2vw,36px); border-bottom:0; }
.campaign-banner { position:relative; isolation:isolate; overflow:hidden; display:grid; grid-template-columns:140px minmax(0,1fr) auto; align-items:center; gap:24px; max-width:1600px; margin:auto; padding:26px 32px 26px 18px; border:1px solid var(--promotion-accent); border-radius:24px; box-shadow:0 12px 40px #0003; }
.campaign-atmosphere { position:absolute; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(ellipse at 3% 100%,color-mix(in srgb,var(--promotion-accent) 22%,transparent),transparent 44%),radial-gradient(ellipse at 95% 0%,color-mix(in srgb,var(--promotion-accent) 12%,transparent),transparent 45%); }
.campaign-background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-3; }
.campaign-photo:before { content:''; position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,#080f18a6,#080f18ed 38%,#080f18d9); }
.campaign-art { display:block; width:100%; height:150px; object-fit:contain; filter:drop-shadow(0 8px 18px #0005); }
.campaign-copy { min-width:0; overflow-wrap:anywhere; }
.campaign-name { color:var(--promotion-accent); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.24em; margin-bottom:10px; }
.campaign-title { font-size:clamp(21px,2.1vw,32px); font-weight:800; line-height:1.18; letter-spacing:-.025em; margin-bottom:10px; }
.campaign-message { opacity:.8; font-size:15px; margin-bottom:8px; }
.campaign-scope { font-size:16px; line-height:1.5; }
.campaign-services { opacity:.72; font-size:12px; margin-top:4px; }
.campaign-date { display:flex; align-items:flex-start; gap:8px; margin-top:14px; font-size:12px; opacity:.8; }
.campaign-date svg { color:var(--promotion-accent); flex-shrink:0; }
.campaign-actions { display:flex; align-items:center; gap:24px; }
.campaign-ticket { display:flex; align-items:center; justify-content:center; gap:10px; padding:22px 18px; color:var(--promotion-accent); font-weight:900; font-size:30px; border:2px dashed var(--promotion-accent); border-radius:12px; transform:rotate(-6deg); background:#0002; white-space:nowrap; }
.campaign-ticket small { font-size:16px; }
.campaign-button { display:inline-flex; align-items:center; justify-content:center; gap:16px; padding:18px 26px; min-height:52px; border-radius:15px; background:var(--promotion-accent); color:#fff; font-size:15px; font-weight:800; white-space:nowrap; box-shadow:0 7px 24px color-mix(in srgb,var(--promotion-accent) 25%,transparent); }
.campaign-button:hover { filter:brightness(1.1); }
.campaign-button:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.plan-discount-badge { position:absolute; top:12px; right:12px; display:inline-flex; align-items:center; gap:5px; background:#fa4500; color:white; border-radius:7px 7px 7px 0; padding:6px 10px; font-size:13px; font-weight:800; line-height:1; box-shadow:0 4px 12px #fa450033; }
.plan-discount-badge:before { content:''; width:5px; height:5px; border:1px solid #ffffff99; border-radius:50%; }
.discount-plan-card:has(.plan-discount-badge) { padding-top:52px; }
.discount-plan-card .absolute.top-0.right-0 { left:0; right:auto; }
@media(max-width:1200px) { .campaign-actions { flex-direction:column; gap:18px; }.campaign-banner { grid-template-columns:110px minmax(0,1fr) auto; gap:18px; }.campaign-art { height:125px; }.campaign-ticket { padding:12px 16px; font-size:27px; } }
@media(max-width:700px) { .campaign-shell { padding:12px; }.campaign-banner { grid-template-columns:64px minmax(0,1fr); gap:12px; padding:20px 18px; border-radius:19px; }.campaign-visual { align-self:start; }.campaign-art { height:72px; }.campaign-copy { display:contents; }.campaign-name { align-self:center; margin:0; font-size:11px; }.campaign-title,.campaign-message,.campaign-scope,.campaign-services,.campaign-date { grid-column:1/-1; margin:0; }.campaign-title { font-size:24px; margin-top:3px; }.campaign-scope { font-size:14px; }.campaign-services { font-size:11px; }.campaign-date { margin-top:4px; font-size:11px; }.campaign-actions { grid-column:1/-1; flex-direction:row; justify-content:space-between; gap:14px; margin-top:10px; }.campaign-ticket { font-size:24px; padding:13px 10px; gap:7px; }.campaign-ticket small { font-size:12px; }.campaign-ticket svg { width:18px; }.campaign-button { padding:15px 18px; font-size:13px; gap:9px; }.campaign-photo:before { background:#080f18d9; } }
@media(max-width:360px) { .campaign-actions { flex-wrap:wrap; }.campaign-button { flex:1; }.campaign-ticket { transform:none; } }
.campaign-noart { grid-template-columns:minmax(0,1fr) auto; padding-left:32px; }
.campaign-noart .campaign-visual { display:none; }
@media(max-width:700px) { .campaign-noart { grid-template-columns:minmax(0,1fr); padding-left:18px; }.campaign-noart .campaign-name { grid-column:1/-1; } }

.campaign-dismiss,.campaign-reopen { display:none; }
@media(max-width:700px) {
 .campaign-banner { animation:campaign-enter .45s ease-out both; }
 .campaign-dismiss { position:absolute; top:8px; right:8px; display:flex; align-items:center; justify-content:center; width:32px; height:32px; color:inherit; background:#ffffff0d; border:1px solid #ffffff15; border-radius:50%; z-index:2; }
 .campaign-name { padding-right:22px; }
 .campaign-collapsed .campaign-banner { display:none; }
 .campaign-collapsed .campaign-reopen { display:flex; align-items:center; gap:8px; width:100%; padding:12px; border:1px solid #00a7e666; border-radius:12px; background:var(--promotion-background,#101827); color:white; font-size:11px; text-align:left; }
 .campaign-reopen span:first-of-type { flex:1; font-weight:700; }
}
@keyframes campaign-enter { from { opacity:0; transform:translateY(-10px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) { .campaign-banner { animation:none; } }

/* A short physical nudge invites opening the compact mobile offer. */
@media(max-width:700px) {
 .campaign-collapsed .campaign-reopen { animation:campaign-nudge 1.1s ease-in-out 1s 2; transform-origin:center; }
}
@keyframes campaign-nudge {
 0%,100% { transform:translateX(0) rotate(0); }
 20% { transform:translateX(-3px) rotate(-.35deg); }
 40% { transform:translateX(3px) rotate(.35deg); }
 60% { transform:translateX(-2px) rotate(-.2deg); }
 80% { transform:translateX(1px) rotate(.1deg); }
}
@media(prefers-reduced-motion:reduce) { .campaign-collapsed .campaign-reopen { animation:none; } }
/* v03: Flujo promotion composition, mobile usability, compact footer. */
html{scroll-behavior:auto}
a,button,input,select,label,[role=button],[role=radio],[role=tab]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
header nav a,header button{transition-duration:100ms}
header [role=dialog]{overscroll-behavior:contain}
.oleada-campaign{padding-top:var(--oleada-header-height,94px);margin-bottom:0;background:#080a12;z-index:10}
.oleada-campaign+main{padding-top:28px}
.campaign-shell{border-bottom:0;padding:12px clamp(12px,2.2vw,36px)}
.campaign-reopen{display:none;align-items:center;gap:10px;width:100%;max-width:1600px;margin:auto;padding:12px 14px;border:1px solid color-mix(in srgb,var(--promotion-accent) 45%,transparent);border-radius:12px;background:var(--promotion-background,#101827);color:inherit;font-size:13px;text-align:left;cursor:pointer;min-height:48px}
.campaign-reopen>svg{flex:0 0 auto;pointer-events:none}
.campaign-reopen .campaign-label{flex:1;min-width:0;font-weight:700;line-height:1.35;overflow-wrap:anywhere}
.campaign-open-label{flex:none;font-size:12px;white-space:nowrap;opacity:.9}
.campaign-collapsed .campaign-banner{display:none}
.campaign-collapsed .campaign-reopen{display:flex}
.campaign-dismiss{position:absolute;top:10px;right:10px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:inherit;background:#ffffff0d;border:1px solid #ffffff25;border-radius:50%;z-index:3;cursor:pointer}
.campaign-name{padding-right:34px}
.campaign-background,.campaign-atmosphere,.campaign-visual,.campaign-banner:before{pointer-events:none}
.campaign-visual>svg{display:block;width:100%;height:150px;filter:drop-shadow(0 8px 18px #0005)}
.campaign-copy,.campaign-services,.campaign-date{overflow-wrap:anywhere}
.oleada-web-player{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px}
.oleada-web-copy{display:flex;gap:12px;min-width:0;line-height:1.6;color:#b4bed2;margin:0}
.oleada-web-copy>svg{flex:0 0 22px;margin-top:3px;color:#00aeef}
.oleada-web-copy>span{min-width:0}
.oleada-web-button{justify-content:center;text-align:center;min-height:48px;white-space:normal;line-height:1.35}
.oleada-conditions h2,.oleada-conditions li{display:flex;align-items:flex-start;gap:10px}
.oleada-conditions svg{flex:0 0 20px;color:#00aeef;margin-top:3px}
.oleada-conditions li span{min-width:0;overflow-wrap:anywhere;line-height:1.6}
.discount-plan-card:has(.plan-discount-badge){position:relative;padding-top:20px}
.discount-plan-card [class*="-top-3"][class*="right-4"]{left:16px;right:auto}
.oleada-price-before{display:block;color:#9ca6bc;font-size:14px;font-weight:400;margin-top:6px;margin-bottom:-4px;line-height:1.5}
.plan-discount-badge{z-index:2;background:#00aeef;box-shadow:0 4px 12px #0003}
[data-oleada-footer] .oleada-footer-contact{min-width:0}
[data-oleada-footer] .oleada-footer-contact span{overflow-wrap:anywhere}
@media(max-width:700px){
 .campaign-shell{padding:10px 12px}
 .campaign-mobile-default .campaign-banner{display:none}
 .campaign-mobile-default .campaign-reopen{display:flex}
 .campaign-visual>svg{height:72px}
 .campaign-banner{animation-duration:180ms;padding:20px 18px;grid-template-columns:64px minmax(0,1fr)}
 .campaign-actions{gap:12px;flex-wrap:wrap}
 .campaign-ticket{font-size:23px;padding:12px 10px}
 .campaign-button{min-width:0;white-space:normal;flex:1;font-size:13px;padding:14px;line-height:1.3}
 .campaign-collapsed .campaign-reopen{font-size:13px;padding:12px 14px}
 .campaign-noart .campaign-name{padding-right:38px}
 .oleada-web-player{display:flex;flex-direction:column;align-items:stretch;gap:16px;margin-top:0;margin-bottom:24px;padding:20px}
 .oleada-web-copy{width:100%;flex:none;font-size:14px}
 .oleada-web-button{width:100%;font-size:14px;padding:14px 12px}
 .oleada-conditions{padding:20px;margin-bottom:24px}
 .oleada-conditions h2{font-size:17px}
 .oleada-footer-contact a{gap:8px}
 [data-oleada-footer] .oleada-footer-contact h3{margin-bottom:12px}
 [data-oleada-footer] .oleada-footer-contact a>div,[data-oleada-footer] .oleada-footer-contact div.min-h-\[40px\]>div{width:28px;height:28px}
}
@media(pointer:coarse){a,button{transition-duration:100ms!important}header{backdrop-filter:none}header [role=dialog] a{min-height:44px}}
@media(prefers-reduced-motion:reduce){.campaign-reopen,.campaign-banner{animation:none!important}}

@media(max-width:700px){.oleada-campaign+section[aria-roledescription="carousel"]{min-height:0}.oleada-campaign+section[aria-roledescription="carousel"]>.relative.z-10{padding-top:28px}}

@media(max-width:700px){.oleada-footer-brand{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.oleada-footer-brand>a{grid-column:1;grid-row:1;margin:0}.oleada-footer-brand>div{grid-column:2;grid-row:1}.oleada-footer-brand>p.font-bold{display:none}.oleada-footer-brand>p:not(.font-bold){grid-column:1/-1;grid-row:2;margin:0;max-width:none}}
