/* Kalisterre — En-tête responsive 1.0.6. Scoped, fluid layout and accessible interactions. */
.kh-root,.kh-root * { box-sizing:border-box; }
.kh-root { --kh-green:#009d66; --kh-green-deep:#007c53; --kh-ink:#273b34; position:relative; isolation:isolate; z-index:120; width:100vw; max-width:100vw; left:50%; transform:translateX(-50%); min-height:180px; padding:15px clamp(12px,2.2vw,30px) 20px; font-family:inherit; color:var(--kh-ink); }
.kh-root a { text-decoration:none; }
.kh-root button { font:inherit; cursor:pointer; }
.kh-root :is(a,button):focus-visible { outline:3px solid #154eaa; outline-offset:3px; }
.kh-scene { position:absolute; z-index:-1; top:-44px; left:0; right:0; bottom:-1px; pointer-events:none; background:url('eco-background-v2.jpg') center 54% / cover no-repeat; }
/* The decoration extends above the shortcode and blends into the white body below. */
.kh-scene::after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:clamp(30px,5vw,58px); background:linear-gradient(to bottom,rgba(255,255,255,0),rgba(255,255,255,.45) 55%,#fff 100%); pointer-events:none; }
.kh-card { position:relative; overflow:visible; margin:0 auto; width:100%; max-width:1560px; min-height:126px; padding:12px clamp(16px,2.6vw,40px); border:1px solid rgba(175,214,193,.42); border-radius:27px; display:flex; align-items:center; gap:clamp(12px,2vw,28px); background:rgba(250,255,252,.37); box-shadow:0 16px 32px rgba(31,89,67,.16),0 3px 12px rgba(21,52,37,.08); -webkit-backdrop-filter:blur(7px) saturate(115%); backdrop-filter:blur(7px) saturate(115%); }
.kh-logo { flex:0 0 auto; display:flex; align-items:center; justify-content:center; width:clamp(78px,7.5vw,113px); min-width:78px; }
.kh-logo img { display:block; width:100%; height:auto; max-height:94px; object-fit:contain; }
.kh-logo .kh-logo-bundled { mix-blend-mode:multiply; border-radius:50%; }
.kh-divider { flex:0 0 1px; height:62px; background:rgba(26,119,81,.20); }
.kh-desktop-nav { min-width:0; flex:1 1 auto; }
.kh-nav-links,.kh-mobile-links,.kh-dropdown-links,.kh-role-links { list-style:none; margin:0; padding:0; }
.kh-nav-links { display:flex; justify-content:space-between; align-items:center; width:100%; gap:clamp(5px,.7vw,14px); }
.kh-nav-links > li { position:relative; flex:1 1 0; min-width:0; margin:0; padding:0; text-align:center; }
.kh-nav-links > li > a { position:relative; display:inline-block; padding:12px clamp(4px,.75vw,12px) 15px; border-radius:12px; white-space:nowrap; color:var(--kh-ink); font-size:clamp(14px,1.1vw,18px); font-weight:600; transition:color .23s ease,background-color .23s ease,transform .23s ease,box-shadow .23s ease; }
.kh-nav-links > li > a:hover,.kh-nav-links > li:focus-within > a { color:#07583e!important; background:rgba(235,255,244,.38); transform:translateY(-2px); box-shadow:0 4px 14px rgba(18,93,65,.09); }
.kh-nav-links > .current-menu-item > a,.kh-nav-links > .current-menu-ancestor > a { color:var(--kh-green-deep); }
.kh-nav-links > li > a::after { content:''; height:4px; position:absolute; bottom:3px; left:12%; right:12%; border-radius:12px; background:#08734e; transform:scaleX(0); transform-origin:center; opacity:0; transition:transform .25s ease,opacity .2s ease; }
.kh-nav-links > li > a:hover::after,.kh-nav-links > li:focus-within > a::after,.kh-nav-links > .current-menu-item > a::after,.kh-nav-links > .current-menu-ancestor > a::after { transform:scaleX(1); opacity:1; }
.kh-nav-links .sub-menu { display:none; position:absolute; z-index:15; left:-12px; top:100%; min-width:215px; padding:6px; margin:0; background:rgba(253,255,253,.97); border:1px solid rgba(40,138,99,.15); border-radius:14px; list-style:none; box-shadow:0 10px 24px rgba(29,93,65,.16); }
.kh-nav-links li:hover > .sub-menu,.kh-nav-links li:focus-within > .sub-menu { display:block; }
.kh-nav-links .sub-menu a { display:block; white-space:normal; font-size:14px; padding:8px 11px; border-radius:8px; text-align:left; color:var(--kh-ink); }
.kh-nav-links .sub-menu a:hover { background:#e6f7ef; }
.kh-desktop-actions { flex:0 0 auto; padding-left:clamp(8px,1.7vw,26px); border-left:1px solid rgba(26,119,81,.20); }
.kh-actions { display:flex; align-items:center; justify-content:center; flex-wrap:nowrap; gap:12px; }
.kh-action-menu { position:relative; }
/* Button styles deliberately override Astra and Elementor hover states. */
.kh-root .kh-action { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:46px; padding:10px 18px; border-radius:16px; white-space:nowrap; font-size:clamp(13px,1vw,16px); font-weight:700; line-height:1.25; text-decoration:none!important; transition:transform .24s cubic-bezier(.2,.8,.25,1),background-color .24s ease,border-color .24s ease,box-shadow .24s ease,color .24s ease!important; }
.kh-action-icon { display:block; flex:0 0 18px; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.kh-root button.kh-action-secondary { border:1.5px solid #008d60!important; color:#006c4a!important; -webkit-text-fill-color:#006c4a!important; background-color:rgba(242,255,249,.42)!important; background-image:none!important; box-shadow:0 3px 9px rgba(15,91,63,.035)!important; opacity:1!important; filter:none!important; text-shadow:none!important; }
.kh-root button.kh-action-secondary:hover,.kh-root button.kh-action-secondary:focus-visible,.kh-root button.kh-action-secondary[aria-expanded="true"] { color:#005c3e!important; -webkit-text-fill-color:#005c3e!important; background-color:rgba(209,240,220,.75)!important; background-image:none!important; border-color:#006e4b!important; box-shadow:0 5px 15px rgba(22,112,75,.14)!important; transform:translateY(-1px); }
.kh-root button.kh-action-secondary:active { transform:translateY(0); }
.kh-root a.kh-action-primary:link,.kh-root a.kh-action-primary:visited,.kh-root a.kh-action-primary { border:1.5px solid #008d62!important; background-color:#009a69!important; background-image:none!important; color:#fff!important; -webkit-text-fill-color:#fff!important; opacity:1!important; filter:none!important; text-decoration:none!important; box-shadow:0 6px 14px rgba(0,110,70,.18)!important; transform:translateY(0) scale(1); animation:none!important; }
.kh-root a.kh-action-primary:hover,.kh-root a.kh-action-primary:focus-visible { background-color:#00744f!important; background-image:none!important; border-color:#006847!important; color:#fff!important; -webkit-text-fill-color:#fff!important; box-shadow:0 11px 22px rgba(0,95,63,.27)!important; transform:translateY(-2px) scale(1.025)!important; opacity:1!important; filter:none!important; }
.kh-root a.kh-action-primary:active { background-color:#005e41!important; transform:translateY(0) scale(1.005)!important; }
.kh-root a.kh-action-primary::before,.kh-root a.kh-action-primary::after,.kh-root button.kh-action-secondary::before,.kh-root button.kh-action-secondary::after { content:none!important; display:none!important; }
.kh-caret { flex:0 0 14px; display:block; width:14px; height:14px; margin-left:2px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transform:rotate(0deg); transform-origin:50% 50%; transition:transform .24s cubic-bezier(.2,.8,.2,1); }
.kh-action-secondary[aria-expanded="true"] .kh-caret { transform:rotate(180deg); }
.kh-dropdown { position:absolute; z-index:30; top:calc(100% + 10px); right:0; min-width:215px; max-width:min(90vw,300px); border-radius:16px; padding:7px; border:1px solid rgba(84,156,124,.27); background:rgba(250,255,252,.97); -webkit-backdrop-filter:blur(19px); backdrop-filter:blur(19px); box-shadow:0 14px 28px rgba(18,76,47,.17); }
.kh-dropdown[hidden] { display:none!important; }
.kh-dropdown-links > li,.kh-role-links > li { margin:0; }
.kh-dropdown-links a,.kh-role-links a { color:var(--kh-ink); font-size:14px; line-height:1.4; display:flex; align-items:center; gap:9px; padding:10px 12px; border-radius:10px; font-weight:600; white-space:normal; }
.kh-dropdown-links a::before,.kh-role-links a::before { content:''; display:block; flex:0 0 17px; width:17px; height:17px; background:transparent url('icons/link.svg') center/contain no-repeat; }
.kh-is-guest .kh-dropdown-links > li > a::before { background-image:url('icons/login.svg'); }
.kh-is-logged .kh-dropdown-links .kh-profile > a::before { background-image:url('icons/user.svg'); }
.kh-is-logged .kh-dropdown-links .kh-role-links > li > a::before { background-image:url('icons/folder.svg'); }
.kh-is-logged .kh-dropdown-links .kh-logout > a::before { background-image:url('icons/logout.svg'); }
.kh-dropdown-links .kh-custom-links > .kh-role-links { margin:0; padding:0; }
.kh-dropdown-links a:hover,.kh-role-links a:hover { color:var(--kh-green-deep); background:#e8f7ee; }
.kh-dropdown-links .kh-custom-links { padding:0; }
.kh-dropdown-links .kh-custom-links:empty { display:none; }
.kh-dropdown-links .kh-logout { border-top:1px solid #e1e9e3; margin-top:4px; padding-top:4px; }
.kh-dropdown-links .kh-logout a { color:#7b3931; }
.kh-dropdown-links ul.sub-menu { margin:0 0 0 12px; padding:0; list-style:none; }
.kh-dropdown-links ul.sub-menu a { font-size:13px; font-weight:400; }
.kh-mobile-toggle,.kh-mobile-panel { display:none; }
@media (max-width:1280px) {
 .kh-root { min-height:134px; padding:11px 14px 17px; }
 .kh-card { max-width:980px; min-height:99px; border-radius:24px; padding:8px 22px; }
 .kh-logo { width:85px; min-width:85px; }
 .kh-logo img { max-height:80px; }
 .kh-divider,.kh-desktop-nav,.kh-desktop-actions { display:none; }
 .kh-mobile-toggle { margin-left:auto; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:5px; width:50px; height:50px; border:1px solid rgba(54,166,120,.3); border-radius:17px; background:rgba(255,255,255,.52); }
 .kh-mobile-toggle span { display:block; height:3px; width:23px; background:var(--kh-green-deep); border-radius:5px; transition:transform .16s,opacity .16s; }
 .kh-mobile-toggle[aria-expanded="true"] span:first-child { transform:translateY(8px) rotate(45deg); }
 .kh-mobile-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
 .kh-mobile-toggle[aria-expanded="true"] span:last-child { transform:translateY(-8px) rotate(-45deg); }
 .kh-mobile-panel:not([hidden]) { display:block; position:absolute; top:calc(100% - 13px); right:clamp(14px,3vw,32px); left:clamp(14px,3vw,32px); max-width:680px; margin-left:auto; z-index:60; border-radius:22px; padding:16px 20px; background:rgba(247,255,251,.86); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); box-shadow:0 18px 35px rgba(26,93,68,.23); border:1px solid rgba(255,255,255,.93); }
 .kh-mobile-panel[hidden] { display:none!important; }
 .kh-mobile-links,.kh-mobile-links .sub-menu { list-style:none; padding:0; margin:0; }
 .kh-mobile-links > li { border-bottom:1px solid rgba(50,146,104,.13); }
 .kh-mobile-links a { display:block; padding:13px 8px; color:var(--kh-ink); font-weight:600; font-size:16px; }
 .kh-mobile-links .current-menu-item > a { color:var(--kh-green-deep); }
 .kh-mobile-links a:hover,.kh-mobile-links a:focus-visible { color:#07583e!important; background-color:rgba(222,246,232,.55); border-radius:9px; }
 .kh-mobile-links .sub-menu { margin-left:15px; }
 .kh-mobile-links .sub-menu a { font-size:14px; padding:7px 8px; }
 .kh-mobile-actions { margin-top:16px; }
 .kh-mobile-actions .kh-actions { display:flex; flex-wrap:wrap; gap:10px; }
 .kh-mobile-actions .kh-action-menu,.kh-mobile-actions .kh-action-primary { flex:1 1 200px; }
 .kh-mobile-actions .kh-action-secondary,.kh-mobile-actions .kh-action-primary { width:100%; }
 .kh-mobile-actions .kh-dropdown { position:relative; right:auto; top:auto; max-width:none; margin-top:9px; width:100%; box-shadow:none; border-radius:14px; }
}
@media (max-width:650px) {
 .kh-root { min-height:116px; padding:10px 10px 15px; }
 .kh-card { padding:8px 18px; min-height:81px; border-radius:22px; }
 .kh-logo { width:69px; min-width:69px; }
 .kh-logo img { max-height:65px; }
 .kh-mobile-toggle { width:45px; height:45px; }
 .kh-mobile-panel:not([hidden]) { top:calc(100% - 9px); left:10px; right:10px; padding:13px; border-radius:19px; }
 .kh-mobile-actions .kh-action-menu,.kh-mobile-actions .kh-action-primary { flex-basis:100%; }
 .kh-mobile-links a { font-size:16px; }
}
@media (prefers-reduced-motion:reduce) { .kh-root *, .kh-root *::after, .kh-root *::before { transition:none!important; animation:none!important; } .kh-root a.kh-action-primary:hover { transform:none!important; } }

/* Full-bleed background even when shortcode sits in an Elementor boxed container.
   Ancestor containers must allow overflow:visible. */
.kh-root { margin-right:0; }
@media (max-width:1280px) { .kh-scene { background-position:31% center; } }
@media (max-width:650px) { .kh-scene { background-position:23% 51%; } .kh-scene::after { height:34px; } }

/* v1.0.3 adjustments: logout hover uses a red family highlight, and the card border is softened to blend with the background. */
.kh-dropdown-links .kh-logout a:hover,.kh-dropdown-links .kh-logout a:focus-visible {
  color:#8a2f2a;
  background:rgba(182,60,52,.10);
}

/* v1.0.6 — Compact full navigation whenever the available viewport width allows it,
   regardless of tablet/phone orientation. Narrow screens keep the hamburger.
   These rules override the general 1280px collapsed navigation breakpoint. */
@media (min-width:760px) and (max-width:1280px) {
  .kh-root { min-height:103px; padding:8px clamp(8px,1.5vw,20px) 16px; }
  .kh-card { max-width:none; min-height:76px; padding:8px clamp(10px,1.4vw,20px);
    gap:clamp(7px,1.1vw,14px); border-radius:22px; }
  .kh-logo { width:clamp(50px,6.5vw,76px); min-width:50px; }
  .kh-logo img { max-height:68px; }
  .kh-divider { display:block; height:44px; }
  .kh-desktop-nav { display:block; flex:1 1 0; min-width:0; }
  .kh-desktop-actions { display:block; flex:0 0 auto; padding-left:clamp(6px,.9vw,12px); }
  .kh-mobile-toggle,.kh-mobile-panel:not([hidden]) { display:none; }
  .kh-nav-links { gap:clamp(2px,.35vw,7px); }
  .kh-nav-links > li > a { font-size:clamp(10px,1.20vw,14px); padding:8px 2px 11px; }
  .kh-nav-links > li > a::after { height:3px; bottom:2px; }
  .kh-actions { gap:clamp(4px,.6vw,10px); }
  .kh-root .kh-action { gap:clamp(3px,.5vw,7px); min-height:36px;
    padding:7px clamp(7px,1vw,12px); border-radius:12px;
    font-size:clamp(10px,1.15vw,14px); }
  .kh-action-icon { flex-basis:14px; width:14px; height:14px; }
  .kh-caret { flex-basis:12px; width:12px; height:12px; margin-left:0; }
  .kh-dropdown { min-width:205px; }
}

/* v1.0.7 — Opt-in notice only inside the guest login dropdown. */
.kh-root .kh-login-notice[hidden],.kh-root .kh-guest-menu-links[hidden] { display:none!important; }
.kh-root .kh-guarded-dropdown { width:340px; max-width:min(92vw,360px); padding:8px; }
.kh-login-guard { width:100%; }
.kh-login-notice { padding:12px; border-radius:11px; background:rgba(246,251,248,.9); border:1px solid rgba(30,114,78,.12); }
.kh-login-notice-heading { display:flex; align-items:flex-start; gap:9px; font-size:14px; font-weight:750; line-height:1.35; color:#365c45; }
.kh-login-notice-icon { display:block; flex:0 0 19px; width:19px; height:19px; fill:none; stroke:#b47b22; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.kh-login-notice-text { margin:9px 0 13px!important; padding:0!important; color:#344e42; font-size:13px!important; font-weight:400; line-height:1.54!important; text-wrap:pretty; }
.kh-root .kh-login-confirm { display:block; width:100%; min-height:40px; padding:10px 12px; border-radius:10px; border:1px solid #006e4c!important; color:#fff!important; -webkit-text-fill-color:#fff!important; background:#087d58!important; background-image:none!important; font-size:12.5px; font-weight:700; line-height:1.4; text-align:center; box-shadow:0 3px 9px rgba(0,87,55,.12); cursor:pointer; transition:background-color .2s ease,box-shadow .2s ease,transform .2s ease; }
.kh-root .kh-login-confirm:hover,.kh-root .kh-login-confirm:focus-visible { color:#fff!important; -webkit-text-fill-color:#fff!important; background:#006746!important; background-image:none!important; box-shadow:0 5px 14px rgba(0,87,55,.2); transform:translateY(-1px); }
.kh-root .kh-login-confirm:active { transform:translateY(0); }
.kh-root .kh-login-confirm::before,.kh-root .kh-login-confirm::after { content:none!important; display:none!important; }
.kh-guarded-dropdown .kh-guest-menu-links { margin:0; }
@media (max-width:759px) {
  .kh-mobile-actions .kh-guarded-dropdown { width:100%; max-width:none; }
  .kh-login-notice { padding:11px; }
  .kh-login-notice-text { font-size:13px!important; }
}
/* Keep the acknowledgement accessible in short landscape viewports. */
.kh-root .kh-guarded-dropdown { max-height:min(420px, 62vh); max-height:min(420px, 62dvh); overflow-y:auto; overscroll-behavior:contain; }
