/* Bounded repairs to the original EkoBuild layout. */
.eko-table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;}
.eko-table-scroll table{margin-bottom:0;}
.eko-table-scroll:focus-visible,.faq-q:focus-visible,.faq-question:focus-visible{outline:3px solid #437313;outline-offset:3px;}
.eko-mob-menu:not(.open),.mob-menu:not(.open){visibility:hidden;}
.eko-mob-menu.open,.mob-menu.open{visibility:visible;}
.cart-sidebar:not(.open){visibility:hidden;}
.cart-sidebar.open{max-width:100vw;visibility:visible;transition-property:opacity,transform;}
.eko-dialog-open{overflow:hidden;}
#checkoutModal{padding:16px 0;overflow-y:auto;overscroll-behavior:contain;}
#checkoutModal>div{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;}
#checkoutModal button[onclick="closeCheckout()"]{min-width:44px;min-height:44px;top:4px!important;right:8px!important;}
.eko-order-line{display:flex;justify-content:space-between;gap:12px;margin:6px 0;align-items:flex-start;}
.eko-order-line>span:first-child{min-width:0;overflow-wrap:anywhere;}
.eko-order-line>span:last-child{flex-shrink:0;}
.eko-order-subtotal{border-top:1px solid #ddd;margin-top:10px;padding-top:10px;}
.eko-order-total{font-weight:700;font-size:1.05rem;}
/* Keep checkout reachable while room summaries scroll inside the basket. */
.cart-head,.cart-foot{flex-shrink:0;}
.cart-body{min-height:0;}
.cart-item-info{min-width:0;overflow-wrap:anywhere;}
.cart-item-price{flex-shrink:0;}
body:has(#checkoutModal[style*="flex"]) .cb-chat-root{display:none!important;}
@media(max-width:400px){#checkoutModal>div{padding:28px 16px!important;}.cart-body{padding-left:14px;padding-right:14px;}}
@media(prefers-reduced-motion:reduce){.cart-sidebar,.eko-mob-menu{transition:none!important;}}

.eko-cart-unavailable,.eko-cart-notice{color:#8a3516;font-size:14px!important;line-height:1.45;}
/* A dismissed walkthrough must never intercept room controls or page links. */
#tour-tooltip:not(.visible){visibility:hidden;pointer-events:none;}
#tour-tooltip.visible{visibility:visible;pointer-events:auto;}

.eko-status-toast{position:fixed;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);max-width:calc(100vw - 24px);width:max-content;padding:12px 18px;border-radius:10px;background:#111;color:#fff;box-shadow:0 6px 24px #0003;z-index:10001;pointer-events:none;text-align:center;font-size:16px;line-height:1.4;}
.cart-item-price{color:var(--primary-dark,#537D1F);}

/* The existing scroll handler shows this bar on desktop too. Keep footer links clear. */
.eko-has-sticky-cta .eko-footer{padding-bottom:calc(84px + env(safe-area-inset-bottom));}
.eko-cookie-modal{position:fixed;inset:0;z-index:2147483647;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.7);padding:16px;overflow:auto;overscroll-behavior:contain;}
.eko-cookie-card{width:100%;max-width:460px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;background:#fff;color:#222;border-radius:12px;padding:26px;font-size:16px;line-height:1.5;}
.eko-cookie-card h2{font-size:1.5rem;margin:0 0 12px;line-height:1.25;}
.eko-cookie-card p{margin:0 0 14px;}
.eko-cookie-card a{color:#39660f;text-decoration:underline;}
.eko-cookie-option{display:flex;align-items:center;gap:12px;margin:18px 0;cursor:pointer;}
.eko-cookie-option input{width:20px;height:20px;flex-shrink:0;accent-color:#537D1F;}
.eko-cookie-option span{min-width:0;}.eko-cookie-option small{display:block;color:#555;font-size:14px;}
.eko-cookie-detail{font-size:14px;}.eko-cookie-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;}
.eko-cookie-buttons button{min-height:44px;padding:10px 14px;border:0;border-radius:6px;background:#eee;color:#222;font:inherit;font-weight:700;cursor:pointer;}
.eko-cookie-buttons button[data-cookie-save]{flex:1;background:#537D1F;color:#fff;}
.eko-cookie-card :focus-visible,.qshop-btn:focus-visible,.cart-btn:focus-visible,.rd-nav-cart:focus-visible,.cb-chat-root :focus-visible{outline:3px solid #222;outline-offset:3px;}
.qshop-btn[aria-pressed=true]{background:#537D1F;color:#fff;}
.cb-chat-root .cb-chat-close{min-width:44px;min-height:44px;}
@media(max-width:400px){.eko-cookie-card{padding:20px;}.eko-cookie-buttons{gap:8px;}}

/* Price tables use dark headings on white sections and green headings on dark sections. */
.price-table th{color:#fff!important;}
.price-table th[style*="var(--primary)"]{color:#0a0a0a!important;}
.section.dark .price-table td.price{color:#b8e480!important;}

.section.dark .stat-num{color:#b8e480!important;}

/* Let visitors finish the visible cookie choice before the floating chat control appears. */
body:has(#cookieBanner[style*="flex"]) .cb-chat-root{visibility:hidden!important;pointer-events:none!important;}

/* One phone menu stays attached to its header, with every link reachable. */
.eko-menu-backdrop{display:none;}
@media(max-width:1024px){
  nav .nav-links{display:none!important;}
  nav .nav-links:has(.cart-btn){display:flex!important;}
  nav .nav-links li{display:none!important;}
  nav .nav-links li:has(.cart-btn){display:block!important;}
  body:has(#cookieBanner[style*="flex"]) #stickyCTA{visibility:hidden!important;pointer-events:none!important;}
  #tour-welcome-banner{display:none!important;}
  body.tour-banner-active nav,body.tour-banner-active .rd-nav{top:0!important;}
  .proof-strip{top:var(--eko-header-bottom,108px);}
  .eko-hamburger,.hamburger{width:44px;min-width:44px;height:44px;min-height:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0;touch-action:manipulation;}
  .eko-hamburger[aria-expanded=true] svg,.hamburger[aria-expanded=true] svg{display:none;}
  .eko-hamburger[aria-expanded=true]::after,.hamburger[aria-expanded=true]::after{content:'×';font:32px/1 Arial,sans-serif;}
  .eko-mob-menu,.mob-menu{top:var(--eko-header-bottom,108px);z-index:1003;background:#10120e;backdrop-filter:none;transition:none;box-sizing:border-box;}
  .eko-mob-menu:not(.open),.mob-menu:not(.open){display:none;}
  .eko-mob-menu.open,.mob-menu.open{display:flex;max-height:calc(100vh - var(--eko-header-bottom,108px));max-height:calc(100dvh - var(--eko-header-bottom,108px));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:8px 24px calc(20px + env(safe-area-inset-bottom));box-shadow:0 12px 24px #0005;}
  .eko-mob-menu a,.mob-menu a,.eko-menu-help{flex-shrink:0;min-height:48px;display:flex;align-items:center;padding:12px 4px;line-height:1.5;font-size:16px;}
  .eko-menu-help{background:none;border:0;color:#b8e480;font-family:inherit;text-align:left;cursor:pointer;}
  .eko-mob-menu :focus-visible,.mob-menu :focus-visible,.eko-hamburger:focus-visible,.hamburger:focus-visible{outline:2px solid #b8e480;outline-offset:-2px;}
  html:has(body.eko-menu-open){overflow:hidden;overscroll-behavior:none;}
  body.eko-menu-open{overflow:hidden;}
  .eko-menu-open .eko-menu-backdrop{display:block;position:fixed;inset:var(--eko-header-bottom,108px) 0 0;background:#0008;z-index:1002;}
  .eko-menu-open #cookieBanner,.eko-menu-open #stickyCTA,.eko-menu-open #ekoNudge,.eko-menu-open .cb-chat-root{display:none!important;}
}
@media(min-width:1025px){.eko-mob-menu,.mob-menu{display:none!important;}}

/* Keep the phone cookie choice readable instead of squeezing copy beside two buttons. */
@media(max-width:768px){
  #cookieBanner{padding:12px 16px;}
  #cookieBanner .eko-cookie-content{display:flex;flex-direction:column;align-items:stretch;gap:10px;}
  #cookieBanner .eko-cookie-content p{flex:auto;width:100%;min-width:0;font-size:15px;line-height:1.45;margin:0;}
  #cookieBanner .eko-cookie-actions{display:flex;width:100%;gap:8px;}
  #cookieBanner .eko-cookie-btn{flex:1!important;min-height:44px;font-size:14px;padding:10px 12px;}
}

@media(max-width:1024px){
  /* Allow space for the actual header and ticker before the first page heading. */
  .proof-strip~.hero{padding-top:calc(var(--eko-header-bottom,108px) + 64px)!important;}
}

/* Keep chat controls in view on short phone and tablet screens. */
@media (max-width:1024px) and (max-height:500px) {
  .cb-chat-root.cb-open .cb-chat-panel {position:fixed;inset:0;width:100%;height:100vh;height:100dvh;max-width:none;max-height:none;border-radius:0;border:0;}
  .cb-chat-root.cb-open .cb-chat-bubble {display:none;}
  .cb-chat-root.cb-open .cb-chat-header,.cb-chat-root.cb-open .cb-chat-input,.cb-chat-root.cb-open .cb-chat-footer {flex-shrink:0;}
  .cb-chat-root.cb-open .cb-chat-messages {min-height:0;}
}
