/* Shared coupon templates; all creative text remains native and editable. */
.lv-promotion-slot:empty { display: none; }
.lv-promotion-banner, .lv-offers-page, .lv-coupon-preview {
  --lv-offer-ink: #0b1f33; --lv-offer-navy: #0b1f33; --lv-offer-primary: #0668ff;
  --lv-offer-link: #0057d9; --lv-offer-muted: #536b89; --lv-offer-border: #cbdff6;
  color: var(--lv-offer-ink);
}
:is(.lv-promotion-banner, .lv-offer-card) *, .lv-coupon-preview * { box-sizing: border-box; }
.lv-promotion-shell { width: min(calc(100% - 2 * var(--lv-public-gutter,24px)),calc(var(--lv-public-shell,76rem) - 2 * var(--lv-public-gutter,24px))); margin-inline: auto; }
.lv-promotion-banner, .lv-offer-card-heading {
  position: relative; isolation: isolate;
  background: linear-gradient(132deg,transparent 85%,rgb(133 219 255 / 32%) 85% 89%,transparent 89% 94%,rgb(111 207 253 / 36%) 94%),linear-gradient(110deg,#d5eaff,#f5f7ff 48%,#eaf7ff 85%,#c0ecff);
}
.lv-promotion-banner { width: 100%; border: 1px solid #8dcaff; border-radius: 12px; container-type: inline-size; container-name: coupon-banner; }
.lv-promotion-inner { width: 100%; margin: 0; position: relative; display: grid; grid-template-columns: clamp(11rem,18vw,20rem) minmax(0,1fr) auto; gap: 1rem; align-items: center; min-height: 114px; padding: .65rem clamp(1rem,2vw,2rem) .65rem 0; }
.lv-promotion-visual { position: relative; isolation: isolate; display: grid; place-items: center; align-self: stretch; min-width: 0; overflow: hidden; border-start-start-radius: inherit; }
.lv-promotion-visual::before { content: ''; position: absolute; z-index: -2; inset: 0; background: linear-gradient(130deg,transparent 59%,rgb(255 255 255 / 40%) 59% 67%,transparent 67% 77%,rgb(255 255 255 / 40%) 77% 84%,transparent 84%),radial-gradient(ellipse at 47% 68%,#87eaff 0%,#19b8ff 24%,transparent 65%),linear-gradient(110deg,#0049c9,#087dff 46%,transparent 98%); }
.lv-promotion-visual::after { content: ''; position: absolute; z-index: -1; width: 124%; height: 29%; left: -10%; bottom: 6%; border: 4px solid #eaffff; border-radius: 50%; transform: rotate(8deg); box-shadow: 0 0 12px 5px #63d8ff, inset 0 0 12px #82e8ff; }
.lv-promotion-vehicle { display: block; width: 100%; height: auto; min-width: 0; object-fit: contain; filter: drop-shadow(0 7px 5px rgb(0 55 114 / 20%)); }
.lv-promotion-banner .lv-promotion-visual { margin-block: -.65rem; border-radius: 11px 0 0 11px; }
.lv-promotion-banner .lv-promotion-vehicle { max-height: 112px; padding: 2px 8px; }
.lv-promotion-copy { min-width: 0; display: flex; flex-direction: column; gap: .25rem; line-height: 1.4; }
.lv-promotion-eyebrow { display: block; color: #005cff; font-size: .68rem; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; line-height: 1.4; }
.lv-promotion-headline { display: block; font-size: clamp(.94rem,1.15vw,1.15rem); line-height: 1.25; letter-spacing: -.025em; color: #0b1f33; overflow-wrap: anywhere; }
.lv-offer-headline-highlight { color: #0064ff; }
.lv-promotion-copy > span:last-child { font-size: .9rem; color: #445c78; overflow-wrap: anywhere; }
.lv-promotion-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; min-width: 0; max-width: 100%; }
.lv-promotion-banner .lv-promotion-actions { justify-content: flex-end; }
.lv-promotion-code { display: inline-flex; align-items: center; justify-content: center; flex-direction: column; gap: 2px; min-height: 48px; max-width: 100%; min-width: 0; padding: 7px 16px; border: 1px dashed #0670ff; border-radius: 8px; background: #fff; color: #0b1f33; font: inherit; line-height: 1.2; cursor: pointer; overflow-wrap: anywhere; }
.lv-promotion-code > span:first-child { font-size: 1rem; font-weight: 800; letter-spacing: .04em; }
.lv-promotion-code-label { font-size: .65rem; font-weight: 500; }
.lv-promotion-copy-icon { display: none; }
.lv-offer-card .lv-promotion-code { position: relative; padding-right: 3rem; }
.lv-offer-card .lv-promotion-copy-icon { display: block; position: absolute; right: .8rem; top: .65rem; color: #0064ff; }
.lv-promotion-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; max-width: 100%; min-width: 0; min-height: 48px; padding: 12px 20px; border: 1px solid #0064ff; border-radius: 10px; background: linear-gradient(125deg,#006dff,#005bff); color: #fff!important; text-decoration: none!important; font: inherit; font-size: .9rem; font-weight: 750; line-height: 1.35; text-align: center; overflow-wrap: anywhere; box-shadow: 0 6px 14px rgb(0 100 255 / 17%); }
.lv-promotion-button:hover { background: #004fcf; border-color: #004fcf; }
.lv-promotion-code:hover { background: #f3f8ff; }
.lv-promotion-terms-link { color: #0057d9; font-size: .8rem; text-decoration: underline; text-underline-offset: 3px; min-height: 44px; display: inline-flex; align-items: center; }
:is(.lv-promotion-code,.lv-promotion-button,.lv-promotion-terms-link,.lv-offer-terms summary,.lv-offers-toolbar select):focus-visible { outline: 3px solid #0057d9; outline-offset: 3px; }
.lv-promotion-status:empty { display: none; }
.lv-promotion-status { display: block; font-size: .82rem; line-height: 1.5; margin-top: 8px; }
.lv-promotion-banner .lv-promotion-status { position: absolute; top: 100%; right: 24px; z-index: 3; max-width: min(380px,90vw); background: #fff; border: 1px solid var(--lv-offer-border); border-radius: 8px; padding: 8px 12px; box-shadow: 0 3px 10px #0001; }
.lv-offers-page { background: var(--lv-surface-page-bg,#f7f9fc); padding-bottom: var(--lv-public-section-inset,40px); }

/* Offers hero follows the provider pricing design without changing shared banners. */
.lv-offers-hero {
  padding: var(--lv-public-hero-pad, 5rem) 0;
  background: radial-gradient(ellipse at 75% 45%, rgb(20 110 245 / 18%), transparent 65%), var(--lv-offer-navy, #0b1f33);
  color: #d2dfef;
}
.lv-offers-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); align-items: center; gap: clamp(2rem, 4vw, 3rem); }
.lv-offers-hero__copy { min-width: 0; }
.lv-offers-hero .lv-promotion-eyebrow { color: #b7d7ff; font-size: .75rem; font-weight: 750; letter-spacing: .13em; line-height: 1.5; margin: 0; }
.lv-offers-hero h1 { color: #fff; font-size: clamp(2.5rem, 4.6vw, 4.1rem); font-weight: 750; letter-spacing: -.035em; line-height: 1.06; margin: .85rem 0 1.2rem; }
.lv-offers-hero h1 span { display: block; color: #a6cdff; }
.lv-offers-hero .lv-offers-hero__intro { max-width: 33rem; color: #d2dfef; font-size: 1.05rem; line-height: 1.65; margin: 0; }
.lv-offers-hero__actions { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem 1.5rem; margin-top: 1.5rem; }
.lv-offers-hero :is(.lv-offers-hero__button, .lv-offers-hero__link) { display: inline-flex; align-items: center; justify-content: center; gap: .8rem; min-height: 48px; font-size: 1rem; font-weight: 700; line-height: 1.25; text-decoration: none; border-radius: .75rem; }
.lv-offers-hero .lv-offers-hero__button { background: linear-gradient(135deg, #1264e3, #0b57d0); border: 1px solid #0b57d0; color: #fff; padding: .85rem 1.25rem; box-shadow: 0 5px 14px rgb(18 95 222 / 18%); }
.lv-offers-hero .lv-offers-hero__button:hover { background: #094bb8; border-color: #094bb8; }
.lv-offers-hero .lv-offers-hero__link { color: #e0ecff; padding: .65rem 0; }
.lv-offers-hero .lv-offers-hero__link:hover { color: #fff; text-decoration: underline; text-underline-offset: .2em; }
.lv-offers-hero a:focus-visible { outline: 3px solid #38a3ff; outline-offset: 4px; }
.lv-offers-hero .lv-offers-scope { color: #d2dfef; font-size: .875rem; line-height: 1.65; max-width: 33rem; margin: 1.5rem 0 0; }
.lv-offers-hero__visual { min-width: 0; margin: 0; }
.lv-offers-hero__visual img { display: block; width: 100%; height: auto; aspect-ratio: 1586 / 992; border: 1px solid #304860; border-radius: 1.3rem; box-shadow: 0 22px 50px rgb(0 0 0 / 18%); }
.lv-offers-hero__visual figcaption { color: #d2dfef; font-size: .75rem; line-height: 1.6; margin-top: .6rem; }
#available-offers { scroll-margin-top: 7rem; }
@media (max-width: 52rem) {
  .lv-offers-hero__grid { grid-template-columns: minmax(0, 1fr); gap: var(--lv-public-subsection-gap, 1.5rem); }
  .lv-offers-hero .lv-offers-hero__intro, .lv-offers-hero .lv-offers-scope { max-width: none; }
  .lv-offers-hero__visual { width: 100%; max-width: 36rem; }
}
@media (max-width: 40rem) {
  .lv-offers-hero h1 { font-size: clamp(2.25rem, 9.5vw, 3.1rem); margin: .7rem 0 1rem; }
  .lv-offers-hero .lv-promotion-eyebrow { font-size: .6875rem; letter-spacing: .08em; }
  .lv-offers-hero .lv-offers-hero__intro { font-size: 1rem; }
  .lv-offers-hero__actions { gap: .6rem 1rem; margin-top: 1.1rem; }
  .lv-offers-hero :is(.lv-offers-hero__button, .lv-offers-hero__link) { font-size: .9375rem; }
  .lv-offers-hero .lv-offers-scope { font-size: .8125rem; margin-top: 1rem; }
}

.lv-offers-content { padding-block: var(--lv-public-subsection-gap,32px); }
.lv-offers-toolbar { display: flex; justify-content: space-between; align-items: center; gap: var(--lv-public-card-gap,24px); margin-bottom: var(--lv-public-heading-gap,24px); }
.lv-offers-toolbar label { font-size: .8rem; font-weight: 650; display: flex; align-items: center; gap: 10px; }
.lv-offers-toolbar select { padding: 10px 34px 10px 12px; border: 1px solid var(--lv-offer-border); border-radius: 8px; background: #fff; color: var(--lv-offer-ink); min-height: 44px; max-width: 100%; }
.lv-offers-toolbar p { font-size: .83rem; color: var(--lv-offer-muted); }
.lv-offers-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--lv-public-card-gap,24px); }
.lv-offer-card { min-width: 0; background: #fff; color: #0b1f33; border: 1px solid #c5e2ff; border-radius: 18px; overflow: hidden; scroll-margin-top: 110px; box-shadow: 0 5px 20px rgb(0 96 210 / 5%); container-type: inline-size; container-name: coupon-card; }
.lv-offer-card-heading { display: grid; grid-template-columns: minmax(0,48%) minmax(0,52%); border-bottom: 1px solid #d6e8fa; min-width: 0; }
.lv-offer-heading-copy { min-width: 0; padding: clamp(1.25rem,2.5cqw,2rem) clamp(1.25rem,2.5cqw,2rem) clamp(1.25rem,2.5cqw,2rem) .75rem; align-self: center; }
.lv-offer-card .lv-promotion-visual { padding: 1rem 1rem .75rem; min-height: 245px; }
.lv-offer-card .lv-promotion-vehicle { width: 100%; max-height: 340px; }
.lv-offer-card .lv-promotion-eyebrow { font-size: clamp(.65rem,1.25cqw,.9rem); }
.lv-offer-card h2 { color: #0b1f33; font-size: clamp(1.35rem,2.7cqw,2.25rem); line-height: 1.16; font-weight: 750; letter-spacing: -.03em; margin: .65rem 0 1rem; overflow-wrap: anywhere; }
.lv-offer-card .lv-offer-headline-highlight { display: block; margin-bottom: .25rem; }
.lv-offer-benefit { display: flex; align-items: baseline; flex-wrap: wrap; gap: .3rem .5rem; margin: .8rem 0 0; line-height: 1.4; }
.lv-offer-benefit-value { color: #0064ff; font-size: clamp(1.65rem,3.2cqw,2.5rem); font-weight: 750; letter-spacing: -.035em; overflow-wrap: anywhere; }
.lv-offer-benefit-context { font-size: clamp(.95rem,1.65cqw,1.25rem); color: #0b1f33; }
.lv-offer-renewal { font-size: clamp(.85rem,1.4cqw,1.05rem); color: #536b89; line-height: 1.5; margin: .25rem 0 0; }
.lv-offer-summary { font-size: 1rem; line-height: 1.6; margin: .5rem 0 0; }
.lv-offer-summary--supplemental { position: absolute!important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.lv-offer-card-body { padding: clamp(1.25rem,2.5cqw,2rem); }
.lv-offer-card-body > p { font-size: 1rem; line-height: 1.65; margin: 0 0 1.2rem; }
.lv-offer-card-body .lv-offer-products { color: #536b89; font-size: .9rem; margin-bottom: .5rem; }
.lv-offer-product-chips { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0 0 1.5rem; }
.lv-offer-product-chips li { padding: .45rem .75rem; border: 1px solid #a8ceff; border-radius: 8px; background: linear-gradient(#f1f7ff,#fff); color: #445c78; font-size: .9rem; line-height: 1.4; overflow-wrap: anywhere; max-width: 100%; }
.lv-offer-card .lv-promotion-actions { justify-content: space-between; gap: 1rem; }
.lv-offer-code-group { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; min-width: 0; max-width: 100%; }
.lv-offer-card .lv-promotion-code { min-height: 62px; padding: .65rem 3rem .65rem 1.4rem; }
.lv-offer-card .lv-promotion-code > span:first-child { font-size: 1.15rem; }
.lv-offer-card .lv-promotion-code-label { font-size: .8rem; }
.lv-offer-code-hint { color: #536b89; font-size: .9rem; border-left: 1px solid #d7e3ef; padding-left: 1rem; line-height: 1.5; }
.lv-offer-card .lv-promotion-button { font-size: 1.1rem; min-height: 58px; padding: .9rem 1.5rem; }
.lv-offer-terms { margin-top: 1.5rem; border-top: 1px solid #dbe6f2; padding-top: .75rem; font-size: .9rem; line-height: 1.7; }
.lv-offer-terms summary { cursor: pointer; font-size: 1rem; font-weight: 700; min-height: 44px; padding-block: .5rem; }
.lv-offer-terms p { margin: .75rem 0 0; white-space: pre-line; }
.lv-offers-how { padding: var(--lv-public-card-pad,24px); border: 1px solid var(--lv-offer-border); background: #fff; border-radius: 12px; }
.lv-offers-how h2 { font-size: 1.4rem; margin: 0 0 18px; }
.lv-offers-how li,.lv-offers-how p { font-size: .92rem; line-height: 1.8; }
.lv-offers-how a { color: var(--lv-offer-link); text-underline-offset: 3px; }
.lv-offers-empty { padding: var(--lv-public-card-pad,24px); border: 1px solid var(--lv-offer-border); border-radius: 12px; background: #fff; }
.lv-offers-empty h2 { font-size: 1.4rem; margin-top: 0; }
.lv-offers-empty p { max-width: 650px; line-height: 1.7; margin-bottom: 20px; }
.lv-offer-card[hidden],.lv-offers-no-matches[hidden] { display: none!important; }
@container coupon-banner (max-width: 1200px) {
  .lv-promotion-inner { grid-template-columns: 180px minmax(0,1fr); column-gap: 1rem; row-gap: .55rem; padding-right: 1rem; }
  .lv-promotion-banner .lv-promotion-visual { grid-row: span 2; }
  .lv-promotion-banner .lv-promotion-vehicle { max-height: 140px; }
  .lv-promotion-banner .lv-promotion-actions { justify-content: flex-start; }
}
@container coupon-banner (max-width: 600px) {
  .lv-promotion-inner { grid-template-columns: minmax(0,1fr); gap: .75rem; padding: 0 1rem 1rem; }
  .lv-promotion-banner .lv-promotion-visual { grid-row: auto; margin: 0 -1rem; width: calc(100% + 2rem); min-height: 120px; max-height: 150px; border-radius: 11px 11px 0 0; }
  .lv-promotion-banner .lv-promotion-vehicle { max-width: 290px; max-height: 145px; }
  .lv-promotion-headline { font-size: 1rem; }
  .lv-promotion-actions { gap: .6rem; }
}
@container coupon-card (max-width: 650px) {
  .lv-offer-card-heading { grid-template-columns: minmax(0,1fr); }
  .lv-offer-card .lv-promotion-visual { min-height: 150px; max-height: 235px; padding: .5rem 1rem; }
  .lv-offer-card .lv-promotion-vehicle { max-width: 430px; max-height: 220px; }
  .lv-offer-heading-copy { padding: 1.25rem; }
  .lv-offer-card h2 { font-size: 1.45rem; }
  .lv-offer-benefit-value { font-size: 1.9rem; }
  .lv-offer-card .lv-promotion-code { min-height: 54px; }
  .lv-offer-card .lv-promotion-button { min-height: 50px; font-size: 1rem; }
  .lv-offer-code-hint { border: 0; padding: 0; }
}
@media (max-width: 520px) {
  .lv-offers-toolbar { align-items: flex-start; flex-direction: column; gap: 8px; }
  .lv-offers-toolbar label { align-items: flex-start; flex-direction: column; width: 100%; }
  .lv-offers-toolbar select { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .lv-promotion-banner *, .lv-offers-page * { scroll-behavior: auto!important; } }
