/* Shared customer chrome. Page art direction, staff tools and printable documents keep their own layout. */
:root {
    --hkf-shell-wide: 1240px;
    --hkf-shell-standard: 1120px;
    --hkf-shell-form: 1040px;
    --hkf-shell-reading: 800px;
    --hkf-shell-gutter: 20px;
    --hkf-shell-forest: #254d40;
    --hkf-shell-muted: #596c60;
    --hkf-shell-line: #d9e1d5;
    --hkf-shell-paper: #faf9f5;
    --hkf-shell-sage: #eef2e9;
}
@media screen {
    body.hkf-public-design { --hkf-control-weight: 650; --hkf-control-height: 44px; font-family: system-ui, -apple-system, 'Segoe UI', sans-serif; }
    body.hkf-public-design > :is(.container:not(.hkf-transactional-scaffold), .about-container, .wiki-shell, .relationship-shell) {
        width: 100%; max-width: var(--hkf-shell-wide)!important; margin-left: auto; margin-right: auto;
        padding-left: var(--hkf-shell-gutter); padding-right: var(--hkf-shell-gutter); box-sizing: border-box;
    }
    body.hkf-public-design :is(input, select, textarea, button) { font-family: inherit; }
    body.hkf-public-design :is(a, button, summary, input, textarea, select):focus-visible {
        outline: 2px solid #9b824d; outline-offset: 3px;
    }
}
@media screen {

    /* Shared control states; native checks, file inputs and card artwork keep their sizing. */
    body.hkf-public-design :is(main, .np-main) :where(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=color]):not([type=file]), select) {
        min-height: var(--hkf-control-height);
    }
    body.hkf-public-design :is(input, textarea)::placeholder { opacity: 1; color: #64746a; }
    body.hkf-public-design :is(input, select, textarea)[aria-invalid=true] {
        border-color: #a45043!important;
    }
    body.hkf-public-design :is(input, select, textarea):disabled {
        background: #edf0e9; color: #657265; cursor: not-allowed;
    }
    body.hkf-public-design :is(button, input[type=submit]):disabled {
        cursor: not-allowed; box-shadow: none!important; transform: none!important;
    }
    body.hkf-public-design button[aria-busy=true] { cursor: progress; }
    body.hkf-public-design :is(.np-field, .form-field, .checkout-item-fields, .hkf-wording-fields) { min-width: 0; }
    body.hkf-public-design :is(.np-card, .np-soft, .np-notice, .np-error, .hkf-wording-result, .cart-summary-copy) { overflow-wrap: anywhere; }
    body.hkf-public-design :is(.np-error, .errors, .validation-errors) { line-height: 1.7; }
    body.hkf-public-design :is(.np-error, .errors, .validation-errors) ul { margin-block: 6px 0; padding-inline-start: 22px; }
    body.hkf-public-design :is(.np-button, .storefront-button, .button-link, .hkf-browse-button) svg { flex-shrink: 0; }
    @media (max-width: 600px) {
        /* Prevent iOS focus zoom; the field remains editable at the user's chosen zoom. */
        body.hkf-public-design :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=color]):not([type=file]), select, textarea) { font-size: 16px!important; }
        body.hkf-public-design :is(.np-actions, .np-form-footer, .checkout-actions) { row-gap: 10px; }
    }
    @media (prefers-reduced-motion: reduce) {
        body.hkf-public-design :is(a, button, input, select, textarea, summary) { transition: none!important; scroll-behavior: auto!important; }
    }
}
/* An ID boundary protects the footer from unscoped inline page rules. */
footer#site-footer.public-site-footer {
    box-sizing: border-box; display: block; width: 100%; max-width: none;
    margin: 44px 0 0!important; padding: 42px 0 24px!important;
    border: 0!important; border-top: 1px solid var(--hkf-shell-line)!important; border-radius: 0!important;
    background: var(--hkf-shell-sage)!important; color: var(--hkf-shell-muted)!important;
    font: 13px/1.75 system-ui, -apple-system, 'Segoe UI', sans-serif; text-align: left;
    box-shadow: none!important;
}
footer#site-footer::before { display: none!important; }
footer#site-footer * { box-sizing: border-box; }
footer#site-footer .footer-inner {
    display: block; width: 100%; max-width: var(--hkf-shell-wide); margin: 0 auto; padding: 0 var(--hkf-shell-gutter);
}
footer#site-footer .footer-grid {
    display: grid!important; grid-template-columns: minmax(210px,1.35fr) repeat(4,minmax(0,1fr))!important;
    align-items: start; gap: 28px!important; margin: 0; padding: 0;
}
footer#site-footer .footer-column { display: block; min-width: 0; max-width: none!important; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
footer#site-footer .footer-brand-logo { display: block; width: 220px; max-width: 100%; height: auto; margin: 0 0 10px; }
footer#site-footer .footer-brand-copy { max-width: 330px; margin: 0 0 12px; color: var(--hkf-shell-muted)!important; font: inherit; }
footer#site-footer .footer-column :is(strong,summary) { color: var(--hkf-shell-forest)!important; font-size: 13px; font-weight: 650; line-height: 1.7; letter-spacing: 0; }
footer#site-footer .footer-column > strong { display: block; margin: 0 0 10px; }
footer#site-footer .footer-column > summary { display: none; }
footer#site-footer ul { display: block; list-style: none; margin: 0; padding: 0; }
footer#site-footer li { margin: 0; padding: 0; }
footer#site-footer a {
    display: inline-flex; align-items: center; min-height: 30px; max-width: 100%; margin: 0; padding: 4px 0;
    border: 0; border-radius: 0; background: transparent; color: #48604f!important;
    font: inherit; font-size: 12px; font-weight: 400; line-height: 1.7; text-decoration: none; overflow-wrap: anywhere;
    box-shadow: none;
}
footer#site-footer a:hover { color: #173c30!important; text-decoration: underline; text-underline-offset: 4px; }
footer#site-footer .footer-review-link { display: flex; width: fit-content; text-decoration: underline; text-underline-offset: 4px; }
footer#site-footer .footer-whatsapp-link { display: inline-flex; width: auto; min-height: 40px; margin-top: 8px; padding: 8px 14px; border: 1px solid #bacbb6!important; border-radius: 5px; background: #fafbf7!important; color: #254d40!important; font-weight: 600; }
footer#site-footer .footer-legal { display: block; border-top: 1px solid #d4dece; margin-top: 28px; padding-top: 16px; color: var(--hkf-shell-muted)!important; font-size: 12px; text-align: center; }
footer#site-footer .footer-legal a { font-size: 12px; }
footer.customer-service-footer {
    box-sizing: border-box; width: 100%; margin: 28px 0 0; padding: 20px var(--hkf-shell-gutter) 26px;
    border-top: 1px solid var(--hkf-shell-line); background: var(--hkf-shell-sage); color: var(--hkf-shell-muted);
    font: 12px/1.8 system-ui, -apple-system, 'Segoe UI', sans-serif; text-align: center;
}
.customer-service-footer .customer-service-footer-inner { max-width: var(--hkf-shell-standard); margin: auto; }
.customer-service-footer strong { display: block; color: var(--hkf-shell-forest); font-weight: 600; font-size: 13px; }
.customer-service-footer nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 4px 20px; margin: 6px 0 0; padding: 0; }
.customer-service-footer a { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 0; color: var(--hkf-shell-forest); background: transparent; border: 0; font: inherit; text-decoration: none; }
.customer-service-footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer-opening-hours { margin: 12px 0; color: inherit; font: inherit; }
.footer-opening-hours-title { display: block; color: var(--hkf-shell-forest); font-weight: 650; margin-bottom: 4px; }
.footer-opening-hours dl { margin: 0; padding: 0; }
.footer-opening-hours dl > div { display: flex; flex-wrap: wrap; gap: 2px 10px; align-items: baseline; }
.footer-opening-hours dt, .footer-opening-hours dd { margin: 0; padding: 0; overflow-wrap: anywhere; }
.footer-opening-hours dd { font-variant-numeric: tabular-nums; }
.customer-service-footer .footer-opening-hours dl > div { justify-content: center; }
@media(max-width:1000px) {
    footer#site-footer .footer-grid { grid-template-columns: repeat(4,minmax(0,1fr))!important; gap: 22px!important; }
    footer#site-footer .footer-column--brand { grid-column: 1/-1; max-width: 440px!important; }
}
@media(max-width:600px) {
    :root { --hkf-shell-gutter: 18px; }
    footer#site-footer.public-site-footer { margin-top: 30px!important; padding: 28px 0 20px!important; }
    footer#site-footer .footer-grid { grid-template-columns: minmax(0,1fr)!important; gap: 0!important; }
    footer#site-footer .footer-column--brand { padding-bottom: 22px; max-width: none!important; }
    footer#site-footer details.footer-column { border-top: 1px solid #d4dece; }
    footer#site-footer details.footer-column > strong { display: none; }
    footer#site-footer details.footer-column > summary { display: flex; align-items: center; justify-content: space-between; min-height: 52px; margin: 0; padding: 12px 0; list-style: none; cursor: pointer; }
    footer#site-footer summary::-webkit-details-marker { display: none; }
    footer#site-footer details > summary::after { content: '+'; font-size: 19px; font-weight: 400; color: #7c8e72; }
    footer#site-footer details[open] > summary::after { content: '−'; }
    footer#site-footer details.footer-column ul { padding-bottom: 14px; }
    footer#site-footer details.footer-column a { min-height: 42px; font-size: 13px; padding: 7px 0; }
    footer#site-footer .footer-legal { margin-top: 18px; text-align: left; }
    .customer-service-footer nav { gap: 0 18px; }
    body.hkf-public-design main :is(input:not([type=checkbox]):not([type=radio]), select, textarea) { font-size: 16px; }
}
@media print {
    footer#site-footer.public-site-footer, footer.customer-service-footer { display: none!important; }
}

/* The inline language links use the same selected state as the header language menu. */
body.hkf-public-design .locale-switcher { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px; margin:24px 0 0; padding:18px 0 0; border-top:1px solid var(--hkf-shell-line); font:13px/1.6 system-ui,-apple-system,sans-serif; }
body.hkf-public-design .locale-switcher>span { color:var(--hkf-shell-muted); margin-right:2px; }
body.hkf-public-design .locale-switcher>a { display:inline-flex; align-items:center; min-height:40px; padding:8px 12px; border:1px solid transparent; border-radius:5px; color:#48604f; background:transparent; text-decoration:none; font-weight:400; }
body.hkf-public-design .locale-switcher>a[aria-current=true] { background:#eef3e9; border-color:#cbd8c4; color:#254d40; font-weight:600; }
@media(max-width:600px) { footer#site-footer.public-site-footer { padding-bottom:80px!important; } }

footer#site-footer .hkf-brand-wordmark { display:inline-flex; align-items:center; gap:10px; min-width:0; max-width:100%; width:auto; margin:0 0 12px; padding:0; background:transparent!important; border:0!important; text-decoration:none!important; }
footer#site-footer .hkf-brand-wordmark__mark { display:flex; flex:0 0 34px; align-items:center; justify-content:center; width:34px; height:44px; padding:0; }
footer#site-footer .hkf-brand-symbol { display:block; width:34px; height:44px; }
footer#site-footer .hkf-brand-wordmark__copy { display:block; min-width:0; }
footer#site-footer .hkf-brand-wordmark__copy>strong { display:block; font:600 18px/1.5 'HK Flowers Brand',serif; letter-spacing:.04em; margin:0; }
footer#site-footer .public-brand-domain { display:block; color:#48604f!important; font:11px/1.6 Georgia,serif; white-space:normal; }
