/* Fixed Porto layouts; content and catalog prices remain HTML. */
.campaign-block { --campaign-focus: 50% 50%; position: relative; color: #152532; background-color: #fff; overflow-wrap: anywhere; }
.campaign-columns { background-image: var(--campaign-background); background-size: cover; background-position: center; }
.campaign-image { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; object-position: var(--campaign-focus); }
.campaign-background { background-image: linear-gradient(rgb(255 255 255 / var(--campaign-overlay)),rgb(255 255 255 / var(--campaign-overlay))),var(--campaign-background); background-size: cover; background-position: var(--campaign-focus); }
.campaign-panel { background-color: #fff; }
.campaign-dark .campaign-panel { background-color: #172a37; }
.campaign-dark { color: #fff; background-color: #172a37; }
.campaign-columns.campaign-dark { background-image: linear-gradient(rgb(10 24 35 / 92%),rgb(10 24 35 / 92%)),var(--campaign-background); }
.campaign-background.campaign-dark { background-image: linear-gradient(rgb(10 24 35 / var(--campaign-overlay)),rgb(10 24 35 / var(--campaign-overlay))),var(--campaign-background); }
.campaign-dark h2,.campaign-dark h3,.campaign-dark p,.campaign-dark .feature-box-info p { color: #fff; }
.campaign-dark .text-color-primary { color: #7cddff !important; }
.campaign-purchase { background: var(--campaign-price-background, #fff); color: #152532; }
.campaign-block .campaign-price,.campaign-block .campaign-information p,.campaign-light .feature-box-info p { color: #152532; }
.campaign-light [id^="campaign-title-"] + p { color: #152532; }
.campaign-description > :last-child { margin-bottom: 0; }
.campaign-description p { font-size: inherit; line-height: inherit; }
.campaign-area [data-campaign-heading][style*="--campaign-heading-leading"] { line-height: var(--campaign-heading-leading) !important; }
.campaign-area .campaign-heading-line { display: block; line-height: inherit; }
.campaign-area .campaign-heading-accents { line-height: max(var(--campaign-heading-leading), 1.15); padding-top: max(0em, calc((1.15 - var(--campaign-heading-leading)) * .5em)); }
.campaign-area .campaign-heading-break { display: none; }
.campaign-area [data-campaign-heading][style*="--campaign-heading-gap"] { margin-bottom: var(--campaign-heading-gap) !important; }
.campaign-area [data-campaign-heading][style*="--campaign-heading-gap"] + [data-campaign-subheading] { margin-top: 0; }
.campaign-area [data-campaign-subheading][style*="--campaign-subheading-gap"] { margin-top: 0; margin-bottom: var(--campaign-subheading-gap) !important; }
.campaign-area [data-campaign-subheading][style*="--campaign-subheading-gap"] + .campaign-description,
.campaign-area [data-campaign-subheading][style*="--campaign-subheading-gap"] + .campaign-description > :first-child { margin-top: 0; }
.campaign-block .feature-box .campaign-content-icon { background-color: var(--campaign-icon-background, #f4f4f4); }
.campaign-block .feature-box .campaign-content-icon > i { color: var(--campaign-icon-color, #0088cc); }
.campaign-columns .campaign-content-cell { --campaign-content-border: #dce5ea; position: relative; padding-top: 1rem; padding-bottom: 1rem; }
.campaign-columns.campaign-dark .campaign-content-cell { --campaign-content-border: rgb(255 255 255 / 20%); }
.campaign-columns .campaign-content-cell::after { content: ""; position: absolute; bottom: 0; left: calc(var(--bs-gutter-x) / 2); right: calc(var(--bs-gutter-x) / 2); border-bottom: 1px solid var(--campaign-content-border); }
.campaign-columns .campaign-content-cell:last-child::after { display: none; }
@media (min-width: 576px) {
    .campaign-columns .campaign-content-cell:nth-child(odd):not(:last-child)::before { content: ""; position: absolute; right: 0; top: 1rem; bottom: 1rem; border-right: 1px solid var(--campaign-content-border); }
    .campaign-columns .campaign-content-cell:nth-last-child(2):nth-child(odd)::after { display: none; }
}
.campaign-dark .campaign-purchase p,.campaign-dark .campaign-price { color: #152532; }
.campaign-information { background: var(--campaign-info-background, #e6f5fb); color: #152532; }
@media (min-width: 992px) { .campaign-info-details { border-left: 1px solid rgb(21 37 50 / 12%); } }
.campaign-dark .campaign-information h3,.campaign-dark .campaign-information p { color: #152532; }
.campaign-terms-link { color: #153b50; text-decoration: underline; }
.campaign-dark > .container > .campaign-terms { color: #fff; }
.campaign-modal .modal-content { max-height: calc(100dvh - 2rem); }
.campaign-modal .modal-footer { background: #f4f8fc; }
.campaign-modal .modal-header .btn-close { min-width: 44px; min-height: 44px; }
.campaign-area[data-campaign-enhanced] .campaign-terms { display: none; }
.campaign-area a:focus-visible,.campaign-area button:focus-visible { outline: 3px solid #147ca6; outline-offset: 3px; }
@media (max-width: 575px) { .campaign-purchase .btn { white-space: normal; width: 100%; } }
@media (max-width: 767px) {
    .campaign-area [style*="--campaign-text-size"] { font-size: clamp(min(24px, var(--campaign-text-size)), calc(var(--campaign-text-size) * .65), min(40px, var(--campaign-text-size))) !important; }
}
.campaign-purchase-transparent { background: transparent; border: 0 !important; padding: 0 !important; }
.campaign-dark-large { --campaign-accent: #e6bc59; background: #07111b var(--campaign-background) center / cover no-repeat; }
.campaign-dark-hero { padding-top: 54px; padding-bottom: 44px; }
.campaign-dark-copy { position: relative; z-index: 1; }
.campaign-dark-large h2 { font-size: 80px; line-height: 1; letter-spacing: -.04em; overflow-wrap: anywhere; }
.campaign-dark-large .campaign-dark-eyebrow { color: var(--campaign-accent); letter-spacing: .28em; font-size: 12px; }
.campaign-dark-large .campaign-description { color: #c3c9d0; }
.campaign-dark-media { display: flex; justify-content: var(--campaign-hero-align); padding-top: var(--campaign-hero-offset); min-width: 0; }
.campaign-dark-car { display: block; width: var(--campaign-hero-width); max-width: 100%; height: auto; object-fit: contain; }
.campaign-dark-large .campaign-purchase-transparent { color: #fff; }
.campaign-dark-large .campaign-purchase-transparent p,.campaign-dark-large .campaign-purchase-transparent .campaign-price { color: #fff; }
.campaign-dark-large .campaign-purchase > .d-flex { flex-direction: column; align-items: flex-start !important; gap: 1.25rem !important; }
.campaign-dark-large .campaign-purchase .flex-shrink-0 { display: flex; align-items: center; flex-wrap: wrap; gap: 1.5rem; }
.campaign-dark-large .campaign-price-label { display: inline-block; width: fit-content; color: var(--campaign-accent) !important; border: 1px solid var(--campaign-accent); border-radius: 4px; padding: .35rem 1rem; letter-spacing: .2em; font-weight: 600; }
.campaign-dark-large .campaign-price { margin-top: .65rem; font-size: 60px; }
.campaign-dark-large .campaign-purchase .btn-primary { background: var(--campaign-button); border-color: var(--campaign-button); color: var(--campaign-button-text); }
.campaign-dark-large .campaign-purchase .btn-primary:hover,.campaign-dark-large .campaign-purchase .btn-primary:focus-visible { background: var(--campaign-button-hover); border-color: var(--campaign-button-hover); }
.campaign-dark-large .campaign-terms-link { color: #fff; margin: 0 !important; }
.campaign-dark-strip { border-top: 1px solid var(--campaign-accent); background: rgb(3 10 16 / 88%); }
@media (min-width: 992px) { .campaign-dark-point + .campaign-dark-point { border-left: 1px solid rgb(230 188 89 / 25%); } }
@media (max-width: 991px) { .campaign-dark-hero { padding-top: 32px; padding-bottom: 28px; }.campaign-dark-media { justify-content: center; padding-top: 0; }.campaign-dark-car { width: 100%; max-width: 720px; }.campaign-dark-large h2 { font-size: 64px; }.campaign-dark-large .campaign-price { font-size: 44px; } }
@media (max-width: 575px) { .campaign-dark-point { flex: 0 0 50%; max-width: 50%; }.campaign-dark-hero { padding-top: 28px; }.campaign-dark-large .campaign-dark-eyebrow { letter-spacing: .16em; font-size: 10px; }.campaign-dark-large .campaign-purchase .btn { width: auto; }.campaign-dark-strip .feature-box-info p { font-size: 14px; } }
@media (max-width: 359px) { .campaign-dark-point { flex: 0 0 100%; max-width: 100%; } }
/* One proportional scene and copy share a common container; no cover crop or fixed height. */
.campaign-scene { background: #07111b; }
.campaign-scene-stage { display: grid; grid-template-columns: minmax(0, 1fr); max-width: 1600px; margin: auto; }
.campaign-scene-visual { grid-area: 1 / 1; align-self: end; justify-self: end; position: relative; width: 90%; }
.campaign-scene-visual::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg,#07111b,transparent 4%,transparent 97%,#07111b),linear-gradient(#07111b,transparent 5%,transparent 97%,#07111b); }
.campaign-scene-image { display: block; width: 100%; height: auto; }
.campaign-scene-content { grid-area: 1 / 1; align-self: start; padding-top: 44px; padding-bottom: 40px; }
.campaign-scene-copy { width: 50%; max-width: 570px; container-type: inline-size; }
.campaign-scene h2 { line-height: 1; font-size: min(16cqw, 96px); overflow-wrap: normal; word-break: normal; hyphens: none; }
.campaign-scene h2 [style*="--campaign-text-size"] { font-size: min(var(--campaign-text-size), 16cqw, 96px) !important; }
.campaign-scene-purchase { position: relative; z-index: 1; width: 400px; max-width: 100%; }
.campaign-scene .campaign-terms-link { display: inline-flex; align-items: center; min-height: 44px; }
.campaign-scene .campaign-purchase-transparent p { color: #fff; }
.campaign-contents-custom { background: var(--contents-background); color: var(--contents-color); --contents-divider: color-mix(in srgb, var(--contents-color) 20%, transparent); }
.campaign-contents-dividers-gold { --contents-divider: color-mix(in srgb, var(--campaign-accent, #e6bc59) 35%, transparent); }
.campaign-contents-strip { border-top: 0; }
.campaign-block .campaign-contents-custom .campaign-contents-heading,.campaign-block .campaign-contents-custom .feature-box-info p { color: var(--contents-color); }
.campaign-contents-text { padding: 1rem 0; margin-bottom: 1rem; }
.campaign-contents-items { display: grid; grid-template-columns: repeat(var(--contents-columns), minmax(0, 1fr)); gap: 1.5rem 0; }
.campaign-contents-item { min-width: 0; padding: 0 1rem; border: 0 !important; max-width: none; }
.campaign-contents-item .feature-box { gap: 1rem; }
.campaign-contents-item .feature-box-info { padding: 0; min-width: 0; }
.campaign-contents-custom .campaign-content-icon { flex-shrink: 0; }
.campaign-contents-custom .campaign-icon-bare { background: transparent !important; border-radius: 0; }
.campaign-contents-icons-top .feature-box { flex-direction: column; }
.campaign-contents-align-center .feature-box { align-items: center; justify-content: center; text-align: center; }
.campaign-contents-align-start .feature-box { align-items: flex-start; text-align: left; }
.campaign-contents-icons-side.campaign-contents-align-start .feature-box { align-items: center; }
.campaign-contents-dividers-gold.campaign-contents-strip { border-top: 1px solid var(--campaign-accent, #e6bc59); }
@media (min-width: 1200px) {
    .campaign-contents-dividers-between .campaign-contents-item:not(.campaign-contents-row-start),.campaign-contents-dividers-gold .campaign-contents-item:not(.campaign-contents-row-start) { border-left: 1px solid var(--contents-divider) !important; }
    .campaign-contents-list:not(.campaign-contents-dividers-none) .campaign-contents-item + .campaign-contents-item { border-top: 1px solid var(--contents-divider) !important; padding-top: 1rem; }
}
@media (max-width: 1199px) {
    .campaign-scene-stage { grid-template-areas: "intro" "scene" "purchase"; max-width: 960px; padding: 28px 12px; }
    .campaign-scene-content { display: contents; }
    .campaign-scene-copy { grid-area: intro; width: 100%; max-width: 680px; }
    .campaign-scene-visual { grid-area: scene; width: 100%; margin: 0 0 20px; }
    .campaign-scene-purchase { grid-area: purchase; }
    .campaign-contents-items { grid-template-columns: repeat(min(2, var(--contents-columns)), minmax(0, 1fr)); }
    .campaign-contents-dividers-between .campaign-contents-item,.campaign-contents-dividers-gold .campaign-contents-item { border-bottom: 1px solid var(--contents-divider) !important; padding-bottom: 1rem; }
}
@media (max-width: 991px) { .campaign-scene-stage { max-width: 720px; } }
@media (max-width: 767px) { .campaign-scene-stage { max-width: 540px; }.campaign-scene h2 { font-size: min(16cqw, 72px); }.campaign-scene h2 [style*="--campaign-text-size"] { font-size: min(var(--campaign-text-size), 16cqw, 72px) !important; } }
@media (max-width: 575px) { .campaign-scene-stage { max-width: none; }.campaign-scene-purchase .flex-shrink-0 { gap: .5rem 1.25rem; } }
@media (max-width: 359px) { .campaign-contents-items { grid-template-columns: 1fr; } }
/* Dark-template defaults; explicit rich-text styles and presentation choices remain editable. */
.campaign-dark-large .campaign-contents-strip > .container { padding-top: 28px !important; padding-bottom: 36px !important; }
.campaign-dark-large .campaign-contents-strip .campaign-contents-heading { font-size: 24px; margin-bottom: 24px !important; }
.campaign-dark-large .campaign-contents-strip .feature-box-info p { font-size: 18px; line-height: 1.5; }
.campaign-dark-large .campaign-contents-strip .campaign-content-icon { width: 80px; height: 80px; }
.campaign-dark-large .campaign-contents-strip .campaign-content-icon > i { font-size: 56px !important; }
.campaign-dark-large .campaign-contents-strip.campaign-contents-icons-top .feature-box { gap: 18px; }
@media (max-width: 575px) { .campaign-dark-large .campaign-contents-strip .feature-box-info p { font-size: 16px; }.campaign-dark-large .campaign-contents-strip .campaign-content-icon > i { font-size: 48px !important; }.campaign-dark-large .campaign-contents-strip .campaign-contents-item { padding-inline: 8px; } }
/* Same xl boundary as the existing content layout; visibility uses Bootstrap utilities. */
@media (width < 1200px) {
    .campaign-mobile-two-columns .campaign-contents-items,.campaign-mobile-two-columns .campaign-content-points { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .campaign-mobile-two-columns .campaign-content-cell { width: auto; max-width: none; }
    .campaign-mobile-compact .campaign-contents-items,.campaign-mobile-compact .campaign-content-points { display: grid; grid-template-columns: minmax(0,1fr); gap: 0; margin: 0; }
    .campaign-mobile-compact .campaign-contents-item,.campaign-mobile-compact .campaign-content-cell { width: auto; max-width: none; min-height: 0; padding: 11px 0 !important; border: 0 !important; }
    .campaign-mobile-compact .campaign-content-cell::before,.campaign-mobile-compact .campaign-content-cell::after { display: none; }
    .campaign-mobile-compact:not(.campaign-contents-dividers-none) .campaign-contents-item:not(:last-child),.campaign-mobile-compact .campaign-content-cell:not(:last-child) { border-bottom: 1px solid var(--contents-divider, rgb(127 127 127 / 25%)) !important; }
    .campaign-area .campaign-mobile-compact .feature-box { flex-direction: row; align-items: center; justify-content: flex-start; gap: 12px !important; min-height: 0; text-align: left; }
    .campaign-area .campaign-mobile-compact .feature-box-info { padding: 0; min-width: 0; flex: 1; }
    .campaign-area .campaign-mobile-compact .campaign-content-icon { flex: 0 0 28px; width: 28px; height: 28px; min-width: 28px; min-height: 0; padding: 0; top: 0; margin: 0 !important; }
    .campaign-area .campaign-mobile-compact .campaign-content-icon > i { font-size: 26px !important; line-height: 1; }
    .campaign-area .campaign-mobile-compact .feature-box-info p { font-size: 15px; line-height: 1.45; white-space: normal; overflow-wrap: anywhere; margin: 0; }
    .campaign-area .campaign-mobile-compact .feature-box-info [style*="--campaign-text-size"] { font-size: min(var(--campaign-text-size),16px) !important; }
    .campaign-dark-large .campaign-mobile-compact.campaign-contents-strip > .container { padding-top: 16px !important; padding-bottom: 16px !important; }
    .campaign-area .campaign-mobile-compact .campaign-contents-heading { margin-bottom: 8px !important; }
}
/* Flera erbjudanden: Porto cards/grid/buttons, scoped to the approved reference. */
.campaign-offers { background: var(--campaign-background) center / cover, var(--offers-background); color: #c8d0dc; }
.campaign-offers-container { max-width: 1600px; padding-inline: 3.2%; }
.campaign-offers-header { position: relative; padding: 8px 0 24px; }
.campaign-offers h2, .campaign-offers h3 { color: #f7f8fc; overflow-wrap: anywhere; }
.campaign-offers-header h2 { font-size: clamp(28px, 3.4vw, 52px) !important; line-height: 1.15; }
.campaign-offers p { color: inherit; }
.campaign-offers-eyebrow { color: var(--offer-accent, #e6bc59) !important; letter-spacing: .22em; text-transform: uppercase; font-size: 12px; line-height: 1.6; font-weight: 600; }
.campaign-offers-badge { position: absolute; right: 0; top: 8px; padding: 9px 18px; border: 1px solid #e6bc59; border-radius: 7px; color: #f3ce75 !important; font-size: 12px; letter-spacing: .24em; }
.campaign-offers-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.campaign-offers-count-1 { max-width: 700px; margin-inline: auto; grid-template-columns: minmax(0,1fr); }
.campaign-offers-count-2 { max-width: 1100px; margin-inline: auto; grid-template-columns: repeat(2,minmax(0,1fr)); }
.campaign-offer.card { min-width: 0; background: linear-gradient(145deg,#0d1a2aee,#04101bed); border: 1px solid var(--offer-accent); border-radius: 10px; overflow: hidden; box-shadow: 0 0 0 1px color-mix(in srgb,var(--offer-accent) 18%,transparent); }
.campaign-offer h3 { font-size: clamp(24px,2.4vw,38px) !important; line-height: 1.16; }
.campaign-offer .card-body { padding: 16px 26px 20px !important; color: #c8d0dc; }
.campaign-offer-media { position: relative; aspect-ratio: 2 / 1; background: #081b29; }
.campaign-offer-media img { width: 100%; height: 100%; aspect-ratio: 2 / 1; object-fit: cover; border-radius: 0; }
.campaign-offer .campaign-description { font-size: 17px; line-height: 1.55; }
.campaign-offer .campaign-description > :last-child { margin-bottom: 0; }
.campaign-offer .campaign-contents-custom { margin: 0 0 16px; padding: 0; background: transparent; }
.campaign-offer .campaign-contents-items { display: grid; grid-template-columns: 1fr; gap: 8px; }
.campaign-offer .feature-box .campaign-content-icon { flex: 0 0 24px; width: 24px; height: 24px; min-width: 24px; padding: 0; top: 0; margin: 0; color: #07111b; background: var(--offer-accent) !important; border-radius: 50%; }
.campaign-offer .feature-box { gap: 12px; }
.campaign-area .campaign-offer .campaign-content-icon > i { display: block; font-size: 16px !important; line-height: 1; }
.campaign-offer .campaign-contents-item { padding: 0; border: 0; }
.campaign-offer .feature-box-info { padding-left: 0; }
.campaign-offer .feature-box-info p { color: #edf2f8; font-weight: 400 !important; font-size: 16px; line-height: 1.5; }
.campaign-offer-price { border-top: 1px solid color-mix(in srgb,var(--offer-accent) 40%,transparent); }
.campaign-offer-price .text-8 { color: var(--offer-accent); font-size: 38px !important; line-height: 1.2; }
.campaign-offer-button.btn { border: 1px solid #ffdf8e; border-radius: 7px; background: linear-gradient(#f5d27e,#bd873b); color: #101317; padding: 10px 12px; white-space: normal; font-size: 17px; line-height: 1.5; }
.campaign-offer-silver .campaign-offer-button.btn { background: linear-gradient(#dce2e9,#909eae); border-color: #e0e6ed; }
.campaign-offer-custom .campaign-offer-button.btn { background: var(--offer-accent); }
.campaign-offer-button.btn:hover { filter: brightness(1.1); color: #101317; }
.campaign-offer-button.btn:disabled { opacity: 1; cursor: not-allowed; }
.campaign-offers a:focus-visible { outline: 3px solid #ff9700; outline-offset: 3px; }
.campaign-offers .campaign-terms-link { color: #d1d9e3; font-size: 13px; text-decoration: underline; }
.campaign-bonus-overlay { position: absolute; right: 4%; top: 48%; width: 29%; color: #ffdb80; text-align: center; line-height: 1.1; }
.campaign-bonus-overlay strong { display: block; font-size: clamp(24px,3.1vw,48px); font-weight: 800; white-space: nowrap; }
.campaign-bonus-overlay span { font-size: clamp(8px,1vw,15px); font-weight: 700; }
.campaign-bonus-overlay small { display: block; font-size: 10px; margin-top: 5px; }
.campaign-bonus-overlay-amount strong { font-size: clamp(16px,1.7vw,26px); white-space: normal; }
.campaign-bonus-example { border: 1px solid var(--offer-accent); border-radius: 8px; background: #002b332e; }
.campaign-bonus-example strong { color: #ffdb80; }
.campaign-offer-unavailable { border: 1px dashed var(--offer-accent); font-size: 13px; line-height: 1.5; }
.campaign-offers-contact { border: 1px solid #213b52; border-radius: 10px; background: #10223580; }
.campaign-offers-contact > i { color: #e6bc59; }
.campaign-offers-contact > strong, .campaign-offers-contact .btn:not(:hover):not(:focus):not(:active) { color: #f7f8fc; }
.campaign-offers-contact > strong { font-size: 20px !important; }
.campaign-offers-contact { font-size: 17px; }
.campaign-contact-copy { border-left: 1px solid #365168; padding-left: 20px; }
@media (max-width: 1399px) { .campaign-offers-badge { position: static; display: table; margin: 0 auto 16px; } }
@media (min-width: 768px) and (max-width: 1199px) { .campaign-offers-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .campaign-offers-count-1 { grid-template-columns: 1fr; } .campaign-bonus-overlay strong { font-size: 42px; } }
@media (max-width: 767px) {
    .campaign-offers-container { padding-inline: 16px; }
    .campaign-offers-grid { grid-template-columns: minmax(0,1fr); gap: 20px; }
    .campaign-offers-header { padding-bottom: 16px; }
    .campaign-offers-header .campaign-description { font-size: 17px !important; }
    .campaign-offer h3 { font-size: 28px !important; }
    .campaign-offer .card-body { padding: 16px 20px 20px !important; }
    .campaign-offer-footer { margin-top: 8px !important; }
    .campaign-offer .campaign-description { font-size: 16px; }
    .campaign-bonus-overlay strong { font-size: clamp(24px,9vw,50px); }
    .campaign-bonus-overlay span { font-size: clamp(8px,2.8vw,14px); }
    .campaign-bonus-overlay-amount strong { font-size: 20px; }
    .campaign-offers-contact { flex-direction: column; text-align: center; }
    .campaign-contact-copy { border: 0; padding-left: 0; }
    .campaign-offers-contact .btn { width: 100%; }
}
@media (max-width: 1199px) {
    .campaign-offer .campaign-mobile-two-columns .campaign-contents-items { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
