/* =========================================================================
   Heirloom Fibers — brand override layer
   Sits on top of the Fiama template (style.css / responsive.css).
   Colors & type from the Heirloom Fibers Brand Style Guide.
   ========================================================================= */

:root {
    /* Brand palette */
    --hf-navy: #20364C;
    --hf-coral: #CD6A62;
    --hf-sage: #B1C7BC;
    --hf-honey: #C99A66;
    --hf-cream: #F4E9D8;
    --hf-stone: #7B7468;
    --hf-cream-soft: #FBF6EE;

    /* Map template tokens onto the brand */
    --ltn__primary-color: #20364C;
    --ltn__primary-color-2: #182838;
    --ltn__primary-color-3: #2c4a68;
    --ltn__secondary-color: #CD6A62;
    --ltn__secondary-color-2: #b9554d;
    --ltn__secondary-color-3: #d98079;
    --ltn__heading-color: #20364C;
    --ltn__paragraph-color: #41506b;
    --ltn__body-color: #5d6b7a;
}

body {
    color: var(--ltn__body-color);
    background-color: #ffffff;
}

h1, h2, h3, h4 { color: var(--hf-navy); letter-spacing: .2px; }

.ltn__secondary-color { color: var(--hf-coral) !important; }
.ltn__primary-color { color: var(--hf-navy) !important; }

/* Section number / small-title accent like the brand guide */
.ltn__section-title h6,
.section-subtitle,
.ltn__section-title-2 h6 {
    color: var(--hf-coral) !important;
    letter-spacing: 3px;
    text-transform: uppercase;
    font-weight: 600;
}

/* ---- Script wordmark used for the logo text / hero flourishes ---- */
.hf-script {
    color: var(--hf-coral);
    font-weight: 700;
    line-height: 1;
}

.site-logo img, .sticky-logo img { max-height: 64px; width: auto; }

/* ---- Buttons ---- */
.btn,
.theme-btn-1,
.theme-btn-2 { font-weight: 600; letter-spacing: .5px; border-radius: 6px; }

.theme-btn-1,
.btn.theme-btn-1 { background-color: var(--hf-coral) !important; color: #fff !important; }
.theme-btn-1:hover { background-color: var(--ltn__secondary-color-2) !important; }

.theme-btn-2,
.btn.theme-btn-2 { background-color: var(--hf-navy) !important; color: #fff !important; }
.theme-btn-2:hover { background-color: var(--ltn__primary-color-2) !important; }

/* btn-effect-1/2 slide a white overlay across the button on hover — the label must
   go dark or it disappears against the white (it was locked to #fff above). */
.btn.btn-effect-1:hover,
.btn.btn-effect-2:hover { color: var(--hf-navy) !important; }

/* ---- Soft, crafty section backgrounds ---- */
.hf-bg-cream { background-color: var(--hf-cream-soft) !important; }
.hf-bg-sage { background-color: var(--hf-sage) !important; }
.bg-overlay-theme-black-90::before,
.bg-overlay-theme-90::before { background-color: rgba(32, 54, 76, .88); }

/* ---- Product cards: gentle, handmade feel ---- */
.ltn__product-item { border-radius: 10px; }
.product-price span { color: var(--hf-coral); font-weight: 700; }
.product-title a:hover { color: var(--hf-coral); }

/* Category / pill chips */
.hf-chip {
    display: inline-block;
    padding: 6px 16px;
    border-radius: 999px;
    background: var(--hf-cream);
    color: var(--hf-navy);
    font-weight: 600;
    letter-spacing: .5px;
    text-decoration: none;
    border: 1px solid transparent;
    transition: all .2s ease;
}
.hf-chip:hover, .hf-chip.active { background: var(--hf-coral); color: #fff; }

/* Footer */
.ltn__footer-area { background-color: var(--hf-navy); }
.ltn__footer-area, .ltn__footer-area p, .ltn__footer-area a { color: #cfd8e2; }
.ltn__footer-area h4, .footer-title { color: #fff !important; }
.ltn__footer-area a:hover { color: var(--hf-coral); }

/* Header tweaks */
.ltn__header-options .mini-cart-icon i { color: var(--hf-navy); }
.ltn__utilize-cart-menu .mini-cart-product-area { color: var(--hf-navy); }

.ltn__header-8 .ltn__header-middle-area { padding-top: 8px; padding-bottom: 8px; }

/* Badges */
.product-badge .sale-badge,

/* Generic page section heading underline flourish */
.hf-flourish::after {
    content: '';
    display: block;
    width: 64px; height: 2px;
    margin: 14px auto 0;
    background: var(--hf-coral);
}
.hfa-body .hf-flourish::after {
    width: 100%;
    margin-left: 0;
}

a { color: var(--hf-navy); }
a:hover { color: var(--hf-coral); }

/* ===== Supporting component styles ===== */

/* Tighten template section spacing */
.section-title-area { margin-bottom: 30px !important; }
.ltn__category-item { margin-bottom: 20px !important; }

/* Hero — navy band matching the News page hero */
.hf-hero { padding: 5rem 0 4.5rem; background: var(--hf-navy); }
.hf-hero-title { font-size: 3.4rem; line-height: 1.1; margin: 10px 0 18px; color: #fff; }
.hf-hero-title .hf-script { font-size: 4.4rem; color: var(--hf-coral); display: inline-block; }
.hf-hero-content p { font-size: 1.1rem; max-width: 540px; color: rgba(255,255,255,.62); }
.hf-hero-video { width: 100%; max-width: 430px; display: block; margin: 0 auto;
    border-radius: 14px; border: 3px solid #fff; box-shadow: 0 24px 60px rgba(0,0,0,.28); }
.hf-hero .theme-btn-2 { background: transparent; border: 1.5px solid rgba(255,255,255,.55); color: #fff; }
.hf-hero .theme-btn-2:hover { background: #fff; color: var(--hf-navy); border-color: #fff; }

/* About page knitting video — matted like the news images */
.hf-about-video { width: 100%; max-width: 480px; display: block; margin: 0 auto;
    border-radius: 14px; border: 3px solid #fff; box-shadow: 0 18px 46px rgba(32,54,76,.16); }

/* Category tiles */
.hf-cat-tile { display: block; padding: 34px 18px; border-radius: 14px; background: #fff;
    border: 1px solid var(--border-color-1, #f0f0f0); transition: all .25s ease; height: 100%; }
.hf-cat-tile:hover { box-shadow: 0 14px 34px rgba(32,54,76,.12); transform: translateY(-4px); }
.hf-cat-icon { display: inline-flex; width: 64px; height: 64px; align-items: center; justify-content: center;
    border-radius: 50%; background: var(--hf-cream); color: var(--hf-coral); font-size: 26px; margin-bottom: 16px; }
.hf-cat-tile h4 { margin-bottom: 8px; }
.hf-cat-tile p { font-size: .92rem; color: var(--hf-stone); min-height: 42px; }

/* Promise band */
.hf-promise i { font-size: 38px; color: var(--hf-navy); margin-bottom: 14px; display: inline-block; }
.hf-promise h4 { color: var(--hf-navy); }
.hf-promise p { color: #3c4d40; }

/* Product detail gallery */
.hf-gallery__main { position: relative; border-radius: 14px; overflow: hidden; background: #FBF6EE; }
.hf-gallery__img { width: 100%; display: block; border-radius: 14px; object-fit: cover; max-height: 520px; transition: opacity .14s ease; }
.hf-gallery__img--fade { opacity: 0; }
.hf-gallery__arrow { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,.82); border: none; border-radius: 50%; width: 42px; height: 42px; font-size: 1.5rem; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,.14); transition: background .15s, opacity .15s; opacity: .85; z-index: 2; }
.hf-gallery__arrow:hover { background: #fff; opacity: 1; }
.hf-gallery__arrow--prev { left: 12px; }
.hf-gallery__arrow--next { right: 12px; }
.hf-gallery__counter { position: absolute; bottom: 12px; right: 14px; background: rgba(0,0,0,.45); color: #fff; font-size: .78rem; padding: 3px 10px; border-radius: 20px; pointer-events: none; }
.hf-gallery__thumbs { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.hf-gallery__thumb { width: 76px; height: 76px; object-fit: cover; border-radius: 8px; cursor: pointer; border: 2px solid transparent; transition: border-color .15s, opacity .15s; opacity: .72; }
.hf-gallery__thumb:hover { border-color: var(--hf-coral); opacity: 1; }
.hf-gallery__thumb.active { border-color: var(--hf-navy); opacity: 1; }
.hf-detail-price span { font-size: 2rem; }
.hf-detail-price del { color: #b3b3b3; margin-left: 10px; }
.hf-stock.in { color: #4a7a52; font-weight: 600; }
.hf-stock.out { color: var(--hf-honey); font-weight: 600; }

/* Size chips — product detail page */
.hf-sizes__label { font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: #6B7280; margin-bottom: 8px; }
.hf-sizes__list { display: flex; flex-wrap: wrap; gap: 8px; }
.hf-size-chip { display: inline-flex; align-items: center; gap: 5px; background: #F9F5EF; border: 1px solid #E8DDD0; border-radius: 6px; padding: 5px 12px; font-size: .85rem; font-weight: 500; color: var(--hf-navy); }
.hf-size-chip__check { color: #4a7a52; font-size: .9rem; }

/* Size checkboxes — admin modal */
.hf-size-check { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; user-select: none; }
.hf-size-check input { display: none; }
.hf-size-check span { display: inline-block; padding: 5px 14px; border: 1.5px solid #D1D5DB; border-radius: 6px; font-size: .85rem; font-weight: 500; color: #6B7280; transition: all .15s; }
.hf-size-check input:checked + span { border-color: var(--hf-navy); background: var(--hf-navy); color: #fff; }

/* Quantity stepper */
.hf-qty { display: inline-flex; align-items: center; border: 1px solid #e0e0e0; border-radius: 8px; overflow: hidden; }
.hf-qty button { width: 38px; height: 42px; border: none; background: var(--hf-cream); color: var(--hf-navy); font-size: 18px; cursor: pointer; }
.hf-qty input { width: 54px; height: 42px; border: none; text-align: center; font-size: 16px; -moz-appearance: textfield; }
.hf-qty input::-webkit-outer-spin-button, .hf-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.hf-addtocart-form { display: flex; gap: 14px; align-items: center; margin-top: 20px; flex-wrap: wrap; }

/* Forms */
/* Rounded corners on every form field — the template's typed-input selectors
   (style.css `input[type="text"]` etc.) set border-radius:0 and outrank .hf-input,
   so this same-specificity rule loads later and wins. */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="number"],
input[type="url"],
textarea,
select { border-radius: 8px; }

.hf-input { width: 100%; padding: 11px 14px; margin: 6px 0 14px; border: 1px solid #e2e2e2; border-radius: 8px;
    font-family: var(--ltn__body-font); background: #fff; }
.hf-input:focus { outline: none; border-color: var(--hf-coral); box-shadow: 0 0 0 3px rgba(205,106,98,.12); }
.hf-checkout-form label { font-weight: 600; color: var(--hf-navy); font-size: .9rem; }
.hf-form-intro { color: var(--hf-stone); font-size: .95rem; line-height: 1.7; margin-bottom: 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--hf-cream); }
.hf-check { font-weight: 500 !important; display: inline-flex; align-items: center; gap: 8px; }
.hf-select { padding: 10px 14px; border: 1px solid #e2e2e2; border-radius: 8px; }
/* The nice-select plugin (main.js) replaces the native <select> with a div that
   copies its classes and centers text via line-height, so the box padding above
   must not apply — it squashed the control and misplaced the label/caret. */
.nice-select.hf-select {
    min-width: 210px;
    padding: 0 42px 0 16px;
    line-height: 40px;
    float: none;
    display: inline-block;
    white-space: nowrap;
}
.nice-select.hf-select .list { min-width: 100%; }
.nice-select.hf-select .option { white-space: nowrap; padding-right: 42px; }
.hf-muted { color: #5b636b; font-size: .92rem; }
.hf-linkbtn { background: none; border: none; color: var(--hf-navy); cursor: pointer; padding: 0; text-decoration: underline; }
.hf-btn-outline { border: 1px solid var(--hf-navy); color: var(--hf-navy); background: #fff; }

/* Cart + summary */
.hf-cart-table th { color: var(--hf-navy); border-bottom: 2px solid var(--hf-cream); }
.hf-cart-table td { vertical-align: middle; }
.hf-cart-thumb { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; }
.hf-remove { background: none; border: none; color: var(--hf-stone); cursor: pointer; }
.hf-remove:hover { color: var(--hf-coral); }
.hf-cart-summary { background: var(--hf-cream-soft); border-radius: 14px; padding: 28px; }
.hf-cart-summary .hf-total td { border-top: 2px solid #e6dccb; font-size: 1.1rem; }

/* Order confirmation */
.hf-order-confirm { padding: 20px; }
.hf-confirm-icon { display: inline-flex; width: 84px; height: 84px; align-items: center; justify-content: center;
    border-radius: 50%; background: var(--hf-sage); color: #fff; font-size: 38px; margin-bottom: 20px; }

/* Status pills */
.hf-status { display: inline-block; padding: 4px 12px; border-radius: 999px; font-size: .8rem; font-weight: 600; }
.hf-status-pending { background: #fdf0d5; color: #9a6b00; }
.hf-status-paid { background: #dcefe1; color: #2f7a41; }
.hf-status-fulfilled { background: #dde9f3; color: #20364C; }
.hf-status-cancelled { background: #f3dede; color: #9a3b3b; }
.hf-status-refunded { background: #ece6f3; color: #6a4b9a; }

/* Admin */
.hf-admin-nav { display: flex; gap: 10px; flex-wrap: wrap; }
.hf-stat { background: var(--hf-cream-soft); border-radius: 14px; padding: 24px; text-align: center; margin-bottom: 20px; }
.hf-admin-images { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 10px; }
.hf-admin-image { width: 130px; text-align: center; }
.hf-admin-image img { width: 130px; height: 130px; object-fit: cover; border-radius: 8px; border: 2px solid #eee; }
.hf-admin-image.is-primary img { border-color: var(--hf-coral); }
.hf-admin-image-actions { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; font-size: .8rem; }
.hf-badge { background: var(--hf-coral); color: #fff; border-radius: 999px; padding: 2px 10px; font-size: .75rem; }

/* Category card grid */
.hf-cat-order { font-size: .78rem; font-weight: 700; color: var(--hf-stone); }

/* Page titles */
.page-title { font-weight: 700; color: var(--hf-navy); }
.section-title { font-weight: 700; }

/* ── Admin product modal ── */
.hf-modal-header { background: var(--hf-navy); color: #fff; border-radius: 0; }
.hf-modal-header .btn-close { filter: invert(1) brightness(2); }
.hf-modal-body { background: #FAFAFA; padding: 28px 32px; }
.hf-modal-footer { background: #fff; border-top: 1px solid #EBECEF; padding: 16px 24px; }
.hf-modal-label { font-size: .8125rem; font-weight: 600; color: var(--hf-navy); margin-bottom: 4px; display: block; }

/* ── Admin grid card wrapper ── */
.hf-grid-card {
    background: #fff; border: 1px solid #EBECEF;
    border-radius: 12px; padding: 20px 24px 20px; margin-top: 0;
    overflow: hidden;
}

/* ── DataTables pagination (EIBOffice style) ── */
.hf-dt-bottom { row-gap: 10px; margin-left: 0; margin-right: 0; }
.hf-dt-info, .hf-dt-info .dt-info {
    color: var(--hf-stone); font-size: .8125rem; font-weight: 500; padding-top: 0;
}
.hf-dt-pager .dt-length { margin: 0; display: flex; align-items: center; gap: 6px; }
.hf-dt-pager .dt-length label { margin: 0; font-size: .75rem; font-weight: 500; color: var(--hf-stone); white-space: nowrap; }
.hf-dt-pager .dt-length select { border: 1px solid #EBECEF; border-radius: 6px; padding: 2px 6px; min-width: 52px; font-size: .75rem; color: var(--hf-navy); }
div.dt-container .dt-paging .dt-paging-button {
    min-width: 1.5em; padding: .4em .75em; margin-left: 2px;
    border-radius: 6px; border: 1px solid transparent;
    background: transparent; color: var(--hf-navy) !important;
    font-size: .85rem; font-weight: 500; cursor: pointer;
}
div.dt-container .dt-paging .dt-paging-button:hover { background: var(--hf-cream-soft) !important; border-color: #EBECEF; }
div.dt-container .dt-paging .dt-paging-button.current,
div.dt-container .dt-paging .dt-paging-button.current:hover { background: var(--hf-coral) !important; color: #fff !important; border-color: var(--hf-coral); }
div.dt-container .dt-paging .dt-paging-button.disabled,
div.dt-container .dt-paging .dt-paging-button.disabled:hover { color: #9CA3AF !important; cursor: default; background: transparent !important; }

/* ── Admin grid row action buttons (EIBOffice pattern) ── */
.hf-btn-action {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 6px;
    border: none !important; background: transparent !important;
    box-shadow: none !important; appearance: none;
    cursor: pointer; font-size: 1.1rem; padding: 0;
    transition: background .12s; vertical-align: middle; text-decoration: none;
}
.hf-btn-action:focus, .hf-btn-action:focus-visible { outline: 2px solid rgba(0,0,0,.15); outline-offset: 2px; }
.hf-btn-action--edit   { color: #16a34a; }
.hf-btn-action--edit:hover   { background: #f0fdf4 !important; color: #15803d; }
.hf-btn-action--toggle { color: #d97706; }
.hf-btn-action--toggle:hover { background: #fffbeb !important; color: #b45309; }
.hf-btn-action--delete { color: #dc2626; background: #fef2f2 !important; }
.hf-btn-action--delete:hover { background: #fee2e2 !important; color: #b91c1c; }

/* ── Admin grid table ── */
.hf-admin-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .875rem; }
.hf-admin-table thead th:first-child { border-radius: 8px 0 0 0; }
.hf-admin-table thead th:last-child  { border-radius: 0 8px 0 0; }
.hf-admin-table thead tr { background: var(--hf-navy); }
.hf-admin-table thead th {
    padding: 10px 14px; font-size: .78rem; font-weight: 700;
    text-transform: none; letter-spacing: .01em;
    color: rgba(255,255,255,.85); border-bottom: none; white-space: nowrap;
}
.hf-admin-table thead th span.dt-column-order {
    position: relative !important;
    right: auto !important; top: auto !important; bottom: auto !important;
    display: inline-block; vertical-align: middle;
    margin-left: 8px; width: 12px; height: 1.2em;
}
.hf-admin-table thead th span.dt-column-order::before,
.hf-admin-table thead th span.dt-column-order::after { color: #fff !important; opacity: 0.55 !important; }
.hf-admin-table thead th.dt-ordering-asc span.dt-column-order::before,
.hf-admin-table thead th.dt-ordering-desc span.dt-column-order::after { opacity: 1 !important; }
.hf-admin-table tbody td { padding: 12px 14px; border-bottom: 1px solid #F3F4F6; vertical-align: middle; font-weight: 400; }
.hf-admin-table tbody tr:last-child td { border-bottom: none; }
.hf-admin-table tbody tr:hover td { background: #FAFAFA; }
.hf-admin-table .hf-admin-thumb { width: 44px; height: 44px; object-fit: cover; border-radius: 8px; border: 1px solid #EBECEF; }
.hf-admin-thumb--preview { cursor: zoom-in; transition: opacity .15s, box-shadow .15s; }
.hf-admin-thumb--preview:hover { opacity: .88; box-shadow: 0 0 0 2px var(--hf-coral); }

/* Image preview modal */
.hf-preview-dialog { max-width: min(92vw, 960px); }
.hf-preview-content {
    background: rgba(15,15,25,.92);
    border: none;
    border-radius: 16px;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
.hf-preview-close {
    position: absolute; top: 12px; right: 12px; z-index: 10;
    background: rgba(255,255,255,.12); border: none; border-radius: 50%;
    width: 36px; height: 36px; display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 1.25rem; cursor: pointer; transition: background .15s;
}
.hf-preview-close:hover { background: rgba(255,255,255,.25); }
.hf-preview-body { padding: 52px 24px 24px; text-align: center; }
.hf-preview-img {
    max-width: 100%; max-height: 78vh;
    object-fit: contain; border-radius: 10px;
    box-shadow: 0 8px 40px rgba(0,0,0,.5);
}
.hf-preview-caption { color: rgba(255,255,255,.7); font-size: .88rem; margin-top: 14px; margin-bottom: 0; }

/* ── Admin filter card (EIBOffice pattern) ── */
.hf-filter-card {
    background: #fff; border: 1px solid #EBECEF;
    border-radius: 12px; padding: 20px 24px; margin-bottom: 24px;
}
.hf-filter-card__head {
    display: flex; flex-wrap: wrap; align-items: center;
    justify-content: space-between; gap: 12px; margin-bottom: 20px;
    min-height: 42px;
}
.hf-filter-card__title {
    font-weight: 700; color: var(--hf-navy); font-size: 1.05rem;
    margin: 0; display: flex; align-items: center; gap: 10px;
}
.hf-filter-card__count {
    font-size: .8rem; font-weight: 600; color: var(--hf-stone);
    background: var(--hf-cream-soft); border-radius: 999px; padding: 2px 10px;
}
.hf-filter-grid {
    display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px;
}
.hf-filter-field {
    display: flex; flex-direction: column; gap: 6px;
    flex: 1 1 180px; min-width: 160px;
}
.hf-filter-field--search { flex: 2 1 260px; }
.hf-filter-field--date-range { flex: 2 1 280px; }
.hf-filter-field > label {
    font-size: .8125rem; font-weight: 600; color: var(--hf-navy); margin: 0;
}
.hf-filter-grid .form-control,
.hf-filter-grid .form-select { height: 42px; border-color: #D1D5DB; }
.hf-filter-grid .form-control:focus,
.hf-filter-grid .form-select:focus { border-color: var(--hf-coral); box-shadow: 0 0 0 .2rem rgba(205,106,98,.15); }
.hf-filter-actions { display: flex; align-items: flex-end; gap: 8px; flex: 0 0 auto; }
.hf-filter-divider { border: 0; border-top: 2px solid var(--hf-navy); opacity: 1; margin: 20px 0 0; }
/* ── Grid toolbar buttons ── */
.hf-btn-secondary {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 0 14px; height: 34px; border-radius: 8px; font-size: .8125rem; font-weight: 600;
    border: 1.5px solid #D1D5DB; color: var(--hf-navy); background: #fff;
    cursor: pointer; white-space: nowrap; line-height: 1;
    transition: background .15s, border-color .15s;
}
.hf-btn-secondary:hover { background: #f0f3f6; border-color: var(--hf-navy); }
.hf-btn-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 34px; height: 34px; border-radius: 8px; font-size: 1.05rem;
    border: 1.5px solid #D1D5DB; color: var(--hf-navy); background: #fff;
    cursor: pointer; padding: 0;
    transition: background .15s, border-color .15s;
}
.hf-btn-icon:hover { background: #f0f3f6; border-color: var(--hf-navy); }
.hf-colvis-item { font-size: .8125rem; padding: 6px 12px; cursor: pointer; user-select: none; }
.hf-quick-filters { display: flex; gap: 4px; align-items: center; }
.hf-quick-filter {
    padding: 4px 12px; border-radius: 999px; font-size: .73rem; font-weight: 600;
    border: 1.5px solid #D1D5DB; color: var(--hf-navy); text-decoration: none;
    line-height: 1.5; white-space: nowrap;
    transition: background .15s, border-color .15s, color .15s;
}
.hf-quick-filter:hover { border-color: var(--hf-navy); color: var(--hf-navy); background: #f0f3f6; }
.hf-quick-filter.active { background: var(--hf-navy); border-color: var(--hf-navy); color: #fff; }

/* ── Admin Dashboard ─────────────────────────────────────────────────────── */

/* Clickable KPI card wrapper */
.hf-kpi-link .hf-kpi-card { transition: transform .18s ease, box-shadow .18s ease; }
.hf-kpi-link:hover .hf-kpi-card {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0,0,0,.11);
}
.hf-kpi-link:hover .hf-kpi-card__sub { text-decoration: underline; }

/* KPI cards */
.hf-kpi-card {
    background: #fff; border-radius: 14px; border: 1px solid #E5E7EB;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    padding: 20px; display: flex; gap: 16px; align-items: flex-start; height: 100%;
}
.hf-kpi-card__icon-wrap {
    width: 48px; height: 48px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; font-size: 1.5rem;
}
.hf-kpi-card--green { border-left: 4px solid #059669; }
.hf-kpi-card--navy  { border-left: 4px solid var(--hf-navy); }
.hf-kpi-card--amber { border-left: 4px solid #D97706; }
.hf-kpi-card--coral { border-left: 4px solid var(--hf-coral); }
.hf-kpi-card--red   { border-left: 4px solid #DC2626; }
.hf-kpi-card--blue  { border-left: 4px solid #2563EB; }
.hf-kpi-card--gray  { border-left: 4px solid #6B7280; }
.hf-kpi-card--teal  { border-left: 4px solid #0d9488; }
.hf-kpi-card--green .hf-kpi-card__icon-wrap { background: #D1FAE5; color: #059669; }
.hf-kpi-card--navy  .hf-kpi-card__icon-wrap { background: #DBEAFE; color: var(--hf-navy); }
.hf-kpi-card--amber .hf-kpi-card__icon-wrap { background: #FEF3C7; color: #D97706; }
.hf-kpi-card--coral .hf-kpi-card__icon-wrap { background: #FFE4E1; color: var(--hf-coral); }
.hf-kpi-card--red   .hf-kpi-card__icon-wrap { background: #FEE2E2; color: #DC2626; }
.hf-kpi-card--blue  .hf-kpi-card__icon-wrap { background: #DBEAFE; color: #2563EB; }
.hf-kpi-card--gray  .hf-kpi-card__icon-wrap { background: #F3F4F6; color: #6B7280; }
.hf-kpi-card--teal  .hf-kpi-card__icon-wrap { background: #CCFBF1; color: #0d9488; }
.hf-kpi-card__body-text { flex: 1; min-width: 0; }
.hf-kpi-card__label {
    font-size: .68rem; font-weight: 700; color: #6B7280; margin: 0 0 5px;
    text-transform: uppercase; letter-spacing: .06em;
}
.hf-kpi-card__number {
    font-size: 1.75rem; font-weight: 800; color: var(--hf-navy);
    line-height: 1.1; margin-bottom: 6px;
}
.hf-kpi-card__delta { font-size: .74rem; font-weight: 600; display: block; }
.hf-kpi-card__delta--up      { color: #059669; }
.hf-kpi-card__delta--down    { color: #DC2626; }
.hf-kpi-card__delta--neutral { color: #9CA3AF; }
.hf-kpi-card__sub { font-size: .71rem; color: #9CA3AF; margin-top: 3px; text-decoration: none; }
a.hf-kpi-card__sub:hover { color: var(--hf-coral); }

/* Integration tile cards */
.hf-int-tile { position: relative; }
.hf-int-tile__accent { position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.hf-int-tile__logo {
    width: 48px; height: 40px; border-radius: 10px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.hf-int-tile__logo iconify-icon { display: block; max-width: 100%; }

/* Dashboard card container */
.hf-dash-card {
    background: #fff; border-radius: 14px; border: 1px solid #E5E7EB;
    box-shadow: 0 2px 8px rgba(0,0,0,.06); overflow: hidden;
    display: flex; flex-direction: column;
}
.hf-dash-card__header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 20px; border-bottom: 1px solid #F3F4F6; flex-shrink: 0;
}
.hf-dash-card__title { font-size: .875rem; font-weight: 700; color: var(--hf-navy); margin: 0; }
.hf-dash-card__link  { font-size: .75rem; font-weight: 600; color: var(--hf-coral); text-decoration: none; }
.hf-dash-card__link:hover { text-decoration: underline; }
.hf-dash-card__body { padding: 14px 20px; }

/* Dashboard table (no DataTables) */
.hf-dash-table { margin-bottom: 0 !important; }
.hf-dash-table thead th:first-child { border-radius: 0 !important; }
.hf-dash-table thead th:last-child  { border-radius: 0 !important; }

/* Client modal key-value table */
.hf-client-kv th { font-size:.82rem; font-weight:600; color:var(--hf-navy); width:80px; padding:.35rem .5rem; border:none; }
.hf-client-kv td { font-size:.82rem; color:#374151; padding:.35rem .5rem; border:none; }
.hf-client-kv tr + tr th, .hf-client-kv tr + tr td { border-top:1px solid #F3F4F6; }
.hf-client-order-table thead th { font-size:.74rem; font-weight:600; color:#6B7280; background:#FAFAFA; border:none; padding:.4rem; }
.hf-client-order-table tbody td { font-size:.82rem; border-top:1px solid #F9FAFB; padding:.38rem .4rem; }

/* Order status bar rows */
.hf-stat-bar-row {
    display: flex; align-items: center; gap: 10px; padding: 9px 0;
    text-decoration: none; border-bottom: 1px solid #F9FAFB;
}
.hf-stat-bar-row:last-child { border-bottom: none; }
.hf-stat-bar-row:hover .hf-stat-bar-row__label { color: var(--hf-coral); }
.hf-stat-bar-row__label { font-size: .8125rem; font-weight: 600; color: #374151; flex: 0 0 70px; }
.hf-stat-bar-row__track { flex: 1; height: 6px; background: #F3F4F6; border-radius: 999px; overflow: hidden; }
.hf-stat-bar-row__fill  { height: 100%; border-radius: 999px; min-width: 4px; }
.hf-stat-bar-row__fill--fulfilled { background: #059669; }
.hf-stat-bar-row__fill--paid      { background: #3B82F6; }
.hf-stat-bar-row__fill--pending   { background: #F59E0B; }
.hf-stat-bar-row__fill--cancelled { background: #EF4444; }
.hf-stat-bar-row__fill--refunded  { background: #8B5CF6; }
.hf-stat-bar-row__count { font-size: .8125rem; font-weight: 700; color: #374151; flex: 0 0 22px; text-align: right; }

/* Quick action rows */
.hf-dash-action {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 20px; text-decoration: none; border-bottom: 1px solid #F3F4F6;
    transition: background .12s;
}
.hf-dash-action:last-child { border-bottom: none; }
.hf-dash-action:hover { background: #F9FAFB; }
.hf-dash-action__icon {
    width: 36px; height: 36px; border-radius: 10px; background: #F3F4F6;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.05rem; color: var(--hf-navy); flex-shrink: 0;
    transition: background .12s, color .12s;
}
.hf-dash-action:hover .hf-dash-action__icon { background: var(--hf-navy); color: #fff; }
.hf-dash-action__label { font-size: .875rem; font-weight: 600; color: var(--hf-navy); flex: 1; }
.hf-dash-action__chev  { font-size: .85rem; color: #9CA3AF; }
@media (max-width: 575px) {
    .hf-filter-field, .hf-filter-field--search, .hf-filter-actions { flex: 1 1 100%; min-width: 0; }
    .hf-filter-actions .btn { flex: 1 1 auto; }
}

/* ── Admin shell (EIBOffice-style sidebar layout) ── */
.hfa-body { margin: 0; background: #F5F6FA; font-family: 'Inter', sans-serif; }

/* Sidebar */
.hfa-sidebar {
    position: fixed; inset-block-start: 0; inset-inline-start: -100%;
    width: 15.625rem; height: 100vh;
    background: #fff; border-right: 1px solid #EBECEF;
    z-index: 1000; display: flex; flex-direction: column;
    transition: inset-inline-start .25s;
}
@media (min-width: 1200px) { .hfa-sidebar { inset-inline-start: 0; width: 15.625rem; } }
.hfa-sidebar.sidebar-open { inset-inline-start: 0; }
.hfa-sidebar.active { width: 72px; }
.hfa-sidebar.active .hfa-logo-full { display: none; }
.hfa-sidebar.active .hfa-logo-icon { display: block; }
.hfa-sidebar.active .hfa-sidebar-logo { padding-left: 0; justify-content: center; }
.hfa-sidebar.active .hfa-sidebar-menu a span { display: none; }
.hfa-sidebar.active .hfa-menu-icon { margin-inline-end: 0; }
.hfa-sidebar.active .hfa-sidebar-divider { margin-inline: 8px; }
.hfa-sidebar.active:hover { width: 15.625rem; }
.hfa-sidebar.active:hover .hfa-logo-full { display: block; }
.hfa-sidebar.active:hover .hfa-logo-icon { display: none; }
.hfa-sidebar.active:hover .hfa-sidebar-logo { padding-left: 1.75rem; justify-content: space-between; }
.hfa-sidebar.active:hover .hfa-sidebar-menu a span { display: inline; }
.hfa-sidebar.active:hover .hfa-menu-icon { margin-inline-end: .5rem; }

/* Sidebar logo */
.hfa-sidebar-logo {
    height: 4.5rem; padding: .875rem 1rem .875rem 1.75rem;
    border-bottom: 1px solid #EBECEF;
    display: flex; align-items: center; justify-content: space-between;
}
.hfa-sidebar-logo a { display: flex; align-items: center; }
.hfa-logo-full { max-height: 2.8rem; width: auto; }
.hfa-logo-icon { display: none; max-height: 2rem; width: auto; }
.hfa-close-btn {
    display: none; background: none; border: 1px solid #EBECEF;
    border-radius: 50%; width: 28px; height: 28px;
    align-items: center; justify-content: center; cursor: pointer; font-size: 1rem;
}
@media (max-width: 1199px) { .hfa-close-btn { display: flex; } }

/* Sidebar menu */
.hfa-sidebar-menu-area { flex: 1; overflow-y: auto; padding: .75rem 1rem; }
.hfa-sidebar-menu { list-style: none; margin: 0; padding: 0; }
.hfa-sidebar-menu li a {
    display: flex; align-items: center; gap: .5rem;
    padding: .6rem .75rem; border-radius: 8px;
    font-size: .875rem; font-weight: 500;
    color: #4B5563; text-decoration: none;
    transition: background .15s, color .15s;
}
.hfa-sidebar-menu li a:hover { color: var(--hf-coral); background: #FBF6EE; }
.hfa-sidebar-menu li a.hfa-active { background: var(--hf-coral); color: #fff; }
.hfa-sidebar-menu li a.hfa-active:hover { color: #fff; }
.hfa-menu-icon { font-size: 1.2rem; flex-shrink: 0; margin-inline-end: .25rem; color: var(--hf-honey); }
.hfa-sidebar-menu li a:hover .hfa-menu-icon { color: var(--hf-coral); }
.hfa-sidebar-menu li a.hfa-active .hfa-menu-icon { color: #fff; }
.hfa-sidebar-divider { border-top: 1px solid #EBECEF; margin: .75rem 0; }

/* Main area */
.hfa-main {
    margin-inline-start: 0; min-height: 100vh;
    display: flex; flex-direction: column; transition: margin-inline-start .25s;
}
@media (min-width: 1200px) { .hfa-main { margin-inline-start: 15.625rem; } }
.hfa-main.active { margin-inline-start: 72px; }

/* Top bar */
.hfa-topbar {
    position: sticky; top: 0; z-index: 100;
    background: #fff; border-bottom: 1px solid #EBECEF;
    padding: .75rem 1.5rem;
    display: flex; align-items: center; justify-content: space-between;
    height: 4rem;
}
.hfa-topbar-left { display: flex; align-items: center; gap: 1rem; }
.hfa-topbar-title { font-size: 1rem; font-weight: 600; color: var(--hf-navy); }
.hfa-sidebar-toggle {
    background: none; border: 1px solid #EBECEF; border-radius: 8px;
    width: 38px; height: 38px; display: flex; align-items: center; justify-content: center;
    cursor: pointer; font-size: 1.25rem; color: var(--hf-navy);
}
.hfa-topbar-right { display: flex; align-items: center; gap: .75rem; }
.hfa-viewstore-btn {
    display: flex; align-items: center;
    background: none; border: 1px solid #EBECEF; border-radius: 8px;
    padding: .4rem .9rem; font-size: .85rem; font-weight: 500;
    color: #4B5563; text-decoration: none;
    transition: border-color .15s, color .15s;
}
.hfa-viewstore-btn:hover { border-color: var(--hf-navy); color: var(--hf-navy); }
.hfa-logout-btn {
    display: flex; align-items: center; gap: .4rem;
    background: none; border: 1px solid #EBECEF; border-radius: 8px;
    padding: .4rem .9rem; font-size: .85rem; font-weight: 500;
    color: #4B5563; cursor: pointer; text-decoration: none;
    transition: border-color .15s, color .15s;
}
.hfa-logout-btn:hover { border-color: var(--hf-coral); color: var(--hf-coral); }

/* Content body */
.hfa-body { padding: 1.5rem; flex: 1; }

/* Footer */
.hfa-footer {
    padding: 1rem 1.5rem; background: #fff;
    border-top: 1px solid #EBECEF;
    font-size: .8rem; color: #9CA3AF; margin-top: auto;
}

@media (max-width: 991px) {
    .hf-hero-title { font-size: 2.4rem; }
    .hf-hero-title .hf-script { font-size: 3rem; }
}

/* Footer: force brand navy over the template's near-black section-bg-5 */
.ltn__footer-area .section-bg-5,
.ltn__footer-area .footer-top-area,
.ltn__footer-area .ltn__copyright-area { background-color: var(--hf-navy) !important; }
.ltn__footer-area .ltn__border-top-2 { border-top-color: rgba(255,255,255,.12) !important; }

/* Consistent product-card image box (real photos vary in size) */
.ltn__product-item .product-img > a { display: block; }
.ltn__product-item .product-img > a img {
    width: 100%; height: 260px; object-fit: cover; border-radius: 10px 10px 0 0; background: var(--hf-cream-soft);
}

/* ── Sidebar section labels ───────────────────────────────────────────────── */
.hfa-sidebar-section-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--hf-stone);
    padding: .5rem .75rem .25rem 1.75rem;
    white-space: nowrap;
    overflow: hidden;
    cursor: pointer;
    user-select: none;
}
.hfa-sidebar.active .hfa-sidebar-section-label { opacity: 0; pointer-events: none; }
.hfa-sidebar.active:hover .hfa-sidebar-section-label { opacity: 1; pointer-events: auto; }

/* Section collapse toggle button */
.hfa-section-toggle {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    color: var(--hf-navy);
    cursor: pointer;
    line-height: 1;
    display: flex;
    align-items: center;
    flex-shrink: 0;
    transition: color .15s;
}
.hfa-section-toggle:hover { color: var(--hf-coral); }
.hfa-section-toggle iconify-icon {
    font-size: .85rem;
    transition: transform .22s ease;
}
.hfa-section-group.hfa-collapsed .hfa-section-toggle iconify-icon {
    transform: rotate(-90deg);
}
.hfa-sidebar.active .hfa-section-toggle { display: none; }
.hfa-sidebar.active:hover .hfa-section-toggle { display: flex; }

/* Collapsible section body */
.hfa-section-body {
    overflow: hidden;
    max-height: 600px;
    opacity: 1;
    transition: max-height .25s ease, opacity .18s ease;
}
.hfa-section-group.hfa-collapsed .hfa-section-body {
    max-height: 0 !important;
    opacity: 0;
}

/* ── Platform page utility padding ───────────────────────────────────────── */
.p-20 { padding: 1.25rem !important; }
.p-24 { padding: 1.5rem !important; }

/* ── FAQ page ───────────────────────────────────────────────────────────── */
.hf-faq-group { margin-bottom: 3rem; }
.hf-faq-group__title {
    display: flex; align-items: center; gap: .75rem;
    font-size: 1.15rem; font-weight: 700; color: var(--hf-navy);
    margin-bottom: 1.25rem; padding-bottom: .75rem;
    border-bottom: 2px solid var(--hf-cream);
}
.hf-faq-group__icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; border-radius: 50%;
    background: var(--hf-cream); color: var(--hf-coral);
    font-size: 1rem; flex-shrink: 0;
}
.hf-accordion { border: none; }
.hf-accordion-item {
    border: 1px solid #ede5da !important;
    border-radius: 10px !important; margin-bottom: .6rem;
    overflow: hidden;
}
.hf-accordion-btn {
    font-weight: 600; font-size: .98rem; color: var(--hf-navy) !important;
    background: #fff !important; padding: 1.1rem 1.4rem;
    box-shadow: none !important;
}
.hf-accordion-btn:not(.collapsed) {
    color: var(--hf-coral) !important;
    background: var(--hf-cream-soft) !important;
}
.hf-accordion-btn::after {
    filter: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2320364C'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") !important;
}
.hf-accordion-btn:not(.collapsed)::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23CD6A62'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") !important;
}
.hf-accordion-body {
    font-size: .97rem; line-height: 1.8; color: #3c4a58;
    padding: 1rem 1.4rem 1.25rem; background: var(--hf-cream-soft);
    border-top: 1px solid #ede5da;
}
.hf-faq-contact-cta {
    background: var(--hf-cream-soft); border: 1px solid #e8ddd0;
    border-radius: 20px; padding: 3rem 2.5rem;
}
.hf-faq-contact-cta__icon {
    width: 64px; height: 64px; border-radius: 50%;
    background: var(--hf-cream); color: var(--hf-coral);
    font-size: 1.8rem; display: inline-flex;
    align-items: center; justify-content: center; margin-bottom: 1rem;
}
.hf-faq-contact-cta h4 { color: var(--hf-navy); margin-bottom: .5rem; }
.hf-faq-contact-cta p  { color: var(--hf-stone); max-width: 440px; margin: 0 auto; }

/* ── News pages ─────────────────────────────────────────────────────────── */

/* Listing page hero */
.hf-page-hero,
.hf-news-hero { background: var(--hf-navy); padding: 5rem 0 4.5rem; text-align: center; }
.hf-page-hero__eyebrow,
.hf-news-hero__eyebrow { display: block; color: var(--hf-coral); font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 1rem; }
.hf-page-hero__title,
.hf-news-hero__title { color: #fff; font-size: 3rem; font-weight: 700; margin-bottom: 1rem; line-height: 1.15; }
.hf-page-hero__title:last-child,
.hf-news-hero__title:last-child { margin-bottom: 0; }
.hf-page-hero__sub,
.hf-news-hero__sub { color: rgba(255,255,255,.62); font-size: 1.05rem; max-width: 540px; margin: 0 auto; line-height: 1.7; }

/* Search strip */
.hf-news-search-strip { background: var(--hf-cream-soft); border-bottom: 1px solid #e0d5c8; padding: 1.25rem 0; }
.hf-news-search-form { display: flex; max-width: 500px; margin: 0 auto; border: 1.5px solid #d5cbc0; border-radius: 8px; overflow: hidden; background: #fff; box-shadow: 0 2px 8px rgba(32,54,76,.06); }
.hf-news-search-input { flex: 1; border: none; padding: .72rem 1.1rem; font-size: .95rem; color: var(--hf-navy); background: transparent; outline: none; }
.hf-news-search-btn { padding: .72rem 1.5rem; background: var(--hf-coral); color: #fff; border: none; font-weight: 700; cursor: pointer; font-size: .88rem; letter-spacing: .04em; transition: background .15s; white-space: nowrap; }
.hf-news-search-btn:hover { background: var(--ltn__secondary-color-2); }

/* Article cards */
.hf-news-card { background: #fff; border: 1px solid #e8ddd0; border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; transition: transform .3s ease, box-shadow .3s ease; height: 100%; }
.hf-news-card:hover { transform: translateY(-7px); box-shadow: 0 18px 46px rgba(32,54,76,.13); }
.hf-news-card__img-link { display: block; overflow: hidden; flex-shrink: 0; }
.hf-news-card__img { width: 100%; height: 208px; object-fit: cover; transition: transform .45s ease; display: block; border: 3px solid #fff; }
.hf-news-card:hover .hf-news-card__img { transform: scale(1.05); }
.hf-news-card__placeholder { height: 208px; background: linear-gradient(135deg, var(--hf-cream) 0%, #dfd0bc 100%); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.hf-news-card__body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }
.hf-news-card__meta { font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; color: var(--hf-stone); margin-bottom: .75rem; display: flex; align-items: center; gap: .4rem; }
.hf-news-card__tag { color: var(--hf-coral); font-weight: 700; }
.hf-news-card__title { margin-bottom: .6rem; line-height: 1; }
.hf-news-card__title a { color: var(--hf-navy); font-size: 1.15rem; font-weight: 700; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-decoration: none; }
.hf-news-card__title a:hover { color: var(--hf-coral); }
.hf-news-card__summary { color: var(--hf-stone); font-size: .9rem; line-height: 1.7; flex: 1; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 1.25rem; }
.hf-news-card__foot { display: flex; align-items: center; justify-content: space-between; padding-top: .85rem; border-top: 1px solid #f2e8de; margin-top: auto; }
.hf-news-card__readmore { font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--hf-coral); text-decoration: none; }
.hf-news-card__readmore:hover { color: var(--ltn__secondary-color-2); }
.hf-news-card__readmore::after { content: ' →'; }
.hf-news-card__time { font-size: .74rem; color: var(--hf-stone); }

/* CTA band */
.hf-news-cta { background: var(--hf-navy); padding: 4.5rem 0; }
.hf-news-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.hf-news-cta__text h3 { color: #fff; font-size: 1.9rem; margin-bottom: .4rem; line-height: 1.25; }
.hf-news-cta__text p { color: rgba(255,255,255,.6); margin: 0; font-size: 1.05rem; }

/* Single article hero */
.hf-article-hero { background: var(--hf-navy); padding: 4rem 0 6rem; }
.hf-article-hero__back { display: inline-flex; align-items: center; gap: .4rem; color: rgba(255,255,255,.5); font-size: .82rem; text-decoration: none; margin-bottom: 1.75rem; transition: color .15s; }
.hf-article-hero__back:hover { color: var(--hf-coral); }
.hf-article-hero__eyebrow { color: var(--hf-coral); font-size: .76rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin-bottom: .9rem; display: block; }
.hf-article-hero__title { color: #fff; font-size: 2.75rem; line-height: 1.2; font-weight: 700; max-width: 840px; margin-bottom: 1.75rem; }
.hf-article-hero__byline { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.hf-article-hero__byline-item { color: rgba(255,255,255,.55); font-size: .85rem; display: flex; align-items: center; gap: .35rem; }
.hf-article-hero__byline-item strong { color: rgba(255,255,255,.82); font-weight: 600; }
.hf-article-hero__dot { color: rgba(255,255,255,.3); }

/* Feature image pull-up */
.hf-article-img-wrap { margin-top: -4rem; margin-bottom: 3.5rem; }
.hf-article-img { width: 100%; border-radius: 16px; box-shadow: 0 28px 70px rgba(0,0,0,.2); display: block; max-height: 500px; object-fit: cover; border: 3px solid #fff; }

/* Prose body */
.hf-article-body { padding: 3rem 0 4.5rem; }
.hf-prose { max-width: 720px; margin: 0 auto; }
.hf-prose p { font-size: 1.08rem; line-height: 1.9; color: #2e3a46; margin-bottom: 1.5rem; }
.hf-prose h2 { font-size: 1.55rem; color: var(--hf-navy); margin: 2.75rem 0 1rem; font-weight: 700; line-height: 1.3; }
.hf-prose img { max-width: 100%; border: 3px solid #fff; border-radius: 12px; box-shadow: 0 10px 30px rgba(32,54,76,.14); }
.hf-prose-divider { border: none; border-top: 2px solid var(--hf-cream); margin: 3rem auto; max-width: 120px; }

/* Related articles */
.hf-related-section { background: var(--hf-cream-soft); padding: 5rem 0 5.5rem; }
.hf-related-section__heading { font-size: 1.7rem; color: var(--hf-navy); margin-bottom: .25rem; }

/* User-account (avatar) dropdown: same panel treatment */
.ltn__drop-menu ul ul,
.ltn__drop-menu.user-menu > ul > li > ul {
    background-color: #ffffff; border-color: #e8ddd0;
    border-radius: 12px; overflow: hidden; box-shadow: 0 12px 30px rgba(32,54,76,.18);
    padding: 6px 8px;
}
.ltn__drop-menu ul ul li a,
.ltn__drop-menu ul ul li .hf-linkbtn {
    color: var(--hf-navy) !important; display: block; width: 100%;
    text-align: left; text-decoration: none; border-radius: 8px; padding: 8px 14px;
}
.ltn__drop-menu ul ul li a:hover,
.ltn__drop-menu ul ul li .hf-linkbtn:hover {
    background-color: var(--hf-coral) !important; color: #ffffff !important;
}

/* Contact page */
.hf-contact-intro { background: var(--hf-cream-soft); border: 1px solid #e8ddd0; border-radius: 14px; padding: 2.25rem 2.5rem 2rem; margin-bottom: 3.5rem; }
.hf-contact-intro__lead { text-align: center; max-width: 640px; margin: 1.25rem auto 1.5rem; font-size: 1.05rem; line-height: 1.8; }
.hf-contact-intro__tips { list-style: none; margin: 0 auto; padding: 0; max-width: 640px; }
.hf-contact-intro__tips li { position: relative; padding-left: 1.6rem; margin-bottom: .9rem; line-height: 1.7; }
.hf-contact-intro__tips li:last-child { margin-bottom: 0; }
.hf-contact-intro__tips li::before { content: ''; position: absolute; left: 0; top: .55em; width: 8px; height: 8px; border-radius: 50%; background: var(--hf-coral); }
.hf-contact-intro__tips li strong { color: var(--hf-navy); }
.hf-contact-info .hf-contact-intro__tips { margin: 1.25rem 0 1.5rem; }
.hf-contact-info .hf-contact-intro__tips li { font-size: .95rem; }
.hf-hp { position: absolute !important; left: -9999px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }
.ltn__contact-message-area .hf-checkout-form .hf-flourish::after,
.ltn__contact-message-area .hf-contact-info .hf-flourish::after {
    width: 100%; margin-left: 0; margin-right: 0;
}
.ltn__contact-message-area .hf-contact-info .icon-envelope { color: var(--hf-coral); }
.ltn__contact-message-area .hf-input { border: 1.5px solid var(--hf-coral); }
.ltn__contact-message-area .hf-input:focus {
    border-color: var(--hf-coral); box-shadow: 0 0 0 3px rgba(205,106,98,.22);
}

/* Responsive */
@media (max-width: 767px) {
    .hf-page-hero,
    .hf-news-hero { padding: 3.5rem 0 3rem; }
    .hf-page-hero__title,
    .hf-news-hero__title { font-size: 2rem; }
    .hf-article-hero { padding: 3rem 0 5rem; }
    .hf-article-hero__title { font-size: 1.85rem; }
    .hf-article-img-wrap { margin-top: -2.5rem; }
    .hf-news-cta__inner { flex-direction: column; text-align: center; }
    .hf-news-cta__text h3 { font-size: 1.5rem; }
}
