/* ideal-heim-bau Premium v0.1 — Layout only. Actual page text/images live in SP Page Builder. */
:root{--ihb-navy:#1d3550;--ihb-navy-deep:#14283f;--ihb-slate:#34516f;--ihb-paper:#f5f7fb;--ihb-pale:#eaf0f7;--ihb-ink:#23394f;--ihb-muted:#667b91;--ihb-warm:#bd9b77;--ihb-line:#d8e2ed;--ihb-max:1380px;--ihb-sans:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--ihb-serif:"Iowan Old Style",Baskerville,"Palatino Linotype",Georgia,serif}
*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body.ihb-page{margin:0;color:var(--ihb-ink);background:var(--ihb-paper);font-family:var(--ihb-sans);-webkit-font-smoothing:antialiased}body.ihb-page img{max-width:100%}body.ihb-page a{text-decoration:none}body.ihb-page button{font:inherit}body.ihb-page a:focus-visible,body.ihb-page button:focus-visible{outline:2px solid var(--ihb-warm);outline-offset:3px}.ihb-shell{max-width:var(--ihb-max);width:calc(100% - 100px);margin-inline:auto}.ihb-skip{position:absolute;top:-90px;left:20px;z-index:9999;background:white;padding:14px 18px;color:#13273e}.ihb-skip:focus{top:10px}
.ihb-header{position:sticky;top:0;z-index:80;min-height:88px;background:rgba(248,250,253,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--ihb-line);color:var(--ihb-navy);transition:background .3s,color .3s,box-shadow .3s}.ihb-header--overlay{position:absolute;left:0;right:0;background:transparent;color:#fff;border-bottom-color:#ffffff40}.ihb-header--overlay.ihb-header--scrolled{position:fixed;background:rgba(248,250,253,.97);color:var(--ihb-navy);border-bottom-color:var(--ihb-line);box-shadow:0 9px 26px #0c20340d}.ihb-header__inner{display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:88px}.ihb-logo{width:210px;flex:0 0 auto;position:relative;display:block}.ihb-logo img{width:100%;height:auto;display:block}.ihb-logo__dark{display:block}.ihb-logo__light{display:none}.ihb-header--overlay:not(.ihb-header--scrolled) .ihb-logo__dark{display:none}.ihb-header--overlay:not(.ihb-header--scrolled) .ihb-logo__light{display:block}.ihb-header-cta{font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.09em;white-space:nowrap;border:1px solid currentColor;padding:16px 19px;color:inherit;transition:background .2s,transform .2s}.ihb-header-cta:hover{transform:translateY(-2px);background:#99adc21f}.ihb-header-cta span{margin-left:9px}.ihb-nav{margin-left:auto;min-width:0}.ihb-nav ul{list-style:none;margin:0;padding:0}.ihb-nav>.mod-menu,.ihb-nav>div>.mod-menu,.ihb-nav ul.mod-menu{display:flex;align-items:center;gap:clamp(12px,2.4vw,34px)}.ihb-nav li{position:relative}.ihb-nav .mod-menu a{display:block;color:inherit;font-size:12px;font-weight:580;line-height:1.5;padding:12px 0}.ihb-nav .mod-menu a:hover,.ihb-nav .mod-menu .current>a{opacity:.65}.ihb-nav .mod-menu .mod-menu__sub,.ihb-nav .mod-menu ul{display:none;position:absolute;top:100%;left:-18px;min-width:245px;background:#f9fbfd;color:var(--ihb-navy);padding:10px 18px;box-shadow:0 18px 48px #11263e30;border:1px solid var(--ihb-line);max-height:70vh;overflow:auto}.ihb-nav li:hover>ul,.ihb-nav li:focus-within>ul{display:block}.ihb-nav .mod-menu .mod-menu__sub a,.ihb-nav .mod-menu ul a{padding:9px 0;border-bottom:1px solid #e8eef5}.ihb-menu-toggle{display:none;border:0;color:inherit;background:transparent;font-weight:750;text-transform:uppercase;font-size:12px;letter-spacing:.08em;padding:12px;white-space:nowrap}
.ihb-content{min-height:35vh}body:not(.ihb-page--home):not(.ihb-page--component) .ihb-content{padding-top:0}body.ihb-page--home .ihb-content{padding-top:0}body.ihb-page:not(.ihb-page--home) .ihb-content>.sppb-page-content{padding-top:0}
.ihb-footer{background:#12253b;color:#dce5ef;padding-top:84px}.ihb-footer a{color:inherit}.ihb-footer__grid{display:grid;grid-template-columns:1.55fr 1fr 1fr;gap:55px;padding-bottom:65px}.ihb-footer__brand img{width:215px;height:auto}.ihb-footer__brand p{max-width:340px;font-family:var(--ihb-serif);font-size:26px;line-height:1.32;color:#dce6ee}.ihb-footer__column{font-size:13px;line-height:1.9}.ihb-footer__column h3,.ihb-footer__column .mod-custom>p:first-child{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:#adbed0}.ihb-footer__column ul{list-style:none;padding:0;margin:0}.ihb-footer__column li{margin:0 0 6px}.ihb-footer__column a:hover{text-decoration:underline;text-underline-offset:5px}.ihb-footer__bottom{border-top:1px solid #ffffff24;padding:25px 0;display:flex;align-items:center;gap:24px;color:#a8bbce;font-size:11px;flex-wrap:wrap}.ihb-footer__bottom>*:first-child{margin-right:auto}
@media(max-width:1090px){.ihb-shell{width:calc(100% - 54px)}.ihb-logo{width:170px}.ihb-header__inner{gap:18px}.ihb-nav ul.mod-menu{gap:14px}}
@media(max-width:900px){.ihb-shell{width:calc(100% - 36px)}.ihb-header,.ihb-header__inner{min-height:72px}.ihb-header--overlay{position:absolute}.ihb-menu-toggle{display:block;margin-left:auto}.ihb-header-cta{display:none}.ihb-nav{display:none;position:absolute;top:72px;left:0;right:0;max-height:calc(100dvh - 72px);overflow:auto;background:#f8fafd;border-bottom:1px solid var(--ihb-line);box-shadow:0 14px 30px #0c234024;color:var(--ihb-navy);padding:16px 22px 25px}.ihb-header.ihb-menu-open .ihb-nav{display:block}.ihb-nav ul.mod-menu,.ihb-nav>.mod-menu,.ihb-nav>div>.mod-menu{display:flex;flex-direction:column;align-items:stretch;gap:0}.ihb-nav ul.mod-menu li{width:100%;border-bottom:1px solid #dfe6ef}.ihb-nav ul.mod-menu a{padding:14px 0;font-size:16px}.ihb-nav .mod-menu .mod-menu__sub,.ihb-nav .mod-menu ul{display:block;position:static;box-shadow:none;background:#edf3f9;color:var(--ihb-navy);max-height:none;border:0;padding:0 15px;margin-bottom:9px;min-width:0}.ihb-footer__grid{grid-template-columns:1fr 1fr;gap:35px}.ihb-footer__brand{grid-column:1/-1}}
@media(max-width:600px){.ihb-logo{width:162px}.ihb-footer{padding-top:60px}.ihb-footer__grid{grid-template-columns:1fr;gap:25px}.ihb-footer__brand{grid-column:auto}.ihb-footer__brand p{font-size:24px}.ihb-footer__bottom{align-items:flex-start;flex-direction:column}.ihb-footer__bottom>*:first-child{margin:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ihb-header,.ihb-header-cta{transition:none}}

/* IHB V8 polishing and compatibility */
.ihb-header--overlay{position:fixed;left:0;right:0;top:0}
.ihb-header--overlay.ihb-header--scrolled{position:fixed}
.ihb-logo{min-height:60px;display:flex;align-items:center}
.ihb-logo img{object-fit:contain;object-position:left center;max-height:62px}
.ihb-nav ul.mod-menu>li>ul{display:none;position:absolute;top:100%;left:-15px;min-width:250px;background:#f7f9fc;color:var(--ihb-navy);padding:10px 17px;box-shadow:0 15px 40px #152b4240;border-top:3px solid var(--ihb-warm);z-index:3}
.ihb-nav ul.mod-menu>li:hover>ul,.ihb-nav ul.mod-menu>li:focus-within>ul{display:block}
.ihb-nav ul.mod-menu>li>a{white-space:nowrap}
.ihb-menu-open .ihb-nav{display:block}
.ihb-footer__bottom a{color:#d7e4ef}
.ihb-footer__bottom a:hover{text-decoration:underline;text-underline-offset:4px}
.ihb-content .sppb-page-content{margin:0}
.ihb-page--home .ihb-hero{padding-top:88px}
.ihb-btn,.ihb-btn .sppb-btn{border-radius:0!important}
.ihb-no-crop img,.ihb-floorplan img,.ihb-transparent-asset img{object-fit:contain!important}
@media(max-width:900px){.ihb-nav ul.mod-menu>li>ul{display:block;position:static;box-shadow:none;background:#edf3f9;min-width:0;border:0;padding:3px 16px}.ihb-header--overlay.ihb-header--scrolled{background:#f8fafd}}

/* V8.1: On empty SP Page Builder homepage, show a readable dark header and keep content below it.
   As soon as the real .ihb-hero section is added, use the designed transparent video overlay again. */
body.ihb-page--home:not(:has(.ihb-hero)) .ihb-header--overlay:not(.ihb-header--scrolled){background:var(--ihb-navy-deep)}
body.ihb-page--home:not(:has(.ihb-hero)) .ihb-content{padding-top:88px}
@media(max-width:900px){body.ihb-page--home:not(:has(.ihb-hero)) .ihb-content{padding-top:72px}}

/* V8.2: Joomla's menu accessibility labels are intended for screen readers,
   not as visible header copy. Preserve keyboard-focus visibility. */
.visually-hidden:not(:focus):not(:active),
.sr-only:not(:focus):not(:active) {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}


/* V8.3: Menu alignment + dropdown indicator */
.ihb-nav ul.mod-menu>li{display:flex;align-items:center;}
.ihb-nav ul.mod-menu>li>a{display:flex;align-items:center;gap:8px;min-height:48px;line-height:1.1;}
.ihb-nav ul.mod-menu>li.parent>a::after,
.ihb-nav ul.mod-menu>li:has(> ul)>a::after,
.ihb-nav ul.mod-menu>li:has(>.mod-menu__sub)>a::after{
  content:"";
  width:6px;
  height:6px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-1px);
  transform-origin:center;
  opacity:.9;
  margin-left:2px;
  flex:0 0 auto;
}
.ihb-nav ul.mod-menu>li.parent:hover>a::after,
.ihb-nav ul.mod-menu>li.parent:focus-within>a::after,
.ihb-nav ul.mod-menu>li:has(> ul):hover>a::after,
.ihb-nav ul.mod-menu>li:has(> ul):focus-within>a::after,
.ihb-nav ul.mod-menu>li:has(>.mod-menu__sub):hover>a::after,
.ihb-nav ul.mod-menu>li:has(>.mod-menu__sub):focus-within>a::after{
  transform:rotate(225deg) translateY(1px);
}
@media(max-width:900px){
  .ihb-nav ul.mod-menu>li>a{min-height:0;line-height:1.35;}
  .ihb-nav ul.mod-menu>li.parent>a::after,
  .ihb-nav ul.mod-menu>li:has(> ul)>a::after,
  .ihb-nav ul.mod-menu>li:has(>.mod-menu__sub)>a::after{margin-left:auto;}
}


/* V8.5: Joomla frontend module editing controls must not become part of the navigation.
   Only target the navigation module; editor controls elsewhere remain available. */
.ihb-nav .jmodedit, .ihb-nav a.jmodedit, .ihb-nav button.jmodedit,
.ihb-nav .jmodeditbtn, .ihb-nav .mod-edit,
.ihb-nav [class*="jmodedit"]:not(.mod-menu):not(.mod-menu__sub){display:none!important;}
/* Treat Joomla's menu editor wrapper as transparent to layout. */
.ihb-nav .jmoddiv{margin:0;padding:0;}


/* V8.6: Correct CSS specificity: .ihb-logo img overrode the original
   .ihb-logo__light { display:none } rule, making BOTH logo assets visible. */
.ihb-header .ihb-logo img.ihb-logo__light{display:none!important}
.ihb-header .ihb-logo img.ihb-logo__dark{display:block!important}
.ihb-header.ihb-header--overlay:not(.ihb-header--scrolled) .ihb-logo img.ihb-logo__light{display:block!important}
.ihb-header.ihb-header--overlay:not(.ihb-header--scrolled) .ihb-logo img.ihb-logo__dark{display:none!important}

/* Link treatment for automatically imported native SP Page Builder addons. */
.ihb-content .ihb-native-links{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap}
.ihb-content .ihb-native-links a,
.ihb-content .ihb-native-links a:visited{
  display:inline-flex;align-items:center;gap:.4em;
  color:var(--ihb-navy)!important;
  border-bottom:1px solid var(--ihb-warm)!important;
  text-decoration:none!important;
  line-height:1.45;transition:color .2s,border-color .2s
}
.ihb-content .ihb-native-links a:hover,
.ihb-content .ihb-native-links a:focus-visible{color:#a27b53!important;border-color:currentColor!important}

/* First imported homepage row uses #162d47 but addon defaults from SP
   Page Builder set dark text. Restore adequate contrast while the real
   editable video hero is being developed. */
body.ihb-page--home .sppb-page-content > .sppb-section:first-child .sppb-addon-title,
body.ihb-page--home .sppb-page-content > .sppb-section:first-child .ihb-native-copy,
body.ihb-page--home .sppb-page-content > .sppb-section:first-child .ihb-native-copy p,
body.ihb-page--home .sppb-page-content > .sppb-section:first-child .ihb-native-links a,
body.ihb-page--home .sppb-page-content > .sppb-section:first-child .ihb-native-links a:visited{color:#f6f8fc!important}
body.ihb-page--home .sppb-page-content > .sppb-section:first-child .ihb-native-links a{border-bottom-color:#c4ab8b!important}


/* V9.1: Joomla module-edit tooltip is injected as a direct child of the menu UL
   for logged-in admins. Do not let it participate in flex navigation. */
.ihb-nav .mod-menu > .jmodedit,
.ihb-nav .mod-menu > [role="tooltip"],
.ihb-nav .mod-menu > div[id^="tip-"] {display:none!important}
