/* Sensual Institute directory. Version 0.1.8: native Elementor presentation,
 * one genuine middle-column scroll pane, fixed side rails and fast result state. */
body.si-directory-page {
  --si-pink: #C59393;
  --si-cream: #FBF6ED;
  --si-brown: #4C3B19;
  --si-beige: #EDE1D3;
  --si-header-height: 108px;
}
body.si-directory-page #si-directory-filter-rail[hidden] { display: none !important; }
body.si-directory-page #si-directory-results-wrap { display:none; }
body.si-directory-page.si-directory-mode-results #si-directory-results-wrap { display:flex; }
body.si-directory-page.si-directory-mode-results #si-directory-discover,
body.si-directory-page.si-directory-mode-az #si-directory-discover { display:none; }
body.si-directory-page.si-directory-mode-discover #si-directory-az,
body.si-directory-page.si-directory-mode-results #si-directory-az { display:none; }
body.si-directory-page.si-directory-mode-az #si-directory-results-wrap { display:none; }
body.si-directory-page #si-directory-results-wrap.si-directory-enhanced #si-directory-results,
body.si-directory-page #si-directory-results-wrap.si-directory-enhanced #si-directory-empty { display:none!important; }
body.si-directory-page .elementor-widget-form[id^="si-directory-filter-group-"] form[name="si-directory-filters"] .elementor-field-type-submit {display:none!important;}

/* All native Elementor CTA buttons, including submissions, keep cream text
 * on pink at rest, hover, selected and keyboard focus. */
body.si-directory-page :is(#si-directory-top,#si-directory-layout) :is(a.elementor-button,button.elementor-button,.elementor-button.elementor-size-md),
body.si-directory-page :is(#si-directory-top,#si-directory-layout) :is(a.elementor-button,button.elementor-button,.elementor-button.elementor-size-md):is(:hover,:active,:focus,:focus-visible) {
  color:var(--si-cream)!important;
  background-color:var(--si-pink)!important;
  font-family:"Candela",serif;
  font-size:22px!important;
}
body.si-directory-page :is(#si-directory-top,#si-directory-layout) .elementor-button :is(span,.elementor-button-text,.elementor-button-icon),
body.si-directory-page :is(#si-directory-top,#si-directory-layout) .elementor-button:is(:hover,:focus,:active) :is(span,.elementor-button-text,.elementor-button-icon){color:var(--si-cream)!important;fill:var(--si-cream)!important;}
body.si-directory-page :is(#si-directory-top,#si-directory-layout) .elementor-button:focus-visible,
body.si-directory-page .si-directory-fast-cta:focus-visible {outline:3px solid var(--si-brown);outline-offset:3px;}
/* Accordions are not buttons in this visual system: selected uses beige/brown. */
body.si-directory-page #si-directory-filters .e-n-accordion-item[open] > summary,
body.si-directory-page #si-directory-discover .e-n-accordion-item[open] > summary {
  color:var(--si-brown)!important;background-color:var(--si-beige)!important;
}

/* Top search aligns to native three-column geometry. No extra challenge space
 * for this public GET filter (it performs no messaging or data mutation). */
body.si-directory-page #si-directory-search .elementor-form-fields-wrapper {
  display:grid!important;grid-template-columns:minmax(0,72fr) minmax(0,28fr);
  align-items:end;column-gap:14px;row-gap:0;
}
body.si-directory-page #si-directory-search .elementor-form-fields-wrapper > .elementor-field-group {
  width:100%!important;min-width:0!important;max-width:100%!important;padding:0!important;
}
body.si-directory-page #si-directory-search .elementor-form-fields-wrapper > .elementor-field-group:not(.elementor-field-type-submit):not(.elementor-field-type-hidden) {grid-column:1;}
body.si-directory-page #si-directory-search .elementor-form-fields-wrapper > .elementor-field-type-submit {grid-column:2;}
body.si-directory-page #si-directory-search .elementor-form-fields-wrapper > .elementor-field-type-hidden {display:none!important;}
body.si-directory-page #si-directory-search :is(.cf-turnstile,.elementor-field-type-turnstile,.cf-turnstile-container,.elementor-field-type-cf-turnstile) {display:none!important;}
body.si-directory-page #si-directory-search .elementor-field-type-submit .elementor-button {width:100%;min-height:52px;}
body.si-directory-page #si-directory-search input {min-height:52px;box-sizing:border-box;}

/* Desktop application shell, v0.1.8. The previous in-flow root retained its
 * document scroll position on Safari and cut off cards at the outer footer.
 * Anchor the directory itself to the visible viewport, independently of any
 * restored body scroll. Preserve the separate WordPress theme header above it. */
@media (min-width:1025px) {
  html:has(body.si-directory-page), body.si-directory-page {
    width:100%; height:100dvh!important; overflow:hidden!important;
    overscroll-behavior:none; scroll-behavior:auto!important;
  }
  body.si-directory-page [data-elementor-id="20532"],
  body.si-directory-page [data-elementor-id="20535"] {
    position:fixed!important;
    top:var(--si-directory-shell-top, calc(var(--si-header-height) + var(--wp-admin--admin-bar--height, 0px)))!important;
    right:0!important;bottom:0!important;left:0!important;
    width:100%!important;height:auto!important;max-height:none!important;
    min-height:0!important;margin:0!important;box-sizing:border-box;
    display:flex!important;flex-direction:column!important;
    overflow:hidden!important;z-index:3;background-color:var(--si-cream);
  }
  body.si-directory-page #si-directory-top {
    flex:0 0 auto!important;min-height:0!important;overflow:visible!important;
  }
  body.si-directory-page #si-directory-layout {
    display:flex!important;flex:1 1 0!important;
    min-height:0!important;min-width:0!important;
    max-height:100%!important;height:auto!important;
    overflow:hidden!important;align-items:stretch!important;
  }
  body.si-directory-page #si-directory-layout > .e-con {
    min-height:0!important;min-width:0!important;max-height:100%!important;
    align-self:stretch!important;position:relative!important;
  }
  body.si-directory-page #si-directory-layout > .e-con:not(#si-directory-center-scroll) {
    overflow:hidden!important;
  }
  body.si-directory-page #si-directory-center-scroll {
    overflow-y:auto!important;overflow-x:hidden!important;
    overscroll-behavior:contain;scrollbar-width:thin;
    height:100%!important;min-height:0!important;max-height:100%!important;
    -webkit-overflow-scrolling:touch;
  }
  body.si-directory-page #si-directory-filter-rail,
  body.si-directory-page #si-directory-promotion-rail {
    position:static!important;top:auto!important;transform:none!important;
    overflow-y:auto!important;overflow-x:hidden!important;
    overscroll-behavior:contain;max-height:100%!important;
    height:100%!important;min-height:0!important;scrollbar-width:thin;
  }
  body.si-directory-page #si-directory-center-scroll > .e-con-inner,
  body.si-directory-page #si-directory-center-scroll > .elementor-widget-wrap {min-height:0!important;}
}
/* Tablet/mobile preserve normal page scroll; no narrow three-column squeeze. */
@media (max-width:1024px) {
  html:has(body.si-directory-page),body.si-directory-page{height:auto!important;overflow-x:hidden!important;overflow-y:auto!important;}
  body.si-directory-page [data-elementor-id="20532"],body.si-directory-page [data-elementor-id="20535"]{position:static!important;inset:auto!important;margin:0!important;width:auto!important;height:auto!important;overflow:visible!important;display:block!important;}
  body.si-directory-page #si-directory-layout{height:auto!important;overflow:visible!important;}
  body.si-directory-page #si-directory-center-scroll,
  body.si-directory-page #si-directory-filter-rail,
  body.si-directory-page #si-directory-promotion-rail{overflow:visible!important;height:auto!important;max-height:none!important;position:static!important;}
}
@media (max-width:767px){
  body.si-directory-page #si-directory-search .elementor-form-fields-wrapper{grid-template-columns:1fr;row-gap:10px;}
  body.si-directory-page #si-directory-search .elementor-form-fields-wrapper > .elementor-field-type-submit{grid-column:1;}
}

/* Lightweight filter renderer after first public-index load. Text and CTA
 * follow the same approved fonts, tokens and geometry as native cards. */
body.si-directory-page .si-directory-fast-results {width:100%;padding:0;margin:0;}
body.si-directory-page .si-directory-fast-count,
body.si-directory-page .si-directory-fast-empty{font:700 22px/1.25 "Cormorant Garamond",Georgia,serif;color:var(--si-brown);margin:0 0 18px;}
body.si-directory-page .si-directory-fast-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;}
body.si-directory-page .si-directory-fast-card{
  display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;
  padding:12px;border-radius:12px;background:var(--si-cream);
}
body.si-directory-page .si-directory-fast-photo{display:block;width:100%;height:auto;aspect-ratio:340/230;object-fit:cover;border-radius:12px;}
body.si-directory-page .si-directory-fast-name{font:700 25px/1.1 "Cormorant Garamond",Georgia,serif;margin:0;color:var(--si-brown);overflow-wrap:anywhere;}
body.si-directory-page .si-directory-fast-card p{font:400 22px/1.18 "Cormorant Garamond",Georgia,serif;margin:0;color:var(--si-brown);overflow-wrap:anywhere;}
body.si-directory-page .si-directory-fast-excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
body.si-directory-page .si-directory-fast-cta,
body.si-directory-page .si-directory-fast-cta:is(:visited,:hover,:focus,:active){
  display:block;width:100%;margin-top:auto;padding:14px 9px;box-sizing:border-box;
  text-decoration:none;text-align:center;border-radius:12px;background:var(--si-pink)!important;
  color:var(--si-cream)!important;font:400 22px/1.2 "Candela",serif!important;
}
body.si-directory-page .si-directory-fast-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 16px;margin:28px 0;}
body.si-directory-page .si-directory-fast-pagenum{font:700 22px/1.2 "Cormorant Garamond",Georgia,serif;color:var(--si-brown);text-decoration:none;}
body.si-directory-page .si-directory-fast-pagenum[aria-current]{color:var(--si-pink);text-decoration:underline;text-underline-offset:5px;}
@media (max-width:1320px){body.si-directory-page .si-directory-fast-grid{grid-template-columns:1fr;}}
@media (max-width:1024px){body.si-directory-page .si-directory-fast-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:767px){body.si-directory-page .si-directory-fast-grid{grid-template-columns:1fr;}}

/* A-Ö index remains bounded and scrolls in the centre pane. */
body.si-directory-page .si-directory-az-browser {font-family:"Cormorant Garamond",Georgia,serif;color:var(--si-brown);font-size:22px;}
body.si-directory-page .si-directory-az-letters{display:flex;flex-wrap:wrap;gap:9px 14px;margin:14px 0 25px;}
body.si-directory-page .si-directory-az-letters a,body.si-directory-page .si-directory-az-letters span{font:400 22px/1.2 "Cormorant Garamond",Georgia,serif;color:var(--si-brown);text-decoration:none;}
body.si-directory-page .si-directory-az-letters a[aria-current]{color:var(--si-pink);text-decoration:underline;text-underline-offset:5px;}
body.si-directory-page .si-directory-az-letters .is-empty{opacity:.35;}
body.si-directory-page .si-directory-az-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;}
body.si-directory-page .si-directory-az-letter-group h3{font:400 40px/1.2 "Candela",serif;margin:0 0 18px;color:var(--si-brown);}
body.si-directory-page .si-directory-name-accordion{margin:0 0 9px;border-radius:12px;overflow:hidden;background:#F0E5D9;}
body.si-directory-page .si-directory-name-accordion summary{cursor:pointer;list-style:none;font:700 22px/1.2 "Cormorant Garamond",Georgia,serif;padding:14px 12px;overflow-wrap:anywhere;color:var(--si-brown);}
body.si-directory-page .si-directory-name-accordion summary::-webkit-details-marker{display:none;}
body.si-directory-page .si-directory-name-accordion summary::after{content:"+";float:right;padding-left:5px;}
body.si-directory-page .si-directory-name-accordion[open] summary::after{content:"−";}
body.si-directory-page .si-directory-name-accordion[open]{background:var(--si-beige);}
body.si-directory-page .si-directory-name-detail{padding:4px 12px 15px;font:400 22px/1.2 "Cormorant Garamond",Georgia,serif;}
body.si-directory-page .si-directory-name-detail p{margin:0 0 9px;overflow-wrap:anywhere;}
body.si-directory-page .si-directory-name-button,
body.si-directory-page .si-directory-name-button:is(:hover,:focus,:active){display:block;width:100%;text-align:center;box-sizing:border-box;padding:12px 9px;margin-top:12px;border-radius:12px;background:var(--si-pink)!important;color:var(--si-cream)!important;font:400 22px/1.2 "Candela",serif;text-decoration:none!important;}
body.si-directory-page .si-directory-az-pagination{display:flex;flex-wrap:wrap;gap:9px 14px;align-items:center;justify-content:center;margin:30px 0;}
body.si-directory-page .si-directory-az-pagination a{font:400 22px/1.2 "Cormorant Garamond",Georgia,serif;color:var(--si-brown);text-decoration:none;}
body.si-directory-page .si-directory-az-pagination a[aria-current]{color:var(--si-pink);font-weight:700;text-decoration:underline;}
@media (max-width:767px){body.si-directory-page .si-directory-az-pair{grid-template-columns:1fr;}}
