/* =========================================================
 * ALMARA B2B Partner Pages — CLEAN BUILD v7.7
 * Scope: Partner Hub, Buchung & System, Für Standorte, Für Dienstleister
 * Basis: current Elementor JSON classes/IDs from 2026-05-24
 * Changelog v7.7:
 *   FIX 1 — Footer visibility: overflow-x:hidden moved from body
 *            to .site-main; footer explicitly restored on all B2B pages.
 *   FIX 2 — Hero layout: added #alm-b2b-locations-hero,
 *            #alm-b2b-operators-hero, #alm-b2b-platform-hero
 *            to section architecture and hero rules (section 03).
 *            Responsive breakpoints extended accordingly.
 * ========================================================= */

:root{
  --alm-b2b-sand:#f5ecdf;
  --alm-b2b-sand-2:#fbf8f1;
  --alm-b2b-sand-3:#efe3d1;
  --alm-b2b-navy:#073246;
  --alm-b2b-navy-2:#0b3d50;
  --alm-b2b-muted:#526f7d;
  --alm-b2b-aqua:#38c6d9;
  --alm-b2b-aqua-soft:rgba(110,193,194,.18);
  --alm-b2b-white:#fffefa;
  --alm-b2b-line:rgba(7,50,70,.14);
  --alm-b2b-shadow:0 18px 38px rgba(7,50,70,.12);
  --alm-b2b-shadow-soft:0 10px 26px rgba(7,50,70,.10);
  --alm-b2b-radius:18px;
  --alm-b2b-radius-lg:28px;
  --alm-b2b-max:1120px;
  --alm-b2b-max-wide:1180px;
  --alm-b2b-serif:"Cormorant Garamond","Cormorant",Georgia,serif;
  --alm-b2b-sans:"Inter",Arial,sans-serif;
}

/* =========================================================
 * 01. Safe full-width root recovery for embedded Elementor templates
 * ========================================================= */

/* FIX 1: overflow-x removed from body — prevents footer clipping.
   Horizontal overflow is now contained at .site-main level instead. */
body:has(.alm-b2b-page),
body:has(#alm-partners-hero),
body:has(#alm-b2b-locations-hero),
body:has(#alm-b2b-operators-hero),
body:has(#alm-b2b-platform-hero){
  background:var(--alm-b2b-sand)!important;
}

body:has(.alm-b2b-page) .site-main,
body:has(#alm-partners-hero) .site-main,
body:has(#alm-b2b-locations-hero) .site-main,
body:has(#alm-b2b-operators-hero) .site-main,
body:has(#alm-b2b-platform-hero) .site-main{
  overflow-x:hidden!important;
}

body:has(.alm-b2b-page) .site-main,
body:has(.alm-b2b-page) main,
body:has(.alm-b2b-page) article,
body:has(.alm-b2b-page) .page-content,
body:has(.alm-b2b-page) .entry-content,
body:has(#alm-partners-hero) .site-main,
body:has(#alm-partners-hero) main,
body:has(#alm-partners-hero) article,
body:has(#alm-partners-hero) .page-content,
body:has(#alm-partners-hero) .entry-content,
body:has(#alm-b2b-locations-hero) .site-main,
body:has(#alm-b2b-locations-hero) main,
body:has(#alm-b2b-locations-hero) article,
body:has(#alm-b2b-locations-hero) .page-content,
body:has(#alm-b2b-locations-hero) .entry-content,
body:has(#alm-b2b-operators-hero) .site-main,
body:has(#alm-b2b-operators-hero) main,
body:has(#alm-b2b-operators-hero) article,
body:has(#alm-b2b-operators-hero) .page-content,
body:has(#alm-b2b-operators-hero) .entry-content,
body:has(#alm-b2b-platform-hero) .site-main,
body:has(#alm-b2b-platform-hero) main,
body:has(#alm-b2b-platform-hero) article,
body:has(#alm-b2b-platform-hero) .page-content,
body:has(#alm-b2b-platform-hero) .entry-content{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
  overflow:visible!important;
}

/* FIX 1b: Explicitly restore footer on all B2B partner pages.
   Also targets .almara-footer-force-runtime-shell which can collapse
   to height:0 on scroll/reload due to JS timing. */
body:has(.alm-b2b-page) .site-footer,
body:has(.alm-b2b-page) footer,
body:has(#alm-partners-hero) .site-footer,
body:has(#alm-partners-hero) footer,
body:has(#alm-b2b-locations-hero) .site-footer,
body:has(#alm-b2b-locations-hero) footer,
body:has(#alm-b2b-operators-hero) .site-footer,
body:has(#alm-b2b-operators-hero) footer,
body:has(#alm-b2b-platform-hero) .site-footer,
body:has(#alm-b2b-platform-hero) footer{
  display:block!important;
  visibility:visible!important;
  overflow:visible!important;
  position:relative!important;
  z-index:10!important;
  opacity:1!important;
  height:auto!important;
  min-height:0!important;
}

/* Footer inner shell — prevent height:0 collapse on JS timing issues. */
.almara-footer-force-runtime-shell,
.almara-footer-force-runtime-shell > *{
  height:auto!important;
  min-height:0!important;
  visibility:visible!important;
  opacity:1!important;
  overflow:visible!important;
}

/* Elementor page wrapper and Template widget breakout. */
body:has(.alm-b2b-page) .entry-content > .elementor,
body:has(.alm-b2b-page) .page-content > .elementor,
body:has(.alm-b2b-page) .elementor-widget-template,
body:has(.alm-b2b-page) .elementor-widget-template > .elementor-widget-container,
body:has(.alm-b2b-page) .elementor-widget-template > .elementor-widget-container > .elementor,
body:has(#alm-partners-hero) .entry-content > .elementor,
body:has(#alm-partners-hero) .page-content > .elementor,
body:has(#alm-partners-hero) .elementor-widget-template,
body:has(#alm-partners-hero) .elementor-widget-template > .elementor-widget-container,
body:has(#alm-partners-hero) .elementor-widget-template > .elementor-widget-container > .elementor,
body:has(#alm-b2b-locations-hero) .entry-content > .elementor,
body:has(#alm-b2b-locations-hero) .page-content > .elementor,
body:has(#alm-b2b-locations-hero) .elementor-widget-template,
body:has(#alm-b2b-locations-hero) .elementor-widget-template > .elementor-widget-container,
body:has(#alm-b2b-locations-hero) .elementor-widget-template > .elementor-widget-container > .elementor,
body:has(#alm-b2b-operators-hero) .entry-content > .elementor,
body:has(#alm-b2b-operators-hero) .page-content > .elementor,
body:has(#alm-b2b-operators-hero) .elementor-widget-template,
body:has(#alm-b2b-operators-hero) .elementor-widget-template > .elementor-widget-container,
body:has(#alm-b2b-operators-hero) .elementor-widget-template > .elementor-widget-container > .elementor,
body:has(#alm-b2b-platform-hero) .entry-content > .elementor,
body:has(#alm-b2b-platform-hero) .page-content > .elementor,
body:has(#alm-b2b-platform-hero) .elementor-widget-template,
body:has(#alm-b2b-platform-hero) .elementor-widget-template > .elementor-widget-container,
body:has(#alm-b2b-platform-hero) .elementor-widget-template > .elementor-widget-container > .elementor{
  width:100vw!important;
  max-width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  padding-left:0!important;
  padding-right:0!important;
  overflow:visible!important;
}

body:has(.alm-b2b-page) .elementor-widget-template > .elementor-widget-container,
body:has(#alm-partners-hero) .elementor-widget-template > .elementor-widget-container,
body:has(#alm-b2b-locations-hero) .elementor-widget-template > .elementor-widget-container,
body:has(#alm-b2b-operators-hero) .elementor-widget-template > .elementor-widget-container,
body:has(#alm-b2b-platform-hero) .elementor-widget-template > .elementor-widget-container{
  display:block!important;
}

/* Box model safety. */
.alm-b2b-page,
.alm-b2b-page *,
.alm-b2b-page *::before,
.alm-b2b-page *::after,
[id^="alm-partners-"],
[id^="alm-partners-"] *,
[id^="alm-partners-"] *::before,
[id^="alm-partners-"] *::after,
[id^="alm-b2b-"],
[id^="alm-b2b-"] *,
[id^="alm-b2b-"] *::before,
[id^="alm-b2b-"] *::after{
  box-sizing:border-box!important;
}

/* Neutralize Elementor container leftovers only inside B2B page content. */
.alm-b2b-page,
[id^="alm-partners-"],
[id^="alm-b2b-"]{
  --width:100%!important;
  --min-height:0!important;
  --container-widget-width:100%!important;
  --container-widget-flex-grow:0!important;
  min-width:0!important;
}

/* =========================================================
 * 02. Section architecture
 * ========================================================= */

/* Hub overview — explicit section IDs. */
/* Locations DE/EN — explicit section IDs.
   Note: the section without custom_id should be given
   the ID "alm-b2b-locations-network" in Elementor (Advanced → CSS ID).
   Until then, both DE and EN Elementor fallback classes are listed. */
/* Operators DE/EN — add IDs here once JSON is available. */
/* Platform DE/EN  — add IDs here once JSON is available. */
.alm-b2b-page.alm-section,
#alm-partners-hero,
#alm-partners-models,
#alm-partners-advantage,
#alm-partners-impact,
#alm-partners-services,
#alm-partners-types,
#alm-partners-flow,
#alm-partners-standards,
#alm-partners-final-cta,
/* Locations sections */
#alm-b2b-locations-models,
#alm-b2b-locations-standards,
#alm-b2b-locations-impact,
#alm-b2b-locations-network,
.elementor-element-2ee58464,
.elementor-element-21625093,
#alm-b2b-locations-flow,
#alm-b2b-locations-final-cta{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:clamp(78px,8vw,124px) clamp(24px,5vw,72px)!important;
  display:grid!important;
  grid-template-columns:minmax(0,min(var(--alm-b2b-max),100%))!important;
  justify-content:center!important;
  align-items:start!important;
  row-gap:clamp(28px,3.2vw,48px)!important;
  column-gap:0!important;
  overflow:visible!important;
  background:var(--alm-b2b-sand)!important;
  color:var(--alm-b2b-navy)!important;
  font-family:var(--alm-b2b-sans)!important;
}

.alm-b2b-page.alm-section > .elementor-element,
#alm-partners-hero > .elementor-element,
#alm-partners-models > .elementor-element,
#alm-partners-advantage > .elementor-element,
#alm-partners-impact > .elementor-element,
#alm-partners-services > .elementor-element,
#alm-partners-types > .elementor-element,
#alm-partners-flow > .elementor-element,
#alm-partners-standards > .elementor-element,
#alm-partners-final-cta > .elementor-element,
/* Locations child elements */
#alm-b2b-locations-models > .elementor-element,
#alm-b2b-locations-standards > .elementor-element,
#alm-b2b-locations-impact > .elementor-element,
#alm-b2b-locations-network > .elementor-element,
.elementor-element-2ee58464 > .elementor-element,
.elementor-element-21625093 > .elementor-element,
#alm-b2b-locations-flow > .elementor-element,
#alm-b2b-locations-final-cta > .elementor-element{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Alternating premium bands. */
#alm-partners-impact,
#alm-b2b-locations-impact,
#alm-b2b-locations-advantage,
#alm-b2b-operators-impact,
#alm-b2b-operators-quality,
#alm-b2b-platform-sessions,
#alm-b2b-platform-distribution,
#alm-b2b-platform-relevance{
  background:
    radial-gradient(circle at 11% 16%, rgba(110,193,194,.19), transparent 32%),
    linear-gradient(180deg, rgba(246,244,236,.98), rgba(237,239,226,.96))!important;
}

#alm-partners-models,
#alm-partners-final-cta,
#alm-b2b-locations-final-cta,
#alm-b2b-operators-final-cta,
#alm-b2b-platform-final-cta{
  background:var(--alm-b2b-sand-3)!important;
}

/* =========================================================
 * 03. Hero
 * FIX 2: Added #alm-b2b-locations-hero, #alm-b2b-operators-hero,
 * #alm-b2b-platform-hero to all hero rules.
 * These rules come AFTER section 02 and override the broad
 * [id^="alm-b2b-*"] single-column grid with the 2-column hero layout.
 * ========================================================= */
.alm-b2b-page.alm-hero,
#alm-partners-hero,
#alm-b2b-locations-hero,
#alm-b2b-operators-hero,
#alm-b2b-platform-hero{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding-top:clamp(72px,8vw,128px)!important;
  padding-bottom:clamp(70px,8vw,122px)!important;
  padding-left:clamp(24px,5vw,72px)!important;
  padding-right:clamp(24px,5vw,72px)!important;
  display:grid!important;
  grid-template-columns:minmax(0,520px) minmax(320px,430px)!important;
  column-gap:clamp(56px,8vw,120px)!important;
  row-gap:32px!important;
  justify-content:center!important;
  align-items:center!important;
  overflow:visible!important;
  background:
    radial-gradient(circle at 78% 22%, rgba(110,193,194,.17), transparent 30%),
    var(--alm-b2b-sand)!important;
  color:var(--alm-b2b-navy)!important;
  font-family:var(--alm-b2b-sans)!important;
}

/* Elementor child elements — full width inside all heroes. */
#alm-b2b-locations-hero > .elementor-element,
#alm-b2b-operators-hero > .elementor-element,
#alm-b2b-platform-hero > .elementor-element{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Copy columns. */
.alm-b2b-page.alm-hero .alm-copy-column,
#alm-partners-hero-copy,
#alm-b2b-locations-hero-copy,
#alm-b2b-operators-hero-copy,
#alm-b2b-platform-hero-copy{
  grid-column:1!important;
  width:100%!important;
  max-width:520px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:0!important;
}

/* Media cards. */
.alm-b2b-page.alm-hero .alm-media-card,
#alm-partners-hero-media,
#alm-b2b-locations-hero-media,
#alm-b2b-operators-hero-media,
#alm-b2b-platform-hero-media{
  grid-column:2!important;
  width:100%!important;
  max-width:430px!important;
  justify-self:end!important;
}

/* Trust strips / pills — full width below both columns. */
#alm-b2b-platform-trust-strip,
#alm-b2b-locations-trust-strip,
#alm-b2b-operators-trust-strip,
#alm-partners-trust-pill{
  grid-column:1 / -1!important;
  justify-self:center!important;
  width:min(840px,100%)!important;
  max-width:840px!important;
  margin-top:clamp(18px,2.8vw,34px)!important;
}

/* =========================================================
 * 04. Typography
 * ========================================================= */
.alm-kicker,
.alm-b2b-page .alm-copy-column > .elementor-widget-text-editor:first-child p,
#alm-partners-hero-copy > .elementor-widget-text-editor:first-child p,
#alm-partners-models-copy > .elementor-widget-text-editor:first-child p,
#alm-partners-advantage-copy > .elementor-widget-text-editor:first-child p,
#alm-partners-impact-copy > .elementor-widget-text-editor:first-child p,
#alm-partners-services-copy > .elementor-widget-text-editor:first-child p,
#alm-partners-types-copy > .elementor-widget-text-editor:first-child p{
  margin:0 0 26px!important;
  font-family:var(--alm-b2b-sans)!important;
  font-size:12px!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:.27em!important;
  text-transform:uppercase!important;
  color:rgba(7,50,70,.66)!important;
}

.alm-hero__title,
.alm-b2b-page.alm-hero h1,
#alm-partners-hero h1,
#alm-partners-hero-title,
#alm-b2b-locations-hero h1,
#alm-b2b-operators-hero h1,
#alm-b2b-platform-hero h1{
  margin:0!important;
  max-width:620px!important;
  font-family:var(--alm-b2b-serif)!important;
  font-size:clamp(44px,5vw,76px)!important;
  line-height:.98!important;
  font-weight:500!important;
  letter-spacing:-.045em!important;
  color:var(--alm-b2b-navy)!important;
  text-wrap:balance!important;
}

.alm-section__title,
.alm-b2b-page.alm-section h2,
#alm-partners-models h2,
#alm-partners-advantage h2,
#alm-partners-impact h2,
#alm-partners-services h2,
#alm-partners-types h2,
#alm-partners-final-cta h2{
  margin:0!important;
  max-width:760px!important;
  font-family:var(--alm-b2b-serif)!important;
  font-size:clamp(32px,3.1vw,52px)!important;
  line-height:1.02!important;
  font-weight:500!important;
  letter-spacing:-.035em!important;
  color:var(--alm-b2b-navy)!important;
  text-wrap:balance!important;
}

.alm-section__lead,
.alm-hero__lead,
.alm-b2b-page .alm-copy-column > .elementor-widget-text-editor:not(:first-child) p,
#alm-partners-hero-copy > .elementor-widget-text-editor:not(:first-child) p,
#alm-partners-models-copy > .elementor-widget-text-editor:not(:first-child) p,
#alm-partners-advantage-copy > .elementor-widget-text-editor:not(:first-child) p,
#alm-partners-impact-copy > .elementor-widget-text-editor:not(:first-child) p,
#alm-partners-services-copy > .elementor-widget-text-editor:not(:first-child) p,
#alm-partners-types-copy > .elementor-widget-text-editor:not(:first-child) p{
  margin:18px 0 0!important;
  max-width:780px!important;
  font-family:var(--alm-b2b-sans)!important;
  font-size:clamp(15px,1.1vw,18px)!important;
  line-height:1.72!important;
  font-weight:400!important;
  color:var(--alm-b2b-muted)!important;
  text-align:left!important;
  hyphens:auto!important;
}

.alm-b2b-locations .alm-section__title,
#alm-b2b-locations-hero-title,
#alm-b2b-locations-hero h1,
#alm-b2b-locations-impact h2,
#alm-b2b-locations-advantage h2,
#alm-b2b-locations-services h2,
#alm-b2b-locations-types h2,
#alm-b2b-locations-flow h2{
  font-size:clamp(31px,2.9vw,48px)!important;
}

/* =========================================================
 * 05. Buttons and trust strips
 * ========================================================= */
.alm-button-row,
.alm-cta-row,
#alm-partners-hero-cta-row{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:14px!important;
  margin-top:30px!important;
  width:auto!important;
}

.alm-button .elementor-button,
.alm-button-row .elementor-button,
#alm-partners-hero-cta-row .elementor-button{
  border-radius:999px!important;
  padding:13px 22px!important;
  min-height:44px!important;
  font-family:var(--alm-b2b-sans)!important;
  font-size:14px!important;
  font-weight:800!important;
  letter-spacing:-.015em!important;
  text-decoration:none!important;
  box-shadow:0 14px 28px rgba(7,50,70,.12)!important;
  transition:background-color .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease!important;
}

.alm-button--primary .elementor-button,
.alm-button-row > .elementor-widget-button:first-child .elementor-button,
#alm-partners-hero-cta-row > .elementor-widget-button:first-child .elementor-button{
  background:var(--alm-b2b-navy)!important;
  color:#fff!important;
  border:1px solid var(--alm-b2b-navy)!important;
}

.alm-button--secondary .elementor-button,
.alm-button-row > .elementor-widget-button:nth-child(2) .elementor-button,
#alm-partners-hero-cta-row > .elementor-widget-button:nth-child(2) .elementor-button{
  background:#fff!important;
  color:var(--alm-b2b-navy)!important;
  border:1px solid rgba(7,50,70,.14)!important;
}

.alm-button .elementor-button:hover,
.alm-button-row .elementor-button:hover,
#alm-partners-hero-cta-row .elementor-button:hover{
  transform:translateY(-2px)!important;
  box-shadow:0 18px 34px rgba(7,50,70,.18)!important;
}

.alm-button--primary .elementor-button:hover,
.alm-button-row > .elementor-widget-button:first-child .elementor-button:hover,
#alm-partners-hero-cta-row > .elementor-widget-button:first-child .elementor-button:hover,
.alm-cta-card--dark .elementor-button:hover{
  background:#6EC1C2!important;
  border-color:#6EC1C2!important;
  color:var(--alm-b2b-navy)!important;
}

#alm-b2b-platform-trust-strip,
#alm-b2b-locations-trust-strip,
#alm-b2b-operators-trust-strip,
#alm-partners-trust-pill,
#alm-partners-growth-teaser,
#alm-b2b-locations-growth-teaser,
#alm-b2b-operators-growth-teaser,
#alm-b2b-platform-formats-teaser{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:min(920px,100%)!important;
  max-width:920px!important;
  min-height:42px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding:10px 22px!important;
  border-radius:999px!important;
  background:#fff!important;
  border:1px solid rgba(7,50,70,.12)!important;
  box-shadow:0 12px 26px rgba(7,50,70,.10)!important;
  text-align:center!important;
}

#alm-b2b-platform-trust-strip p,
#alm-b2b-locations-trust-strip p,
#alm-b2b-operators-trust-strip p,
#alm-partners-trust-pill p,
#alm-partners-growth-teaser p,
#alm-b2b-locations-growth-teaser p,
#alm-b2b-operators-growth-teaser p,
#alm-b2b-platform-formats-teaser p{
  margin:0!important;
  width:100%!important;
  text-align:center!important;
  color:var(--alm-b2b-navy)!important;
  font-family:var(--alm-b2b-sans)!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1.35!important;
  hyphens:none!important;
}

#alm-partners-growth-teaser,
#alm-b2b-locations-growth-teaser,
#alm-b2b-operators-growth-teaser{
  margin-top:2px!important;
}

/* =========================================================
 * 06. Media cards
 * ========================================================= */
.alm-media-card,
.alm-image-slot,
#alm-partners-hero-media,
#alm-partners-impact-visual,
#alm-b2b-locations-hero-media,
#alm-b2b-operators-hero-media,
#alm-b2b-platform-hero-media{
  display:flex!important;
  flex-direction:column!important;
  gap:22px!important;
  padding:28px!important;
  background:rgba(255,255,255,.86)!important;
  border:1px dashed rgba(56,198,217,.70)!important;
  border-radius:var(--alm-b2b-radius-lg)!important;
  box-shadow:var(--alm-b2b-shadow)!important;
  overflow:hidden!important;
  min-width:0!important;
  color:var(--alm-b2b-navy)!important;
}

.alm-media-card h2,
.alm-media-card h3,
.alm-image-slot__label,
.alm-image-slot h2,
.alm-image-slot h3,
#alm-partners-hero-media h2,
#alm-partners-hero-media h3,
#alm-b2b-locations-hero-media h2,
#alm-b2b-locations-hero-media h3,
#alm-b2b-operators-hero-media h2,
#alm-b2b-operators-hero-media h3,
#alm-b2b-platform-hero-media h2,
#alm-b2b-platform-hero-media h3{
  margin:0!important;
  font-family:var(--alm-b2b-serif)!important;
  font-size:clamp(24px,2.1vw,34px)!important;
  line-height:1.05!important;
  font-weight:500!important;
  letter-spacing:-.03em!important;
  color:var(--alm-b2b-navy)!important;
  text-wrap:balance!important;
}

.alm-media-card img,
.alm-media-card video,
.alm-image-slot img,
.alm-image-slot video,
#alm-partners-hero-media img,
#alm-partners-hero-media video,
#alm-partners-impact-visual img,
#alm-partners-impact-visual video,
#alm-b2b-locations-hero-media img,
#alm-b2b-locations-hero-media video,
#alm-b2b-operators-hero-media img,
#alm-b2b-operators-hero-media video,
#alm-b2b-platform-hero-media img,
#alm-b2b-platform-hero-media video{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  aspect-ratio:16/10!important;
  object-fit:cover!important;
  border-radius:14px!important;
  opacity:1!important;
  visibility:visible!important;
}

.alm-media-card p,
.alm-image-slot__hint,
.alm-image-slot p,
#alm-partners-hero-media p,
#alm-partners-impact-visual p,
#alm-b2b-locations-hero-media p,
#alm-b2b-operators-hero-media p,
#alm-b2b-platform-hero-media p{
  margin:0!important;
  font-family:var(--alm-b2b-sans)!important;
  font-size:15px!important;
  line-height:1.62!important;
  color:var(--alm-b2b-muted)!important;
}

/* =========================================================
 * 07. Grids and cards
 * ========================================================= */
.alm-card-grid,
#alm-partners-models-grid,
#alm-partners-advantage-grid,
#alm-partners-impact-grid,
#alm-partners-services-grid,
#alm-partners-types-grid{
  display:grid!important;
  width:100%!important;
  gap:24px!important;
  align-items:stretch!important;
  justify-content:center!important;
}

.alm-grid--3,
#alm-partners-advantage-grid,
#alm-partners-types-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

/* Partner models hub: 2 models only — 2-column layout, left-aligned. */
#alm-partners-models-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  justify-content:start!important;
}

.alm-grid--4,
#alm-partners-services-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}

.alm-grid--2x2,
#alm-partners-impact-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}

.alm-grid--1{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

.alm-card,
.alm-card-grid > .elementor-element,
#alm-partners-models-grid > .elementor-element,
#alm-partners-advantage-grid > .elementor-element,
#alm-partners-impact-grid > .elementor-element,
#alm-partners-services-grid > .elementor-element,
#alm-partners-types-grid > .elementor-element{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:18px!important;
  min-width:0!important;
  min-height:168px!important;
  padding:28px!important;
  background:rgba(255,255,255,.92)!important;
  border:1px solid var(--alm-b2b-line)!important;
  border-top:4px solid var(--alm-b2b-aqua)!important;
  border-radius:var(--alm-b2b-radius)!important;
  box-shadow:var(--alm-b2b-shadow-soft)!important;
  overflow:hidden!important;
}

#alm-partners-models-grid > .elementor-element{
  min-height:260px!important;
  padding:34px!important;
}

.alm-card__title,
.alm-card h3,
.alm-card h4,
.alm-card-grid > .elementor-element h3,
.alm-card-grid > .elementor-element h4,
#alm-partners-models-grid h3,
#alm-partners-advantage-grid h3,
#alm-partners-impact-grid h3,
#alm-partners-services-grid h3,
#alm-partners-types-grid h3{
  margin:0!important;
  font-family:var(--alm-b2b-serif)!important;
  font-size:clamp(20px,1.5vw,25px)!important;
  line-height:1.08!important;
  font-weight:600!important;
  letter-spacing:-.025em!important;
  color:var(--alm-b2b-navy)!important;
  text-wrap:balance!important;
}

.alm-card__text,
.alm-card p,
.alm-card-grid > .elementor-element p,
#alm-partners-models-grid p,
#alm-partners-advantage-grid p,
#alm-partners-impact-grid p,
#alm-partners-services-grid p,
#alm-partners-types-grid p{
  margin:0!important;
  font-family:var(--alm-b2b-sans)!important;
  font-size:15px!important;
  line-height:1.64!important;
  font-weight:400!important;
  color:var(--alm-b2b-muted)!important;
  text-align:left!important;
}

/* Legacy hub card spacing: two text widgets in model cards. */
#alm-partners-models-grid > .elementor-element .elementor-widget-text-editor:last-child{
  margin-top:auto!important;
}

/* =========================================================
 * 08. Split sections / media + grid compositions
 * ========================================================= */
.alm-impact-split,
#alm-partners-impact-split,
[id$="-split"].alm-impact-split{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(320px,.72fr)!important;
  gap:28px!important;
  align-items:stretch!important;
  width:100%!important;
}

#alm-b2b-locations-impact-split,
#alm-b2b-operators-impact-split,
#alm-b2b-platform-equipment-split{
  grid-template-columns:minmax(0,.92fr) minmax(340px,.78fr)!important;
}

.alm-impact-split > .alm-card-grid,
#alm-partners-impact-grid{
  align-self:stretch!important;
}

/* Excursion/impact split — target by actual Elementor ID.
   The split container uses id="alm-partners-impact-split" and has
   Elementor's e-flex class. We need ID + class specificity to win. */
#alm-partners-impact-split.alm-impact-split,
#alm-b2b-locations-impact .alm-impact-split,
#alm-b2b-operators-impact .alm-impact-split{
  display:grid!important;
  flex-direction:unset!important;
  grid-template-columns:minmax(0,.92fr) minmax(340px,.78fr)!important;
  gap:28px!important;
  align-items:stretch!important;
  width:100%!important;
}

/* Force left card-grid to single column inside the split.
   Target by ID and by context — covers both named and unnamed grids. */
#alm-b2b-locations-impact-grid,
#alm-b2b-operators-impact-grid,
#alm-partners-impact-split .alm-card-grid,
#alm-partners-impact-split [class*="alm-grid"],
#alm-b2b-locations-impact .alm-impact-split .alm-card-grid,
#alm-b2b-operators-impact .alm-impact-split .alm-card-grid,
#alm-b2b-locations-impact .alm-impact-split [class*="alm-grid"],
#alm-b2b-operators-impact .alm-impact-split [class*="alm-grid"]{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:18px!important;
  flex-direction:unset!important;
}

/* Compact card height inside split. */
#alm-b2b-locations-impact-grid .alm-card,
#alm-b2b-operators-impact-grid .alm-card,
#alm-partners-impact-split .alm-card,
#alm-b2b-locations-impact .alm-impact-split .alm-card,
#alm-b2b-operators-impact .alm-impact-split .alm-card{
  min-height:116px!important;
}

/* Right media card fills full height of split. */
#alm-partners-impact-visual,
#alm-b2b-locations-impact .alm-impact-split .alm-media-card,
#alm-b2b-locations-impact .alm-impact-split .alm-image-slot,
#alm-b2b-operators-impact .alm-impact-split .alm-media-card,
#alm-b2b-operators-impact .alm-impact-split .alm-image-slot{
  height:100%!important;
  align-self:stretch!important;
}

/* Override Elementor's e-con-full (width:100%) on direct children of split.
   Without this, grid column sizing is ignored and children span full width. */
#alm-partners-impact-split.alm-impact-split > .elementor-element,
#alm-b2b-locations-impact .alm-impact-split > .elementor-element,
#alm-b2b-operators-impact .alm-impact-split > .elementor-element{
  width:auto!important;
  max-width:100%!important;
  min-width:0!important;
  flex-shrink:unset!important;
  flex-grow:unset!important;
  align-self:stretch!important;
}

#alm-b2b-locations-impact-visual,
#alm-b2b-operators-impact-visual,
#alm-partners-impact-visual{
  height:100%!important;
}

/* Photo mosaics used by Platform/Operators. */
.alm-photo-mosaic{
  display:grid!important;
  grid-template-columns:1.08fr .72fr!important;
  grid-template-rows:repeat(2,1fr)!important;
  gap:8px!important;
  width:100%!important;
}
.alm-photo-slot:first-child{
  grid-row:span 2!important;
}
.alm-photo-slot,
.alm-photo-slot .elementor-widget-container,
.alm-photo-slot img{
  width:100%!important;
  height:100%!important;
  min-height:88px!important;
  border-radius:12px!important;
  overflow:hidden!important;
  object-fit:cover!important;
}

/* =========================================================
 * 09. Final CTA
 * ========================================================= */
.alm-final-cta-grid,
#alm-partners-final-cta-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,360px))!important;
  gap:24px!important;
  justify-content:center!important;
  align-items:stretch!important;
  width:100%!important;
}

.alm-cta-card,
#alm-partners-final-cta-grid > .elementor-element{
  display:flex!important;
  flex-direction:column!important;
  gap:18px!important;
  min-height:330px!important;
  padding:36px!important;
  border-radius:14px!important;
  box-shadow:var(--alm-b2b-shadow-soft)!important;
  border:1px solid var(--alm-b2b-line)!important;
}

.alm-cta-card--dark,
#alm-partners-final-cta-grid > .elementor-element:first-child{
  background:var(--alm-b2b-navy)!important;
  color:#fff!important;
  border-color:var(--alm-b2b-navy)!important;
}

.alm-cta-card--light,
#alm-partners-final-cta-grid > .elementor-element:nth-child(2){
  background:rgba(255,255,255,.92)!important;
  color:var(--alm-b2b-navy)!important;
}

.alm-cta-card--dark h2,
.alm-cta-card--dark h3,
.alm-cta-card--dark p,
#alm-partners-final-cta-grid > .elementor-element:first-child h2,
#alm-partners-final-cta-grid > .elementor-element:first-child h3,
#alm-partners-final-cta-grid > .elementor-element:first-child p{
  color:#fff!important;
}

.alm-cta-card h2,
.alm-cta-card h3,
#alm-partners-final-cta-grid h2,
#alm-partners-final-cta-grid h3{
  margin:0!important;
  font-family:var(--alm-b2b-serif)!important;
  font-size:clamp(30px,2.8vw,45px)!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
}

.alm-cta-card p,
#alm-partners-final-cta-grid p{
  margin:0!important;
  font-size:15px!important;
  line-height:1.65!important;
}

/* =========================================================
 * 10. Page-specific refinements
 * ========================================================= */
/* Hub keeps a slightly wider models stage. */
#alm-partners-models{
  --alm-b2b-max:1180px;
}
#alm-partners-models-copy{
  max-width:980px!important;
}
#alm-partners-models h2{
  max-width:980px!important;
}

/* Platform has many 4-card rows: keep cards calmer and equal. */
.alm-b2b-platform .alm-card{
  min-height:154px!important;
}

/* Operators reference look should remain close to current stable version. */
.alm-b2b-operators.alm-section{
  --alm-b2b-max:1080px;
}

/* Locations had proportion issues: keep it slightly wider but not full-spread. */
.alm-b2b-locations.alm-section{
  --alm-b2b-max:1120px;
}

/* =========================================================
 * 11. Responsive
 * ========================================================= */
@media (max-width:1180px){
  .alm-grid--4,
  #alm-partners-services-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

@media (max-width:980px){
  .alm-b2b-page.alm-hero,
  #alm-partners-hero,
  #alm-b2b-locations-hero,
  #alm-b2b-operators-hero,
  #alm-b2b-platform-hero{
    grid-template-columns:minmax(0,1fr)!important;
    row-gap:34px!important;
  }
  .alm-b2b-page.alm-hero .alm-copy-column,
  #alm-partners-hero-copy,
  #alm-b2b-locations-hero-copy,
  #alm-b2b-operators-hero-copy,
  #alm-b2b-platform-hero-copy,
  .alm-b2b-page.alm-hero .alm-media-card,
  #alm-partners-hero-media,
  #alm-b2b-locations-hero-media,
  #alm-b2b-operators-hero-media,
  #alm-b2b-platform-hero-media{
    grid-column:1!important;
    justify-self:start!important;
    max-width:680px!important;
  }
  .alm-grid--3,
  .alm-grid--4,
  .alm-grid--2x2,
  .alm-grid--1,
  #alm-partners-models-grid,
  #alm-partners-advantage-grid,
  #alm-partners-impact-grid,
  #alm-partners-services-grid,
  #alm-partners-types-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .alm-impact-split,
  #alm-partners-impact-split,
  #alm-b2b-locations-impact-split,
  #alm-b2b-operators-impact-split,
  #alm-b2b-platform-equipment-split{
    grid-template-columns:1fr!important;
  }
}

@media (max-width:767px){
  body:has(.alm-b2b-page) .elementor-widget-template,
  body:has(.alm-b2b-page) .elementor-widget-template > .elementor-widget-container,
  body:has(.alm-b2b-page) .elementor-widget-template > .elementor-widget-container > .elementor,
  body:has(#alm-partners-hero) .elementor-widget-template,
  body:has(#alm-partners-hero) .elementor-widget-template > .elementor-widget-container,
  body:has(#alm-partners-hero) .elementor-widget-template > .elementor-widget-container > .elementor,
  body:has(#alm-b2b-locations-hero) .elementor-widget-template,
  body:has(#alm-b2b-locations-hero) .elementor-widget-template > .elementor-widget-container,
  body:has(#alm-b2b-locations-hero) .elementor-widget-template > .elementor-widget-container > .elementor,
  body:has(#alm-b2b-operators-hero) .elementor-widget-template,
  body:has(#alm-b2b-operators-hero) .elementor-widget-template > .elementor-widget-container,
  body:has(#alm-b2b-operators-hero) .elementor-widget-template > .elementor-widget-container > .elementor,
  body:has(#alm-b2b-platform-hero) .elementor-widget-template,
  body:has(#alm-b2b-platform-hero) .elementor-widget-template > .elementor-widget-container,
  body:has(#alm-b2b-platform-hero) .elementor-widget-template > .elementor-widget-container > .elementor{
    width:100vw!important;
    max-width:100vw!important;
    margin-left:calc(50% - 50vw)!important;
    margin-right:calc(50% - 50vw)!important;
  }

  .alm-b2b-page.alm-section,
  #alm-partners-hero,
  #alm-partners-models,
  #alm-partners-advantage,
  #alm-partners-impact,
  #alm-partners-services,
  #alm-partners-types,
  #alm-partners-final-cta{
    padding:62px 24px!important;
    grid-template-columns:minmax(0,100%)!important;
    row-gap:28px!important;
  }

  .alm-b2b-page.alm-hero,
  #alm-partners-hero,
  #alm-b2b-locations-hero,
  #alm-b2b-operators-hero,
  #alm-b2b-platform-hero{
    padding:54px 24px 62px!important;
    grid-template-columns:minmax(0,100%)!important;
    row-gap:28px!important;
  }

  .alm-hero__title,
  .alm-b2b-page.alm-hero h1,
  #alm-partners-hero h1,
  #alm-partners-hero-title,
  #alm-b2b-locations-hero h1,
  #alm-b2b-operators-hero h1,
  #alm-b2b-platform-hero h1{
    font-size:clamp(34px,12vw,46px)!important;
    line-height:1.02!important;
    max-width:310px!important;
  }

  .alm-section__title,
  .alm-b2b-page.alm-section h2,
  #alm-partners-models h2,
  #alm-partners-advantage h2,
  #alm-partners-impact h2,
  #alm-partners-services h2,
  #alm-partners-types h2{
    font-size:clamp(28px,9vw,38px)!important;
    line-height:1.05!important;
    max-width:310px!important;
  }

  .alm-section__lead,
  .alm-hero__lead,
  .alm-b2b-page .alm-copy-column p,
  #alm-partners-hero-copy p,
  #alm-partners-models-copy p,
  #alm-partners-advantage-copy p,
  #alm-partners-impact-copy p,
  #alm-partners-services-copy p,
  #alm-partners-types-copy p{
    font-size:14px!important;
    line-height:1.66!important;
    max-width:310px!important;
  }

  .alm-button-row,
  .alm-cta-row,
  #alm-partners-hero-cta-row{
    width:100%!important;
    max-width:310px!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:10px!important;
  }
  .alm-button-row .elementor-widget-button,
  #alm-partners-hero-cta-row .elementor-widget-button{
    width:100%!important;
  }
  .alm-button-row .elementor-button,
  #alm-partners-hero-cta-row .elementor-button{
    width:100%!important;
    justify-content:center!important;
    text-align:center!important;
  }

  .alm-media-card,
  .alm-image-slot,
  #alm-partners-hero-media,
  #alm-b2b-locations-hero-media,
  #alm-b2b-operators-hero-media,
  #alm-b2b-platform-hero-media{
    width:100%!important;
    max-width:310px!important;
    padding:20px!important;
    border-radius:20px!important;
    justify-self:center!important;
  }
  .alm-media-card h2,
  .alm-media-card h3,
  .alm-image-slot__label,
  .alm-image-slot h2,
  .alm-image-slot h3{
    font-size:24px!important;
  }

  .alm-card-grid,
  .alm-grid--3,
  .alm-grid--4,
  .alm-grid--2x2,
  .alm-grid--1,
  #alm-partners-models-grid,
  #alm-partners-advantage-grid,
  #alm-partners-impact-grid,
  #alm-partners-services-grid,
  #alm-partners-types-grid{
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    max-width:310px!important;
    justify-self:center!important;
    gap:16px!important;
  }

  .alm-card,
  .alm-card-grid > .elementor-element,
  #alm-partners-models-grid > .elementor-element,
  #alm-partners-advantage-grid > .elementor-element,
  #alm-partners-impact-grid > .elementor-element,
  #alm-partners-services-grid > .elementor-element,
  #alm-partners-types-grid > .elementor-element{
    min-height:0!important;
    padding:22px!important;
    gap:12px!important;
  }

  .alm-card__title,
  .alm-card h3,
  .alm-card h4,
  .alm-card-grid > .elementor-element h3,
  #alm-partners-models-grid h3{
    font-size:22px!important;
  }
  .alm-card p,
  .alm-card__text,
  .alm-card-grid > .elementor-element p{
    font-size:14px!important;
    line-height:1.58!important;
  }

  #alm-b2b-platform-trust-strip,
  #alm-b2b-locations-trust-strip,
  #alm-b2b-operators-trust-strip,
  #alm-partners-trust-pill,
  #alm-partners-growth-teaser,
  #alm-b2b-locations-growth-teaser,
  #alm-b2b-operators-growth-teaser,
  #alm-b2b-platform-formats-teaser{
    width:100%!important;
    max-width:310px!important;
    padding:10px 16px!important;
  }
  #alm-b2b-platform-trust-strip p,
  #alm-b2b-locations-trust-strip p,
  #alm-b2b-operators-trust-strip p,
  #alm-partners-trust-pill p,
  #alm-partners-growth-teaser p,
  #alm-b2b-locations-growth-teaser p,
  #alm-b2b-operators-growth-teaser p,
  #alm-b2b-platform-formats-teaser p{
    font-size:11px!important;
    line-height:1.35!important;
  }

  .alm-impact-split,
  #alm-partners-impact-split,
  #alm-b2b-locations-impact-split,
  #alm-b2b-operators-impact-split,
  #alm-b2b-platform-equipment-split,
  .alm-final-cta-grid,
  #alm-partners-final-cta-grid{
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    max-width:310px!important;
    justify-self:center!important;
  }
  .alm-cta-card,
  #alm-partners-final-cta-grid > .elementor-element{
    min-height:0!important;
    padding:26px!important;
  }
}

/* =========================================================
 * ALMARA B2B Partner Pages — v7.7 PLATFORM WIDTH FIX
 * Scope: Buchung & System / Booking & Platform only
 * Reason: Platform sections exist in DOM but were missing as explicit
 *         section IDs in the CSS architecture. The generic class rule
 *         can lose against Elementor e-con-full/e-con generated widths.
 *         Hero was already explicit and therefore correct; all following
 *         Platform sections now use the same 1-column centering grid.
 * ========================================================= */

body:has(#alm-b2b-platform-relevance),
body:has(#alm-b2b-platform-equipment),
body:has(#alm-b2b-platform-distribution),
body:has(#alm-b2b-platform-how),
body:has(#alm-b2b-platform-sessions),
body:has(#alm-b2b-platform-final-cta){
  background:var(--alm-b2b-sand)!important;
}

body:has(#alm-b2b-platform-relevance) .site-main,
body:has(#alm-b2b-platform-equipment) .site-main,
body:has(#alm-b2b-platform-distribution) .site-main,
body:has(#alm-b2b-platform-how) .site-main,
body:has(#alm-b2b-platform-sessions) .site-main,
body:has(#alm-b2b-platform-final-cta) .site-main{
  overflow-x:hidden!important;
}

#alm-b2b-platform-relevance,
#alm-b2b-platform-equipment,
#alm-b2b-platform-distribution,
#alm-b2b-platform-how,
#alm-b2b-platform-sessions,
#alm-b2b-platform-final-cta{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:clamp(78px,8vw,124px) clamp(24px,5vw,72px)!important;
  display:grid!important;
  grid-template-columns:minmax(0,min(var(--alm-b2b-max),100%))!important;
  justify-content:center!important;
  justify-items:stretch!important;
  align-items:start!important;
  row-gap:clamp(28px,3.2vw,48px)!important;
  column-gap:0!important;
  overflow:visible!important;
  color:var(--alm-b2b-navy)!important;
  font-family:var(--alm-b2b-sans)!important;
}

#alm-b2b-platform-relevance,
#alm-b2b-platform-distribution,
#alm-b2b-platform-sessions{
  background:
    radial-gradient(circle at 11% 16%, rgba(110,193,194,.19), transparent 32%),
    linear-gradient(180deg, rgba(246,244,236,.98), rgba(237,239,226,.96))!important;
}

#alm-b2b-platform-equipment,
#alm-b2b-platform-how{
  background:var(--alm-b2b-sand)!important;
}

#alm-b2b-platform-final-cta{
  background:var(--alm-b2b-sand-3)!important;
}

#alm-b2b-platform-relevance > .elementor-element,
#alm-b2b-platform-equipment > .elementor-element,
#alm-b2b-platform-distribution > .elementor-element,
#alm-b2b-platform-how > .elementor-element,
#alm-b2b-platform-sessions > .elementor-element,
#alm-b2b-platform-final-cta > .elementor-element{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
  justify-self:stretch!important;
}

/* Platform-specific grid helpers: keep card rows inside the centered stage. */
#alm-b2b-platform-relevance-grid,
#alm-b2b-platform-distribution-grid,
#alm-b2b-platform-how-grid,
#alm-b2b-platform-sessions-grid{
  display:grid!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  gap:24px!important;
  align-items:stretch!important;
  justify-content:center!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}

#alm-b2b-platform-relevance-grid > .elementor-element,
#alm-b2b-platform-distribution-grid > .elementor-element,
#alm-b2b-platform-how-grid > .elementor-element,
#alm-b2b-platform-sessions-grid > .elementor-element{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}

#alm-b2b-platform-final-cta-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,360px))!important;
  gap:24px!important;
  justify-content:center!important;
  align-items:stretch!important;
  width:100%!important;
  max-width:100%!important;
}

@media (max-width:1180px){
  #alm-b2b-platform-relevance-grid,
  #alm-b2b-platform-distribution-grid,
  #alm-b2b-platform-how-grid,
  #alm-b2b-platform-sessions-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

@media (max-width:980px){
  #alm-b2b-platform-relevance-grid,
  #alm-b2b-platform-distribution-grid,
  #alm-b2b-platform-how-grid,
  #alm-b2b-platform-sessions-grid,
  #alm-b2b-platform-final-cta-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media (max-width:767px){
  #alm-b2b-platform-relevance,
  #alm-b2b-platform-equipment,
  #alm-b2b-platform-distribution,
  #alm-b2b-platform-how,
  #alm-b2b-platform-sessions,
  #alm-b2b-platform-final-cta{
    padding:62px 24px!important;
    grid-template-columns:minmax(0,100%)!important;
    row-gap:28px!important;
  }

  #alm-b2b-platform-relevance-grid,
  #alm-b2b-platform-distribution-grid,
  #alm-b2b-platform-how-grid,
  #alm-b2b-platform-sessions-grid,
  #alm-b2b-platform-final-cta-grid{
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    max-width:310px!important;
    justify-self:center!important;
    gap:16px!important;
  }
}

/* =========================================================
 * ALMARA B2B Partner Pages — v8.3 DESTINATIONS OPERATOR PARITY
 * Basis: stable almara-partners (34).css / v7.7.
 * Scope: Destinationen / Destinations page only.
 * Goal:
 * - match the working Operators geometry, not generic Elementor geometry
 * - hero: 2 columns, controlled copy width, controlled media width
 * - sections: centered 1080px stage, sane headline scale
 * - "Vom Markt zum Spot" / market-to-spot: 2-column split when a media card
 *   and a copy column are present
 * ========================================================= */

body:has(#alm-destinations-hero){
  --alm-destinations-stage:1080px;
  --alm-destinations-hero-copy:500px;
  --alm-destinations-hero-media:430px;
  --alm-destinations-title-max:46px;
  background:var(--alm-b2b-sand)!important;
}

body:has(#alm-destinations-hero) .site-main{
  overflow-x:hidden!important;
}

/* Template breakout safety: identical principle as the working B2B pages. */
body:has(#alm-destinations-hero) .entry-content > .elementor,
body:has(#alm-destinations-hero) .page-content > .elementor,
body:has(#alm-destinations-hero) .elementor-widget-template,
body:has(#alm-destinations-hero) .elementor-widget-template > .elementor-widget-container,
body:has(#alm-destinations-hero) .elementor-widget-template > .elementor-widget-container > .elementor{
  width:100vw!important;
  max-width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  padding-left:0!important;
  padding-right:0!important;
  overflow:visible!important;
}

/* Major destination sections only: direct sections of the imported Elementor template.
   This avoids shrinking nested grids/cards again. */
body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"],
body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:clamp(78px,8vw,124px) clamp(24px,5vw,72px)!important;
  display:grid!important;
  grid-template-columns:minmax(0,min(var(--alm-destinations-stage),100%))!important;
  justify-content:center!important;
  justify-items:stretch!important;
  align-items:start!important;
  row-gap:clamp(28px,3.2vw,48px)!important;
  column-gap:0!important;
  overflow:visible!important;
  color:var(--alm-b2b-navy)!important;
  font-family:var(--alm-b2b-sans)!important;
}

body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"] > .elementor-element,
body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"] > .elementor-element{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
  justify-self:stretch!important;
}

/* Alternating backgrounds, but without changing layout widths. */
body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:nth-of-type(odd),
body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:nth-of-type(odd){
  background:var(--alm-b2b-sand)!important;
}
body:has(#alm-destinations-hero) #alm-destinations-rollout,
body:has(#alm-destinations-hero) #alm-destinations-winter,
body:has(#alm-destinations-hero) #alm-destinations-readiness,
body:has(#alm-destinations-hero) #alm-destinations-seasons,
body:has(#alm-destinations-hero) #alm-destinations-demand,
body:has(#alm-destinations-hero) #alm-destinations-network{
  background:
    radial-gradient(circle at 11% 16%, rgba(110,193,194,.19), transparent 32%),
    linear-gradient(180deg, rgba(246,244,236,.98), rgba(237,239,226,.96))!important;
}

/* HERO — match Operators: 2-column stage, not full Elementor flex width. */
body:has(#alm-destinations-hero) #alm-destinations-hero{
  padding-top:clamp(72px,8vw,128px)!important;
  padding-bottom:clamp(70px,8vw,122px)!important;
  padding-left:clamp(24px,5vw,72px)!important;
  padding-right:clamp(24px,5vw,72px)!important;
  display:grid!important;
  grid-template-columns:minmax(0,var(--alm-destinations-hero-copy)) minmax(280px,var(--alm-destinations-hero-media))!important;
  column-gap:clamp(56px,8vw,120px)!important;
  row-gap:32px!important;
  justify-content:center!important;
  justify-items:stretch!important;
  align-items:center!important;
  background:
    radial-gradient(circle at 78% 22%, rgba(110,193,194,.17), transparent 30%),
    var(--alm-b2b-sand)!important;
}

body:has(#alm-destinations-hero) #alm-destinations-hero-copy{
  grid-column:1!important;
  box-sizing:border-box!important;
  --width:100%!important;
  --content-width:100%!important;
  --container-widget-width:100%!important;
  --container-widget-flex-grow:0!important;
  width:100%!important;
  max-width:var(--alm-destinations-hero-copy)!important;
  min-width:0!important;
  flex:0 1 auto!important;
  flex-basis:auto!important;
  flex-grow:0!important;
  flex-shrink:1!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-self:start!important;
  margin:0!important;
}

body:has(#alm-destinations-hero) #alm-destinations-hero-media{
  grid-column:2!important;
  box-sizing:border-box!important;
  --width:100%!important;
  --content-width:100%!important;
  width:100%!important;
  max-width:var(--alm-destinations-hero-media)!important;
  min-width:0!important;
  justify-self:end!important;
  align-self:center!important;
  flex:0 1 auto!important;
  margin:0!important;
}

body:has(#alm-destinations-hero) #alm-destinations-hero-media img{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  aspect-ratio:16/10!important;
  object-fit:cover!important;
  border-radius:14px!important;
}

body:has(#alm-destinations-hero) #alm-destinations-hero-status{
  grid-column:1 / -1!important;
  justify-self:center!important;
  width:min(840px,100%)!important;
  max-width:840px!important;
  margin-top:clamp(18px,2.8vw,34px)!important;
}

body:has(#alm-destinations-hero) #alm-destinations-hero h1,
body:has(#alm-destinations-hero) #alm-destinations-hero .alm-hero-title .elementor-heading-title{
  margin:0!important;
  max-width:var(--alm-destinations-hero-copy)!important;
  font-family:var(--alm-b2b-serif)!important;
  font-size:clamp(40px,4.35vw,64px)!important;
  line-height:1.02!important;
  font-weight:500!important;
  letter-spacing:-.042em!important;
  color:var(--alm-b2b-navy)!important;
  text-wrap:balance!important;
}

body:has(#alm-destinations-hero) #alm-destinations-hero .alm-hero-lead,
body:has(#alm-destinations-hero) #alm-destinations-hero .alm-hero-lead p{
  max-width:430px!important;
  font-family:var(--alm-b2b-sans)!important;
  font-size:15px!important;
  line-height:1.66!important;
  color:var(--alm-b2b-muted)!important;
}

body:has(#alm-destinations-hero) #alm-destinations-hero .alm-button-row,
body:has(#alm-destinations-hero) #alm-destinations-hero .alm-cta-row{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:14px!important;
  margin-top:30px!important;
  width:auto!important;
}

/* Destination section typography: Operators-like, not oversized Elementor defaults. */
body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero) h2,
body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero) .alm-section-headline .elementor-heading-title,
body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero) h2,
body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero) .alm-section-headline .elementor-heading-title{
  margin:0!important;
  max-width:620px!important;
  font-family:var(--alm-b2b-serif)!important;
  font-size:clamp(30px,2.65vw,46px)!important;
  line-height:1.05!important;
  font-weight:500!important;
  letter-spacing:-.035em!important;
  color:var(--alm-b2b-navy)!important;
  text-wrap:balance!important;
}

body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero) .alm-section-lead,
body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero) .alm-section-lead p,
body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero) .alm-section-lead,
body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero) .alm-section-lead p{
  max-width:680px!important;
  font-size:15px!important;
  line-height:1.68!important;
  color:var(--alm-b2b-muted)!important;
}

/* The "Vom Markt zum Spot" / Market-to-spot split.
   Use structural detection so it works in DE/EN even if the final ID changes. */
body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-media-card),
body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-image-slot),
body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-media-card),
body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-image-slot){
  grid-template-columns:minmax(0,430px) minmax(0,520px)!important;
  column-gap:clamp(42px,6vw,88px)!important;
  row-gap:28px!important;
  align-items:center!important;
}

body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-media-card) > .alm-media-card,
body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-image-slot) > .alm-image-slot,
body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-media-card) > .alm-media-card,
body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-image-slot) > .alm-image-slot{
  grid-column:1!important;
  width:100%!important;
  max-width:430px!important;
  justify-self:start!important;
}

body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-media-card) > .alm-copy-column,
body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-image-slot) > .alm-copy-column,
body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-media-card) > .alm-copy-column,
body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-image-slot) > .alm-copy-column{
  grid-column:2!important;
  width:100%!important;
  max-width:520px!important;
  justify-self:start!important;
}

/* Keep destination card grids inside their stage, but do not change their chosen 3/4-card structure. */
body:has(#alm-destinations-hero) [id^="alm-destinations-"][id$="-grid"]{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}

@media (max-width:980px){
  body:has(#alm-destinations-hero) #alm-destinations-hero,
  body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-media-card),
  body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-image-slot),
  body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-media-card),
  body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero):has(.alm-copy-column):has(.alm-image-slot){
    grid-template-columns:minmax(0,1fr)!important;
    row-gap:34px!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-hero-copy,
  body:has(#alm-destinations-hero) #alm-destinations-hero-media,
  body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"] > .alm-copy-column,
  body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"] > .alm-media-card,
  body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"] > .alm-image-slot,
  body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"] > .alm-copy-column,
  body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"] > .alm-media-card,
  body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"] > .alm-image-slot{
    grid-column:1!important;
    max-width:680px!important;
    justify-self:start!important;
  }
}

@media (max-width:767px){
  body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"],
  body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]{
    padding:62px 24px!important;
    grid-template-columns:minmax(0,100%)!important;
    row-gap:28px!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-hero{
    padding:54px 24px 62px!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-hero h1,
  body:has(#alm-destinations-hero) #alm-destinations-hero .alm-hero-title .elementor-heading-title{
    font-size:clamp(34px,11vw,44px)!important;
    line-height:1.03!important;
    max-width:310px!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-hero-copy,
  body:has(#alm-destinations-hero) #alm-destinations-hero-media,
  body:has(#alm-destinations-hero) #alm-destinations-hero-status,
  body:has(#alm-destinations-hero) [id^="alm-destinations-"][id$="-grid"]{
    width:100%!important;
    max-width:310px!important;
    justify-self:center!important;
  }

  body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero) h2,
  body:has(#alm-destinations-hero) .elementor-template .elementor > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero) .alm-section-headline .elementor-heading-title,
  body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero) h2,
  body:has(#alm-destinations-hero) .elementor[data-elementor-type="page"] > .e-con-full[id^="alm-destinations-"]:not(#alm-destinations-hero) .alm-section-headline .elementor-heading-title{
    font-size:clamp(28px,9vw,38px)!important;
    line-height:1.05!important;
    max-width:310px!important;
  }
}

/* =========================================================
 * ALMARA B2B Partner Pages — v8.4 DESTINATIONS LOCATION SPLIT FIX
 * Scope: Destinationen / Destinations only
 * Reason: The section "Vom Markt zum Spot" uses a different DOM API than
 *         the normal operator split:
 *         #alm-destinations-location
 *           #alm-destinations-visual
 *           #alm-destinations-location-copy
 *         Markup order is visual first, copy second. This patch keeps the
 *         section on the normal centered stage but explicitly places copy
 *         left and visual right. It also prevents the mosaic image/card from
 *         growing to full section width.
 * ========================================================= */

@media (min-width:981px){

  body:has(#alm-destinations-hero) #alm-destinations-location{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    padding:clamp(78px,8vw,124px) clamp(24px,5vw,72px)!important;
    display:grid!important;
    grid-template-columns:minmax(0,430px) minmax(320px,520px)!important;
    column-gap:clamp(52px,7vw,96px)!important;
    row-gap:32px!important;
    justify-content:center!important;
    justify-items:stretch!important;
    align-items:center!important;
    overflow:visible!important;
    background:var(--alm-b2b-sand)!important;
    color:var(--alm-b2b-navy)!important;
    font-family:var(--alm-b2b-sans)!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-location > .e-con-inner{
    display:contents!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-location-copy{
    grid-column:1!important;
    grid-row:1!important;
    box-sizing:border-box!important;
    --width:100%!important;
    --content-width:100%!important;
    --container-widget-width:100%!important;
    --container-widget-flex-grow:0!important;
    width:100%!important;
    max-width:430px!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    justify-self:start!important;
    align-self:center!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    gap:0!important;
    flex:0 1 auto!important;
    flex-basis:auto!important;
    flex-grow:0!important;
    flex-shrink:1!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-visual{
    grid-column:2!important;
    grid-row:1!important;
    box-sizing:border-box!important;
    --width:100%!important;
    --content-width:100%!important;
    --container-widget-width:100%!important;
    --container-widget-flex-grow:0!important;
    width:100%!important;
    max-width:520px!important;
    min-width:0!important;
    margin:0!important;
    padding:20px!important;
    justify-self:end!important;
    align-self:center!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:14px!important;
    flex:0 1 auto!important;
    flex-basis:auto!important;
    flex-grow:0!important;
    flex-shrink:1!important;
    background:rgba(255,255,255,.92)!important;
    border:1px solid rgba(56,198,217,.70)!important;
    border-radius:var(--alm-b2b-radius-lg)!important;
    box-shadow:var(--alm-b2b-shadow)!important;
    overflow:hidden!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-visual > .elementor-element,
  body:has(#alm-destinations-hero) #alm-destinations-location-copy > .elementor-element,
  body:has(#alm-destinations-hero) #alm-destinations-visual .elementor-widget,
  body:has(#alm-destinations-hero) #alm-destinations-location-copy .elementor-widget{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-visual .alm-visual-title .elementor-heading-title,
  body:has(#alm-destinations-hero) #alm-destinations-visual h3{
    margin:0!important;
    max-width:100%!important;
    font-family:var(--alm-b2b-serif)!important;
    font-size:clamp(26px,2.1vw,36px)!important;
    line-height:1.04!important;
    font-weight:500!important;
    letter-spacing:-.035em!important;
    color:var(--alm-b2b-navy)!important;
    text-wrap:balance!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-visual .alm-destinations-image,
  body:has(#alm-destinations-hero) #alm-destinations-visual .elementor-widget-image,
  body:has(#alm-destinations-hero) #alm-destinations-visual .elementor-widget-image .elementor-widget-container{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-visual img{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    aspect-ratio:16/9!important;
    object-fit:cover!important;
    border-radius:14px!important;
    margin:0!important;
    transform:none!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-visual .alm-visual-text,
  body:has(#alm-destinations-hero) #alm-destinations-visual .alm-visual-text p{
    margin:0!important;
    max-width:100%!important;
    font-family:var(--alm-b2b-sans)!important;
    font-size:13px!important;
    line-height:1.55!important;
    color:var(--alm-b2b-muted)!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-location-copy .alm-kicker,
  body:has(#alm-destinations-hero) #alm-destinations-location-copy .alm-kicker p{
    margin:0 0 26px!important;
    font-family:var(--alm-b2b-sans)!important;
    font-size:12px!important;
    line-height:1.2!important;
    font-weight:800!important;
    letter-spacing:.27em!important;
    text-transform:uppercase!important;
    color:rgba(7,50,70,.66)!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-location-copy .alm-section-headline .elementor-heading-title,
  body:has(#alm-destinations-hero) #alm-destinations-location-copy h2{
    margin:0!important;
    max-width:430px!important;
    font-family:var(--alm-b2b-serif)!important;
    font-size:clamp(30px,2.65vw,46px)!important;
    line-height:1.05!important;
    font-weight:500!important;
    letter-spacing:-.035em!important;
    color:var(--alm-b2b-navy)!important;
    text-wrap:balance!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-location-copy .alm-section-lead,
  body:has(#alm-destinations-hero) #alm-destinations-location-copy .alm-section-lead p{
    margin:18px 0 0!important;
    max-width:430px!important;
    font-family:var(--alm-b2b-sans)!important;
    font-size:15px!important;
    line-height:1.68!important;
    color:var(--alm-b2b-muted)!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-location-copy .alm-btn-secondary,
  body:has(#alm-destinations-hero) #alm-destinations-location-copy .elementor-widget-button{
    width:auto!important;
    max-width:max-content!important;
    margin-top:24px!important;
    align-self:flex-start!important;
  }
}

@media (max-width:980px){
  body:has(#alm-destinations-hero) #alm-destinations-location{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    row-gap:28px!important;
    padding:62px 24px!important;
    justify-items:center!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-location-copy,
  body:has(#alm-destinations-hero) #alm-destinations-visual{
    grid-column:1!important;
    width:100%!important;
    max-width:680px!important;
    justify-self:center!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-location-copy{
    grid-row:1!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-visual{
    grid-row:2!important;
  }
}

@media (max-width:767px){
  body:has(#alm-destinations-hero) #alm-destinations-location-copy,
  body:has(#alm-destinations-hero) #alm-destinations-visual{
    max-width:310px!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-visual{
    padding:16px!important;
    border-radius:20px!important;
  }

  body:has(#alm-destinations-hero) #alm-destinations-location-copy .alm-section-headline .elementor-heading-title,
  body:has(#alm-destinations-hero) #alm-destinations-location-copy h2{
    font-size:clamp(28px,9vw,38px)!important;
    line-height:1.05!important;
    max-width:310px!important;
  }
}

/* =========================================================
 * ALMARA B2B Partner Pages — v8.5 DESTINATIONS VISUAL TITLE FIX
 * Scope: Destinationen / Destinations only
 * Reason: The visual card title inside #alm-destinations-visual is an
 *         Elementor heading widget and can be overridden by later/global
 *         heading rules. This late hardlock keeps the card title in the
 *         same calm scale as the normal B2B media-card titles.
 * ========================================================= */

@media (min-width:981px){
  html body:has(#alm-destinations-hero) #alm-destinations-location #alm-destinations-visual .elementor-widget-heading.alm-visual-title,
  html body:has(#alm-destinations-hero) #alm-destinations-location #alm-destinations-visual .elementor-element-2532b718,
  html body:has(#alm-destinations-hero) #alm-destinations-location #alm-destinations-visual [class*="alm-visual-title"]{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    align-self:stretch!important;
  }

  html body:has(#alm-destinations-hero) #alm-destinations-location #alm-destinations-visual .elementor-widget-heading.alm-visual-title > .elementor-widget-container,
  html body:has(#alm-destinations-hero) #alm-destinations-location #alm-destinations-visual .elementor-element-2532b718 > .elementor-widget-container,
  html body:has(#alm-destinations-hero) #alm-destinations-location #alm-destinations-visual [class*="alm-visual-title"] > .elementor-widget-container{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }

  html body:has(#alm-destinations-hero) #alm-destinations-location #alm-destinations-visual .elementor-widget-heading.alm-visual-title .elementor-heading-title,
  html body:has(#alm-destinations-hero) #alm-destinations-location #alm-destinations-visual .elementor-element-2532b718 .elementor-heading-title,
  html body:has(#alm-destinations-hero) #alm-destinations-location #alm-destinations-visual [class*="alm-visual-title"] .elementor-heading-title,
  html body:has(#alm-destinations-hero) #alm-destinations-location #alm-destinations-visual h3.elementor-heading-title{
    margin:0!important;
    padding:0!important;
    width:100%!important;
    max-width:100%!important;
    font-family:var(--alm-b2b-serif)!important;
    font-size:clamp(25px,1.9vw,32px)!important;
    line-height:1.06!important;
    font-weight:500!important;
    letter-spacing:-.03em!important;
    color:var(--alm-b2b-navy)!important;
    text-wrap:balance!important;
  }
}

@media (max-width:980px){
  html body:has(#alm-destinations-hero) #alm-destinations-location #alm-destinations-visual .elementor-widget-heading.alm-visual-title .elementor-heading-title,
  html body:has(#alm-destinations-hero) #alm-destinations-location #alm-destinations-visual .elementor-element-2532b718 .elementor-heading-title,
  html body:has(#alm-destinations-hero) #alm-destinations-location #alm-destinations-visual [class*="alm-visual-title"] .elementor-heading-title,
  html body:has(#alm-destinations-hero) #alm-destinations-location #alm-destinations-visual h3.elementor-heading-title{
    font-size:clamp(24px,6.4vw,31px)!important;
    line-height:1.06!important;
    letter-spacing:-.03em!important;
  }
}

/* =========================================================
 * ALMARA B2B Partner Pages — v8.6 DESTINATIONS VISUAL TITLE HARDLOCK
 * Scope: Destinationen / Destinations only
 * Reason: The visual-card title can still inherit the large section title
 *         scale. This selector intentionally avoids :has() and uses the
 *         live DOM IDs/classes directly, with higher specificity than the
 *         global heading rules.
 * ========================================================= */

html body #alm-destinations-location #alm-destinations-visual .alm-visual-title,
html body #alm-destinations-location #alm-destinations-visual .elementor-widget-heading.alm-visual-title,
html body #alm-destinations-location #alm-destinations-visual .elementor-element-2532b718,
html body #alm-destinations-location #alm-destinations-visual .alm-visual-title > .elementor-widget-container,
html body #alm-destinations-location #alm-destinations-visual .elementor-element-2532b718 > .elementor-widget-container{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  align-self:stretch!important;
}

html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual .alm-visual-title.alm-visual-title .elementor-heading-title.elementor-heading-title,
html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual .elementor-element-2532b718.elementor-element-2532b718 .elementor-heading-title.elementor-heading-title,
html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual h3.elementor-heading-title.elementor-heading-title,
html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual h2.elementor-heading-title.elementor-heading-title,
html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual h1.elementor-heading-title.elementor-heading-title{
  margin:0!important;
  padding:0!important;
  width:100%!important;
  max-width:100%!important;
  font-family:var(--alm-b2b-serif)!important;
  font-size:34px!important;
  line-height:1.05!important;
  font-weight:600!important;
  letter-spacing:-.035em!important;
  color:var(--alm-b2b-navy)!important;
  text-wrap:balance!important;
}

@media (max-width:980px){
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual .alm-visual-title.alm-visual-title .elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual .elementor-element-2532b718.elementor-element-2532b718 .elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual h3.elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual h2.elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual h1.elementor-heading-title.elementor-heading-title{
    font-size:31px!important;
    line-height:1.06!important;
  }
}

@media (max-width:767px){
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual .alm-visual-title.alm-visual-title .elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual .elementor-element-2532b718.elementor-element-2532b718 .elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual h3.elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual h2.elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-visual#alm-destinations-visual h1.elementor-heading-title.elementor-heading-title{
    font-size:28px!important;
    line-height:1.07!important;
  }
}

/* =========================================================
 * ALMARA B2B Partner Pages — v8.7 DESTINATIONS VISUAL TITLE REAL-ID FIX
 * Scope: Destinationen / Destinations only
 * Reason: v8.6 targeted #alm-destinations-visual, but the live DOM uses
 *         #alm-destinations-location-visual. The old selector therefore
 *         never matched, so Elementor kept 83.2px. This patch targets the
 *         verified live ID and the verified widget id/class directly.
 * ========================================================= */

html body #alm-destinations-location #alm-destinations-location-visual,
html body #alm-destinations-location #alm-destinations-location-visual > .e-con-inner{
  min-width:0!important;
}

html body #alm-destinations-location #alm-destinations-location-visual .alm-visual-title,
html body #alm-destinations-location #alm-destinations-location-visual .elementor-widget-heading.alm-visual-title,
html body #alm-destinations-location #alm-destinations-location-visual .elementor-element-2532b718,
html body #alm-destinations-location #alm-destinations-location-visual [data-id="2532b718"],
html body #alm-destinations-location #alm-destinations-location-visual .alm-visual-title > .elementor-widget-container,
html body #alm-destinations-location #alm-destinations-location-visual .elementor-element-2532b718 > .elementor-widget-container,
html body #alm-destinations-location #alm-destinations-location-visual [data-id="2532b718"] > .elementor-widget-container{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0 0 14px!important;
  padding:0!important;
  align-self:stretch!important;
}

html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual .alm-visual-title.alm-visual-title h3.elementor-heading-title.elementor-heading-title,
html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual .alm-visual-title.alm-visual-title .elementor-heading-title.elementor-heading-title,
html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual .elementor-element-2532b718.elementor-element-2532b718 h3.elementor-heading-title.elementor-heading-title,
html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual [data-id="2532b718"] h3.elementor-heading-title.elementor-heading-title,
html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual h3.elementor-heading-title.elementor-heading-title{
  box-sizing:border-box!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  font-family:var(--alm-b2b-serif)!important;
  font-size:34px!important;
  line-height:1.06!important;
  font-weight:600!important;
  letter-spacing:-.035em!important;
  color:var(--alm-b2b-navy)!important;
  text-wrap:balance!important;
}

@media (max-width:980px){
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual .alm-visual-title.alm-visual-title h3.elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual .alm-visual-title.alm-visual-title .elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual .elementor-element-2532b718.elementor-element-2532b718 h3.elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual [data-id="2532b718"] h3.elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual h3.elementor-heading-title.elementor-heading-title{
    font-size:31px!important;
    line-height:1.06!important;
  }
}

@media (max-width:767px){
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual .alm-visual-title.alm-visual-title h3.elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual .alm-visual-title.alm-visual-title .elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual .elementor-element-2532b718.elementor-element-2532b718 h3.elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual [data-id="2532b718"] h3.elementor-heading-title.elementor-heading-title,
  html body #alm-destinations-location#alm-destinations-location #alm-destinations-location-visual#alm-destinations-location-visual h3.elementor-heading-title.elementor-heading-title{
    font-size:28px!important;
    line-height:1.07!important;
  }
}
