/**
 * Wil Theme 0.1.10 — intrinsic homepage layout.
 * No viewport translation, negative margins or JavaScript sizing.
 * Loaded as a versioned stylesheet so browsers can cache the layout while
 * still fetching a new copy immediately after a theme update.
 */
body.wil-theme #page.wil-site {
  width: 100%; max-width: none; min-width: 0; margin-inline: 0; padding-inline: 0;
}
body.wil-theme #wil-main.wil-main--home,
body.wil-theme #wil-main.wil-main--home > .wil-home-content {
  display: block !important;
  width: 100% !important; min-width: 0 !important; max-width: none !important;
  margin-inline: 0 !important; padding-inline: 0 !important;
  position: relative; left: auto; right: auto;
  transform: none; box-sizing: border-box;
}
body.wil-theme #wil-main.wil-main--home { overflow-x: clip; }
/* Only ordinary homepage content is boxed. The homepage itself is not. */
body.wil-theme #wil-main.wil-main--home > .wil-home-content > :where(:not(style):not(script):not(link)) {
  max-width: 1500px;
  margin-left: auto;
  margin-right: auto;
}
/* Open the actual ancestor chain, including custom HTML containers (not just
 * Gutenberg's .wp-block-group). This is limited to containers holding these
 * four known full-bleed components; unrelated columns and plugin panels are
 * not flattened. CSS :has also applies to late-rendered shortcode markup. */
body.wil-theme #wil-main.wil-main--home .wil-home-content :is(div,section,article,main,figure,header,aside):has(:is(.wil-event-shelf,.wil-photo-shelf,.wtp-marquee-wall,.wilhc-carousel.wilhc-fullscreen)),
body.wil-theme #wil-main.wil-main--home .wil-home-content .wil-layout-bridge {
  display: block !important;
  width: 100% !important; min-width: 0 !important; max-width: none !important;
  margin-left: 0 !important; margin-right: 0 !important;
  margin-inline-start: 0 !important; margin-inline-end: 0 !important;
  padding-left: 0 !important; padding-right: 0 !important;
  position: relative !important; left: auto !important; right: auto !important;
  transform: none !important; translate: none !important;
  overflow: visible !important; clip-path: none !important; contain: none !important;
  flex: 0 0 100% !important; grid-column: 1 / -1 !important;
  box-sizing: border-box !important;
}
/* A mixed wrapper may also hold normal text / blocks. Keep those children
 * boxed without touching the internal card/track dimensions. */
body.wil-theme #wil-main.wil-main--home .wil-home-content :is(div,section,article,main,figure):has(:is(.wil-event-shelf,.wil-photo-shelf,.wtp-marquee-wall,.wilhc-carousel.wilhc-fullscreen)) > :where(:not(style):not(script):not(link)) {
  max-width: 1500px;
  margin-left: auto;
  margin-right: auto;
}
body.wil-theme #wil-main.wil-main--home .wil-home-content :is(.wil-event-shelf,.wil-photo-shelf,.wtp-marquee-wall,.wilhc-carousel.wilhc-fullscreen) {
  width: 100% !important; min-width: 0 !important; max-width: none !important;
  margin-left: 0 !important; margin-right: 0 !important;
  margin-inline-start: 0 !important; margin-inline-end: 0 !important;
  padding-left: 0 !important; padding-right: 0 !important;
  position: relative !important; left: auto !important; right: auto !important;
  transform: none !important; translate: none !important;
  box-sizing: border-box !important;
  overflow: hidden;
}
/* Full-width sections. A percentage gutter resolves against the full-width
 * parent, not the overlong max-content row, and excludes the scrollbar.
 * First card and heading align to the 1500px content frame with a 20px inset. */
body.wil-theme #wil-main.wil-main--home .wil-event-shelf {
  --wil-left-gutter: max(20px, calc((100% - 1500px) / 2 + 20px));
}
body.wil-theme #wil-main.wil-main--home .wil-photo-shelf {
  --wil-photo-left-gutter: max(20px, calc((100% - 1500px) / 2 + 20px));
}
body.wil-theme #wil-main.wil-main--home :is(.wil-event-slider-wrap,.wil-event-scroll,.wil-photo-slider-wrap,.wil-photo-scroll) {
  width: 100% !important; min-width: 0 !important; max-width: none !important;
  margin-inline: 0 !important;
}
body.wil-theme #wil-main.wil-main--home :is(.wil-event-row,.wil-photo-row) {
  width: max-content !important; min-width: 100% !important; max-width: none !important;
}
body.wil-theme #wil-main.wil-main--home .wil-event-heading {
  padding-left: max(20px, calc((100% - 1500px) / 2 + 20px)) !important;
}
body.wil-theme #wil-main.wil-main--home .wil-photo-heading {
  padding-left: max(20px, calc((100% - 1500px) / 2 + 20px)) !important;
}
/* Card dimensions, image crops, marquee tracks, speeds, arrow logic and touch
 * scrolling continue to come from the user's original Wil plugins. */
body.wil-theme #wil-main.wil-main--home .wtp-marquee-wall {
  display: grid !important;
}
body.wil-theme #wil-main.wil-main--home .wtp-marquee-row {
  width: 100% !important; max-width: none !important;
}
body.wil-theme #wil-main.wil-main--home .wilhc-carousel.wilhc-fullscreen {
  --wilhc-slide-width: 100%;
}
body.wil-theme #wil-main.wil-main--home .wilhc-carousel.wilhc-fullscreen :is(.wilhc-viewport,.wilhc-track) {
  width: 100% !important; max-width: none !important;
}
body.wil-theme #wil-main.wil-main--home .wilhc-carousel.wilhc-fullscreen .wilhc-viewport {
  height: 100vh; height: 100dvh;
}
body.wil-theme #wil-main.wil-main--home .wilhc-carousel.wilhc-fullscreen .wilhc-slide {
  flex: 0 0 100% !important; width: 100% !important;
  height: 100vh; height: 100dvh;
}
/* Requested navigation type, including submenu and account actions. */
body.wil-theme #masthead.wil-header :is(.wil-primary-menu a,.wil-auth-button,.wil-mobile-nav__list a,.wil-mobile-nav__tools a) {
  font-family: var(--wil-font) !important;
  font-size: var(--wil-header-menu-size, 15px) !important;
  font-weight: var(--wil-header-menu-weight, 400) !important;
  line-height: 1.5 !important;
}
/* Account buttons have their own size/weight (Customize > Wil Theme Header Text). */
body.wil-theme #masthead.wil-header :is(.wil-auth-button,.wil-mobile-nav__tools a) {
  font-size: var(--wil-header-button-size, 15px) !important;
  font-weight: var(--wil-header-button-weight, 400) !important;
}
body.wil-theme #masthead.wil-header :is(.wil-auth-button,.wil-mobile-nav__tools a) {
  display: inline-flex;
  align-items: center; justify-content: center;
  height: 35px !important; min-height: 35px !important; max-height: 35px !important;
  padding-top: 0 !important; padding-bottom: 0 !important;
  box-sizing: border-box !important;
}
@media (max-width: 1240px) {
  body.wil-theme #masthead.wil-header .wil-mobile-nav:not([hidden]) { display: block; }
}
/* Admin-only diagnostic dialog; never shown automatically to customers. */
#wil-theme-layout-dialog { color-scheme: dark; max-width: min(900px,calc(100vw - 32px)); width: 900px; max-height: 80vh; background:#17171c; color:#f5f5f7; border:1px solid #666; border-radius:12px; padding:24px; }
#wil-theme-layout-dialog::backdrop { background:rgba(0,0,0,.65); }
#wil-theme-layout-dialog pre { white-space:pre-wrap; overflow-wrap:anywhere; font:12px/1.5 monospace; max-height:55vh; overflow:auto; }
#wil-theme-layout-dialog button { background:#f5f5f7; color:#16161a; padding:8px 16px; border:0; border-radius:8px; margin-right:10px; cursor:pointer; }

/* 64px navigation bar, 50px proportional logo, 35px text actions.
 * The height applies to the bar, not WordPress' separate administrator toolbar.
 * Dropdowns are absolutely positioned so opening one does not resize the bar. */
body.wil-theme #masthead.wil-header {
  height: 64px !important;
  min-height: 64px !important;
  max-height: 64px !important;
  padding-block: 0 !important;
  box-sizing: border-box !important;
  overflow: visible;
}
body.wil-theme #masthead.wil-header .wil-header__inner {
  height: 64px !important;
  min-height: 64px !important;
  max-height: 64px !important;
  padding-block: 0 !important;
  padding-inline: 20px;
  margin-block: 0 !important;
  box-sizing: border-box !important;
  align-items: center !important;
}
body.wil-theme #masthead.wil-header .wil-primary-menu {
  height: 64px !important;
  min-height: 64px !important;
  max-height: 64px !important;
  margin-block: 0 !important;
  padding-block: 0 !important;
}
body.wil-theme #masthead.wil-header .wil-brand {
  display: inline-flex;
  align-items: center;
  height: 50px !important;
  min-height: 50px !important;
  max-height: 50px !important;
  max-width: none !important;
  padding: 0 !important;
  margin-block: 0 !important;
  flex: 0 0 auto;
}
body.wil-theme #masthead.wil-header .wil-brand > img.wil-brand__image {
  display: block;
  width: auto !important;
  height: 50px !important;
  min-height: 50px !important;
  max-height: 50px !important;
  max-width: none !important;
  object-fit: contain;
  transform: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0;
}
body.wil-theme #masthead.wil-header .wil-primary-menu > li > a {
  min-height: 35px !important;
  padding-block: 0 !important;
}
body.wil-theme #masthead.wil-header .wil-mobile-nav:not([hidden]) {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  width: 100%;
  max-height: calc(100dvh - 64px - var(--wil-admin-offset, 0px));
  overflow: auto;
  margin: 0 auto;
  padding: 10px 20px 22px;
  background: var(--wil-header-background, var(--wil-bg));
  border-top: 1px solid var(--wil-edge);
  box-shadow: 0 24px 48px rgba(0,0,0,.4);
}
body.wil-theme #masthead.wil-header .wmmm-header-account-link.has-label,
body.wil-theme #masthead.wil-header .wmmm-header-account-link.wmmm-style-text,
body.wil-theme #masthead.wil-header .wmmm-header-account-label {
  font-family: var(--wil-font) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
}
body.wil-theme #masthead.wil-header .wmmm-header-account-link.has-label,
body.wil-theme #masthead.wil-header .wmmm-header-account-link.wmmm-style-text {
  height: 35px !important;
  min-height: 35px !important;
  max-height: 35px !important;
  padding-block: 0 !important;
  box-sizing: border-box !important;
}
/* Do not leave a 46px empty strip after the mobile WP toolbar scrolls away. */
body.wil-theme #page.wil-site #masthead.site-header.wil-header {
  top: var(--wil-admin-offset, 0px) !important;
}
body.admin-bar.wil-theme #page.wil-site #masthead.site-header.wil-header {
  top: var(--wil-admin-offset, 32px) !important;
}
@media (max-width: 782px) {
  body.admin-bar.wil-theme #page.wil-site #masthead.site-header.wil-header {
    top: var(--wil-admin-offset, 46px) !important;
  }
}
/* A fullscreen hero at the top cannot sit below padding on an old Group or
 * custom-HTML wrapper. Remove that wrapper spacing, not the hero's text inset. */
body.wil-theme #wil-main.wil-main--home,
body.wil-theme #wil-main.wil-main--home > .wil-home-content {
  padding-block: 0 !important;
  margin-block: 0 !important;
}
body.wil-theme #wil-main.wil-main--home .wil-home-content :is(div,section,article,main,figure,header,aside):has(.wilhc-carousel.wilhc-fullscreen) {
  padding-block: 0 !important;
  margin-block: 0 !important;
}
