.elementor-kit-5{--e-global-color-primary:#E11D2A;--e-global-color-secondary:#0B0B0F;--e-global-color-text:#1A1A22;--e-global-color-accent:#D4A017;--e-global-color-947cb445:#FAFAF7;--e-global-color-d14ee2ee:#E5E7EB;--e-global-color-09923b7b:#4B5563;--e-global-color-5e86b53c:#FE0316;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;color:#1A1A22;font-family:"Inter", Sans-serif;font-size:17px;font-weight:400;line-height:1.65em;}.elementor-kit-5 a{color:#A91320;}.elementor-kit-5 a:hover{color:#E11D2A;}.elementor-kit-5 h1{color:#0B0B0F;font-family:"Bebas Neue", Sans-serif;font-size:60px;font-weight:700;line-height:1.04em;letter-spacing:0.5px;}.elementor-kit-5 h2{color:#0B0B0F;font-family:"Bebas Neue", Sans-serif;font-size:44px;font-weight:700;line-height:1.04em;letter-spacing:0.5px;}.elementor-kit-5 h3{color:#0B0B0F;font-family:"Bebas Neue", Sans-serif;font-size:30px;font-weight:700;line-height:1.04em;letter-spacing:0.5px;}.elementor-kit-5 h4{color:#0B0B0F;font-family:"Inter", Sans-serif;font-size:22px;font-weight:700;line-height:1.4em;}.elementor-kit-5 h5{color:#0B0B0F;font-family:"Inter", Sans-serif;font-size:18px;font-weight:700;line-height:1.4em;}.elementor-kit-5 h6{color:#0B0B0F;font-family:"Inter", Sans-serif;font-size:16px;font-weight:700;line-height:1.4em;}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-family:"Inter", Sans-serif;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#FFFFFF;background-color:#E11D2A;border-radius:4px 4px 4px 4px;padding:16px 32px 16px 32px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;--container-default-padding-top:0px;--container-default-padding-right:24px;--container-default-padding-bottom:0px;--container-default-padding-left:24px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-5{font-size:16px;}.elementor-kit-5 h1{font-size:36px;}.elementor-kit-5 h2{font-size:26px;}.elementor-kit-5 h3{font-size:22px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS */@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Inter:wght@400;500;600;700;800&display=swap');

html { scroll-behavior: smooth; }
body { background: #FFFFFF; -webkit-font-smoothing: antialiased; overflow-x: hidden; }

/* Image carousel: clip slides at the wrapper edge so they never push past
   the viewport on tablet/mobile. */
.elementor-widget-image-carousel,
.elementor-widget-image-carousel .elementor-widget-container,
.elementor-image-carousel-wrapper,
.swiper { overflow: hidden; max-width: 100%; }

/* Image carousel: consistent slide height with rounded corners. Slide width
   is set by Swiper based on slides_to_show; do not override it. */
.elementor-image-carousel-wrapper .swiper-slide {
    height: 460px !important;
    border-radius: 14px;
    overflow: hidden;
    cursor: zoom-in;
}
.elementor-image-carousel-wrapper .swiper-slide-inner {
    width: 100%;
    height: 100%;
    border-radius: 14px;
    overflow: hidden;
    cursor: zoom-in;
}
.elementor-image-carousel-wrapper .swiper-slide a {
    display: block;
    width: 100%;
    height: 100%;
}
.elementor-image-carousel-wrapper .swiper-slide img,
.elementor-image-carousel-wrapper .swiper-slide-inner img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: cover !important;
    object-position: center 30%;
    display: block;
    transition: transform 0.45s ease;
}

/* Per-image framing — each photo's faces/focal content positioned to fall
   in the upper-middle of the slide regardless of aspect-ratio crop. */
/* Phil + 2 kids in dojo: faces upper-middle */
.elementor-image-carousel-wrapper img[src*="20240328_210323621"] { object-position: center 30% !important; }
/* UFAF lineup with American flag: keep flag + emblem visible */
.elementor-image-carousel-wrapper img[src*="20240328_230107414"] { object-position: center 35% !important; }
/* Chuck Norris + Phil Hall portrait: both faces */
.elementor-image-carousel-wrapper img[src*="NorrisDelilahPhilHall"] { object-position: center 22% !important; }
/* Sparring with headgear: keep helmets in frame */
.elementor-image-carousel-wrapper img[src*="20240328_225136398"] { object-position: center 28% !important; }
/* Two black belts mid-block: faces upper-quarter */
.elementor-image-carousel-wrapper img[src*="20240328_222014738"] { object-position: center 25% !important; }
/* Dojo front door with HALL'S MARTIAL ARTS sign */
.elementor-image-carousel-wrapper img[src*="20240328_204024117"] { object-position: center 38% !important; }
/* About-section photo (Phil + 2 kids) at full width — keep faces visible */
.elementor-widget-image img[src*="20240328_210323621"] { object-fit: cover; object-position: center 30%; }
.elementor-image-carousel-wrapper .swiper-slide:hover img {
    transform: scale(1.04);
}
@media (max-width: 1024px) {
    .elementor-image-carousel-wrapper .swiper-slide,
    .elementor-image-carousel-wrapper .swiper-slide-inner { height: 380px !important; }
}
@media (max-width: 720px) {
    .elementor-image-carousel-wrapper .swiper-slide,
    .elementor-image-carousel-wrapper .swiper-slide-inner { height: 320px !important; }
}

/* Carousel arrows: make them more visible against dark band */
.elementor-image-carousel-wrapper .elementor-swiper-button {
    color: #FFFFFF !important;
    background: rgba(0,0,0,0.5) !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 999px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    font-size: 18px !important;
    transition: background 0.2s ease;
}
.elementor-image-carousel-wrapper .elementor-swiper-button:hover {
    background: #E11D2A !important;
}

/* Header layout overrides (per playbook). Logo left, nav middle, CTA right. */
#site-header {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 24px;
    padding-left: 24px !important;
    padding-right: 24px !important;
    background: #FFFFFF;
    border-bottom: 1px solid #E5E7EB;
}
#site-header > * {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0;
}
#site-header > .elementor-widget-button { margin-left: auto; }

@media (min-width: 1025px) {
    #site-header .elementor-nav-menu--main,
    #site-header .elementor-nav-menu--main ul.elementor-nav-menu {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        white-space: nowrap;
    }
}

/* Header link colors */
#site-header .elementor-nav-menu--main a {
    color: #0B0B0F !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    padding: 8px 14px !important;
}
#site-header .elementor-nav-menu--main a:hover,
#site-header .elementor-nav-menu--main .current-menu-item > a {
    color: #E11D2A !important;
}

/* Footer */
#site-footer { background: #0B0B0F; color: #FFFFFF; }
#site-footer a { color: rgba(255,255,255,0.85); text-decoration: none; }
#site-footer a:hover { color: #D4A017; }

/* Mobile: nav toggle styled as a clean square pill, CTA pill keeps label,
   logo stays prominent. Layout: logo | CTA pill | burger.
   Inspired by kawaconnect's mobile header pattern. */
@media (max-width: 1024px) {
    #site-header {
        gap: 10px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    #site-header .elementor-widget-nav-menu { order: 3; flex: 0 0 auto !important; margin-left: 0 !important; }
    #site-header .elementor-widget-button { order: 2; margin-left: auto !important; }
    #site-header > .elementor-widget-image { order: 1; }

    #site-header .elementor-menu-toggle {
        color: #0B0B0F !important;
        background: #0B0B0F !important;
        border-radius: 8px !important;
        width: 44px !important;
        height: 44px !important;
        padding: 0 !important;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        border: none !important;
        transition: background 0.2s ease;
    }
    #site-header .elementor-menu-toggle i,
    #site-header .elementor-menu-toggle svg { color: #FFFFFF !important; fill: #FFFFFF !important; font-size: 18px !important; }
    #site-header .elementor-menu-toggle:hover,
    #site-header .elementor-menu-toggle.elementor-active {
        background: #E11D2A !important;
    }

    /* Mobile dropdown panel: full-width dark panel below header */
    #site-header .elementor-nav-menu--dropdown {
        position: fixed !important;
        left: 0 !important;
        right: 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        margin-top: 14px !important;
    }
}
@media (max-width: 720px) {
    /* Trim header CTA: keep phone icon + 'CALL', drop full number on phones */
    #site-header > .elementor-widget-button .elementor-button {
        padding: 10px 16px !important;
        font-size: 13px !important;
        letter-spacing: 1px !important;
    }
    #site-header > .elementor-widget-button .elementor-button-text::after {
        content: 'Call';
    }
    #site-header > .elementor-widget-button .elementor-button-text {
        font-size: 0 !important;
    }
    #site-header > .elementor-widget-button .elementor-button-text::after {
        font-size: 13px !important;
        font-family: 'Inter', sans-serif !important;
        font-weight: 700 !important;
        letter-spacing: 1px !important;
        text-transform: uppercase !important;
    }
    #site-header > .elementor-widget-button .elementor-button-icon { margin-right: 8px !important; font-size: 14px !important; }
    #site-header { padding-left: 14px !important; padding-right: 14px !important; }
    #site-header .elementor-widget-image img { max-width: 44px !important; height: auto !important; }
}

/* Footer brand block: logo + name aligned, KawaConnect copyright link */
.hm-footer-brand .elementor-widget-image img { filter: drop-shadow(0 2px 8px rgba(0,0,0,0.3)); }
#site-footer a:hover { color: #D4A017 !important; }
/* Constrain section content padding on mobile so 100%-width containers
   never push past the viewport. */
@media (max-width: 768px) {
    .elementor-element { max-width: 100%; }
    .elementor-widget img { max-width: 100% !important; height: auto !important; }
}

/* Improve the Elementor form select / textarea */
.elementor-field-group select,
.elementor-field-group textarea,
.elementor-field-group input[type=text],
.elementor-field-group input[type=email],
.elementor-field-group input[type=tel] {
    font-family: 'Inter', sans-serif !important;
    font-size: 15px !important;
    padding: 12px 14px !important;
}

/* Image carousel: keep arrows visible on dark band */
.elementor-widget-image-carousel .swiper-button-next,
.elementor-widget-image-carousel .swiper-button-prev {
    color: #FFFFFF !important;
}

/* Hide Yoast schema duplicates of Organization (we emit our own complete graph).
   Suppression handled in halls-schema.php; nothing CSS-side. *//* End custom CSS */