.storefinder-index-index .page-main {
    max-width: 100%;
}

.storefinder-index-index .form-item {
    display: block;
    vertical-align: top;
    position: relative;
}

.storefinder-index-index .form-label {
    color: #515151;
    position: absolute;
    pointer-events: none;
    left: 12px;
    right: 12px;
    top: 2px;
    white-space: nowrap;
    overflow: hidden;
    line-height: 40px;
    transition: .3s
}

.storefinder-index-index input.form-input.active,input.form-input:focus {
    padding-top: 18px
}

.storefinder-index-index input.form-input.active~.form-label,input.form-input:focus~.form-label {
    top: -7px;
    font-size: 10px
}


#find-store-search {
    max-width: 500px;
}

#find-store-search label {
    display:block;
}

#find-store-search h3 {
    display:block;
}

#find-store-search .input-box {
    display: inline-block;
    clear: both;
    float: left;
    padding-right: 10px;
    width: 310px;
}

#find-store-search .input-box input {
    min-width: 250px;
}

#find-store-search button {
    padding: 13px 10px;
    margin: 0;
    vertical-align: top;
}

.storefinder-index-index .location-type-selection.location-type-selection--select { display: none; }

/* === Location type pill filter === */

.storefinder-index-index .location-type-filter {
    margin-top: 16px;
    text-align: center;
}

.storefinder-index-index .location-type-pills {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

.storefinder-index-index .type-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 20px;
    border-radius: 999px;
    border: 1.5px solid #000;
    background: transparent;
    cursor: pointer;
    font-size: 14px;
    color: #000;
    line-height: 1.4;
    transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
}

.storefinder-index-index .type-pill.type-pill--active {
    background: #000;
    color: #fff;
    border-color: #000;
}

.storefinder-index-index .type-pill:focus-visible {
    outline: 3px solid #ccc;
    outline-offset: 3px;
}

/* MOBILE STYLES */

@media only screen and (max-width: 450px) {

    .storefinder-index-index .location-type-filter { display: none; }
    .storefinder-index-index .location-type-selection.location-type-selection--select { display: block; }

    .storefinder-index-index .location-type-selection__title {
        font-weight: 600;
        margin: 10px 0 8px;
        text-align: center;
    }

    .storefinder-index-index .location-type-selection__select {
        width: 100%;
        height: 48px;
        padding: 0 12px;
        border: 2px solid #000;
        border-radius: 6px;
        background: #fff;
        font-size: 16px;
    }

    #find-store-search label {
        text-align: center;
    }

    #find-store-search .input-box {
        width:calc(100% - 20px);
        padding:0 10px 10px;
    }

    #find-store-search button {
        width: calc(100% - 20px);
        margin: 0 10px;
    }

}
/* =========================================================
   2026 NEW THEME — location detail page
   Applied when body has .sf-theme-2026 class
   ========================================================= */

/* --- Temp closed banner --- */
.sf-theme-2026 .sf-temp-closed-banner {
    background: #d0021b;
    color: #fff;
    padding: 12px 16px;
    border-radius: 6px;
    margin-bottom: 16px;
    font-size: 15px;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* --- Opening times collapse toggle --- */
.sf-theme-2026 .store-finder--location-info--opening-times-section .store-details-title.times-toggle-btn {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    user-select: none;
}
.sf-theme-2026 .store-finder--location-info--opening-times-section .times-chevron,
.sf-theme-2026 .sf-primary-services .times-chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    min-width: 20px;
    border: 1.5px solid currentColor;
    border-radius: 50%;
    flex-shrink: 0;
    transition: none;
}
.sf-theme-2026 .store-finder--location-info--opening-times-section .times-chevron::after,
.sf-theme-2026 .sf-primary-services .times-chevron::after {
    content: '';
    display: block;
    width: 4px;
    height: 4px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(-45deg); /* points UP — times are visible */
    margin-top: 2px;
    transition: transform 0.3s ease;
}
.sf-theme-2026 .store-finder--location-info--opening-times-section.is-closed .times-chevron::after,
.sf-theme-2026 .sf-primary-services.is-closed .times-chevron::after {
    transform: rotate(135deg); /* points DOWN — times are hidden */
    margin-top: -2px;
}
/* Animated collapse — smooth max-height transition */
.sf-theme-2026 .store-finder--location-info--opening-times-section.collapsible .store-finder--location--opening-times,
.sf-theme-2026 .store-finder--location-info--opening-times-section.collapsible .opening-times-message {
    max-height: 600px;
    overflow: hidden;
    opacity: 1;
    transition: max-height 0.35s ease, opacity 0.3s ease;
}
.sf-theme-2026 .store-finder--location-info--opening-times-section.collapsible.is-closed .store-finder--location--opening-times,
.sf-theme-2026 .store-finder--location-info--opening-times-section.collapsible.is-closed .opening-times-message {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
}

/* --- About location block --- */
.sf-theme-2026 .sf-about-location {
    background: #f6f8fa;
    border-radius: 8px;
    padding: 20px 24px;
    margin: 20px 0;
}
.sf-theme-2026 .sf-about-location .store-details-title {
    margin-top: 0;
}

/* --- Nearby stores grid --- */
.sf-theme-2026 .sf-nearby-stores {
    margin: 24px 0;
}
.sf-theme-2026 .sf-nearby-stores__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
.sf-theme-2026 .sf-nearby-store-card {
    border: 1px solid #d0d7de;
    border-radius: 8px;
    padding: 16px;
    cursor: pointer;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
    background: #fff;
}
.sf-theme-2026 .sf-nearby-store-card:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
    border-color: #a0aab4;
}
.sf-theme-2026 .sf-nearby-store-card__name {
    font-weight: 700;
    font-size: 15px;
    margin-bottom: 4px;
}
.sf-theme-2026 .sf-nearby-store-card__city {
    font-size: 13px;
    color: #555;
    margin-bottom: 6px;
}
.sf-theme-2026 .sf-nearby-store-card__distance {
    font-size: 13px;
    color: #777;
    margin-bottom: 10px;
}
.sf-theme-2026 .sf-nearby-store-card__link {
    font-size: 13px;
    font-weight: 600;
    text-decoration: underline;
}

/* --- Directions button external link --- */
.sf-theme-2026 .button-directions--external {
    display: inline-block;
    text-decoration: none;
}

/* --- Trustist: hide review items, keep rating widget (TG-2634) --- */
.sf-theme-2026 .store-finder--trustist {
    margin-top: 15px;
    text-align: center;
}

/* Mobile adjustments for 2026 theme */
@media (max-width: 767px) {
    .sf-theme-2026 .sf-nearby-stores__grid {
        grid-template-columns: 1fr;
    }
}

/* --- CMS content blocks (TG-2628) --- */
.sf-theme-2026 .sf-content-block {
    margin: 20px 0;
}

/* --- FAQ accordion (TG-2633) --- */
.sf-theme-2026 .sf-faq-section,
#sf-location-faqs .sf-faq-section {
    margin: 24px auto;
    max-width: 720px;
    width: 100%;
    text-align: center;
}
.sf-theme-2026 .sf-faq-list,
#sf-location-faqs .sf-faq-list {
    border-top: 1px solid #d0d7de;
}
.sf-theme-2026 .sf-faq-item,
#sf-location-faqs .sf-faq-item {
    border-bottom: 1px solid #d0d7de;
}
.sf-theme-2026 .sf-faq-item__question,
#sf-location-faqs .sf-faq-item__question {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 14px 0;
    cursor: pointer;
    font-weight: 600;
    font-size: 15px;
    list-style: none;
    user-select: none;
    text-align: center;
}
.sf-theme-2026 .sf-faq-item__question::-webkit-details-marker,
#sf-location-faqs .sf-faq-item__question::-webkit-details-marker { display: none; }
.sf-theme-2026 .sf-faq-item__question::after,
#sf-location-faqs .sf-faq-item__question::after {
    content: '−';
    font-size: 20px;
    font-weight: 400;
    flex-shrink: 0;
    margin-left: 12px;
}
.sf-theme-2026 .sf-faq-item:not([open]) .sf-faq-item__question::after,
#sf-location-faqs .sf-faq-item:not([open]) .sf-faq-item__question::after {
    content: '+';
}
.sf-theme-2026 .sf-faq-item__answer,
#sf-location-faqs .sf-faq-item__answer {
    padding: 0 0 16px;
    font-size: 14px;
    line-height: 1.6;
    color: #444;
}

/* === 2026 THEME STYLES === */
body.sf-theme-2026 #store-finder-results .store-finder--location-info {
    float: left;
    width: 55%;
    padding-right: 24px;
    box-sizing: border-box;
}

body.sf-theme-2026 #store-finder-results .store-finder--location-sidebar {
    float: right;
    width: 45%;
    box-sizing: border-box;
    padding-left: 8px;
}

body.sf-theme-2026 .store-finder--location-map--map {
    height: 480px !important;
}

.sf-theme-2026 .sf-location-type-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.sf-theme-2026 .sf-location-type-header__left {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sf-theme-2026 .sf-location-type-label {
    font-weight: 700;
    font-size: 14px;
    color: #002d74;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sf-theme-2026 .sf-location-distance,
.sf-theme-2026 .sf-nearby-store-card__distance {
    font-size: 14px;
    color: #333;
    display: flex;
    align-items: center;
    gap: 6px;
}

.sf-theme-2026 .sf-location-distance__icon,
.sf-theme-2026 .sf-nearby-store-card__distance-icon {
    flex-shrink: 0;
    width: 10px;
    height: 15px;
    display: inline-block;
    background-color: var(--sf-primary-color, #002d74);
    -webkit-mask-image: url('../images/pin-solid.svg');
    mask-image: url('../images/pin-solid.svg');
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
    vertical-align: middle;
}

.sf-theme-2026 .store-finder--location-name {
    font-size: 22px;
    font-weight: 700;
    color: #002d74;
    margin: 8px 0 12px;
    line-height: 1.3;
}

.sf-theme-2026 .sf-open-today {
    font-size: 15px;
    color: #333;
    margin: 0 0 12px;
}

.sf-theme-2026 .sf-open-today strong {
    color: #002d74;
}

/* Inline address line (pin icon + single-line address) */
.sf-theme-2026 .sf-location-address-inline {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 15px;
    color: #333;
    margin-bottom: 20px;
}

.sf-theme-2026 .sf-location-address-inline__icon {
    flex-shrink: 0;
    width: 16px;
    height: 20px;
    margin-top: 1px;
    display: inline-block;
}

.sf-theme-2026 .sf-location-address-inline__icon::before {
    content: '📍';
    font-size: 15px;
}

/* Action buttons row */
.sf-theme-2026 .sf-location-actions {
    display: flex;
    gap: 12px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.sf-theme-2026 .sf-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 0;
    min-width: 140px;
    height: 52px;
    padding: 0 20px;
    font-size: 15px;
    font-weight: 700;
    border-radius: 4px;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
    box-sizing: border-box;
    letter-spacing: 0.01em;
}

.sf-theme-2026 .sf-action-btn--primary {
    background: #002d74;
    color: #fff;
    border: 2px solid #002d74;
}

.sf-theme-2026 .sf-action-btn--primary:hover,
.sf-theme-2026 .sf-action-btn--primary:focus {
    background: #001e52;
    border-color: #001e52;
    color: #fff;
    text-decoration: none;
}

.sf-theme-2026 .sf-action-btn--secondary {
    background: #004587;
    color: #fff;
    border: 2px solid #004587;
}

.sf-theme-2026 .sf-action-btn--secondary:hover,
.sf-theme-2026 .sf-action-btn--secondary:focus {
    background: #002d74;
    border-color: #002d74;
    color: #fff;
    text-decoration: none;
}

.sf-theme-2026 .sf-action-btn--outline {
    background: #fff;
    color: #002d74;
    border: 2px solid #002d74;
}

.sf-theme-2026 .sf-action-btn--outline:hover,
.sf-theme-2026 .sf-action-btn--outline:focus {
    background: #f0f4ff;
    text-decoration: none;
    color: #002d74;
}

@media (max-width: 480px) {
    .sf-theme-2026 .sf-location-actions {
        flex-direction: column;
    }
    .sf-theme-2026 .sf-action-btn {
        flex: 1 1 100%;
    }
}

.sf-theme-2026 .store-finder--location-info section {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}

.sf-theme-2026 .sf-location-details--new-theme h2.store-details-title {
    display: none;
}

.sf-theme-2026 .sf-location-details--new-theme {
    margin-bottom: 0;
}

.sf-theme-2026 .sf-location-details--new-theme address {
    font-style: normal;
    font-size: 15px;
    color: #333;
    line-height: 1.5;
    padding-left: 24px;
    position: relative;
    white-space: pre-line;
    margin-bottom: 12px;
}

.sf-theme-2026 .sf-location-details--new-theme address::before {
    content: '📍';
    position: absolute;
    left: 0;
    top: 2px;
    font-size: 14px;
}

.sf-theme-2026 .sf-location-details--new-theme > div {
    color: #444;
    font-size: 14px;
    line-height: 1.6;
}

.sf-theme-2026 .sf-location-details--new-theme > div > div {
    margin-bottom: 4px;
}

.sf-theme-2026 .button-directions--external,
.sf-theme-2026 .button-directions {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    border-radius: 4px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    transition: opacity 0.15s, background-color 0.15s, color 0.15s;
    min-width: 160px;
    margin-top: 12px;
}

.sf-theme-2026 .button-directions {
    background: transparent;
    border: 2px solid #002d74;
    color: #002d74;
}

.sf-theme-2026 .button-directions--external {
    background: transparent;
    border: 2px solid #002d74;
    color: #002d74;
}

.sf-theme-2026 .button-directions--external:hover,
.sf-theme-2026 .button-directions:hover {
    background: #002d74;
    color: #fff;
}

.sf-theme-2026 .store-finder--location-info .ecom-wrapper {
    margin-top: 0;
}

.sf-theme-2026 .store-finder--location-info .ecom-wrapper.view .ecommerce-actions,
.sf-theme-2026 .store-finder--location-info .ecom-wrapper.list .ecommerce-actions {
    background: #fff;
    border: none;
    padding: 0;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.sf-theme-2026 .store-finder--location-info .ecommerce-description {
    width: 100%;
    margin: 0 0 8px;
    color: #333;
    font-size: 14px;
    font-weight: 400;
}

.sf-theme-2026 .store-finder--location-info .ecom-wrapper .action,
.sf-theme-2026 .store-finder--location-info .ecom-wrapper a {
    background: #002d74;
    color: #fff;
    border: 2px solid #002d74;
    border-radius: 4px;
    font-weight: 700;
    padding: 12px 24px;
    font-size: 15px;
    text-decoration: none;
    margin: 0;
    min-width: 160px;
    text-align: center;
}

.sf-theme-2026 .sf-location-opening-times table {
    width: 100%;
    border-collapse: collapse;
}

/* Reset any alternating/base shading on all list items */
body.sf-theme-2026 .store-finder--location--opening-times li,
body.sf-theme-2026 .store-finder--location--opening-times li:nth-child(odd),
body.sf-theme-2026 .store-finder--location--opening-times li:nth-child(even) {
    display: flex;
    align-items: baseline;
    gap: 0;
    padding: 9px 8px;
    font-size: 15px;
    color: #333;
    border: none;
    background: none !important;
    background-color: transparent !important;
    font-weight: normal;
    list-style: none;
}

/* Reset float on opening-time for new theme */
body.sf-theme-2026 .store-finder--location--opening-times li .opening-time {
    float: none;
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
}

/* Only today gets a shaded background */
body.sf-theme-2026 .store-finder--location--opening-times li.today {
    background: #eef1f7 !important;
    background-color: #eef1f7 !important;
    font-weight: 700;
    color: #002d74;
}

body.sf-theme-2026 .store-finder--location--opening-times li.today .opening-time,
body.sf-theme-2026 .store-finder--location--opening-times li.today .opening-time--start,
body.sf-theme-2026 .store-finder--location--opening-times li.today .opening-time--finish,
body.sf-theme-2026 .store-finder--location--opening-times li.today .opening-time--separator,
body.sf-theme-2026 .store-finder--location--opening-times li.today .opening-time--bank-holiday-label {
    color: #002d74;
}

/* Colon after day label */
.sf-theme-2026 .store-finder--location--opening-times .sf-opening-day-label::after {
    content: ':';
    margin-right: 6px;
}

.sf-theme-2026 .store-finder--location--opening-times .opening-time {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
}

.sf-theme-2026 .store-finder--location--opening-times ul {
    padding: 0;
    margin: 0;
    list-style: none;
}

.sf-theme-2026 .store-finder--location-info--opening-times-section h2.store-details-title {
    font-size: 17px;
    font-weight: 700;
    color: #002d74;
}

.sf-theme-2026 .sf-nearby-stores {
    margin: 32px 0;
}

.sf-theme-2026 .sf-nearby-stores .store-details-title {
    text-align: center;
    margin-bottom: 8px;
}

.sf-theme-2026 .sf-nearby-stores__subtitle {
    text-align: center;
    color: #444;
    font-size: 15px;
    margin: 0 0 20px;
}

.sf-theme-2026 .sf-nearby-stores__cta-wrap {
    text-align: center;
    margin-top: 24px;
}

#store-finder-results .sf-theme-2026 .sf-nearby-stores__cta,
.sf-theme-2026 .sf-nearby-stores__cta {
    display: inline-block;
    background: var(--sf-primary-color, #002d74);
    color: #fff !important;
    font-weight: 700;
    font-size: 15px;
    padding: 10px 15px !important;
    min-width: auto !important;
    border-radius: 3px;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: opacity 0.2s;
}

#store-finder-results .sf-theme-2026 .sf-nearby-stores__cta:hover,
.sf-theme-2026 .sf-nearby-stores__cta:hover {
    opacity: 0.88;
    color: #fff;
}

.sf-theme-2026 .sf-nearby-stores__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.sf-theme-2026 .sf-nearby-store-card {
    position: relative;
    border: 1px solid #c8d0e0;
    border-radius: 4px;
    padding: 16px;
    cursor: pointer;
    transition: border-color 0.2s, box-shadow 0.2s;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Shop (loc_type 1) card gets brand primary colour background */
.sf-theme-2026 .sf-nearby-store-card--shop {
    background: var(--sf-primary-color, #002d74);
    border-color: var(--sf-primary-color, #002d74);
    color: #fff;
}

.sf-theme-2026 .sf-nearby-store-card--shop .sf-nearby-store-card__type,
.sf-theme-2026 .sf-nearby-store-card--shop .sf-nearby-store-card__name,
.sf-theme-2026 .sf-nearby-store-card--shop .sf-nearby-store-card__address,
.sf-theme-2026 .sf-nearby-store-card--shop .sf-nearby-store-card__phone,
.sf-theme-2026 .sf-nearby-store-card--shop .sf-nearby-store-card__distance-label,
.sf-theme-2026 .sf-nearby-store-card--shop strong {
    color: #fff;
}

.sf-theme-2026 .sf-nearby-store-card--shop .sf-nearby-store-card__header-sep {
    color: rgba(255,255,255,0.5);
}

.sf-theme-2026 .sf-nearby-store-card--shop:hover {
    filter: brightness(1.1);
    border-color: var(--sf-primary-color, #002d74);
    box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}

/* Brand logos in nearby cards — inline in header row, pushed to right */
.sf-theme-2026 .sf-nearby-brand-logo {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
}

.sf-theme-2026 .sf-nearby-brand-logo img {
    height: 24px;
    width: auto;
    display: block;
}

/* On shop (dark bg) cards, add a light pill around the logo for contrast */
.sf-theme-2026 .sf-nearby-store-card--shop .sf-nearby-brand-logo {
    background: #fff;
    border-radius: 4px;
    padding: 3px 6px;
}

.sf-theme-2026 .sf-nearby-store-card:hover {
    border-color: #002d74;
    box-shadow: 0 2px 8px rgba(0, 45, 116, 0.12);
}

.sf-theme-2026 .sf-nearby-store-card__header {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #333;
    margin-bottom: 4px;
    flex-wrap: nowrap;
}

.sf-theme-2026 .sf-nearby-store-card__type {
    font-weight: 700;
    text-transform: uppercase;
    font-size: 12px;
    color: #002d74;
    letter-spacing: 0.04em;
}

.sf-theme-2026 .sf-nearby-store-card__header-sep {
    color: #c8d0e0;
    font-weight: 400;
}

.sf-theme-2026 .sf-nearby-store-card__distance-label {
    font-size: 12px;
    color: #333;
}

.sf-theme-2026 .sf-nearby-store-card__name {
    font-weight: 700;
    font-size: 15px;
    color: #002d74;
    margin: 4px 0 2px;
}

.sf-theme-2026 .sf-nearby-store-card__address {
    font-size: 13px;
    color: #555;
    line-height: 1.4;
}

.sf-theme-2026 .sf-nearby-store-card__phone {
    font-size: 13px;
    color: #555;
    line-height: 1.4;
    margin-top: 2px;
}

.sf-theme-2026 .sf-nearby-store-card--shop .sf-nearby-store-card__address,
.sf-theme-2026 .sf-nearby-store-card--shop .sf-nearby-store-card__phone {
    color: rgba(255,255,255,0.85);
}

.sf-theme-2026 .sf-nearby-store-card__link,
.sf-theme-2026 .sf-nearby-store-card__city {
    display: none;
}

.sf-theme-2026 .sf-about-location {
    border: 1px solid #c8d0e0;
    border-radius: 4px;
    padding: 24px 28px;
    margin: 20px 0;
    background: #fff;
}

.sf-theme-2026 .sf-about-location .store-details-title {
    text-align: center;
    font-size: 20px;
    color: #002d74;
    font-weight: 700;
    margin: 0 0 16px;
}

.sf-theme-2026 .sf-about-location h3,
.sf-theme-2026 .sf-content-block h2,
.sf-theme-2026 .sf-content-block h3,
.sf-theme-2026 .sf-content-block h4 {
    color: #002d74;
    font-weight: 700;
}

.sf-theme-2026 .sf-about-location p,
.sf-theme-2026 .sf-content-block p,
.sf-theme-2026 .sf-faq-item__answer {
    color: #333;
}

.sf-theme-2026 .sf-content-block {
    margin: 20px 0;
    color: #444;
    line-height: 1.6;
}

.sf-theme-2026 .sf-content-block img:not(.sf-cms-promo__img),
.sf-theme-2026 .sf-about-location img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
}

.sf-theme-2026 .sf-faq-section .store-details-title {
    font-size: 20px;
    color: #002d74;
    font-weight: 700;
    margin-bottom: 20px;
    text-align: center;
}

.sf-theme-2026 .sf-location-fullwidth .sf-faq-section {
    max-width: 720px;
    margin: 40px auto 0;
    width: 100%;
    text-align: center;
}

.sf-theme-2026 .sf-faq-item {
    margin-bottom: 20px;
    border: none;
}

.sf-theme-2026 .sf-faq-item[open],
.sf-theme-2026 .sf-faq-item:not([open]) {
}

.sf-theme-2026 .sf-faq-item summary {
    list-style: none;
    cursor: default;
}

.sf-theme-2026 .sf-faq-item summary::-webkit-details-marker {
    display: none;
}

.sf-theme-2026 .sf-faq-item__question {
    font-weight: 700;
    font-size: 15px;
    color: #002d74;
    padding: 0;
    margin-bottom: 4px;
    cursor: default;
    text-align: center;
    justify-content: center;
}

.sf-theme-2026 .sf-faq-item__question::after {
    display: none;
}

.sf-theme-2026 .sf-faq-item__answer {
    padding: 0;
    color: #333;
    font-size: 15px;
    line-height: 1.6;
    text-align: center;
}

.sf-theme-2026 .sf-faq-list {
    border-top: none;
}

.sf-theme-2026 .store-details-title {
    font-size: 17px;
    font-weight: 700;
    color: #002d74;
    margin: 0 0 12px;
    text-align: center !important;
}

@media (max-width: 767px) {
    body.sf-theme-2026 #store-finder-results .store-finder--location-info,
    body.sf-theme-2026 #store-finder-results .store-finder--location-sidebar {
        float: none;
        width: 100%;
        padding: 0;
    }

    body.sf-theme-2026 #store-finder-results > div {
        display: flex;
        flex-direction: column;
    }

    body.sf-theme-2026 #store-finder-results .store-finder--location-sidebar {
        order: -1;
    }

    body.sf-theme-2026 .store-finder--location-map--map {
        height: 260px !important;
    }

    .sf-theme-2026 .store-finder--location-name {
        font-size: 20px;
    }

    .sf-theme-2026 .sf-location-details--new-theme .button-directions--external,
    .sf-theme-2026 .sf-location-details--new-theme .button-directions,
    .sf-theme-2026 .store-finder--location-info .ecom-wrapper a {
        display: block;
        width: 100%;
        margin-bottom: 12px;
        text-align: center;
    }

    .sf-theme-2026 .store-finder--location-info .ecom-wrapper.view .ecommerce-actions,
    .sf-theme-2026 .store-finder--location-info .ecom-wrapper.list .ecommerce-actions {
        display: block;
    }

    .sf-theme-2026 .sf-nearby-stores__grid {
        grid-template-columns: 1fr;
    }

    .sf-theme-2026 .sf-nearby-stores .store-details-title {
        display: block;
        text-align: center;
        font-size: 20px;
        color: #002d74;
        margin-bottom: 8px;
    }

    .sf-theme-2026 .sf-nearby-stores .sf-nearby-stores__subtitle {
        text-align: center;
        color: #555;
        font-size: 14px;
        margin-bottom: 20px;
        display: block;
    }

    .sf-theme-2026 .sf-nearby-stores__cta {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        margin: 20px auto 0;
        background: #002d74;
        color: #fff;
        border: 2px solid #002d74;
        border-radius: 4px;
        padding: 12px 24px;
        font-size: 15px;
        font-weight: 700;
    }

    .sf-theme-2026 .sf-faq-item summary,
    .sf-theme-2026 .sf-faq-item__question {
        cursor: pointer;
    }

    .sf-theme-2026 .sf-faq-item__question::after {
        display: inline;
    }
}

/* --- Primary services linked cards (TG-2630) --- */
.sf-theme-2026 .sf-primary-services {
    margin: 16px 0;
}

/* Toggle heading — same pattern as opening times */
.sf-theme-2026 .sf-primary-services .store-details-title.times-toggle-btn {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    user-select: none;
    margin-bottom: 12px;
}

/* Animated collapse */
.sf-theme-2026 .sf-primary-services.collapsible .sf-primary-services__list {
    max-height: 800px;
    overflow: hidden;
    opacity: 1;
    transition: max-height 0.35s ease, opacity 0.3s ease;
}
.sf-theme-2026 .sf-primary-services.collapsible.is-closed .sf-primary-services__list {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
}
.sf-theme-2026 .sf-primary-services__list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.sf-theme-2026 .sf-primary-service-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 18px;
    border: 1px solid #c8d0e0;
    border-radius: 4px;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s, background 0.2s;
    background: #fff;
}
.sf-theme-2026 .sf-primary-service-link:hover {
    border-color: currentColor;
    background: #f6f8fa;
}
.sf-theme-2026 .sf-primary-service-link__name {
    font-weight: 600;
    font-size: 15px;
}
.sf-theme-2026 .sf-primary-service-link__arrow {
    font-size: 18px;
    opacity: 0.6;
}

/* --- SSR location block (hidden, SEO only) --- */
.sf-ssr-location { display: none !important; }

/* --- TG-2623: Static map with Open in Maps overlay (new theme) --- */
.sf-theme-2026 .sf-map-new-theme {
    position: relative;
    border-radius: 4px;
    overflow: hidden;
}
.sf-theme-2026 .sf-static-map-wrapper {
    position: relative;
    width: 100%;
    line-height: 0;
}
.sf-theme-2026 .sf-static-map-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    min-height: 260px;
}
.sf-theme-2026 .sf-open-in-maps-btn {
    position: absolute;
    top: 12px;
    right: 12px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255,255,255,0.92);
    border: 1px solid rgba(0,0,0,0.15);
    border-radius: 20px;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 600;
    color: #333;
    text-decoration: none;
    box-shadow: 0 1px 4px rgba(0,0,0,0.18);
    transition: background 0.15s;
}
.sf-theme-2026 .sf-open-in-maps-btn:hover {
    background: #fff;
    color: #000;
}
.sf-theme-2026 .sf-open-in-maps-btn__icon::before {
    content: '🗺️';
    font-size: 14px;
}
/* Hide legacy map heading for new theme */
.sf-theme-2026 .sf-map-new-theme .map-heading-wrapper { display: none; }
/* Map container in sidebar for new theme */
.sf-theme-2026 .store-finder--location-sidebar .sf-map-new-theme {
    border: 1px solid #c8d0e0;
}

/* "View Map" overlay button on static map */
.sf-theme-2026 .sf-activate-map-btn {
    position: absolute;
    top: 12px;
    right: 12px;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    background: rgba(0, 45, 116, 0.90);
    border: none;
    border-radius: 20px;
    padding: 8px 10px;
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0,0,0,0.28);
    transition: background 0.15s;
    white-space: nowrap;
    z-index: 2;
}
.sf-theme-2026 .sf-activate-map-btn:hover {
    background: rgba(0,45,116,1);
}
.sf-theme-2026 .sf-activate-map-btn__icon {
    display: inline-block;
    width: 16px;
    height: 16px;
    background-color: #fff;
    flex-shrink: 0;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M11 2.5l-3.5 3.5H10v4H6V7.5L2.5 11 6 14.5V12h4v4H7.5L11 19.5l3.5-3.5H12v-4h4v2.5l3.5-3.5L16 7.5V10h-4V6h2.5L11 2.5z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M11 2.5l-3.5 3.5H10v4H6V7.5L2.5 11 6 14.5V12h4v4H7.5L11 19.5l3.5-3.5H12v-4h4v2.5l3.5-3.5L16 7.5V10h-4V6h2.5L11 2.5z'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-position: center;
    mask-position: center;
}
.sf-theme-2026 .sf-activate-map-btn__icon::before {
    content: none;
}
/* When static map wrapper is hovered, dim slightly to invite click */
.sf-theme-2026 .sf-static-map-wrapper:hover .sf-static-map-img {
    opacity: 0.92;
}

/* Interactive map container (after activation) */
.sf-theme-2026 .sf-interactive-map {
    width: 100%;
    height: 400px;
    min-height: 300px;
    border-radius: 4px;
    overflow: hidden;
}
@media (max-width: 767px) {
    .sf-theme-2026 .sf-interactive-map {
        height: 260px;
    }
}

/* ===================================================
   CMS Promo Content Block (sf-cms-promo)
   Rendered inside .sf-content-block via admin injection
   =================================================== */
.sf-cms-promo {
    margin: 0;
    padding: 0;
}
.sf-cms-promo__heading {
    font-size: 22px;
    font-weight: 700;
    color: #002d74;
    text-align: center !important;
    margin: 0 0 8px;
    line-height: 1.3;
}
.sf-cms-promo__intro {
    text-align: center;
    color: #444;
    font-size: 15px;
    margin: 0 0 24px;
    line-height: 1.5;
}
.sf-cms-promo__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
.sf-cms-promo__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.sf-cms-promo__img-wrap {
    width: 100%;
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 16px;
    aspect-ratio: 4/3;
}
.sf-cms-promo__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}
.sf-cms-promo__card-title {
    font-size: 17px;
    font-weight: 700;
    color: #002d74;
    margin: 0 0 8px;
}
.sf-cms-promo__card-text {
    color: #444;
    font-size: 14px;
    line-height: 1.6;
    margin: 0 0 16px;
    flex: 1;
}
.sf-cms-promo__btn {
    display: inline-block;
    background: #002d74;
    color: #fff;
    font-weight: 700;
    font-size: 14px;
    padding: 10px 24px;
    border-radius: 3px;
    text-decoration: none;
    transition: background 0.2s;
    border: 2px solid #002d74;
    margin-top: auto;
}
.sf-cms-promo__btn:hover {
    background: #004587;
    border-color: #004587;
    color: #fff;
}
@media (max-width: 767px) {
    .sf-cms-promo__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .sf-cms-promo__heading {
        font-size: 19px;
    }
}

/* Brand overrides for sf-cms-promo are in brand CSS files */

/*
   CMS About Block (sf-cms-about)
   Three-column feature block with bordered container
*/
.sf-cms-about {
    border: 1.5px solid var(--sf-primary-color, #002d74);
    border-radius: 6px;
    padding: 28px 24px 20px;
    margin: 24px 0;
}
.sf-cms-about__heading {
    font-size: 22px;
    font-weight: 700;
    color: var(--sf-primary-color, #002d74);
    text-align: center !important;
    margin: 0 0 24px;
    line-height: 1.3;
}
.sf-cms-about__grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px;
}
.sf-cms-about__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.sf-cms-about__img-wrap {
    width: 100%;
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 14px;
    aspect-ratio: 4/3;
}
.sf-cms-about__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}
.sf-cms-about__card-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--sf-primary-color, #002d74);
    margin: 0 0 8px;
}
.sf-cms-about__card-text {
    color: #444;
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
}
@media (max-width: 767px) {
    .sf-cms-about__grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .sf-cms-about__heading {
        font-size: 19px;
    }
}


.sf-theme-2026 .store-finder--location-info .back {
    margin-bottom: 20px;
}

/* Full-width section below 2-column location detail layout */
.sf-location-fullwidth.location-info--theme-2026 {
    width: 100% !important;
    clear: both;
    padding-top: 24px;
}
.sf-location-fullwidth.location-info--theme-2026::before {
    content: '';
    display: block;
    border-top: 1px solid #e8ecf4;
}

/* Brand logo in location detail header */
.sf-theme-2026 .sf-detail-brand-logo {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 6px;
}

.sf-theme-2026 .sf-detail-brand-logo img {
    height: 36px;
    width: auto;
    display: block;
}

/* =========================================================
   Store Finder Landing Page CMS Sections
   ========================================================= */

/* Hero intro */
.sf-landing-hero {
    text-align: center;
    padding: 32px 16px 8px;
}
.sf-landing-hero__title {
    font-size: 26px;
    font-weight: 700;
    color: var(--sf-primary-color, #002d74);
    margin: 0 0 10px;
}
.sf-landing-hero__subtitle {
    font-size: 16px;
    color: #555;
    max-width: 680px;
    margin: 0 auto;
    line-height: 1.6;
}

/* 3-column services */
.sf-landing-services {
    padding: 24px 0 8px;
}
.sf-landing-services__inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.sf-landing-service-card {
    background: #fff;
    border: 1px solid #e0e6f0;
    border-radius: 6px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.sf-landing-service-card__img img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
}
.sf-landing-service-card__title {
    font-size: 16px;
    font-weight: 700;
    color: var(--sf-primary-color, #002d74);
    padding: 14px 16px 4px;
    margin: 0;
}
.sf-landing-service-card__text {
    font-size: 14px;
    color: #555;
    padding: 0 16px 16px;
    line-height: 1.5;
    margin: 0;
}

/* Feature row (image + text) */
.sf-landing-features {
    padding: 24px 0;
}
.sf-landing-feature {
    display: flex;
    align-items: center;
    gap: 32px;
    background: #f6f8fc;
    border-radius: 6px;
    overflow: hidden;
}
.sf-landing-feature__img {
    flex: 0 0 45%;
}
.sf-landing-feature__img img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    display: block;
}
.sf-landing-feature__content {
    flex: 1;
    padding: 32px 32px 32px 0;
}
.sf-landing-feature__title {
    font-size: 22px;
    font-weight: 700;
    color: var(--sf-primary-color, #002d74);
    margin: 0 0 12px;
}
.sf-landing-feature__text {
    font-size: 15px;
    color: #444;
    line-height: 1.6;
    margin-bottom: 16px;
}
.sf-landing-feature__list {
    padding-left: 20px;
    margin: 0;
}
.sf-landing-feature__list li {
    font-size: 14px;
    color: #555;
    margin-bottom: 6px;
    line-height: 1.4;
}

/* Responsive */
@media (max-width: 767px) {
    .sf-landing-services__inner {
        grid-template-columns: 1fr;
    }
    .sf-landing-feature {
        flex-direction: column;
    }
    .sf-landing-feature__img {
        flex: none;
        width: 100%;
    }
    .sf-landing-feature__img img {
        height: 220px;
    }
    .sf-landing-feature__content {
        padding: 20px;
    }
    .sf-landing-hero__title {
        font-size: 20px;
    }
}
