/* v1.3: settings-driven layout and accessible nested navigation. */
body { font-family: var(--ufun-font-sans); }
h1,h2,h3,h4,h5,h6 { font-family: var(--ufun-font-heading); }
.ufun-container { width: min(var(--ufun-site-width,1380px),calc(100% - 44px)); }
.ufun-header__inner { min-height: var(--ufun-header-height,76px); padding-block: 10px; }
.ufun-brand img,.ufun-brand .custom-logo { height: var(--ufun-logo-height,44px); width: auto; max-width: 200px; object-fit: contain; }
.ufun-navigation { flex: 1; min-width: 0; }
.ufun-menu { flex-wrap: wrap; row-gap: 8px; }
.ufun-menu a { font-size: var(--ufun-nav-size,13px); }
.ufun-menu li { position: relative; list-style: none; }
.ufun-menu > li { display: flex; align-items: center; }
.ufun-menu .sub-menu { display: none; position: absolute; z-index: 100; top: 100%; left: 0; width: 230px; max-width: calc(100vw - 44px); padding: 8px; margin: 0; border: 1px solid #e5e8ed; border-radius: 8px; background: #fff; box-shadow: 0 8px 28px #18274226; list-style: none; text-align: left; }
.ufun-menu .sub-menu a { display: block; padding: 10px 30px 10px 12px; line-height: 1.5; text-transform: none; border: 0; overflow-wrap: anywhere; }
.ufun-menu .sub-menu .sub-menu { top: 0; left: 100%; }
.ufun-menu li:hover > .sub-menu,.ufun-menu li:focus-within > .sub-menu,.ufun-menu li.is-expanded > .sub-menu { display: block; }
.ufun-navigation--enhanced .ufun-menu li:not(.is-expanded) > .sub-menu { display: none; }
.ufun-submenu-toggle { width: 26px; height: 32px; flex: 0 0 26px; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; }
.ufun-submenu-toggle::after { content: '⌄'; }
.ufun-submenu-toggle[aria-expanded="true"]::after { content: '⌃'; }
.sub-menu .ufun-submenu-toggle { position: absolute; top: 6px; right: 2px; }
.ufun-menu a:focus-visible,.ufun-submenu-toggle:focus-visible { outline: 2px solid var(--ufun-coral); outline-offset: 3px; }
.ufun-page-hero,.ufun-archive-hero { display: flex; flex-direction: column; justify-content: var(--ufun-title-vertical,center); min-height: var(--ufun-title-height,240px); padding: var(--ufun-title-padding,44px) 0; color: var(--ufun-title-color,#202938); text-align: var(--ufun-title-align,center); background-color: var(--ufun-title-background,#f6f7fa); background-image: var(--ufun-title-bg-image,none); background-position: var(--ufun-title-image-position,center); background-size: cover; }
.ufun-page-hero > .ufun-container,.ufun-archive-hero > .ufun-container { width: min(var(--ufun-title-width,1100px),calc(100% - 44px)); }
.ufun-page-hero h1,.ufun-archive-hero h1 { max-width: none; font-family: var(--ufun-title-font,var(--ufun-font-heading)); font-size: var(--ufun-title-size,44px); line-height: 1.18; color: inherit; margin: 0; overflow-wrap: anywhere; }
.ufun-page-hero p,.ufun-archive-hero p { max-width: none; color: inherit; margin-block: 12px 0; }
.ufun-page-hero .ufun-eyebrow { margin-block: 0 12px; }
.ufun-standard-post .ufun-entry-content,.page .ufun-entry-content { width: min(var(--ufun-article-width,960px),calc(100% - 44px)); font-size: var(--ufun-article-size,17px); }
.ufun-standard-post .ufun-entry-content > *,.page .ufun-entry-content > * { max-width: 100%; }
.ufun-home .ufun-section { padding-block: var(--ufun-section-padding,56px); }
.ufun-section-heading h2 { font-size: var(--ufun-section-size,36px); overflow-wrap: anywhere; }
.ufun-carousel-stage { display: grid; height: auto; min-height: var(--ufun-hero-height,640px); }
.ufun-carousel-slide { position: relative; inset: auto; grid-area: 1 / 1; min-width: 0; }
.ufun-carousel-slide__inner { min-height: var(--ufun-hero-height,640px); align-items: var(--ufun-hero-vertical,center); padding-block: 20px 72px; }
.ufun-carousel-slide__copy { width: min(var(--ufun-hero-copy-width,535px),80%); text-align: var(--ufun-hero-align,left); }
.ufun-carousel-slide h1 { font-size: var(--ufun-hero-size,76px); line-height: 1.02; overflow-wrap: anywhere; }
.ufun-carousel-slide__copy .ufun-hero-features,.ufun-carousel-slide__copy .ufun-carousel-intro { margin-inline: auto; }
.ufun-carousel-slide__copy .ufun-actions { justify-content: inherit; }
.ufun-carousel-slide__image { object-position: var(--slide-focus-x,50%) var(--slide-focus-y,50%); }
.ufun-image-placeholder { min-height: 100px; }
.ufun-cta--image { background-size: cover; background-position: center; color: #fff; }
.ufun-cta--image h2,.ufun-cta--image .ufun-eyebrow,.ufun-cta--image p { color: #fff; }
@media (min-width:1281px) {
  .ufun-category-grid { grid-template-columns: repeat(var(--ufun-category-columns,8),minmax(0,1fr)); }
  .ufun-products-section .ufun-product-grid,.ufun-product-grid { grid-template-columns: repeat(var(--ufun-product-columns,6),minmax(0,1fr)); }
}
@media (min-width:981px) {
  .ufun-menu > li:last-child .sub-menu,.ufun-menu > li:nth-last-child(2) .sub-menu { left: auto; right: 0; }
  .ufun-menu > li:last-child .sub-menu .sub-menu,.ufun-menu > li:nth-last-child(2) .sub-menu .sub-menu { right: 100%; }
}
@media (max-width:980px) {
  .ufun-header__inner { min-height: var(--ufun-header-mobile-height,72px); }
  .ufun-brand img,.ufun-brand .custom-logo { max-height: calc(var(--ufun-header-mobile-height,72px) - 20px); }
  .ufun-navigation.is-open { max-height: calc(100dvh - var(--ufun-header-mobile-height,72px) - 46px); overflow-y: auto; }
  .ufun-menu { justify-content: stretch!important; }
  .ufun-menu > li { display: block; }
  .ufun-menu > li > .ufun-submenu-toggle { position: absolute; right: 2px; top: 3px; width: 44px; height: 44px; }
  .ufun-menu > li > a { padding-right: 46px; }
  .ufun-menu .sub-menu,.ufun-menu .sub-menu .sub-menu { position: static; width: auto; max-width: none; margin-left: 12px; padding: 0 0 0 8px; box-shadow: none; border: 0; border-left: 2px solid #e5e8ed; }
  .ufun-menu li:hover > .sub-menu,.ufun-menu li:focus-within > .sub-menu { display: none; }
  .ufun-menu li.is-expanded > .sub-menu { display: block; }
  .ufun-menu a { font-size: max(14px,var(--ufun-nav-size,13px)); }
  .ufun-carousel-slide__copy { width: min(var(--ufun-hero-copy-width,535px),90%); }
}
@media (max-width:700px) {
  .ufun-page-hero h1,.ufun-archive-hero h1 { font-size: var(--ufun-title-mobile-size,30px); }
  .ufun-page-hero,.ufun-archive-hero { min-height: min(var(--ufun-title-height,240px),300px); padding-block: min(var(--ufun-title-padding,44px),48px); }
  .ufun-section-heading h2 { font-size: var(--ufun-section-mobile-size,26px); }
  .ufun-carousel-stage,.ufun-carousel-slide__inner { min-height: var(--ufun-hero-mobile-height,640px); }
  .ufun-carousel-slide h1 { font-size: var(--ufun-hero-mobile-size,38px); }
  .ufun-carousel-slide__copy { width: 100%; padding-block: 12px; }
  .ufun-carousel-slide__veil { width: 100%; max-width: none; }
  .ufun-carousel-slide__image { object-position: var(--slide-mobile-focus-x,var(--slide-focus-x,50%)) var(--slide-focus-y,50%); }
  .ufun-category-grid,.ufun-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
