/* Wrapper adapters only. Per-element typography, dimensions, spacing and media remain Elementor controls. */
:where(.elementor){--widgets-spacing:0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px}
:where(.elementor-widget-yf-heading .elementor-heading-title){margin:0}
:where(.elementor-widget-text-editor p){margin:0}
:where(.elementor-widget-yf-field h1,.elementor-widget-yf-field h2){margin:0}
:where(.yf-footer-grid .yf-footer-column){min-width:0}
:where(.yf-footer-supplement){max-width:100%}
:where(.footer-widgets .elementor-widget-yf-menu){width:100%}
:where(.absolute-footer .yf-menu-list){list-style:none;margin:0;padding:0}
:where(.absolute-footer .yf-menu-list li){margin:0;padding:0}
:where(.absolute-footer .yf-company){color:#ffffff80}
:where(.yf-copyright .elementor-widget){width:auto}
:where(.yf-info-image img){height:325px;object-fit:cover;width:100%}
:where(.yf-feature .elementor-widget-image){flex-shrink:0}
:where(.home-banner .banner-background,.home-contact .contact-background){position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
:where(.banner-background .elementor-widget-container,.contact-background .elementor-widget-container){height:100%}
:where(.banner-background img,.contact-background img){width:100%;height:100%;object-fit:cover}
:where(.contact-background):after{content:'';position:absolute;inset:0;background:#00000091;border-top:1px solid #ebebeb}
:where(.home-banner .yf-banner-content){position:relative;z-index:2}
:where(.yf-pill .elementor-button){border:2px solid #fff}
:where(.home-contact .enquiry-form){margin:0}
:where(.elementor .home-contact .contact-intro){min-width:0}
:where(.yf-product-detail .e-con){min-width:0}
:where(.elementor .yf-field){overflow-wrap:anywhere}
:where(.elementor-widget-yf-gallery .gallery-thumbnails button){width:var(--yf-thumb-size,64px);height:var(--yf-thumb-size,64px)}
:where(.yf-nav-group){position:relative}
:where(.yf-submenu){display:none;position:absolute;min-width:180px;background:#fff;z-index:25;padding:15px;box-shadow:0 4px 10px #0002}
:where(.yf-submenu a){display:block;padding:8px}
:where(.yf-nav-group:hover .yf-submenu,.yf-nav-group:focus-within .yf-submenu){display:block}
:where(.yf-header .logo img){width:100%;height:auto;max-height:70px;object-fit:contain}
@media(max-width:849px){:where(.elementor .wide-nav){width:var(--yf-menu-width,260px)}:where(.elementor .wide-nav .search-form){flex-direction:column;gap:8px}:where(.elementor) .wide-nav .search-form select{width:100%;height:34px;padding:4px 9px}:where(.yf-nav-group){width:100%;padding:15px 20px;border-bottom:1px solid #e7e7e7}:where(.yf-submenu){position:static;display:block;background:transparent;box-shadow:none;padding:5px}}
@media(max-width:549px){:where(.yf-copyright .elementor-widget){text-align:center}:where(.yf-pill .elementor-button){width:100%}}
/* Native Elementor must remain visible in its editing canvas. */
.elementor-editor-active .motion-ready [data-motion]{opacity:1;transform:none}
/* Remove legacy internal margins now owned by the native Elementor wrappers. */
.elementor .home-contact .enquiry-form{margin:0}
.elementor-widget-yf-gallery .gallery-thumbnails img{height:100%;object-fit:contain}
.elementor .quick-dialog .detail-image img{height:230px}
.elementor .yf-page-banner .elementor-heading-title{margin:0}
/* Elementor's generic image reset must not change the geometry of the dynamic image widgets. */
.elementor-widget-yf-carousel .hero-frame img{height:100%;width:100%;object-fit:cover}
.elementor-widget-yf-gallery .detail-image img{object-fit:contain}
.elementor-widget-yf-catalogue .product-image img{height:100%;width:100%;object-fit:contain}

/* Element spacing is owned by the widget Advanced controls, not its inner heading. */
.elementor-widget-yf-heading .elementor-heading-title{margin:0}

/* Match the established paragraph flow inside the native about-page wrappers. */
.elementor .reference-about .yf-company p{margin:0}
.elementor .reference-about .elementor-widget-text-editor p{margin:0 0 20.8px}
.elementor .reference-about .elementor-widget-text-editor p:last-child{margin-bottom:0}

/* Transparent additions use the same white, bordered image boxes as reference logos. */
.elementor-widget-yf-brands .brand-track .yf-brand-image{display:block;margin:0;padding:0;line-height:0;background:#fff;outline:1px solid #e5e5e5;outline-offset:-1px}
.elementor-widget-yf-brands .brand-track img:is([src$=".png"],[src$=".gif"],[src$=".svg"]){padding:5%}
/* This supplied logo is white lettering on transparency; retain its full wordmark. */
.elementor-widget-yf-brands img[src$="/koganei.png"]{filter:brightness(.28)}
.elementor-widget-yf-brands .brand-carousel>button{top:var(--yf-brand-arrow-top,42%)}
/* Horizontal rails must not capture vertical page scrolling. Grow from the top
   so the reference 1.3-to-1 entrance cannot move the logos above its viewport. */
.elementor-widget-yf-brands .brand-track{overflow-y:hidden}
.elementor .motion-ready .brand-track>[data-motion="bounceIn"]{transform-origin:50% 0}

/* Native widget transitions otherwise replace the reference entrance timing. */
.elementor .reference-home{overflow-x:clip}
.elementor .home-banner{overflow:hidden}
.elementor .home-info-pairs,.elementor .yf-footer-grid,.elementor .yf-copyright{max-width:100%}
@media(prefers-reduced-motion:no-preference){
 .elementor .motion-ready [data-motion]{transition:transform 1.6s,opacity .7s ease-in}
 .elementor .motion-ready [data-motion]:not([data-motion-visible]){transition:none}
}

/* Structured contact fallback; dimensions and typography remain widget controls. */
:where(.yf-company-contact){--yf-contact-label-width:104px;--yf-contact-row-gap:2px;--yf-contact-identity-gap:12px}
:where(.yf-company-contact .company-identity){margin-bottom:var(--yf-contact-identity-gap)}
.elementor-widget-yf-company .company-identity p{margin:0}
:where(.yf-company-contact .company-name){font-weight:600}
:where(.yf-company-contact .company-contact-list){margin:0;display:grid;row-gap:var(--yf-contact-row-gap)}
:where(.yf-company-contact .company-contact-row){display:grid;grid-template-columns:var(--yf-contact-label-width) minmax(0,1fr);column-gap:12px;align-items:baseline}
:where(.yf-company-contact .company-contact-row dt){margin:0;font-weight:400;white-space:nowrap;color:#ffffffb3}
:where(.yf-company-contact .company-contact-row dd){margin:0;min-width:0;overflow-wrap:anywhere}

/* Supplemental fields share one strip; responsive dimensions remain widget controls. */
:where(.yf-company-supplement .company-contact-list){grid-template-columns:repeat(var(--yf-contact-columns,4),minmax(0,1fr));column-gap:var(--yf-contact-column-gap,24px)}
:where(.yf-company-supplement .company-contact-row){display:block}
:where(.yf-company-supplement .company-contact-row dt){font-size:.875em;margin-bottom:2px}

/* Real logos and name-based wordmarks share the same editable image band. */
.yf-brand-directory{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:1fr;gap:16px}
.yf-brand-directory .brand-tile{display:grid;grid-template-rows:minmax(var(--yf-brand-image-height,80px),max-content) minmax(var(--yf-brand-label-height,44px),auto);align-items:center;gap:8px;margin:0;padding:var(--yf-brand-tile-padding,10px);border:1px solid #e5e5e5;background:#fff}
.elementor-widget-yf-brands .yf-brand-directory .brand-tile img{max-height:none;object-fit:contain;width:100%;margin:0}
.yf-brand-directory .brand-label{line-height:1.5}
.yf-brand-directory .brand-wordmark{display:flex;align-items:center;justify-content:center;min-width:0;height:100%;font-family:Arial,sans-serif;font-size:24px;font-weight:700;line-height:1.18;letter-spacing:.02em;text-align:center;color:#001c51;overflow-wrap:anywhere;text-wrap:balance}
@media(max-width:549px){.yf-brand-directory .brand-wordmark{font-size:18px}}
:where(.elementor .brand-directory){max-width:100%}
