/* Shared controls and reading presentation; page content stays in native blocks. */
.fs-post > .wp-block-post-date { color: var(--wp--preset--color--muted); }

/* Long Finnish words and written URLs must still fit when readers increase
   text spacing. Normal word boundaries remain preferred. */
.fs-restored :is(p, li), .woocommerce-breadcrumb { overflow-wrap: anywhere; }

/* A one-pixel solid halo preserves photographs and layout while separating
   white headings from bright image areas (WCAG technique G18). Keep existing
   coloured panels untouched. This rule also loads in the native editor. */
.fs-restored .fs-photo-section .fs-cta:not(.has-background) .wp-block-heading {
    text-shadow:
        -1px -1px 0 var(--site-color-navy), 0 -1px 0 var(--site-color-navy),
        1px -1px 0 var(--site-color-navy), 1px 0 0 var(--site-color-navy),
        1px 1px 0 var(--site-color-navy), 0 1px 0 var(--site-color-navy),
        -1px 1px 0 var(--site-color-navy), -1px 0 0 var(--site-color-navy),
        2px 3px 3px #0006;
}

/* Wrapping follows available space, including browser zoom and larger text. */
.fs-header-inner { gap: 24px; padding-block: 12px; }
.fs-navigation .wp-block-navigation__container { flex-wrap: wrap; column-gap: 12px; }
.fs-navigation .wp-block-navigation-item__content {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}
.fs-navigation .wp-block-navigation-submenu__toggle,
.fs-navigation .wp-block-navigation__responsive-container-open,
.fs-navigation .wp-block-navigation__responsive-container-close {
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    margin: 0;
}
.fs-navigation .wp-block-navigation-submenu__toggle svg { width: 14px; height: 14px; }
.fs-header-inner > .fs-cart a { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
.fs-header .wp-block-site-logo a { display: flex; min-height: 44px; align-items: center; }
.fs-navigation .has-child .wp-block-navigation__submenu-container { transition: none; }
/* Only leaf lists scroll: scrolling a parent would clip its fly-out submenu. */
@media (min-width: 1200px) {
    .fs-navigation .has-child .wp-block-navigation__submenu-container:not(:has(.wp-block-navigation__submenu-container)) {
        max-height: 70dvh;
        overflow-y: auto !important; /* Core sets overflow:visible on expanded lists. */
    }
}
@media (max-width: 767px) { .fs-header-inner { gap: 12px; } }
/* A sticky header must not consume the reading area at high magnification. */
@media (max-height: 500px) { header.wp-block-template-part { position: static; } }

.woocommerce form .password-input input { padding-inline-end: 54px; min-height: 48px; }
.woocommerce form .password-input .show-password-input {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    top: 50%;
    right: 2px;
    transform: translateY(-50%);
    margin: 0;
    padding: 0;
}

/* Descriptions are readable without hovering and never cover the card title. */
.fs-service-card p {
    position: static;
    opacity: 1;
    transform: none;
    transition: none;
    pointer-events: auto;
    background: var(--site-color-navy);
}
.fs-service-card h3 { font-size: clamp(20px, 1.5vw, 28px); }

/* Two colours keep keyboard focus apparent on both light and dark surfaces. */
.wp-site-blocks :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--site-color-navy);
    outline-offset: 3px;
    box-shadow: 0 0 0 3px var(--site-color-paper);
}
@media (forced-colors: active) {
    .wp-site-blocks :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
        outline: 3px solid Highlight;
    }
}

/* WooCommerce translates its closed drawer offscreen but leaves it focusable.
   Hide it before script initialization as well; desktop filters remain inline. */
@media (max-width: 600px) {
    .wc-block-product-filters:not(.is-filter-drawer-disabled):not(.is-overlay-opened) .wc-block-product-filters__overlay {
        visibility: hidden;
    }
    .wc-block-product-filters .wc-block-product-filters__overlay-dialog { transition: none; }
}
/* Keep the existing checkbox dimensions; expose the enabled control boundary. */
.wc-block-product-filter-checkbox-list .wc-block-product-filter-checkbox-list__input:not(:disabled) {
    border-color: var(--site-color-navy);
    background-color: var(--site-color-paper);
}
.wc-block-product-filter-checkbox-list .wc-block-product-filter-checkbox-list__input:checked:not(:disabled) {
    background-color: var(--site-color-navy);
}
.wc-block-product-filter-checkbox-list__input:checked:not(:disabled) + .wc-block-product-filter-checkbox-list__mark {
    color: var(--site-color-paper);
}
@media (forced-colors: active) {
    .wc-block-product-filter-checkbox-list .wc-block-product-filter-checkbox-list__input:not(:disabled) { border-color: ButtonText; }
}

/* At narrow widths put the line total below its product, keeping the image,
   quantity controls and all prices available inside the existing cart shell. */
@media (max-width: 480px) {
    .wp-block-woocommerce-cart .wc-block-cart-items { table-layout: fixed; width: 100%; }
    .wp-block-woocommerce-cart .wc-block-cart-items .wc-block-cart-items__row {
        grid-template-columns: 64px minmax(0, 1fr);
        row-gap: 8px;
    }
    .wp-block-woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image {
        grid-column: 1;
        grid-row: 1 / span 2;
        padding-right: 0;
    }
    .wp-block-woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__product {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
        overflow-wrap: anywhere;
    }
    .wp-block-woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total {
        grid-column: 2;
        grid-row: 2;
        justify-content: flex-start;
    }
}
