/* ideal-heim-bau V9 – native SP Page Builder homepage, scoped to v9 classes.
   Background video is rendered by Joomla; every heading, body, photo and CTA remains a native addon. */
body.ihb-page--home:has(.ihb-v9-hero){background:#f6f8fa}
body.ihb-page--home:has(.ihb-v9-hero) .ihb-content{position:relative;padding-top:0!important;overflow:hidden}
body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .sppb-page-title,
body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .sppb-page-title-wrap,
body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .page-header,
body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .page-title,
body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .sp-pagebuilder-title{display:none!important}
body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .sppb-section{margin:0!important}
body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .sppb-section>.sppb-row-container,
body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .sppb-section>.sppb-container-inner{width:min(1320px,calc(100% - 100px));max-width:1320px;margin:0 auto;padding:0}
body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .sppb-section .sppb-row{margin:0!important}
body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .sppb-section .sppb-row>[class*="sppb-col"]{padding:0 16px}
body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .sppb-section .sppb-row>[class*="sppb-col"]:first-child{padding-left:0}
body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .sppb-section .sppb-row>[class*="sppb-col"]:last-child{padding-right:0}
/* The first screen is a real movie in the template, not a CSS background screenshot. */
.ihb-home-video{display:none;position:absolute;left:0;top:0;width:100%;height:100svh;min-height:740px;max-height:980px;overflow:hidden;pointer-events:none;z-index:0;background:#192f42}
body.ihb-page--home:has(.ihb-v9-hero) .ihb-home-video{display:block}
.ihb-home-video video{display:block;width:100%;height:100%;object-fit:cover;object-position:center 54%}
.ihb-home-video:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,28,42,.79) 0%,rgba(12,30,46,.55) 44%,rgba(10,25,38,.2) 100%),linear-gradient(0deg,rgba(8,23,36,.5),transparent 43%)}
body.ihb-page--home:has(.ihb-v9-hero) .ihb-header--overlay:not(.ihb-header--scrolled){background:transparent!important;color:#fff!important;border-color:#ffffff40!important}
/* HERO */
.ihb-v9-hero{background:transparent!important;color:#fff!important;min-height:100svh;max-height:980px;height:100svh;position:relative;z-index:1;display:flex;align-items:center;box-sizing:border-box;padding:144px 0 100px!important}
.ihb-v9-hero>.sppb-row-container,.ihb-v9-hero>.sppb-container-inner{align-self:center;width:min(1320px,calc(100% - 100px))!important}
.ihb-v9-hero .sppb-row{max-width:790px}
.ihb-v9-hero .sppb-addon-wrapper{margin-bottom:0!important}
.ihb-v9-kicker p,.ihb-v9-hero-count p{font-family:var(--ihb-sans);font-size:11px!important;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#e6e9e4!important;line-height:1.7}
.ihb-v9-kicker p:before{content:"";display:inline-block;vertical-align:middle;width:30px;height:1px;background:#d7c6a9;margin-right:16px}
.ihb-v9-hero-title h1,.ihb-v9-hero-title .sppb-addon-title{font-family:var(--ihb-serif)!important;font-size:clamp(66px,7.7vw,120px)!important;line-height:.99!important;font-weight:400!important;letter-spacing:-.055em;color:#fff!important;margin:30px 0 28px!important;text-wrap:balance}
.ihb-v9-hero-title em,.ihb-v9-heading em{color:#dbc8ab;font-style:italic;font-weight:400}
.ihb-v9-hero-sub p{max-width:560px;font-family:var(--ihb-sans);font-size:clamp(17px,1.45vw,21px)!important;line-height:1.7;color:#f0f3f5!important;margin:0 0 36px!important}
.ihb-v9-hero-button .sppb-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #f7f6f2!important;background:#f7f6f2!important;color:#203647!important;font-size:11px!important;font-weight:800!important;letter-spacing:.11em!important;border-radius:0!important;padding:21px 26px!important;min-height:59px;transition:background .2s,transform .2s!important}
.ihb-v9-hero-button .sppb-btn:hover{background:#e4d4bd!important;transform:translateY(-3px)}
.ihb-v9-hero-count{margin-top:50px}.ihb-v9-hero-count p{opacity:.77}
/* shared editorial structure */
.ihb-v9-intro,.ihb-v9-material,.ihb-v9-legacy{padding:112px 0!important}
.ihb-v9-intro{background:#fff!important}
.ihb-v9-material{background:#e9f0f7!important}
.ihb-v9-legacy{background:#fff!important}
.ihb-v9-intro .sppb-row,.ihb-v9-material .sppb-row,.ihb-v9-legacy .sppb-row{display:flex;align-items:center!important;gap:38px}
.ihb-v9-intro .sppb-row>[class*="sppb-col"],.ihb-v9-material .sppb-row>[class*="sppb-col"],.ihb-v9-legacy .sppb-row>[class*="sppb-col"]{flex:1 1 0;max-width:none!important;width:auto!important}
.ihb-v9-cover-photo img,.ihb-v9-cover-photo .sppb-addon-single-image-container img{display:block;object-fit:cover;width:100%;max-height:none;height:500px}
.ihb-v9-material .ihb-v9-cover-photo img{height:600px}
.ihb-v9-eyebrow p{font-size:11px!important;font-weight:750;line-height:1.4;letter-spacing:.13em;text-transform:uppercase;color:#9b805f!important;margin:0 0 19px!important}
.ihb-v9-heading h2,.ihb-v9-heading .sppb-addon-title{font-family:var(--ihb-serif)!important;font-size:clamp(44px,4.35vw,70px)!important;line-height:1.07!important;letter-spacing:-.047em!important;font-weight:400!important;color:#1d3550!important;margin:0 0 28px!important;max-width:870px}
.ihb-v9-heading em{color:#ae9270}
.ihb-v9-body p{font-size:clamp(15px,1.02vw,17px)!important;line-height:1.85!important;color:#435669!important;margin:0 0 18px!important;max-width:700px}
.ihb-v9-link .sppb-btn,.ihb-v9-card-link .sppb-btn{border:0!important;border-bottom:1px solid #af9372!important;background:transparent!important;color:#183451!important;display:inline-flex!important;border-radius:0!important;box-shadow:none!important;font-weight:800!important;letter-spacing:.08em!important;font-size:11px!important;text-transform:uppercase;padding:13px 0 9px!important;line-height:1.4!important;margin-top:7px}
.ihb-v9-link .sppb-btn:hover,.ihb-v9-card-link .sppb-btn:hover{color:#a4825a!important;background:transparent!important}
/* gallery and features */
.ihb-v9-showcase-head{background:#eaf0f7!important;padding:105px 0 42px!important}
.ihb-v9-showcase-head .sppb-row{max-width:800px}
.ihb-v9-showcase-grid{background:#eaf0f7!important;padding:10px 0 14px!important}
.ihb-v9-showcase-grid .sppb-row{display:grid!important;grid-template-columns:2fr 1fr 1fr;align-items:stretch;gap:16px}
.ihb-v9-showcase-grid .sppb-row>[class*="sppb-col"]{max-width:none!important;flex:none!important;width:auto!important;padding:0!important;min-width:0;position:relative;background:#fff;overflow:hidden;min-height:465px}
.ihb-v9-showcase-grid .sppb-row .sppb-column,.ihb-v9-showcase-grid .sppb-row .sppb-column-addons{height:100%}
.ihb-v9-showcase-grid .ihb-v9-feature-image{height:100%;position:absolute;inset:0;overflow:hidden}
.ihb-v9-showcase-grid .ihb-v9-feature-image img{height:100%;width:100%;object-fit:cover;transition:transform .6s ease}
.ihb-v9-showcase-grid .sppb-row>[class*="sppb-col"]:hover .ihb-v9-feature-image img{transform:scale(1.04)}
.ihb-v9-showcase-grid .sppb-row>[class*="sppb-col"]:after{content:"";pointer-events:none;position:absolute;inset:40% 0 0;background:linear-gradient(transparent,rgba(7,22,34,.8))}
.ihb-v9-showcase-grid .ihb-v9-card-title,.ihb-v9-showcase-grid .ihb-v9-card-link{position:absolute;left:30px;z-index:2;right:24px}
.ihb-v9-showcase-grid .ihb-v9-card-title{bottom:65px}
.ihb-v9-showcase-grid .ihb-v9-card-title .sppb-addon-title,.ihb-v9-showcase-grid .ihb-v9-card-title h3{font-family:var(--ihb-serif)!important;color:white!important;font-weight:400!important;font-size:clamp(29px,2.5vw,42px)!important;line-height:1.1}
.ihb-v9-showcase-grid .ihb-v9-card-link{bottom:22px}
.ihb-v9-showcase-grid .ihb-v9-card-link .sppb-btn{color:#fff!important;border-color:#dfcbb0!important;padding:0 0 5px!important;font-size:10px!important}
.ihb-v9-showcase-note{padding:0 0 95px!important;background:#eaf0f7!important}
.ihb-v9-caption p{margin:0;color:#63748a;font-size:12px!important}
/* skills */
.ihb-v9-facts{margin:22px 0;border-top:1px solid #cddce6}
.ihb-v9-facts p{margin:0!important;padding:16px 0;border-bottom:1px solid #cddce6;font-size:14px!important;line-height:1.6!important;color:#40566c!important}
.ihb-v9-facts strong{color:#19344d}
.ihb-v9-method-head{background:#f8f9fb!important;padding:110px 0 38px!important}
.ihb-v9-method{background:#f8f9fb!important;padding:0 0 112px!important}
.ihb-v9-method .sppb-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px!important}
.ihb-v9-method .sppb-row>[class*="sppb-col"]{max-width:none!important;width:auto!important;flex:none!important;background:#fff;padding:30px 27px!important;min-height:250px;border-top:2px solid #c4a883}
.ihb-v9-step-no .sppb-addon-title,.ihb-v9-step-no h3{font-family:var(--ihb-serif)!important;font-size:42px!important;color:#bd9e7c!important;font-weight:400!important;margin:0 0 27px!important}
.ihb-v9-step-title h3,.ihb-v9-step-title .sppb-addon-title{font-size:18px!important;line-height:1.2;font-weight:750!important;color:#1d3550!important;letter-spacing:-.025em;margin:0 0 10px!important}
.ihb-v9-step-copy p{font-size:14px!important;line-height:1.65!important;color:#617287!important}
/* testimonials */
.ihb-v9-reviews-head{background:#eff3f7!important;padding:108px 0 38px!important}
.ihb-v9-reviews{padding:0 0 108px!important;background:#eff3f7!important}
.ihb-v9-reviews .sppb-row{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ihb-v9-reviews .sppb-row>[class*="sppb-col"]{max-width:none!important;width:auto!important;flex:none!important;padding:35px 30px!important;background:#fff;min-height:250px;border-top:2px solid #c4a883}
.ihb-v9-review p.quote{font-family:var(--ihb-serif)!important;font-size:clamp(22px,2vw,29px)!important;color:#263e55!important;line-height:1.35!important}
.ihb-v9-review p.attribution{font-size:12px!important;color:#6c7e8d!important;margin-top:30px!important}
/* social */
.ihb-v9-social-head{padding:110px 0 32px!important;background:#fff!important}
.ihb-v9-social-grid{padding:0 0 112px!important;background:#fff!important}
.ihb-v9-social-grid .sppb-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.ihb-v9-social-grid .sppb-row>[class*="sppb-col"]{max-width:none!important;width:auto!important;flex:none!important;padding:0!important}
.ihb-v9-social-image img{width:100%;height:250px;object-fit:cover;display:block}
/* bottom CTA */
.ihb-v9-cta{padding:115px 0!important;background:#213f5c!important;color:#fff!important}
.ihb-v9-cta .sppb-row{max-width:900px}
.ihb-v9-cta .ihb-v9-heading h2,.ihb-v9-cta .ihb-v9-heading .sppb-addon-title{color:#fff!important;font-size:clamp(48px,5.6vw,83px)!important}
.ihb-v9-cta .ihb-v9-heading em{color:#e0c9a9!important}
.ihb-v9-cta .ihb-v9-body p{color:#d7e1eb!important;font-size:18px!important}
.ihb-v9-cta .ihb-v9-eyebrow p{color:#dec8ad!important}
.ihb-v9-cta-button .sppb-btn{display:inline-flex!important;padding:18px 28px!important;color:#1d3550!important;background:#f8f4ed!important;border-radius:0!important;font-weight:800!important;font-size:11px!important;letter-spacing:.09em!important;text-transform:uppercase;margin-top:20px!important;border:1px solid #f8f4ed!important}
.ihb-v9-cta-button .sppb-btn:hover{background:#e8d6bb!important}
@media(max-width:1100px){
 body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .sppb-section>.sppb-row-container,body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .sppb-section>.sppb-container-inner{width:calc(100% - 64px)}
 .ihb-v9-hero>.sppb-row-container,.ihb-v9-hero>.sppb-container-inner{width:calc(100% - 64px)!important}
 .ihb-v9-showcase-grid .sppb-row>[class*="sppb-col"]{min-height:350px}
 .ihb-v9-intro .sppb-row,.ihb-v9-material .sppb-row,.ihb-v9-legacy .sppb-row{gap:8px}
}
@media(max-width:900px){
 .ihb-home-video{min-height:640px}
 .ihb-v9-hero{height:100svh;min-height:640px;padding-top:160px!important}
 .ihb-v9-hero-title h1{font-size:clamp(58px,9vw,86px)!important}
 .ihb-v9-intro,.ihb-v9-material,.ihb-v9-legacy{padding:74px 0!important}
 .ihb-v9-method .sppb-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ihb-v9-showcase-grid .sppb-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ihb-v9-showcase-grid .sppb-row>[class*="sppb-col"]:first-child{grid-column:span 2}
 .ihb-v9-showcase-grid .sppb-row>[class*="sppb-col"]{min-height:350px}
 .ihb-v9-social-grid .sppb-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:700px){
 body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .sppb-section>.sppb-row-container,body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .sppb-section>.sppb-container-inner{width:calc(100% - 38px)}
 .ihb-v9-hero>.sppb-row-container,.ihb-v9-hero>.sppb-container-inner{width:calc(100% - 38px)!important}
 .ihb-home-video{min-height:660px;height:100svh}
 .ihb-v9-hero{min-height:660px;height:100svh;padding:120px 0 75px!important}
 .ihb-v9-hero-title h1,.ihb-v9-hero-title .sppb-addon-title{font-size:clamp(51px,12.2vw,76px)!important;line-height:1.04!important;letter-spacing:-.055em!important;margin:20px 0!important}
 .ihb-v9-hero-sub p{font-size:16px!important;max-width:360px}
 .ihb-v9-kicker p{font-size:10px!important;letter-spacing:.11em}
 .ihb-v9-intro .sppb-row,.ihb-v9-material .sppb-row,.ihb-v9-legacy .sppb-row{display:flex;flex-direction:column!important;align-items:stretch!important;gap:30px}
 .ihb-v9-intro .sppb-row>[class*="sppb-col"],.ihb-v9-material .sppb-row>[class*="sppb-col"],.ihb-v9-legacy .sppb-row>[class*="sppb-col"]{width:100%!important;flex:none!important;padding:0!important}
 .ihb-v9-cover-photo img,.ihb-v9-material .ihb-v9-cover-photo img{height:310px!important}
 .ihb-v9-heading h2,.ihb-v9-heading .sppb-addon-title{font-size:clamp(38px,10vw,55px)!important}
 .ihb-v9-showcase-head,.ihb-v9-method-head,.ihb-v9-reviews-head,.ihb-v9-social-head{padding-top:75px!important}
 .ihb-v9-showcase-grid .sppb-row{grid-template-columns:1fr!important}
 .ihb-v9-showcase-grid .sppb-row>[class*="sppb-col"]:first-child{grid-column:auto}
 .ihb-v9-showcase-grid .sppb-row>[class*="sppb-col"]{min-height:310px}
 .ihb-v9-showcase-note,.ihb-v9-method,.ihb-v9-reviews,.ihb-v9-social-grid{padding-bottom:70px!important}
 .ihb-v9-method .sppb-row,.ihb-v9-reviews .sppb-row{grid-template-columns:1fr!important}
 .ihb-v9-method .sppb-row>[class*="sppb-col"],.ihb-v9-reviews .sppb-row>[class*="sppb-col"]{min-height:0}
 .ihb-v9-social-grid .sppb-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ihb-v9-social-image img{height:170px}
 .ihb-v9-cta{padding:75px 0!important}
}
@media(prefers-reduced-motion:reduce){.ihb-v9-showcase-grid img{transition:none!important}.ihb-v9-hero-button .sppb-btn{transition:none!important}}

/* Suppress Joomla/SPPB automatic page heading, never the native hero H1. */
body.ihb-page--home:has(.ihb-v9-hero) main.ihb-content>h1,
body.ihb-page--home:has(.ihb-v9-hero) .sppb-page-content>h1:first-child,
body.ihb-page--home:has(.ihb-v9-hero) main.ihb-content>.sppb-page-header{display:none!important}


/* V9.1 REAL JOOMLA HTML FIX
   Scoped to the native SP Page Builder V9 home layout.
   SP Page Builder emits `div.sppb-row-column` with per-ID max-width/flex-basis.
   Grid items need !important overrides to beat those generated declarations. */
body.ihb-page--home:has(.ihb-v9-hero) .ihb-content .ihb-v9-hero{isolation:isolate;overflow:hidden;}
/* The template video is moved INTO the actual hero by site.js, so its height always
   matches the section rather than a separate viewport-relative container. */
.ihb-v9-hero > .ihb-home-video,
.ihb-v9-hero > .ihb-home-video:only-child{
  display:block!important;position:absolute!important;inset:0!important;
  width:100%!important;height:100%!important;min-height:0!important;
  max-height:none!important;z-index:-1!important;pointer-events:none;
}
.ihb-v9-hero > .ihb-home-video video{width:100%;height:100%;object-fit:cover;display:block}
.ihb-v9-hero > .sppb-container-inner,
.ihb-v9-hero > .sppb-row-container{position:relative;z-index:1}
.ihb-v9-hero::before{z-index:0!important;background:linear-gradient(90deg,rgba(7,24,43,.78),rgba(19,45,73,.42) 52%,rgba(15,44,61,.10))!important}

/* Make Joomla's generated column wrappers obey the editorial flex proportions. */
.ihb-v9-intro .sppb-row > .sppb-row-column,
.ihb-v9-material .sppb-row > .sppb-row-column,
.ihb-v9-legacy .sppb-row > .sppb-row-column{
  min-width:0!important;max-width:none!important;
  flex:1 1 0%!important;width:auto!important;
}
.ihb-v9-intro .sppb-row-column > .sppb-column,
.ihb-v9-material .sppb-row-column > .sppb-column,
.ihb-v9-legacy .sppb-row-column > .sppb-column{min-width:0}

/* Actual output: .sppb-row > .sppb-row-column > .sppb-column >
   .sppb-column-addons > .sppb-addon-wrapper > .clearfix > .sppb-addon */
.ihb-v9-showcase-grid .sppb-row > .sppb-row-column,
.ihb-v9-method .sppb-row > .sppb-row-column,
.ihb-v9-reviews .sppb-row > .sppb-row-column,
.ihb-v9-social-grid .sppb-row > .sppb-row-column{
  width:100%!important;max-width:100%!important;
  flex:0 1 auto!important;flex-basis:auto!important;
  min-width:0!important;box-sizing:border-box;
}
.ihb-v9-showcase-grid .sppb-row > .sppb-row-column{min-height:465px;isolation:isolate}
.ihb-v9-showcase-grid .sppb-row > .sppb-row-column .sppb-column,
.ihb-v9-showcase-grid .sppb-row > .sppb-row-column .sppb-column-addons{height:100%;min-width:0}
/* The image ADDON is deeply nested; stretch its actual wrapper chain, not only img. */
.ihb-v9-showcase-grid .sppb-column-addons > .addon-root-image{
  position:absolute!important;inset:0!important;z-index:0!important;
  height:100%!important;width:100%!important;overflow:hidden;
}
.ihb-v9-showcase-grid .addon-root-image > .clearfix,
.ihb-v9-showcase-grid .addon-root-image .ihb-v9-feature-image,
.ihb-v9-showcase-grid .addon-root-image .sppb-addon-content,
.ihb-v9-showcase-grid .addon-root-image .sppb-addon-single-image-container{
  position:relative!important;inset:auto!important;display:block;
  height:100%!important;width:100%!important;
}
.ihb-v9-showcase-grid .addon-root-image img{
  display:block!important;height:100%!important;width:100%!important;
  min-width:100%;object-fit:cover!important;
}
.ihb-v9-showcase-grid .sppb-row-column:after{z-index:1!important}
.ihb-v9-showcase-grid .addon-root-heading,
.ihb-v9-showcase-grid .addon-root-button{position:relative;z-index:3}
.ihb-v9-showcase-grid .ihb-v9-card-title{left:24px;right:24px;bottom:71px}
.ihb-v9-showcase-grid .sppb-btn.ihb-v9-card-link{
  position:absolute!important;left:24px!important;bottom:25px!important;
  right:auto!important;width:auto!important;z-index:4!important;
  display:inline-flex!important;min-height:0!important;
  background:transparent!important;color:#fff!important;border:0!important;
  border-bottom:1px solid #dfcbb0!important;border-radius:0!important;
  padding:6px 0!important;box-shadow:none!important;
  font-size:11px!important;font-weight:750!important;letter-spacing:.075em;
  line-height:1.2!important;text-transform:uppercase;
}
.ihb-v9-showcase-grid .sppb-btn.ihb-v9-card-link:hover{color:#f1dabb!important}
/* SP Page Builder stores our class on the button itself, not on a parent. */
.ihb-v9-link.sppb-btn{
  background:transparent!important;color:#213c56!important;
  border:0!important;border-bottom:1px solid #b69b79!important;
  border-radius:0!important;padding:10px 0 7px!important;
  display:inline-flex!important;box-shadow:none!important;
  font-size:11px!important;line-height:1.4!important;
  font-weight:800!important;letter-spacing:.08em!important;
  text-transform:uppercase!important;
}
.ihb-v9-link.sppb-btn:hover{background:transparent!important;color:#9e7c58!important}

.ihb-v9-method .sppb-row > .sppb-row-column,
.ihb-v9-reviews .sppb-row > .sppb-row-column{overflow-wrap:normal;word-break:normal}
.ihb-v9-social-grid .sppb-row > .sppb-row-column{overflow:hidden}
.ihb-v9-social-grid .sppb-row-column .sppb-column,
.ihb-v9-social-grid .sppb-row-column .sppb-column-addons,
.ihb-v9-social-grid .addon-root-image,
.ihb-v9-social-grid .addon-root-image .sppb-addon-content,
.ihb-v9-social-grid .addon-root-image .sppb-addon-single-image-container{width:100%!important;min-width:0!important}
.ihb-v9-social-grid .ihb-v9-social-image img{display:block;width:100%!important;height:250px!important;object-fit:cover!important}

/* V9.1 mobile and tablet: editor-generated widths must not break stacking. */
@media(max-width:1100px){
 .ihb-v9-showcase-grid .sppb-row > .sppb-row-column{min-height:350px}
}
@media(max-width:700px){
 .ihb-v9-intro .sppb-row > .sppb-row-column,
 .ihb-v9-material .sppb-row > .sppb-row-column,
 .ihb-v9-legacy .sppb-row > .sppb-row-column{
  width:100%!important;max-width:100%!important;flex:0 0 100%!important;
 }
 .ihb-v9-showcase-grid .sppb-row > .sppb-row-column{min-height:310px}
 .ihb-v9-social-grid .ihb-v9-social-image img{height:170px!important}
}

/* V9.1 final card placement: position the actual ADDON WRAPPERS, not the nested
   .sppb-addon whose containing block was only a tiny heading wrapper. */
.ihb-v9-showcase-grid .sppb-row > .sppb-row-column .sppb-column-addons > .addon-root-heading{
  position:absolute!important;left:25px!important;right:24px!important;
  bottom:63px!important;z-index:3!important;
}
.ihb-v9-showcase-grid .sppb-row > .sppb-row-column .sppb-column-addons > .addon-root-button{
  position:absolute!important;left:25px!important;right:24px!important;
  bottom:22px!important;z-index:3!important;
}
.ihb-v9-showcase-grid .ihb-v9-card-title,
.ihb-v9-showcase-grid .sppb-btn.ihb-v9-card-link{
  position:static!important;left:auto!important;right:auto!important;
  top:auto!important;bottom:auto!important;
}
.ihb-v9-showcase-grid .ihb-v9-card-title .sppb-addon-title{margin:0!important}
.ihb-v9-showcase-grid .sppb-row-column .addon-root-heading .sppb-addon-wrapper{margin:0!important}


/* V9.2: balanced original-proportion home showcases.
   All three photographs are original 4:3 renders. Give each model equal weight and
   display the full photograph instead of cropping the two right-hand cards. */
body.ihb-page--home .ihb-v9-showcase-grid .sppb-row{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
body.ihb-page--home .ihb-v9-showcase-grid .sppb-row > .sppb-row-column{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  aspect-ratio:4/3;
  flex:initial!important;
  grid-column:auto!important;
  padding:0!important;
  background:#172b3d;
}
body.ihb-page--home .ihb-v9-showcase-grid .sppb-row > .sppb-row-column:first-child{
  grid-column:auto!important;
}
body.ihb-page--home .ihb-v9-showcase-grid .addon-root-image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
}
body.ihb-page--home .ihb-v9-showcase-grid .sppb-row-column::after{
  background:linear-gradient(180deg,transparent 52%,rgba(10,27,41,.20) 65%,rgba(7,23,38,.90) 100%)!important;
  inset:0!important;
  z-index:1!important;
}
body.ihb-page--home .ihb-v9-showcase-grid .sppb-row > .sppb-row-column .sppb-column-addons > .addon-root-heading{
  left:24px!important;right:18px!important;bottom:60px!important;
}
body.ihb-page--home .ihb-v9-showcase-grid .sppb-row > .sppb-row-column .sppb-column-addons > .addon-root-button{
  left:24px!important;right:18px!important;bottom:22px!important;
}
body.ihb-page--home .ihb-v9-showcase-grid .ihb-v9-card-title h3,
body.ihb-page--home .ihb-v9-showcase-grid .ihb-v9-card-title .sppb-addon-title{
  font-size:clamp(29px,2.55vw,40px)!important;
  line-height:1.1!important;
  text-shadow:0 2px 12px rgba(0,0,0,.20);
}
body.ihb-page--home .ihb-v9-showcase-grid .sppb-btn.ihb-v9-card-link{
  color:#f5f3ee!important;
  text-shadow:0 1px 5px rgba(0,0,0,.25);
}
/* The native Page Builder button carries ihb-v9-cta-button on the <a> itself,
   not on a parent element. Override its per-addon blue background. */
body.ihb-page--home .ihb-v9-cta a.sppb-btn.ihb-v9-cta-button{
  display:inline-flex!important;
  justify-content:center!important;
  align-items:center!important;
  width:auto!important;
  max-width:100%!important;
  min-height:60px!important;
  margin-top:19px!important;
  padding:19px 30px!important;
  color:#19344d!important;
  background:#edddc7!important;
  border:1px solid #edddc7!important;
  border-radius:0!important;
  box-shadow:0 8px 24px rgba(5,20,34,.13)!important;
  font:800 12px/1.35 var(--ihb-sans)!important;
  letter-spacing:.095em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
  white-space:normal!important;
  transition:background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease!important;
}
body.ihb-page--home .ihb-v9-cta a.sppb-btn.ihb-v9-cta-button:hover,
body.ihb-page--home .ihb-v9-cta a.sppb-btn.ihb-v9-cta-button:focus-visible{
  background:#fff9f1!important;
  border-color:#fff9f1!important;
  color:#142b43!important;
  box-shadow:0 12px 28px rgba(5,20,34,.20)!important;
  transform:translateY(-2px)!important;
}
@media(max-width:950px){
 body.ihb-page--home .ihb-v9-showcase-grid .sppb-row{
   grid-template-columns:1fr!important;
   gap:16px!important;
 }
 body.ihb-page--home .ihb-v9-showcase-grid .sppb-row > .sppb-row-column{
   aspect-ratio:4/3!important;min-height:0!important;
 }
}
@media(max-width:600px){
 body.ihb-page--home .ihb-v9-showcase-grid .sppb-row > .sppb-row-column .sppb-column-addons > .addon-root-heading{
   bottom:57px!important;left:19px!important;
 }
 body.ihb-page--home .ihb-v9-showcase-grid .sppb-row > .sppb-row-column .sppb-column-addons > .addon-root-button{
   bottom:19px!important;left:19px!important;
 }
 body.ihb-page--home .ihb-v9-cta a.sppb-btn.ihb-v9-cta-button{
   min-height:56px!important;padding:17px 21px!important;font-size:11px!important;
 }
}
@media(prefers-reduced-motion:reduce){
 body.ihb-page--home .ihb-v9-cta a.sppb-btn.ihb-v9-cta-button{transition:none!important}
}

/* IHB INSTAGRAM V43 START
   Scoped to the original "Ihb V9 - 12 - Einblicke Bilder" homepage section.
   Do not modify global SP Page Builder or Instagram settings. */
body.ihb-page--home .ihb-v9-social-grid {
  background: #fff !important;
  padding-top: 8px !important;
  padding-bottom: clamp(80px, 8vw, 124px) !important;
}
/* Previous native V9 placeholder design creates FOUR fixed outer columns.
   The real Instagram addon needs the entire available content width. */
body.ihb-page--home .ihb-v9-social-grid > :is(.sppb-row-container, .sppb-container-inner) > .sppb-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 0 !important;
  align-items: stretch !important;
  margin: 0 !important;
  width: 100% !important;
}
body.ihb-page--home .ihb-v9-social-grid > :is(.sppb-row-container, .sppb-container-inner) > .sppb-row > .sppb-row-column {
  display: block !important;
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: none !important;
  flex-basis: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  overflow: visible !important;
}
body.ihb-page--home .ihb-v9-social-grid :is(
  .sppb-column, .sppb-column-addons, .sppb-addon-wrapper,
  .sppb-addon, .sppb-addon-content,
  .sppb-addon-instagram-gallery, .sppb-instagram-gallery,
  .sppb-instagram-gallery-container,
  .addon-instagram-gallery, .sppb-addon-instagram-feed
) {
  min-width: 0 !important;
  max-width: none !important;
  width: 100% !important;
  box-sizing: border-box;
}
/* SP Page Builder versions have different Instagram gallery container names.
   Set columns only at the photo LIST level, not at each nested gallery wrapper. */
body.ihb-page--home .ihb-v9-social-grid :is(
  .sppb-addon-instagram-gallery, .sppb-addon-instagram-feed,
  .sppb-instagram-gallery, .addon-instagram-gallery
) :is(
  .sppb-instagram-gallery-items, .sppb-instagram-gallery-list,
  .sppb-instagram-gallery-wrap, .sppb-instagram-gallery-grid,
  .sppb-instagram-gallery-photos, .instagram-gallery-items,
  .instagram-gallery-list, .instagram-gallery-grid,
  .addon-instagram-gallery-items, .sppb-row, .row
) {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(10px, 1.5vw, 20px) !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  align-items: stretch;
}
/* Some addon releases render the media tiles directly in .sppb-instagram-gallery. */
body.ihb-page--home .ihb-v9-social-grid :is(
 .sppb-instagram-gallery, .sppb-instagram-gallery-container,
 .addon-instagram-gallery
):has(> :is(.sppb-instagram-gallery-item,.sppb-instagram-gallery-btn,.instagram-gallery-item,.addon-instagram-item-wrap)) {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(10px, 1.5vw, 20px) !important;
}
body.ihb-page--home .ihb-v9-social-grid :is(
  .sppb-addon-instagram-gallery, .sppb-addon-instagram-feed,
  .sppb-instagram-gallery, .addon-instagram-gallery
) :is(
  .sppb-instagram-gallery-item, .sppb-instagram-gallery-btn,
  .instagram-gallery-item, .addon-instagram-item-wrap,
  .sppb-instagram-item, .sppb-col, .sppb-col-md-3,
  .col, .col-md-3, .col-md-4
) {
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;
  max-width: none !important;
  width: 100% !important;
  flex: none !important;
  box-sizing: border-box;
}
/* Version-independent fallback: handles gallery addons that emit a plain row of
   image-containing anchors/divs without a well-known class on the photo list. */
body.ihb-page--home .ihb-v9-social-grid :is(.sppb-addon-instagram-gallery,.sppb-addon-instagram-feed,.sppb-instagram-gallery)
  :is(div,ul):has(> :is(a,li,div):nth-child(4) img) {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
  gap: clamp(10px,1.5vw,20px) !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.ihb-page--home .ihb-v9-social-grid :is(.sppb-addon-instagram-gallery,.sppb-addon-instagram-feed,.sppb-instagram-gallery)
  :is(div,ul):has(> :is(a,li,div):nth-child(4) img) > * {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
/* Editorial square crops, calm navy overlay on hover, subtle sand focus. */
body.ihb-page--home .ihb-v9-social-grid :is(
  .sppb-addon-instagram-gallery, .sppb-addon-instagram-feed,
  .sppb-instagram-gallery, .addon-instagram-gallery
) :is(
  .sppb-instagram-gallery-item, .sppb-instagram-gallery-btn,
  .instagram-gallery-item, .addon-instagram-item-wrap,
  .addon-instagram-image-wrap
) {
  position: relative;
  overflow: hidden;
  background: #e9eff1;
  border-radius: 2px;
}
body.ihb-page--home .ihb-v9-social-grid :is(
 .sppb-addon-instagram-gallery,.sppb-addon-instagram-feed,
 .sppb-instagram-gallery,.addon-instagram-gallery
) img {
  display: block !important;
  max-width: 100% !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  object-position: center !important;
  border: 0 !important;
  border-radius: 2px !important;
  transition: transform .35s ease, filter .35s ease !important;
}
body.ihb-page--home .ihb-v9-social-grid :is(
 .sppb-addon-instagram-gallery,.sppb-addon-instagram-feed,
 .sppb-instagram-gallery,.addon-instagram-gallery
) a:hover img { transform: scale(1.035); filter: brightness(.9); }
body.ihb-page--home .ihb-v9-social-grid a:focus-visible {
  outline: 3px solid #be9c73 !important;
  outline-offset: 4px !important;
}
@media (max-width: 900px) {
  body.ihb-page--home .ihb-v9-social-grid :is(.sppb-addon-instagram-gallery,.sppb-addon-instagram-feed,.sppb-instagram-gallery)
    :is(div,ul):has(> :is(a,li,div):nth-child(4) img) {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }

  body.ihb-page--home .ihb-v9-social-grid :is(
    .sppb-addon-instagram-gallery,.sppb-addon-instagram-feed,
    .sppb-instagram-gallery,.addon-instagram-gallery
  ) :is(
    .sppb-instagram-gallery-items,.sppb-instagram-gallery-list,
    .sppb-instagram-gallery-wrap,.sppb-instagram-gallery-grid,
    .sppb-instagram-gallery-photos,.instagram-gallery-items,
    .instagram-gallery-list,.instagram-gallery-grid,
    .addon-instagram-gallery-items,.sppb-row,.row
  ),
  body.ihb-page--home .ihb-v9-social-grid :is(
   .sppb-instagram-gallery,.sppb-instagram-gallery-container,.addon-instagram-gallery
  ):has(> :is(.sppb-instagram-gallery-item,.sppb-instagram-gallery-btn,.instagram-gallery-item,.addon-instagram-item-wrap)) {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
}
@media (max-width: 480px) {
  body.ihb-page--home .ihb-v9-social-grid :is(.sppb-addon-instagram-gallery,.sppb-addon-instagram-feed,.sppb-instagram-gallery)
    :is(div,ul):has(> :is(a,li,div):nth-child(4) img) {
    grid-template-columns: minmax(0,1fr) !important;
  }

  body.ihb-page--home .ihb-v9-social-grid :is(
    .sppb-addon-instagram-gallery,.sppb-addon-instagram-feed,
    .sppb-instagram-gallery,.addon-instagram-gallery
  ) :is(
    .sppb-instagram-gallery-items,.sppb-instagram-gallery-list,
    .sppb-instagram-gallery-wrap,.sppb-instagram-gallery-grid,
    .sppb-instagram-gallery-photos,.instagram-gallery-items,
    .instagram-gallery-list,.instagram-gallery-grid,
    .addon-instagram-gallery-items,.sppb-row,.row
  ),
  body.ihb-page--home .ihb-v9-social-grid :is(
   .sppb-instagram-gallery,.sppb-instagram-gallery-container,.addon-instagram-gallery
  ):has(> :is(.sppb-instagram-gallery-item,.sppb-instagram-gallery-btn,.instagram-gallery-item,.addon-instagram-item-wrap)) {
    grid-template-columns: minmax(0,1fr) !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.ihb-page--home .ihb-v9-social-grid img { transition: none !important; }
}
/* IHB INSTAGRAM V43 END */
