/* V9.9.4.1 complete: reading, documents, floating UI and responsive controls. */
/* Neutral launcher: reset BOTH the inherited wrapper and the inner button, all states. */
:root{--ned-wa-size:52px;--ned-wa-gap:18px}
body .nedv4-whatsapp.nedv5-whatsapp.nedv600-whatsapp{
 width:var(--ned-wa-size)!important;height:var(--ned-wa-size)!important;min-width:var(--ned-wa-size)!important;min-height:var(--ned-wa-size)!important;
 right:max(var(--ned-wa-gap),env(safe-area-inset-right))!important;bottom:max(var(--ned-wa-gap),env(safe-area-inset-bottom))!important;transform:none!important;
 background:transparent!important;background-image:none!important;border:0!important;outline:0!important;
 box-shadow:none!important;filter:none!important;padding:0!important;border-radius:16px!important;animation:none!important;
}
body .nedv4-whatsapp.nedv600-whatsapp[data-wa-root] .nedv600-wa-trigger,
body .nedv4-whatsapp.nedv600-whatsapp[data-wa-root] .nedv600-wa-trigger:is(:hover,:active,:focus){
 width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;
 margin:0!important;padding:0!important;border:0!important;border-radius:16px!important;
 background:#dedede!important;color:#777!important;box-shadow:none!important;filter:none!important;animation:none!important;transform:none!important;
}
body .nedv600-whatsapp:before,body .nedv600-whatsapp:after,
body .nedv4-whatsapp.nedv600-whatsapp[data-wa-root] .nedv600-wa-trigger:before,body .nedv4-whatsapp.nedv600-whatsapp[data-wa-root] .nedv600-wa-trigger:after{content:none!important;display:none!important;animation:none!important;box-shadow:none!important;border:0!important}
body .nedv4-whatsapp.nedv600-whatsapp[data-wa-root] .nedv600-wa-trigger:focus-visible{outline:2px solid #555!important;outline-offset:3px!important}
body .nedv600-whatsapp .nedv600-wa-status-dot{display:none!important}
body .nedv600-whatsapp .nedv600-wa-icon-wrap{width:32px!important;height:32px!important}
body .nedv600-whatsapp .nedv600-wa-bubble{fill:#777!important}
body .nedv600-whatsapp .nedv600-wa-phone{fill:#f6f6f6!important}
body .nedv600-wa-panel{bottom:66px!important;max-height:calc(var(--ned-vvh,100dvh) - 100px);overflow:auto;overscroll-behavior:contain}
body.ned-floating-obstructed .nedv600-whatsapp:not(.is-panel-open){opacity:0!important;visibility:hidden!important;pointer-events:none!important}
body.ned-keyboard-visible .nedv600-whatsapp{opacity:0!important;visibility:hidden!important;pointer-events:none!important}

/* Reading rhythm: paragraphs remain blocks, never individually placed on a hero grid. */
.nedv57-story-body,.nedv610-about-grid>div:first-child,.nedv70-cookie-detail,.nedv4-entry,.nedv620-policy-content{line-height:1.65;overflow-wrap:anywhere}
.nedv57-story-body{max-width:var(--ned-reading-width)}
.nedv57-story-body p,.nedv610-about-section p,.nedv70-cookie-detail p,.nedv4-entry p,.nedv620-policy-content p{margin:0 0 1.1em;line-height:1.65}
.nedv57-story-body p:last-child,.nedv610-about-section p:last-child,.nedv4-entry p:last-child{margin-bottom:0}
.nedv57-story-body h2,.nedv57-story-body h3,.nedv4-entry h2,.nedv620-policy-content h2{margin-top:1.6em;margin-bottom:.6em;line-height:1.15}
.nedv57-story-body li,.nedv4-entry li,.nedv620-policy-content li{margin:.4em 0}
.nedv620-page,.nedv620-page.is-version{background:var(--ned-paper)!important;padding:36px 0 72px!important}
.nedv620-page .ned-hero{margin-bottom:28px}
.nedv620-page-policy{max-width:1040px!important;margin:0 auto!important;padding:clamp(24px,4vw,54px)!important;background:#fff!important;border:1px solid var(--ned-line)!important;border-radius:16px!important;box-shadow:none!important}
.nedv620-policy-content{max-width:780px!important;margin-inline:auto!important;color:var(--ned-ink)!important;font-size:17px!important;line-height:1.65!important}
.nedv620-policy-content p{color:inherit!important}
.nedv620-policy-content h2{font-size:clamp(25px,3vw,36px)!important;letter-spacing:-.035em}
.nedv620-policy-content a{overflow-wrap:anywhere}
.nedv620-version-return{padding-top:24px;border-top:1px solid var(--ned-line);margin-top:30px}
.nedv620-page-choice{margin-block:28px}
.nedv70-cookie-page{padding-top:36px}
.nedv70-cookie-page .ned-hero{margin-bottom:32px}

/* Directory: real mobile controls, not a clipped desktop toolbar. */
.nedv90-directory-tools{align-items:end;gap:14px}
.nedv90-directory-tools>*{min-width:0}
.nedv90-search{min-width:0;position:relative}
.nedv90-search input{width:100%;min-width:0;font-size:16px!important}
.nedv90-tip-open{white-space:normal;min-height:46px}
.nedv90-filters button{min-height:44px}
.nedv90-alpha{display:flex!important;flex-wrap:wrap!important;gap:6px!important;max-width:100%}
.nedv90-alpha button{width:36px!important;min-width:36px!important;height:40px!important;line-height:1;display:grid;place-items:center;padding:0!important}
.nedv90-card,.nedv90-card-body,.nedv90-card summary,.nedv90-card-actions{min-width:0;overflow-wrap:anywhere}
.ned-share-disclosure{margin:18px 0;color:var(--ned-ink)}
.ned-share-disclosure>summary{cursor:pointer;font-weight:750;min-height:44px;display:flex;align-items:center;gap:10px}
.ned-share-disclosure>summary:before{content:"+";font-size:22px}
.ned-share-disclosure[open]>summary:before{content:"-"}
.ned-share-disclosure .nedv903-directory-share{overflow:visible!important;margin:10px 0 0}
.ned-share-disclosure .nedv52-share{flex-wrap:wrap}
.nedv903-suggest{z-index:30;max-width:100%;max-height:320px;overflow:auto}
.nedv588-day-card{min-width:0;overflow-wrap:anywhere}
.nedv588-week-viewport{scroll-padding-inline:1px;max-width:100%}
.nedv588-week-track{padding-right:1px!important}
.nedv588-day-card header>*{min-width:0}

/* Viewport-aware modal frame. Existing close, consent and submit handlers stay intact. */
.nedv620-modal,.nedv588-booking-modal,.nedv950-modal,.nedv610-modal,.nedv960-modal,.nedv990-modal,.nedv991-zone-modal,.nedv48-results-modal{
 max-height:var(--ned-vvh,100dvh);overscroll-behavior:contain;
}
.nedv620-dialog,.nedv588-booking-dialog{max-height:calc(var(--ned-vvh,100dvh) - 24px)!important}
.nedv610-dialog,.nedv960-dialog,.nedv991-dialog,.nedv48-results-dialog{max-height:calc(var(--ned-vvh,100dvh) - 24px)!important;overflow-y:auto;overscroll-behavior:contain}
.nedv620-dialog-head,.nedv620-dialog-foot,.nedv588-booking-dialog>header{min-height:0}
.nedv620-dialog-head button,.nedv610-close,.nedv588-booking-close{min-width:44px;min-height:44px;flex-shrink:0}
.nedv620-scroll,.nedv588-booking-body{min-height:0;overscroll-behavior:contain}
@media(max-width:900px){
 .nedv4-header .nedv4-brand{transform:none!important}
 .nedv4-header.is-scrolled .nedv4-brand{font-size:26px!important}
 :root{--ned-wa-size:48px;--ned-wa-gap:12px}
 .nedv57-story-grid,.nedv610-about-grid{gap:26px}
}
@media(max-width:760px){
 .nedv90-directory-tools{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
 .nedv90-filters{width:100%;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
 .nedv90-filters button{padding:10px 6px!important;font-size:14px;white-space:normal}
 .nedv90-tip-open{width:100%;padding:12px 16px}
 .nedv90-alpha{gap:6px!important}
 .nedv90-alpha button{width:40px!important;min-width:40px!important;height:44px!important;font-size:14px!important}
 .nedv90-card-actions{gap:12px;flex-wrap:wrap}
 .nedv90-card-actions>span{flex-wrap:wrap;gap:10px}
 .nedv588-week-track{grid-auto-columns:min(300px,calc(100vw - 2 * var(--ned-gutter) - 26px))!important;gap:12px!important;width:max-content}
 .nedv588-day-card{padding:18px!important}
 .nedv588-status-inner{gap:12px;min-width:0}
 .nedv588-status-inner>*{min-width:0}
 .nedv620-page,.nedv620-page.is-version{padding:24px 0 48px!important}
 .nedv620-page-policy{padding:24px 20px!important;border-radius:14px!important}
 .nedv620-policy-content{font-size:16px!important}
 .nedv620-policy-content h2{font-size:28px!important}
 .nedv620-page-version-link{overflow-wrap:anywhere}
 .nedv620-modal,.nedv588-booking-modal,.nedv950-modal,.nedv610-modal,.nedv960-modal,.nedv990-modal,.nedv991-zone-modal,.nedv48-results-modal{
 top:var(--ned-vtop,0px)!important;bottom:auto!important;height:var(--ned-vvh,100dvh)!important;padding:12px!important;
 }
 .nedv620-dialog{height:calc(var(--ned-vvh,100dvh) - 24px)!important;width:100%!important;border-radius:16px}
 .nedv620-dialog-head{padding:16px 18px!important;gap:12px}
 .nedv620-dialog-head h2{font-size:26px!important}
 .nedv620-dialog-head p{margin-top:6px;font-size:12px}
 .nedv620-dialog-foot{padding:12px 18px!important;gap:8px;grid-template-columns:1fr}
 .nedv620-dialog-foot button{min-height:44px;font-size:14px}
 .nedv620-dialog-foot span{font-size:11px;line-height:1.4}
 .nedv610-form input,.nedv610-form textarea,.nedv950-modal input,.nedv950-modal select,.nedv588-booking-form input,.nedv588-booking-form select{font-size:16px!important}
 .nedv588-booking-dialog>header{padding:16px 18px!important}
 .nedv588-booking-dialog h2{font-size:26px!important}
}
@media(prefers-reduced-motion:reduce){.nedv600-whatsapp *{animation:none!important;transition:none!important}}

/* Supersede the V6.2.2 archive's explicit edge-to-edge mobile rule. */
.nedv620-page.is-version .nedv620-page-policy{max-width:1040px!important;margin-inline:auto!important;padding:clamp(24px,4vw,54px)!important;border-radius:16px!important}
.nedv620-page.is-version .nedv620-policy-content{max-width:780px!important;margin-inline:auto!important;font-size:17px!important;line-height:1.65!important}
.nedv620-page.is-version .nedv620-policy-content>p:first-child{font-size:inherit!important;line-height:inherit!important}
@media(max-width:760px){
 .nedv620-page.is-version .nedv620-page-policy{padding:24px 20px!important;border-radius:14px!important}
 .nedv620-page.is-version .nedv620-policy-content{font-size:16px!important}
}

/* Intake has a .nedv950-shell, not a generic dialog. Keep its action bar reachable. */
.nedv950-shell{height:min(930px,calc(var(--ned-vvh,100dvh) - 24px))!important;max-height:calc(var(--ned-vvh,100dvh) - 24px)!important;background:var(--ned-paper)!important}
.nedv950-head,.nedv950-steps span.is-active,.nedv950-consent-gate .nedv620-privacy-read{background:var(--ned-black)!important}
.nedv950-modal{background:rgba(5,5,5,.82)!important}
.nedv950-consent-gate{background:var(--ned-paper)!important}
.nedv950-head button{min-width:44px;min-height:44px;flex:0 0 44px}
.nedv950-head,.nedv950-progress,.nedv950-steps,.nedv950-nav{flex-shrink:0}
.nedv950-screen,.nedv950-consent-gate{min-height:0;overscroll-behavior:contain}
.nedv588-booking-dialog{min-height:0;grid-template-rows:auto minmax(0,1fr)}
.nedv588-booking-frame{min-height:0;overflow:auto}
.nedv70-cookie-page{background:var(--ned-paper)}
.nedv4-reading .nedv4-entry{max-width:var(--ned-reading-width);margin-inline:auto}
@media(max-width:760px){
 .nedv950-head{padding:14px 16px!important;gap:12px}
 .nedv950-head h2{font-size:24px!important;line-height:1.1}
 .nedv950-consent-gate{padding:22px 18px!important}
 .nedv950-consent-gate>[data-nedv950-consent-continue]{min-width:0!important;width:100%!important;white-space:normal!important}
 .nedv950-screen{padding:20px 18px!important}
}
/* Let the donation share controls wrap instead of hiding actions off screen. */
@media(max-width:760px){
 .nedv54-fppp-sharebar .nedv52-share{flex-wrap:wrap!important;overflow:visible!important;white-space:normal!important;justify-content:flex-start!important;gap:8px!important}
 .nedv54-fppp-sharebar .nedv52-share a,.nedv54-fppp-sharebar .nedv52-share button{min-height:40px!important;display:inline-flex;align-items:center;justify-content:center;padding:9px 12px!important}
}

/* Logged-in WordPress toolbar is not part of the hero height. */
body.admin-bar{--ned-admin-offset:32px}
#mobile-menu{top:var(--ned-admin-offset)!important;height:calc(var(--ned-vvh,100dvh) - var(--ned-admin-offset))!important;max-height:calc(var(--ned-vvh,100dvh) - var(--ned-admin-offset))!important}
.ned-hero__aside,.ned-hero__content{overflow-wrap:anywhere}
@media(max-width:782px){body.admin-bar{--ned-admin-offset:46px}}
/* Do not depend on an optional WordPress core stylesheet for accessible-only labels. */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;white-space:nowrap!important}
