/* ── Chrome variants — header / footer / layout ─────────────────── */

/* getme-css-bundle: css/chrome/header.css */
/* ════════════════════════════════════════════════════════════════════
   header — Chrome component variants.
   Variants: default (.gm-header), centered, compact.
   Mobile-first: stacks gracefully below 760px.
   ════════════════════════════════════════════════════════════════════ */

/* Centered variant — logo on top, nav below, all centered. */
.gm-header--centered {
    flex-direction: column;
    gap: 18px;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 28px 0 18px;
}

.gm-header--centered .gm-brand--centered {
    justify-content: center;
    font-size: 18px;
}

.gm-nav--centered {
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}

.gm-nav--centered .gm-nav__link {
    padding: 9px 14px;
    position: relative;
}

/* Centered variant uses an underline-grow hover (distinct from the default pill). */
.gm-nav--centered .gm-nav__link::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 5px;
    height: 2px;
    border-radius: 2px;
    background: var(--gm-primary);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform var(--theme-animation-duration-fast, 160ms) var(--theme-animation-easing-standard, ease);
}

.gm-nav--centered .gm-nav__link:hover {
    background: transparent;
    color: var(--gm-primary-dark);
}

.gm-nav--centered .gm-nav__link:hover::after {
    transform: scaleX(1);
}

.gm-language-switcher--centered {
    margin-top: 4px;
}

/* Compact variant — logo + single CTA, minimal chrome. */
.gm-header--compact {
    padding: 16px 0;
}

.gm-header-actions--compact {
    gap: 10px;
}

.gm-header-cta {
    align-items: center;
    background: var(--gm-primary);
    border: 1px solid var(--gm-primary);
    border-radius: var(--gm-button-radius, var(--theme-radius-md, 8px));
    color: var(--gm-on-primary, #ffffff);
    display: inline-flex;
    font-size: 14px;
    font-weight: 700;
    gap: 7px;
    min-height: 38px;
    padding: 0 16px;
    text-decoration: none;
    transition: filter var(--theme-animation-duration-fast, 160ms) var(--theme-animation-easing-standard, ease);
}

.gm-header-cta:hover {
    filter: brightness(0.92);
}

/* Compact variant keeps the filled CTA as the clear focal point; a touch more
   breathing room when a language switcher precedes it. */
.gm-header-actions--compact > * + .gm-header-cta {
    margin-left: 6px;
}

@media (max-width: 760px) {
    .gm-header--centered {
        padding: 18px 0 12px;
    }

    .gm-header--centered .gm-brand--centered {
        font-size: 17px;
    }

    .gm-nav--centered {
        gap: 4px;
    }

    .gm-nav--centered a {
        padding: 8px 10px;
        font-size: 13px;
    }

    .gm-header--compact {
        align-items: center;
        flex-direction: row;
        gap: 12px;
        padding: 14px 0;
    }

    .gm-header-cta {
        font-size: 13px;
        min-height: 34px;
        padding: 0 12px;
    }
}

/* getme-css-bundle:end css/chrome/header.css */


/* getme-css-bundle: css/chrome/footer.css */
/* ════════════════════════════════════════════════════════════════════
   footer — Chrome component variants.
   Variants: default (.gm-footer), columns, minimal.
   Mobile-first: columns collapse from 4 -> 2 -> 1.
   ════════════════════════════════════════════════════════════════════ */

/* Multi-column variant — 4 columns of links plus a copyright row. */
.gm-footer--columns {
    border-top: 1px solid var(--gm-border);
    padding: 48px 0 24px;
}

.gm-footer-columns {
    display: grid;
    gap: 28px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gm-footer-column h3 {
    color: var(--gm-text);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin: 0 0 14px;
    text-transform: uppercase;
}

.gm-footer-column ul {
    display: grid;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.gm-footer-column a {
    color: var(--gm-muted);
    font-size: 14px;
    text-decoration: none;
}

.gm-footer-column a:hover {
    color: var(--gm-text);
}

.gm-footer-social {
    display: flex;
    flex-wrap: wrap;
    gap: 12px !important;
}

.gm-footer-social a {
    background: var(--color-bg-tertiary, transparent);
    border: 1px solid var(--gm-border);
    border-radius: var(--theme-radius-md, 8px);
    color: var(--gm-muted);
    font-size: 13px;
    padding: 8px 12px;
}

.gm-footer-bottom {
    align-items: center;
    border-top: 1px solid var(--gm-border);
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: space-between;
    margin-top: 36px;
    padding-top: 22px;
}

.gm-footer-brand {
    align-items: center;
    color: var(--gm-text);
    display: inline-flex;
    font-weight: 700;
    gap: 10px;
}

.gm-footer-bottom p {
    color: var(--gm-muted);
    font-size: 13px;
    margin: 0;
}

/* Minimal variant — copyright + 2 links, single line on desktop. */
.gm-footer--minimal {
    align-items: center;
    border-top: 1px solid var(--gm-border);
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: space-between;
    padding: 22px 0 32px;
}

.gm-footer--minimal p {
    color: var(--gm-muted);
    font-size: 13px;
    margin: 0;
}

.gm-footer-minimal-links {
    display: flex;
    gap: 16px;
}

.gm-footer-minimal-links a {
    color: var(--gm-muted);
    font-size: 13px;
    text-decoration: none;
}

.gm-footer-minimal-links a:hover {
    color: var(--gm-text);
    text-decoration: underline;
}

@media (max-width: 980px) {
    .gm-footer-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .gm-footer--columns {
        padding: 36px 0 18px;
    }

    .gm-footer-columns {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .gm-footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        margin-top: 24px;
    }

    .gm-footer--minimal {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
}

/* getme-css-bundle:end css/chrome/footer.css */


/* getme-css-bundle: css/chrome/layout.css */
/* ════════════════════════════════════════════════════════════════════
   layout — Chrome layout-variant containers.
   Variants: base (default .gm-main), focused, bare.
   ════════════════════════════════════════════════════════════════════ */

.gm-layout-focused {
    background: var(--gm-bg);
    min-height: 100vh;
}

.gm-main--focused {
    padding: 32px 0 64px;
}

.gm-layout-bare {
    background: var(--gm-bg);
    min-height: 100vh;
}

.gm-main--bare {
    margin: 0 auto;
    padding: 24px 0 40px;
    width: min(var(--gm-page-max-width, 1440px), calc(100% - (var(--gm-page-gutter, 16px) * 2)));
}

@media (max-width: 760px) {
    .gm-main--focused {
        padding: 20px 0 40px;
    }

    .gm-main--bare {
        padding: 16px 0 32px;
        width: calc(100% - (var(--gm-page-gutter, 16px) * 2));
    }
}

/* getme-css-bundle:end css/chrome/layout.css */


/* getme-css-bundle: css/chrome/media-modal.css */
/* ════════════════════════════════════════════════════════════════════
   media-modal — central, reusable image lightbox.

   Owner   : assets/js/theme.js (window.GetmeMediaModal) — single instance.
   Trigger : any element carrying [data-gm-media-zoom] (product gallery today,
             reusable for other surfaces later).
   Theme   : appearance is editor-driven via the existing "Dropdowns & popups"
             room — surface uses --theme-dropdown-popup-background, corners use
             --theme-dropdown-popup-radius; backdrop derives from --color-bg-dark.
             No dedicated settings group (keeps the theme CSS contract intact).
   ════════════════════════════════════════════════════════════════════ */

[data-gm-media-zoom] { cursor: zoom-in; }

.gm-media-modal {
    --gm-media-modal-backdrop: color-mix(in srgb, var(--color-bg-dark, #0f172a) 86%, transparent);
    --gm-media-modal-surface: var(--theme-dropdown-popup-background, #ffffff);
    --gm-media-modal-radius: var(--theme-dropdown-popup-radius, var(--theme-radius-lg, 12px));
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: center;
    position: fixed;
    z-index: 1000;
}

.gm-media-modal[hidden] { display: none; }

.gm-media-modal__backdrop {
    background: var(--gm-media-modal-backdrop);
    inset: 0;
    position: absolute;
}

.gm-media-modal__dialog {
    align-items: center;
    display: flex;
    gap: 12px;
    max-width: min(1100px, 96vw);
    position: relative;
    z-index: 1;
}

.gm-media-modal__figure {
    margin: 0;
    max-height: 88vh;
    max-width: 100%;
}

.gm-media-modal__image {
    background: var(--gm-media-modal-surface);
    border-radius: var(--gm-media-modal-radius);
    display: block;
    max-height: 88vh;
    max-width: 100%;
    object-fit: contain;
}

.gm-media-modal__close {
    align-items: center;
    background: var(--gm-media-modal-surface);
    border: none;
    border-radius: 999px;
    color: #0f172a;
    cursor: pointer;
    display: flex;
    font-size: 24px;
    height: 42px;
    justify-content: center;
    line-height: 1;
    position: absolute;
    right: -14px;
    top: -14px;
    width: 42px;
    z-index: 2;
}

.gm-media-modal__nav {
    align-items: center;
    background: var(--gm-media-modal-surface);
    border: none;
    border-radius: 999px;
    color: #0f172a;
    cursor: pointer;
    display: flex;
    flex-shrink: 0;
    font-size: 26px;
    height: 48px;
    justify-content: center;
    line-height: 1;
    opacity: 0.95;
    width: 48px;
}

.gm-media-modal__nav:hover,
.gm-media-modal__close:hover { opacity: 1; filter: brightness(0.95); }

.gm-media-modal__counter {
    bottom: -34px;
    color: #ffffff;
    font-size: 14px;
    left: 50%;
    opacity: 0.85;
    position: absolute;
    transform: translateX(-50%);
}

@media (max-width: 640px) {
    .gm-media-modal__dialog { gap: 6px; max-width: 100vw; padding: 0 8px; }
    .gm-media-modal__nav { height: 40px; width: 40px; font-size: 22px; }
    .gm-media-modal__close { right: 6px; top: -48px; }
}

/* getme-css-bundle:end css/chrome/media-modal.css */


/* ── Section stylesheets — token-aware, self-contained ─────────── */
/* Commerce data sections (route-bound) */

/* getme-css-bundle: css/commerce/sections/product-listing.css */
/* ════════════════════════════════════════════════════════════════════
   product-listing — section stylesheet (self-contained)

   Owner       : sections/product-listing.json + sections/product-listing.html
   Namespace   : --pl-*  (product-listing). Do NOT reuse for other sections.
   Scope       : Every rule starts with `.gm-product-section` so multiple
                 instances on a page cannot bleed into one another.
   Editor      : Per-instance overrides are written as inline CSS variables
                 in the section's <section style="..."> attribute. The
                 visual editor uses `css_vars_patch` to mutate them live.
   Token chain : --pl-<x>  →  var(--theme-<x>) / var(--gm-<x>).
                 settings_data.theme.colors/spacing/borders.radius/shadows
                 supplies the --theme-<x> layer via theme.css :root.

   Multi-instance safety
   ─────────────────────
   CSS custom properties are scoped to the element they are declared on
   and inherited by descendants. Each <section class="gm-product-section">
   carries its own inline style="" so two listings on the same page can
   render with different button colors / spacing / radius without leaking.
   ════════════════════════════════════════════════════════════════════ */

.gm-product-section {
    /* Default token chain — overridable by inline style on the section. */
    --pl-section-bg: transparent;
    --pl-text-color: var(--gm-text);
    --pl-title-color: var(--gm-text);
    --pl-kicker-color: var(--gm-primary);
    --pl-card-bg: var(--gm-surface);
    --pl-card-border: var(--gm-border);
    --pl-price-color: var(--gm-text);
    --pl-compare-color: var(--gm-muted);
    --pl-button-bg: var(--gm-primary);
    --pl-button-text: var(--gm-on-primary, #ffffff);
    --pl-button-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md)));
    --pl-button-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    --pl-section-padding-block: var(--theme-spacing-3xl);
    --pl-grid-gap: var(--theme-spacing-lg);
    --pl-card-radius: var(--theme-card-radius, var(--theme-radius-lg));
    --pl-card-shadow: var(--theme-shadow-sm);
    --pl-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --pl-body-font: var(--font-primary, sans-serif);
    --pl-grid-columns: 3;

    /* Flat, page-integrated listing — no card frame around the section.
       Cards keep their own --pl-card-* radius/shadow. */
    background: var(--pl-section-bg);
    border: none;
    border-radius: 0;
    box-shadow: none;
    color: var(--pl-text-color);
    font-family: var(--pl-body-font);
    padding: var(--pl-section-padding-block) var(--gm-section-inline-padding);
}

/* ── Header / heading area ──────────────────────────────────────── */
.gm-product-section__head {
    margin-bottom: 24px;
}

.gm-product-section__title {
    color: var(--pl-title-color);
    font-family: var(--pl-title-font);
    margin: 4px 0 8px;
}

.gm-product-section .gm-kicker {
    color: var(--pl-kicker-color);
}

.gm-product-section__intro {
    color: var(--pl-text-color);
    opacity: 0.85;
}

.gm-product-section__empty {
    color: var(--pl-text-color);
    opacity: 0.7;
    padding: 24px;
    text-align: center;
}

/* ── Modifier classes (driven by section settings enums) ────────── */
.gm-product-section--columns-2 { --pl-grid-columns: 2; }
.gm-product-section--columns-3 { --pl-grid-columns: 3; }
.gm-product-section--columns-4 { --pl-grid-columns: 4; }
.gm-product-section--card-minimal { border: none; box-shadow: none; }
.gm-product-section--card-elevated .gm-product-card {
    box-shadow: var(--theme-shadow-lg);
}
.gm-product-section--card-compact .gm-product-grid {
    gap: 16px;
}
.gm-product-section--card-compact .gm-product-card h3 {
    font-size: 15px;
}

.gm-product-section--image-landscape .gm-product-card img,
.gm-product-section--image-landscape .gm-product-image-placeholder {
    aspect-ratio: 4 / 3;
}
.gm-product-section--image-portrait .gm-product-card img,
.gm-product-section--image-portrait .gm-product-image-placeholder {
    aspect-ratio: 3 / 4;
}
.gm-product-section--image-tall .gm-product-card img,
.gm-product-section--image-tall .gm-product-image-placeholder {
    aspect-ratio: 2 / 3;
}

.gm-product-section--hover-border .gm-product-card:hover {
    box-shadow: none;
    transform: none;
}
.gm-product-section--hover-none .gm-product-card:hover {
    border-color: var(--pl-card-border);
    box-shadow: none;
    transform: none;
}
.gm-product-section--hover-zoom .gm-product-card img {
    transition: transform 240ms ease;
}
.gm-product-section--hover-zoom .gm-product-card:hover img {
    transform: scale(1.04);
}

/* ── Grid ───────────────────────────────────────────────────────── */
.gm-product-section .gm-product-grid {
    display: grid;
    gap: var(--pl-grid-gap);
    grid-template-columns: repeat(var(--pl-grid-columns), minmax(0, 1fr));
}

/* ── Card ───────────────────────────────────────────────────────── */
.gm-product-section .gm-product-card {
    align-items: stretch;
    background: var(--pl-card-bg);
    border: 1px solid var(--pl-card-border);
    border-radius: var(--pl-card-radius);
    box-shadow: var(--pl-card-shadow);
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.gm-product-section .gm-product-card:hover {
    border-color: color-mix(in srgb, var(--pl-button-bg) 35%, var(--pl-card-border));
    box-shadow: var(--theme-shadow-xl);
    transform: translateY(-2px);
}

.gm-product-section .gm-product-card__link {
    color: var(--pl-text-color);
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    text-decoration: none;
}

.gm-product-section .gm-product-card img,
.gm-product-section .gm-product-image-placeholder {
    aspect-ratio: 1 / 1;
}

.gm-product-section .gm-product-card img {
    background: var(--gm-media-surface);
    display: block;
    height: auto;
    object-fit: cover;
    width: 100%;
}

.gm-product-section .gm-product-image-placeholder {
    background: var(--gm-media-surface);
    display: block;
    width: 100%;
}

/* ── Card content typography ────────────────────────────────────── */
.gm-product-section .gm-product-brand {
    color: var(--pl-text-color);
    display: block;
    font-size: 11px;
    font-weight: 700;
    min-height: 16px;
    opacity: 0.65;
    overflow: hidden;
    padding: 14px 14px 0;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.gm-product-section .gm-product-card h3 {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--pl-title-color);
    display: -webkit-box;
    font-family: var(--pl-title-font);
    font-size: 16px;
    line-height: 1.3;
    max-height: calc(1.3em * 2);
    margin: 6px 14px 0;
    min-height: calc(1.3em * 2);
    overflow: hidden;
    overflow-wrap: anywhere;
    text-align: center;
}

.gm-product-section .gm-product-card strong {
    display: block;
    font-size: 17px;
    font-variant-numeric: tabular-nums;
    text-align: center;
}

/* ── Price stack ────────────────────────────────────────────────── */
.gm-product-section .gm-product-price-stack {
    align-content: center;
    display: grid;
    gap: 4px;
    justify-items: center;
    margin: auto 14px 14px;
    min-height: 54px;
    padding-top: 12px;
}

.gm-product-section .gm-product-price {
    color: var(--pl-price-color);
}

.gm-product-section .gm-product-compare-price {
    color: var(--pl-compare-color);
    font-size: 13px;
    text-decoration: line-through;
}

/* ── Actions ────────────────────────────────────────────────────── */
.gm-product-section .gm-product-actions {
    align-self: stretch;
    display: grid;
    flex: 0 0 auto;
    gap: 8px;
    grid-auto-rows: minmax(40px, auto);
    margin-top: 0;
    padding: 0 14px 14px;
}

.gm-product-section .gm-product-action-primary {
    align-items: center;
    background: var(--pl-button-bg);
    border: 1px solid var(--pl-button-bg);
    border-radius: var(--pl-button-radius);
    box-shadow: var(--pl-button-shadow);
    box-sizing: border-box;
    color: var(--pl-button-text);
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 700;
    height: 40px;
    justify-content: center;
    line-height: 1.2;
    min-height: 40px;
    padding: 0 14px;
    text-align: center;
    text-decoration: none;
    transition: filter 150ms ease, box-shadow 150ms ease;
    white-space: normal;
    width: 100%;
}

.gm-product-section .gm-product-action-primary:hover:not([disabled]) {
    box-shadow: 0 6px 18px color-mix(in srgb, var(--pl-button-bg) 28%, transparent);
    filter: brightness(0.92);
}

.gm-product-section .gm-product-action-primary:active:not([disabled]) {
    box-shadow: var(--pl-button-shadow);
    filter: brightness(0.86);
}

.gm-product-section .gm-product-action-secondary {
    align-items: center;
    background: var(--gm-surface);
    border: 1px solid var(--pl-button-bg);
    border-radius: var(--pl-button-radius);
    box-sizing: border-box;
    color: var(--pl-button-bg);
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 700;
    height: 40px;
    justify-content: center;
    line-height: 1.2;
    min-height: 40px;
    padding: 0 14px;
    text-align: center;
    transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
    white-space: normal;
    width: 100%;
}

/* Elegant outline → fill on hover (the "Buy now" button adopts the primary colour). */
.gm-product-section .gm-product-action-secondary:hover:not([disabled]) {
    background: var(--pl-button-bg);
    color: var(--pl-button-text);
}

.gm-product-section .gm-product-action-secondary:active:not([disabled]) {
    filter: brightness(0.92);
}

.gm-product-section .gm-product-action-primary[disabled],
.gm-product-section .gm-product-action-secondary[disabled] {
    cursor: not-allowed;
    opacity: 0.6;
}

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 980px) {
    .gm-product-section .gm-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .gm-product-section .gm-product-grid {
        grid-template-columns: 1fr;
    }
    .gm-product-section {
        padding: var(--pl-section-padding-block) var(--gm-section-inline-padding);
    }
}

/* getme-css-bundle:end css/commerce/sections/product-listing.css */


/* getme-css-bundle: css/commerce/sections/product-detail.css */
/* ════════════════════════════════════════════════════════════════════
   product-detail — section stylesheet (self-contained)

   Owner       : sections/product-detail.json + sections/product-detail.html
   Namespace   : --pd-*  (product-detail). Do NOT reuse for other sections.
   Scope       : Every rule starts with `.gm-product-detail-section`.
   Editor      : Per-instance overrides via inline CSS variables in the
                 section's <section style=""> attribute. Editor uses
                 `css_vars_patch` to mutate them live.
   Token chain : --pd-<x>  →  var(--theme-<x>) / var(--gm-<x>).

   Multi-instance safety
   ─────────────────────
   CSS custom properties are scoped per element. Each
   .gm-product-detail-section instance carries its own inline style,
   so two product-detail sections on the same page render independently.
   ════════════════════════════════════════════════════════════════════ */

.gm-product-detail-section {
    /* Token chain — overridable by inline style on the section. */
    --pd-section-bg: transparent;
    --pd-text-color: var(--gm-text);
    --pd-title-color: var(--gm-text);
    --pd-kicker-color: var(--gm-muted);
    --pd-price-color: var(--gm-text);
    --pd-compare-color: var(--gm-muted);
    --pd-button-bg: var(--gm-primary);
    --pd-button-text: var(--gm-on-primary);
    --pd-button-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md)));
    --pd-button-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    --pd-section-padding-block: var(--theme-spacing-3xl);
    --pd-content-gap: var(--theme-spacing-xl);
    --pd-media-radius: var(--theme-radius-lg);
    --pd-media-shadow: var(--theme-shadow-sm);
    --pd-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --pd-body-font: var(--font-primary, sans-serif);

    /* Flat, page-integrated surface — shared standard with service-detail. */
    background: var(--pd-section-bg);
    border: none;
    border-radius: 0;
    color: var(--pd-text-color);
    font-family: var(--pd-body-font);
    padding: var(--pd-section-padding-block) var(--gm-section-inline-padding);
}

/* ── Breadcrumb ─────────────────────────────────────────────────── */
.gm-product-detail-section .gm-product-detail__breadcrumb {
    color: var(--pd-text-color);
    display: flex;
    flex-wrap: wrap;
    font-size: 13px;
    gap: 6px;
    margin-bottom: 18px;
    opacity: 0.7;
}

.gm-product-detail-section .gm-product-detail__breadcrumb a {
    color: inherit;
    text-decoration: none;
}

.gm-product-detail-section .gm-product-detail__breadcrumb a:hover {
    text-decoration: underline;
}

/* ── Layout: gallery + info ─────────────────────────────────────── */
.gm-product-detail-section .gm-product-detail {
    display: grid;
    gap: var(--pd-content-gap);
    /* Media ~42% of the row — shared standard with service-detail. */
    grid-template-columns: minmax(0, 0.92fr) minmax(340px, 1.28fr);
}

.gm-product-detail-section--layout-stacked .gm-product-detail,
.gm-product-detail-section--layout-wide_gallery .gm-product-detail {
    grid-template-columns: 1fr;
}

.gm-product-detail-section--layout-wide_gallery .gm-product-gallery {
    width: 100%;
}

/* ── Gallery (hero + thumbs) ────────────────────────────────────── */
.gm-product-detail-section .gm-product-gallery {
    min-width: 0;
}

.gm-product-detail-section .gm-product-detail-media {
    /* Frameless media — rounded image on the shared media surface, no box. */
    background: var(--gm-media-surface);
    border-radius: var(--pd-media-radius);
    overflow: hidden;
    position: relative;
}

.gm-product-detail-section .gm-product-detail-media img {
    aspect-ratio: 1 / 1;
    display: block;
    height: auto;
    object-fit: contain;
    width: 100%;
}

.gm-product-detail-section--image-landscape .gm-product-detail-media img { aspect-ratio: 4 / 3; }
.gm-product-detail-section--image-portrait .gm-product-detail-media img { aspect-ratio: 3 / 4; }
.gm-product-detail-section--image-auto .gm-product-detail-media img { aspect-ratio: auto; }

.gm-product-detail-section .gm-product-image-placeholder {
    aspect-ratio: 1 / 1;
    background: var(--color-bg-tertiary);
    display: block;
    width: 100%;
}

.gm-product-detail-section .gm-product-thumbs {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    margin-top: 12px;
}

.gm-product-detail-section .gm-product-thumb {
    aspect-ratio: 1 / 1;
    background: var(--gm-media-surface);
    border: 1px solid var(--gm-border);
    border-radius: var(--pd-media-radius);
    cursor: pointer;
    overflow: hidden;
    padding: 0;
    transition: border-color 140ms ease;
}

.gm-product-detail-section .gm-product-thumb.is-active {
    border-color: var(--pd-button-bg);
    box-shadow: 0 0 0 1px var(--pd-button-bg);
}

.gm-product-detail-section .gm-product-thumb img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

/* ── Gallery navigation arrows (over the main media) ────────────── */
.gm-product-detail-section .gm-gallery-nav {
    align-items: center;
    background: var(--theme-dropdown-popup-background, #ffffff);
    border: 1px solid var(--gm-border);
    border-radius: 999px;
    color: var(--pd-text-color);
    cursor: pointer;
    display: flex;
    font-size: 22px;
    height: 40px;
    justify-content: center;
    line-height: 1;
    opacity: 0.92;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    transition: opacity 140ms ease, background 140ms ease;
    width: 40px;
    z-index: 2;
}

.gm-product-detail-section .gm-gallery-nav:hover { opacity: 1; }
.gm-product-detail-section .gm-gallery-nav--prev { left: 12px; }
.gm-product-detail-section .gm-gallery-nav--next { right: 12px; }

/* ── Info column ────────────────────────────────────────────────── */
.gm-product-detail-section .gm-product-detail-body {
    min-width: 0;
}

.gm-product-detail-section .gm-kicker {
    color: var(--pd-kicker-color);
}

.gm-product-detail-section .gm-product-detail__title {
    color: var(--pd-title-color);
    font-family: var(--pd-title-font);
    font-size: 40px;
    line-height: 1.15;
    margin: 6px 0 12px;
    overflow-wrap: anywhere;
}

.gm-product-detail-section .gm-product-summary {
    color: var(--pd-text-color);
    line-height: 1.65;
    margin: 0 0 16px;
    opacity: 0.85;
}

/* ── Price ──────────────────────────────────────────────────────── */
.gm-product-detail-section .gm-product-detail-price {
    display: grid;
    font-size: 22px;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    gap: 4px;
    margin: 20px 0;
}

.gm-product-detail-section .gm-product-price {
    color: var(--pd-price-color);
}

.gm-product-detail-section .gm-product-compare-price {
    color: var(--pd-compare-color);
    font-size: 13px;
    text-decoration: line-through;
}

/* ── Options ────────────────────────────────────────────────────── */
.gm-product-detail-section .gm-product-option-group {
    margin: 14px 0;
}

.gm-product-detail-section .gm-product-option-name {
    color: var(--pd-text-color);
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.gm-product-detail-section .gm-product-option-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.gm-product-detail-section .gm-product-option-chip {
    background: var(--gm-surface);
    border: 1px solid var(--gm-border);
    border-radius: var(--theme-variant-pill-radius, var(--theme-radius-pill));
    color: var(--pd-text-color);
    cursor: pointer;
    min-height: 38px;
    padding: 6px 18px;
}

.gm-product-detail-section .gm-product-option-chip.is-selected {
    background: var(--pd-button-bg);
    border-color: var(--pd-button-bg);
    color: var(--pd-button-text);
}

/* ── Purchase actions ───────────────────────────────────────────── */
.gm-product-detail-section .gm-product-purchase {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin: 20px 0;
}

.gm-product-detail-section .gm-product-buy-button {
    background: var(--pd-button-bg);
    border: 1px solid var(--pd-button-bg);
    border-radius: var(--pd-button-radius);
    box-shadow: var(--pd-button-shadow);
    color: var(--pd-button-text);
    cursor: pointer;
    font-weight: 700;
    min-height: 44px;
    padding: 0 18px;
    transition: filter 160ms ease;
}

.gm-product-detail-section .gm-product-buy-button:hover {
    filter: brightness(0.92);
}

.gm-product-detail-section .gm-product-buy-button--secondary {
    background: var(--gm-surface);
    color: var(--pd-button-bg);
}

.gm-product-detail-section .gm-product-buy-button[disabled] {
    cursor: not-allowed;
    opacity: 0.6;
}

.gm-product-detail-section .gm-product-selling-plans {
    display: grid;
    gap: 10px;
    margin: 18px 0;
}

.gm-product-detail-section .gm-product-selling-plans__title,
.gm-product-detail-section .gm-product-selling-plan-group strong {
    color: var(--pd-text-color);
    font-weight: 700;
}

.gm-product-detail-section .gm-product-selling-plan-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.gm-product-detail-section .gm-product-selling-plan-option {
    background: var(--gm-surface);
    border: 1px solid var(--gm-border);
    border-radius: var(--theme-variant-pill-radius, var(--theme-radius-pill));
    color: var(--pd-text-color);
    cursor: pointer;
    min-height: 38px;
    padding: 0 14px;
}

.gm-product-detail-section .gm-product-selling-plan-option.is-selected {
    border-color: var(--pd-button-bg);
    color: var(--pd-button-bg);
    font-weight: 700;
}

.gm-product-detail-section .gm-product-ask-link {
    align-self: center;
    color: var(--pd-button-bg);
    text-decoration: none;
}

.gm-product-detail-section .gm-product-ask-link:hover {
    text-decoration: underline;
}

/* ── Meta / spec table ──────────────────────────────────────────── */
.gm-product-detail-section .gm-product-meta {
    border-top: 1px solid var(--gm-border);
    display: grid;
    gap: 6px 16px;
    grid-template-columns: max-content 1fr;
    margin-top: 18px;
    padding-top: 16px;
}

.gm-product-detail-section .gm-product-meta dt {
    color: var(--pd-text-color);
    font-weight: 700;
    opacity: 0.7;
}

.gm-product-detail-section .gm-product-meta dd {
    color: var(--pd-text-color);
    margin: 0;
    overflow-wrap: anywhere;
}

/* ── Description block ──────────────────────────────────────────── */
.gm-product-detail-section .gm-product-description {
    border-top: 1px solid var(--gm-border);
    margin-top: 24px;
    padding-top: 20px;
}

.gm-product-detail-section .gm-product-description h2 {
    font-family: var(--pd-title-font);
    font-size: 18px;
    margin: 0 0 12px;
}

.gm-product-detail-section .gm-rich-text {
    color: var(--pd-text-color);
    font-size: 15px;
    line-height: 1.7;
}

.gm-product-detail-section .gm-product-description p {
    color: var(--pd-text-color);
    font-size: 15px;
    line-height: 1.7;
    margin: 0;
}

.gm-product-detail-section .gm-rich-text p:first-child {
    margin-top: 0;
}

/* ── Media strip ────────────────────────────────────────────────── */
.gm-product-detail-section .gm-product-media-strip {
    border-top: 1px solid var(--gm-border);
    margin-top: 28px;
    padding-top: 24px;
}

.gm-product-detail-section .gm-product-media-strip h2 {
    font-family: var(--pd-title-font);
    font-size: 20px;
    margin: 0 0 14px;
}

.gm-product-detail-section .gm-product-media-strip > div {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

.gm-product-detail-section .gm-product-media-strip figure {
    margin: 0;
}

.gm-product-detail-section .gm-product-media-strip img {
    aspect-ratio: 1 / 1;
    background: var(--gm-surface);
    border: 1px solid var(--gm-border);
    border-radius: var(--pd-media-radius);
    box-shadow: var(--pd-media-shadow);
    display: block;
    object-fit: cover;
    width: 100%;
}

.gm-product-detail-section .gm-product-media-strip figcaption {
    color: var(--pd-text-color);
    font-size: 12px;
    margin-top: 6px;
    opacity: 0.7;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Missing-product fallback ───────────────────────────────────── */
.gm-product-detail-section--missing {
    text-align: center;
}

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 980px) {
    .gm-product-detail-section .gm-product-detail {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .gm-product-detail-section .gm-product-detail__title {
        font-size: 32px;
    }
    .gm-product-detail-section .gm-product-thumbs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .gm-product-detail-section .gm-product-meta {
        grid-template-columns: 1fr;
    }
    .gm-product-detail-section .gm-product-meta dt {
        border-bottom: 0;
        padding-bottom: 2px;
    }
    .gm-product-detail-section .gm-product-meta dd {
        padding-top: 0;
    }
}

@media (max-width: 640px) {
    .gm-product-detail-section {
        padding: var(--pd-section-padding-block) 18px;
    }
}

/* getme-css-bundle:end css/commerce/sections/product-detail.css */


/* getme-css-bundle: css/commerce/sections/service-listing.css */
/* ════════════════════════════════════════════════════════════════════
   service-listing — section stylesheet (self-contained)

   Owner       : sections/service-listing.json + sections/service-listing.html
   Namespace   : --sl-*  (service-listing). Do NOT reuse for other sections.
   Scope       : Every rule starts with `.gm-service-listing-section`.
   Editor      : Per-instance overrides via inline CSS variables in the
                 section's <section style=""> attribute. Editor uses
                 `css_vars_patch` to mutate them live.
   Token chain : --sl-<x>  →  var(--theme-<x>) / var(--gm-<x>).
   ════════════════════════════════════════════════════════════════════ */

.gm-service-listing-section {
    --sl-section-bg: transparent;
    --sl-text-color: var(--gm-text);
    --sl-title-color: var(--gm-text);
    --sl-kicker-color: var(--gm-primary);
    --sl-card-bg: #ffffff;
    --sl-card-border: var(--gm-border);
    --sl-price-color: var(--gm-text);
    --sl-button-bg: var(--gm-primary);
    --sl-button-text: #ffffff;
    --sl-button-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    --sl-button-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    --sl-section-padding-block: var(--theme-spacing-3xl, 64px);
    --sl-grid-gap: var(--theme-spacing-lg, 24px);
    --sl-card-radius: var(--theme-card-radius, var(--theme-radius-lg, 12px));
    --sl-card-shadow: var(--theme-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.06));
    --sl-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --sl-body-font: var(--font-primary, sans-serif);
    --sl-grid-columns: 4;

    /* Flat, page-integrated listing — no card frame around the section. */
    background: var(--sl-section-bg);
    color: var(--sl-text-color);
    font-family: var(--sl-body-font);
    padding: var(--sl-section-padding-block) var(--gm-section-inline-padding);
}

/* ── Header ─────────────────────────────────────────────────────── */
.gm-service-listing-section__head { margin-bottom: 24px; }
.gm-service-listing-section__head .gm-kicker {
    color: var(--sl-kicker-color);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
    text-transform: uppercase;
}
.gm-service-listing-section__title {
    color: var(--sl-title-color);
    font-family: var(--sl-title-font);
    margin: 0 0 8px;
}
.gm-service-listing-section__intro { color: var(--sl-text-color); margin: 0; opacity: 0.85; max-width: 760px; }

/* ── Column / card-style / image modifiers ─────────────────────── */
.gm-service-listing-section--columns-2 { --sl-grid-columns: 2; }
.gm-service-listing-section--columns-3 { --sl-grid-columns: 3; }
.gm-service-listing-section--columns-4 { --sl-grid-columns: 4; }
.gm-service-listing-section--card-minimal .gm-service-listing-section__card { border: none; box-shadow: none; }
.gm-service-listing-section--card-elevated .gm-service-listing-section__card { box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08); }
.gm-service-listing-section--image-square .gm-service-listing-section__card img,
.gm-service-listing-section--image-square .gm-service-listing-section__placeholder { aspect-ratio: 1 / 1; }
.gm-service-listing-section--image-landscape .gm-service-listing-section__card img,
.gm-service-listing-section--image-landscape .gm-service-listing-section__placeholder { aspect-ratio: 4 / 3; }
.gm-service-listing-section--image-portrait .gm-service-listing-section__card img,
.gm-service-listing-section--image-portrait .gm-service-listing-section__placeholder { aspect-ratio: 3 / 4; }

/* Image fit — `contain` letterboxes the full artwork (logos) inside the
   ratio frame instead of cropping it like `cover`. */
.gm-service-listing-section--fit-contain .gm-service-listing-section__card img {
    background: var(--gm-media-surface);
    box-sizing: border-box;
    object-fit: contain;
    padding: 18px;
}

/* Content alignment — centered card body (matches featured-services). */
.gm-service-listing-section--align-center .gm-service-listing-section__body { align-items: center; text-align: center; }
.gm-service-listing-section--align-center .gm-service-listing-section__price-stack { justify-content: center; }
.gm-service-listing-section--align-center .gm-service-listing-section__actions { justify-items: center; }

/* ── Grid ───────────────────────────────────────────────────────── */
.gm-service-listing-section__grid {
    display: grid;
    gap: var(--sl-grid-gap);
    grid-template-columns: repeat(var(--sl-grid-columns), minmax(0, 1fr));
}

/* ── Card ───────────────────────────────────────────────────────── */
.gm-service-listing-section__card {
    background: var(--sl-card-bg);
    border: 1px solid var(--sl-card-border);
    border-radius: var(--sl-card-radius);
    box-shadow: var(--sl-card-shadow);
    display: grid;
    grid-template-rows: 1fr auto;
    min-width: 0;
    overflow: hidden;
    position: relative;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.gm-service-listing-section__badge {
    background: var(--sl-button-bg);
    border-radius: 999px;
    color: var(--sl-button-text);
    font-size: 11px;
    font-weight: 700;
    left: 12px;
    letter-spacing: 0.05em;
    padding: 4px 11px;
    position: absolute;
    text-transform: uppercase;
    top: 12px;
    z-index: 1;
}
.gm-service-listing-section__card:hover {
    border-color: color-mix(in srgb, var(--sl-button-bg) 35%, var(--sl-card-border));
    transform: translateY(-2px);
}
.gm-service-listing-section__card-link {
    color: var(--sl-text-color);
    display: grid;
    grid-template-rows: auto 1fr;
    min-height: 100%;
    text-decoration: none;
}

.gm-service-listing-section__card img,
.gm-service-listing-section__placeholder {
    background: var(--gm-media-surface);
    display: block;
    object-fit: cover;
    width: 100%;
}
.gm-service-listing-section__placeholder { background: linear-gradient(135deg, #eef2f7, #dbe3ef); }

.gm-service-listing-section__body {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    padding: 18px;
}
.gm-service-listing-section__body h3 {
    color: var(--sl-title-color);
    font-family: var(--sl-title-font);
    font-size: 16px;
    line-height: 1.3;
    margin: 0;
    overflow-wrap: anywhere;
}
.gm-service-listing-section__body p {
    color: var(--sl-text-color);
    display: -webkit-box;
    font-size: 14px;
    line-height: 1.5;
    margin: 8px 0 0;
    opacity: 0.75;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.gm-service-listing-section__price-stack {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: auto;
    padding-top: 14px;
}
.gm-service-listing-section__price {
    color: var(--sl-price-color);
    font-size: 17px;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}
.gm-service-listing-section__compare-price {
    color: var(--gm-muted);
    font-size: 13px;
    text-decoration: line-through;
}
.gm-service-listing-section__price-stack small { color: var(--sl-text-color); font-size: 13px; opacity: 0.7; }

/* ── Actions ────────────────────────────────────────────────────── */
.gm-service-listing-section__actions {
    display: grid;
    gap: 8px;
    padding: 0 18px 18px;
}
.gm-service-listing-section__cta {
    align-items: center;
    background: var(--sl-button-bg);
    border: 1px solid var(--sl-button-bg);
    border-radius: var(--sl-button-radius);
    box-shadow: var(--sl-button-shadow);
    color: var(--sl-button-text);
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 700;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    text-decoration: none;
    width: 100%;
}
.gm-service-listing-section__cta--secondary { background: transparent; color: var(--sl-button-bg); }
.gm-service-listing-section__cta:hover { filter: brightness(0.92); }
.gm-service-listing-section__cta:disabled,
.gm-service-listing-section__cta[aria-disabled="true"] { cursor: not-allowed; opacity: 0.68; }

/* ── Empty + current-category note ──────────────────────────────── */
.gm-service-listing-section__empty {
    color: var(--sl-text-color);
    opacity: 0.7;
    padding: 24px;
    text-align: center;
}
.gm-service-listing-section__category-note {
    border-top: 1px solid var(--gm-border);
    margin-top: 28px;
    padding-top: 20px;
}
.gm-service-listing-section__category-note h2 { font-family: var(--sl-title-font); font-size: 20px; margin: 0 0 10px; }
.gm-service-listing-section__category-note p { color: var(--sl-text-color); margin: 0; max-width: 760px; opacity: 0.85; }

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 980px) {
    .gm-service-listing-section__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .gm-service-listing-section__grid { grid-template-columns: 1fr; }
}

/* getme-css-bundle:end css/commerce/sections/service-listing.css */


/* getme-css-bundle: css/commerce/sections/service-detail.css */
/* ════════════════════════════════════════════════════════════════════
   service-detail — section stylesheet (self-contained)

   Owner       : sections/service-detail.json + sections/service-detail.html
   Namespace   : --sd-*  (service-detail). Do NOT reuse for other sections.
   Scope       : Every rule starts with `.gm-service-detail-section`.
   Editor      : Per-instance overrides via inline CSS variables in the
                 section's <section style=""> attribute. Editor uses
                 `css_vars_patch` to mutate them live.
   Token chain : --sd-<x>  →  var(--theme-<x>) / var(--gm-<x>).
   ════════════════════════════════════════════════════════════════════ */

.gm-service-detail-section {
    /* Token chain — overridable by inline style on the section. */
    --sd-section-bg: transparent;
    --sd-text-color: var(--gm-text);
    --sd-title-color: var(--gm-text);
    --sd-kicker-color: var(--gm-muted);
    --sd-price-color: var(--gm-text);
    --sd-compare-color: var(--gm-muted);
    --sd-button-bg: var(--gm-primary);
    --sd-button-text: var(--gm-on-primary);
    --sd-button-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md)));
    --sd-button-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    --sd-section-padding-block: var(--theme-spacing-3xl);
    --sd-content-gap: var(--theme-spacing-xl);
    --sd-media-radius: var(--theme-radius-lg);
    --sd-media-shadow: var(--theme-shadow-sm);
    --sd-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --sd-body-font: var(--font-primary, sans-serif);

    /* Flat, page-integrated surface — no card frame around the section. */
    background: var(--sd-section-bg);
    border: none;
    border-radius: 0;
    color: var(--sd-text-color);
    font-family: var(--sd-body-font);
    padding: var(--sd-section-padding-block) var(--gm-section-inline-padding);
}

/* ── Breadcrumb ─────────────────────────────────────────────────── */
.gm-service-detail-section .gm-service-detail__breadcrumb {
    color: var(--sd-text-color);
    display: flex;
    flex-wrap: wrap;
    font-size: 13px;
    gap: 6px;
    margin-bottom: 18px;
    opacity: 0.7;
}

.gm-service-detail-section .gm-service-detail__breadcrumb a {
    color: inherit;
    text-decoration: none;
}

.gm-service-detail-section .gm-service-detail__breadcrumb a:hover {
    text-decoration: underline;
}

/* ── Layout: media + info ───────────────────────────────────────── */
.gm-service-detail-section .gm-service-detail__layout {
    display: grid;
    gap: var(--sd-content-gap);
    /* Media ~42% of the row — shared standard with product-detail. */
    grid-template-columns: minmax(0, 0.92fr) minmax(340px, 1.28fr);
}

.gm-service-detail-section .gm-service-detail__gallery,
.gm-service-detail-section .gm-service-detail__info {
    min-width: 0;
}

/* Keep the hero media in view while the info column scrolls —
   matches the storefront product-page reading pattern. */
.gm-service-detail-section .gm-service-detail__gallery {
    align-self: start;
    position: sticky;
    top: 24px;
}

/* ── Media ──────────────────────────────────────────────────────── */
.gm-service-detail-section .gm-service-detail__media {
    /* Frameless media — rounded image, no border/shadow box around it. */
    background: var(--gm-surface);
    border-radius: var(--sd-media-radius);
    overflow: hidden;
}

.gm-service-detail-section .gm-service-detail__media img {
    aspect-ratio: 1 / 1;
    display: block;
    height: auto;
    object-fit: contain;
    width: 100%;
}

.gm-service-detail-section--image-landscape .gm-service-detail__media img { aspect-ratio: 4 / 3; }
.gm-service-detail-section--image-portrait .gm-service-detail__media img { aspect-ratio: 3 / 4; }
.gm-service-detail-section--image-auto .gm-service-detail__media img { aspect-ratio: auto; }

.gm-service-detail-section .gm-service-detail__media-placeholder {
    aspect-ratio: 1 / 1;
    background: linear-gradient(135deg, #eef2f7, #dbe3ef);
    display: block;
    width: 100%;
}

/* ── Info column ────────────────────────────────────────────────── */
.gm-service-detail-section .gm-service-detail__kicker-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 10px;
}

.gm-service-detail-section .gm-kicker {
    color: var(--sd-kicker-color);
    line-height: 1.4;
    /* Global .gm-kicker carries margin-bottom: 12px — inside the flex
       kicker row it breaks vertical centering against the badge. */
    margin: 0;
}

.gm-service-detail-section .gm-service-detail__badge {
    line-height: 1.4;
}

.gm-service-detail-section .gm-service-detail__badge {
    background: color-mix(in srgb, var(--sd-button-bg) 12%, transparent);
    border-radius: var(--theme-radius-pill, 999px);
    color: var(--sd-button-bg);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 3px 10px;
    text-transform: uppercase;
}

.gm-service-detail-section .gm-service-detail__title {
    color: var(--sd-title-color);
    font-family: var(--sd-title-font);
    font-size: 40px;
    line-height: 1.15;
    margin: 6px 0 12px;
    overflow-wrap: anywhere;
}

.gm-service-detail-section .gm-service-detail__summary {
    color: var(--sd-text-color);
    line-height: 1.65;
    margin: 0 0 16px;
    opacity: 0.85;
}

/* ── Price ──────────────────────────────────────────────────────── */
.gm-service-detail-section .gm-service-detail__price {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 20px 0 8px;
}

.gm-service-detail-section .gm-service-detail__amount {
    color: var(--sd-price-color);
    font-size: 30px;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}

.gm-service-detail-section .gm-service-detail__compare-price {
    color: var(--sd-compare-color);
    font-size: 15px;
    text-decoration: line-through;
}

.gm-service-detail-section .gm-service-detail__period {
    color: var(--sd-text-color);
    font-size: 15px;
    opacity: 0.7;
}

/* ── Availability badge ─────────────────────────────────────────── */
.gm-service-detail-section .gm-service-detail__availability {
    align-items: center;
    color: var(--sd-text-color);
    display: inline-flex;
    font-size: 14px;
    font-weight: 600;
    gap: 8px;
    margin: 0 0 8px;
    opacity: 0.85;
}

.gm-service-detail-section .gm-service-detail__availability-dot {
    background: var(--gm-muted);
    border-radius: 50%;
    height: 8px;
    width: 8px;
}

.gm-service-detail-section .gm-service-detail__availability.is-available .gm-service-detail__availability-dot {
    background: #16a34a;
}

/* ── Actions ────────────────────────────────────────────────────── */
.gm-service-detail-section .gm-service-detail__actions {
    display: grid;
    gap: 10px;
    margin: 20px 0;
}

.gm-service-detail-section .gm-service-detail__cta {
    align-items: center;
    background: var(--sd-button-bg);
    border: 1px solid var(--sd-button-bg);
    border-radius: var(--sd-button-radius);
    box-shadow: var(--sd-button-shadow);
    color: var(--sd-button-text);
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 700;
    justify-content: center;
    min-height: 46px;
    padding: 0 18px;
    text-decoration: none;
    transition: filter 160ms ease;
    width: 100%;
}

.gm-service-detail-section .gm-service-detail__cta:hover {
    filter: brightness(0.92);
}

.gm-service-detail-section .gm-service-detail__cta--secondary {
    background: transparent;
    color: var(--sd-button-bg);
}

.gm-service-detail-section .gm-service-detail__cta:disabled,
.gm-service-detail-section .gm-service-detail__cta[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.6;
}

/* ── Tags ───────────────────────────────────────────────────────── */
.gm-service-detail-section .gm-service-detail__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 14px 0 0;
    padding: 0;
}

.gm-service-detail-section .gm-service-detail__tags li {
    background: var(--gm-surface);
    border: 1px solid var(--gm-border);
    border-radius: var(--theme-radius-pill, 999px);
    color: var(--sd-text-color);
    font-size: 13px;
    opacity: 0.85;
    padding: 4px 12px;
}

/* ── Content sections (description / features) — info column ────── */
.gm-service-detail-section .gm-service-detail__section {
    border-top: 1px solid var(--gm-border);
    margin-top: 24px;
    padding-top: 20px;
}

.gm-service-detail-section .gm-service-detail__section h2 {
    font-family: var(--sd-title-font);
    font-size: 18px;
    margin: 0 0 12px;
}

.gm-service-detail-section .gm-rich-text {
    color: var(--sd-text-color);
    font-size: 15px;
    line-height: 1.7;
}

.gm-service-detail-section .gm-rich-text p:first-child {
    margin-top: 0;
}

.gm-service-detail-section .gm-service-detail__description-text {
    color: var(--sd-text-color);
    font-size: 15px;
    line-height: 1.7;
    margin: 0;
}

.gm-service-detail-section .gm-service-detail__features {
    display: grid;
    gap: 10px;
    grid-template-columns: 1fr;
    list-style: none;
    margin: 0;
    padding: 0;
}

.gm-service-detail-section .gm-service-detail__features li {
    align-items: flex-start;
    color: var(--sd-text-color);
    display: flex;
    font-size: 15px;
    gap: 10px;
    line-height: 1.55;
}

.gm-service-detail-section .gm-service-detail__features svg {
    color: var(--sd-button-bg);
    flex-shrink: 0;
    height: 18px;
    margin-top: 2px;
    width: 18px;
}

/* ── Missing-service fallback ───────────────────────────────────── */
.gm-service-detail-section--missing {
    text-align: center;
}

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 980px) {
    .gm-service-detail-section .gm-service-detail__layout {
        grid-template-columns: 1fr;
    }
    .gm-service-detail-section .gm-service-detail__gallery {
        position: static;
    }
}

@media (max-width: 760px) {
    .gm-service-detail-section .gm-service-detail__title {
        font-size: 32px;
    }
}

@media (max-width: 640px) {
    .gm-service-detail-section {
        padding: var(--sd-section-padding-block) 18px;
    }
}

/* getme-css-bundle:end css/commerce/sections/service-detail.css */


/* getme-css-bundle: css/commerce/sections/related-items.css */
/* Shared related commerce cards for product and service detail pages. */
.gm-related-items {
    border-top: 1px solid var(--gm-border);
    margin-top: clamp(32px, 5vw, 72px);
    padding-top: clamp(24px, 4vw, 44px);
}

.gm-related-items__head {
    display: grid;
    gap: 8px;
    margin: 0 0 18px;
}

.gm-related-items__head h2 {
    color: var(--pd-title-color, var(--sd-title-color, var(--gm-text)));
    font-family: var(--pd-title-font, var(--sd-title-font, var(--font-heading, inherit)));
    font-size: clamp(24px, 3vw, 36px);
    line-height: 1.1;
    margin: 0;
}

.gm-related-items__head p {
    color: var(--gm-muted);
    font-size: 15px;
    line-height: 1.55;
    margin: 0;
    max-width: 680px;
}

.gm-related-items__grid {
    display: grid;
    gap: clamp(16px, 2vw, 24px);
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.gm-related-card {
    background: var(--gm-surface);
    border: 1px solid var(--gm-border);
    border-radius: var(--theme-card-radius, var(--theme-radius-lg, 16px));
    box-shadow: var(--theme-card-shadow, none);
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.gm-related-card:hover {
    border-color: color-mix(in srgb, var(--gm-primary) 32%, var(--gm-border));
    box-shadow: var(--theme-shadow-md, 0 12px 28px rgba(15, 23, 42, 0.1));
    transform: translateY(-2px);
}

.gm-related-card__link {
    color: inherit;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    text-decoration: none;
}

.gm-related-card__media {
    align-items: center;
    aspect-ratio: 4 / 3;
    background: var(--gm-media-surface);
    display: flex;
    justify-content: center;
    overflow: hidden;
}

.gm-related-card--product .gm-related-card__media {
    aspect-ratio: 1 / 1;
}

.gm-related-card__media img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.gm-related-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 8px;
    padding: 18px 18px 14px;
    text-align: center;
}

.gm-related-card__kicker {
    color: var(--gm-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.3;
    text-transform: uppercase;
}

.gm-related-card__title {
    color: var(--gm-text);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
    min-height: 2.7em;
}

.gm-related-card__summary {
    color: var(--gm-muted);
    display: -webkit-box;
    font-size: 14px;
    line-height: 1.45;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.gm-related-card__price {
    color: var(--pd-price-color, var(--sd-price-color, var(--gm-text)));
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    margin-top: auto;
}

.gm-related-card__price small {
    color: var(--gm-muted);
    font-size: 13px;
    font-weight: 500;
    margin-left: 4px;
}

.gm-related-card__actions {
    display: grid;
    gap: 10px;
    padding: 0 18px 18px;
}

.gm-related-card__cta {
    align-items: center;
    appearance: none;
    background: var(--pd-button-bg, var(--sd-button-bg, var(--gm-primary)));
    border: 1px solid transparent;
    border-radius: var(--theme-button-radius, var(--theme-radius-md, 12px));
    color: var(--pd-button-text, var(--sd-button-text, var(--gm-on-primary)));
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    justify-content: center;
    line-height: 1.2;
    min-height: 44px;
    padding: 0 16px;
    text-align: center;
    text-decoration: none;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
    width: 100%;
}

.gm-related-card__cta:hover:not(:disabled):not([aria-disabled="true"]) {
    filter: brightness(0.97);
    transform: translateY(-1px);
}

.gm-related-card__cta--secondary {
    background: transparent;
    border-color: var(--pd-button-bg, var(--sd-button-bg, var(--gm-primary)));
    color: var(--pd-button-bg, var(--sd-button-bg, var(--gm-primary)));
}

.gm-related-card__cta:disabled,
.gm-related-card__cta[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.55;
}

@media (max-width: 640px) {
    .gm-related-items__grid {
        grid-template-columns: 1fr;
    }
}

/* getme-css-bundle:end css/commerce/sections/related-items.css */


/* getme-css-bundle: css/commerce/sections/category-listing.css */
/* ════════════════════════════════════════════════════════════════════
   category-listing — section stylesheet (self-contained)

   Owner       : sections/category-listing.json + .html
   Namespace   : --cl-* (category-listing). Unique to this section.
   Scope       : Every rule starts with `.gm-category-listing-section`.
   Editor      : Inline CSS variables on the <section> via the template.
                 `css_vars_patch` previews mutate them live.
   ════════════════════════════════════════════════════════════════════ */

.gm-category-listing-section {
    --cl-section-bg: transparent;
    --cl-text-color: var(--gm-text);
    --cl-title-color: var(--gm-text);
    --cl-kicker-color: var(--gm-muted);
    --cl-card-bg: #ffffff;
    --cl-card-border: var(--gm-border);
    --cl-card-text: var(--gm-text);
    --cl-card-meta: var(--gm-muted);
    --cl-button-bg: var(--gm-primary);
    --cl-button-text: #ffffff;
    --cl-button-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    --cl-button-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    --cl-section-padding-block: var(--theme-spacing-3xl, 64px);
    --cl-grid-gap: var(--theme-spacing-lg, 24px);
    --cl-card-radius: var(--theme-card-radius, var(--theme-radius-lg, 12px));
    --cl-card-shadow: var(--theme-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.06));
    --cl-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --cl-body-font: var(--font-primary, sans-serif);
    --cl-grid-columns: 3;

    /* Flat, page-integrated listing — shared standard with product/service listing. */
    background: var(--cl-section-bg);
    border: none;
    border-radius: 0;
    box-shadow: none;
    color: var(--cl-text-color);
    font-family: var(--cl-body-font);
    padding: var(--cl-section-padding-block) var(--gm-section-inline-padding);
}

.gm-category-listing-section__head { margin-bottom: 24px; }
.gm-category-listing-section__title {
    color: var(--cl-title-color);
    font-family: var(--cl-title-font);
    margin: 4px 0 8px;
}
.gm-category-listing-section .gm-kicker { color: var(--cl-kicker-color); }
.gm-category-listing-section__intro { color: var(--cl-text-color); opacity: 0.85; }
.gm-category-listing-section__empty {
    color: var(--cl-text-color);
    opacity: 0.7;
    padding: 24px;
    text-align: center;
}

/* Modifiers ── columns / card / image / hover */
.gm-category-listing-section--columns-2 { --cl-grid-columns: 2; }
.gm-category-listing-section--columns-3 { --cl-grid-columns: 3; }
.gm-category-listing-section--columns-4 { --cl-grid-columns: 4; }
.gm-category-listing-section--card-minimal { border: none; box-shadow: none; }
.gm-category-listing-section--card-elevated .gm-category-card {
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}

.gm-category-listing-section--image-landscape .gm-category-card img,
.gm-category-listing-section--image-landscape .gm-category-image-placeholder { aspect-ratio: 4 / 3; }
.gm-category-listing-section--image-portrait .gm-category-card img,
.gm-category-listing-section--image-portrait .gm-category-image-placeholder { aspect-ratio: 3 / 4; }
.gm-category-listing-section--image-tall .gm-category-card img,
.gm-category-listing-section--image-tall .gm-category-image-placeholder { aspect-ratio: 2 / 3; }

.gm-category-listing-section--hover-border .gm-category-card:hover {
    box-shadow: none;
    transform: none;
}
.gm-category-listing-section--hover-none .gm-category-card:hover {
    border-color: var(--cl-card-border);
    box-shadow: none;
    transform: none;
}
.gm-category-listing-section--hover-zoom .gm-category-card img { transition: transform 240ms ease; }
.gm-category-listing-section--hover-zoom .gm-category-card:hover img { transform: scale(1.04); }

/* Grid */
.gm-category-listing-section .gm-category-grid {
    display: grid;
    gap: var(--cl-grid-gap);
    grid-template-columns: repeat(var(--cl-grid-columns), minmax(0, 1fr));
}

/* Card */
.gm-category-listing-section .gm-category-card {
    background: var(--cl-card-bg);
    border: 1px solid var(--cl-card-border);
    border-radius: var(--cl-card-radius);
    box-shadow: var(--cl-card-shadow);
    display: grid;
    grid-template-rows: 1fr auto;
    min-width: 0;
    overflow: hidden;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.gm-category-listing-section .gm-category-card:hover {
    border-color: color-mix(in srgb, var(--cl-button-bg) 35%, var(--cl-card-border));
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.10);
    transform: translateY(-2px);
}

.gm-category-listing-section .gm-category-card__link {
    color: var(--cl-card-text);
    display: grid;
    grid-template-rows: auto auto auto auto;
    min-height: 100%;
    text-decoration: none;
}

.gm-category-listing-section .gm-category-card__image,
.gm-category-listing-section .gm-category-image-placeholder {
    aspect-ratio: 1 / 1;
    display: block;
    width: 100%;
}

.gm-category-listing-section .gm-category-card__image {
    background: var(--gm-media-surface);
    height: auto;
    object-fit: cover;
}

.gm-category-listing-section .gm-category-image-placeholder {
    background: linear-gradient(135deg, #eef2f7, #dbe3ef);
}

.gm-category-listing-section .gm-category-card__meta {
    color: var(--cl-card-meta);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 11px;
    font-weight: 700;
    justify-content: center;
    padding: 14px 14px 0;
    text-transform: uppercase;
}

.gm-category-listing-section .gm-category-card__count,
.gm-category-listing-section .gm-category-card__locale {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gm-category-listing-section .gm-category-card__name {
    color: var(--cl-card-text);
    font-family: var(--cl-title-font);
    font-size: 16px;
    line-height: 1.3;
    margin: 6px 14px 0;
    overflow-wrap: anywhere;
    text-align: center;
}

.gm-category-listing-section .gm-category-card__description {
    color: var(--cl-card-text);
    display: -webkit-box;
    font-size: 14px;
    line-height: 1.5;
    margin: 8px 18px 0;
    opacity: 0.7;
    overflow: hidden;
    text-align: center;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.gm-category-listing-section .gm-category-card__actions {
    display: grid;
    gap: 8px;
    padding: 14px;
}

.gm-category-listing-section .gm-category-card__cta {
    align-items: center;
    background: var(--cl-button-bg);
    border: 1px solid var(--cl-button-bg);
    border-radius: var(--cl-button-radius);
    box-shadow: var(--cl-button-shadow);
    color: var(--cl-button-text);
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    text-decoration: none;
}

.gm-category-listing-section .gm-category-card__cta:hover { filter: brightness(0.92); }

@media (max-width: 980px) {
    .gm-category-listing-section .gm-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .gm-category-listing-section .gm-category-grid {
        grid-template-columns: 1fr;
    }
    .gm-category-listing-section {
        padding: var(--cl-section-padding-block) var(--gm-section-inline-padding);
    }
}

/* getme-css-bundle:end css/commerce/sections/category-listing.css */


/* getme-css-bundle: css/commerce/sections/category-detail.css */
/* ════════════════════════════════════════════════════════════════════
   category-detail — section stylesheet (self-contained)

   Owner       : sections/category-detail.json + .html
   Namespace   : --cd-* (category-detail). Unique to this section.
   Scope       : Every rule starts with `.gm-category-detail-section`.
   ════════════════════════════════════════════════════════════════════ */

.gm-category-detail-section {
    --cd-section-bg: transparent;
    --cd-text-color: var(--gm-text);
    --cd-title-color: var(--gm-text);
    --cd-kicker-color: var(--gm-muted);
    --cd-card-bg: #ffffff;
    --cd-card-border: var(--gm-border);
    --cd-card-meta: var(--gm-muted);
    --cd-button-bg: var(--gm-primary);
    --cd-button-text: #ffffff;
    --cd-button-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    --cd-button-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    --cd-section-padding-block: var(--theme-spacing-3xl, 64px);
    --cd-content-gap: var(--theme-spacing-xl, 32px);
    --cd-media-radius: var(--theme-radius-lg, 12px);
    --cd-media-shadow: var(--theme-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.06));
    --cd-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --cd-body-font: var(--font-primary, sans-serif);
    --cd-product-media-ratio: 1 / 1;
    --cd-product-card-max-width: 280px;

    /* Flat, page-integrated collection page — shared standard with detail pages. */
    background: var(--cd-section-bg);
    border: none;
    border-radius: 0;
    color: var(--cd-text-color);
    font-family: var(--cd-body-font);
    padding: var(--cd-section-padding-block) var(--gm-section-inline-padding);
}

.gm-category-detail-section .gm-category-detail {
    display: grid;
    gap: var(--cd-content-gap);
    grid-template-columns: minmax(0, 1.35fr) minmax(340px, 0.85fr);
}

.gm-category-detail-section--layout-stacked .gm-category-detail,
.gm-category-detail-section--layout-wide_hero .gm-category-detail {
    grid-template-columns: 1fr;
}

.gm-category-detail-section--layout-wide_hero .gm-category-detail__gallery {
    width: 100%;
}

.gm-category-detail-section .gm-category-detail__gallery { min-width: 0; }

.gm-category-detail-section .gm-category-detail__media {
    /* Frameless hero media — rounded image on the shared media surface, no box. */
    background: var(--gm-media-surface);
    border-radius: var(--cd-media-radius);
    box-shadow: var(--cd-media-shadow);
    overflow: hidden;
}

.gm-category-detail-section .gm-category-detail__media img {
    aspect-ratio: 4 / 3;
    display: block;
    height: min(42vw, 420px);
    object-fit: contain;
    width: 100%;
}

.gm-category-detail-section--image-square .gm-category-detail__media img { aspect-ratio: 1 / 1; }
.gm-category-detail-section--image-portrait .gm-category-detail__media img { aspect-ratio: 3 / 4; }
.gm-category-detail-section--image-auto .gm-category-detail__media img { aspect-ratio: auto; }

.gm-category-detail-section .gm-category-detail__image-placeholder {
    aspect-ratio: 4 / 3;
    background: linear-gradient(135deg, #eef2f7, #dbe3ef);
    display: block;
    width: 100%;
}

.gm-category-detail-section .gm-category-detail__body { min-width: 0; }
.gm-category-detail-section .gm-kicker { color: var(--cd-kicker-color); }
.gm-category-detail-section .gm-category-detail__title {
    color: var(--cd-title-color);
    font-family: var(--cd-title-font);
    font-size: 40px;
    line-height: 1.15;
    margin: 6px 0 12px;
    overflow-wrap: anywhere;
}

.gm-category-detail-section .gm-category-detail__summary {
    color: var(--cd-text-color);
    line-height: 1.65;
    margin: 0 0 16px;
    opacity: 0.85;
}

.gm-category-detail-section .gm-category-detail__count {
    color: var(--cd-card-meta);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin: 16px 0 0;
    text-transform: uppercase;
}

.gm-category-detail-section .gm-category-detail__description,
.gm-category-detail-section .gm-category-detail__seo,
.gm-category-detail-section .gm-category-detail__products {
    border-top: 1px solid var(--gm-border);
    margin-top: 28px;
    padding-top: 24px;
}

.gm-category-detail-section .gm-category-detail__description h2,
.gm-category-detail-section .gm-category-detail__seo h2,
.gm-category-detail-section .gm-category-detail__products h2 {
    color: var(--cd-title-color);
    font-family: var(--cd-title-font);
    font-size: 20px;
    margin: 0 0 14px;
}

.gm-category-detail-section .gm-rich-text {
    color: var(--cd-text-color);
    line-height: 1.75;
    max-width: 760px;
}
.gm-category-detail-section .gm-rich-text p:first-child { margin-top: 0; }

/* ── Embedded product grid (scoped) ────────────────────────────── */
.gm-category-detail-section .gm-category-detail__product-grid {
    display: grid;
    gap: 22px;
    grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), var(--cd-product-card-max-width)));
    justify-content: start;
}

.gm-category-detail-section .gm-category-detail__product-card {
    align-items: stretch;
    background: var(--cd-card-bg);
    border: 1px solid var(--cd-card-border);
    border-radius: var(--cd-media-radius);
    box-shadow: var(--theme-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.06));
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.gm-category-detail-section .gm-category-detail__product-card:hover {
    border-color: color-mix(in srgb, var(--cd-button-bg) 35%, var(--cd-card-border));
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
    transform: translateY(-2px);
}

.gm-category-detail-section .gm-category-detail__product-link {
    color: var(--cd-text-color);
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    text-decoration: none;
}

.gm-category-detail-section .gm-category-detail__product-image,
.gm-category-detail-section .gm-category-detail__product-placeholder {
    background: var(--gm-media-surface);
    display: block;
    flex: 0 0 auto;
    width: 100%;
}

.gm-category-detail-section .gm-category-detail__product-image {
    aspect-ratio: var(--cd-product-media-ratio);
    height: auto;
    object-fit: contain;
    padding: clamp(10px, 3vw, 18px);
}

.gm-category-detail-section .gm-category-detail__product-placeholder {
    aspect-ratio: var(--cd-product-media-ratio);
    width: 100%;
}

.gm-category-detail-section .gm-category-detail__product-placeholder {
    background: var(--gm-media-surface);
}

.gm-category-detail-section .gm-category-detail__product-meta {
    color: var(--cd-card-meta);
    display: block;
    font-size: 11px;
    font-weight: 700;
    padding: 14px 18px 0;
    text-transform: uppercase;
}

.gm-category-detail-section .gm-category-detail__product-card h3 {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--cd-text-color);
    display: -webkit-box;
    font-family: var(--cd-title-font);
    font-size: 16px;
    line-height: 1.3;
    margin: 12px 16px 0;
    max-height: calc(1.3em * 2);
    min-height: calc(1.3em * 2);
    overflow: hidden;
    overflow-wrap: anywhere;
    text-align: center;
}

.gm-category-detail-section .gm-category-detail__product-price-stack {
    align-content: center;
    color: var(--cd-text-color);
    display: grid;
    gap: 4px;
    justify-items: center;
    margin: auto 16px 14px;
    min-height: 54px;
    padding-top: 12px;
}

.gm-category-detail-section .gm-category-detail__product-price {
    color: var(--cd-text-color);
    display: block;
    font-size: 17px;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    text-align: center;
}

.gm-category-detail-section .gm-category-detail__product-compare-price {
    color: var(--cd-card-meta);
    font-size: 13px;
    text-decoration: line-through;
}

.gm-category-detail-section .gm-category-detail__product-actions {
    display: grid;
    flex: 0 0 auto;
    gap: 8px;
    grid-auto-rows: minmax(40px, auto);
    padding: 0 16px 16px;
}

.gm-category-detail-section .gm-category-detail__product-action-primary,
.gm-category-detail-section .gm-category-detail__product-action-secondary {
    align-items: center;
    border-radius: var(--cd-button-radius);
    box-sizing: border-box;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 700;
    height: 40px;
    justify-content: center;
    line-height: 1.2;
    min-height: 40px;
    padding: 0 14px;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    width: 100%;
}

.gm-category-detail-section .gm-category-detail__product-action-primary {
    background: var(--cd-button-bg);
    border: 1px solid var(--cd-button-bg);
    box-shadow: var(--cd-button-shadow);
    color: var(--cd-button-text);
}

.gm-category-detail-section .gm-category-detail__product-action-primary:hover:not([disabled]) {
    filter: brightness(0.92);
}

.gm-category-detail-section .gm-category-detail__product-action-secondary {
    background: var(--gm-surface);
    border: 1px solid var(--cd-button-bg);
    color: var(--cd-button-bg);
}

.gm-category-detail-section .gm-category-detail__product-action-secondary:hover:not([disabled]) {
    background: color-mix(in srgb, var(--cd-button-bg) 8%, var(--gm-surface));
}

.gm-category-detail-section .gm-category-detail__product-action-primary[disabled],
.gm-category-detail-section .gm-category-detail__product-action-secondary[disabled],
.gm-category-detail-section .gm-category-detail__product-action-primary[aria-disabled="true"],
.gm-category-detail-section .gm-category-detail__product-action-secondary[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.6;
}

.gm-category-detail-section .gm-category-detail__empty {
    color: var(--cd-text-color);
    opacity: 0.7;
    padding: 12px;
}

.gm-category-detail-section--missing { text-align: center; }

@media (max-width: 980px) {
    .gm-category-detail-section .gm-category-detail { grid-template-columns: 1fr; }
    .gm-category-detail-section .gm-category-detail__product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .gm-category-detail-section { padding: var(--cd-section-padding-block) 18px; }
    .gm-category-detail-section .gm-category-detail__product-grid { grid-template-columns: 1fr; }
    .gm-category-detail-section .gm-category-detail__title { font-size: 32px; }
    .gm-category-detail-section .gm-category-detail__meta { grid-template-columns: 1fr; }
}

/* getme-css-bundle:end css/commerce/sections/category-detail.css */


/* getme-css-bundle: css/commerce/sections/brand-listing.css */
/* ════════════════════════════════════════════════════════════════════
   brand-listing — section stylesheet (self-contained)

   Owner       : sections/brand-listing.json + .html
   Namespace   : --bl-* (brand-listing). Unique to this section.
   Scope       : Every rule starts with `.gm-brand-listing-section`.

   Note: the LEGACY .gm-brand-section class still exists in
   commerce/listings.css for non-section-based brand listings. The two
   class names intentionally differ so the legacy path keeps working
   during migration.
   ════════════════════════════════════════════════════════════════════ */

.gm-brand-listing-section {
    --bl-section-bg: transparent;
    --bl-text-color: var(--gm-text);
    --bl-title-color: var(--gm-text);
    --bl-kicker-color: var(--gm-muted);
    --bl-card-bg: #ffffff;
    --bl-card-border: var(--gm-border);
    --bl-card-text: var(--gm-text);
    --bl-card-meta: var(--gm-muted);
    --bl-button-bg: var(--gm-primary);
    --bl-button-text: #ffffff;
    --bl-button-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    --bl-button-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    --bl-section-padding-block: var(--theme-spacing-3xl, 64px);
    --bl-grid-gap: var(--theme-spacing-lg, 24px);
    --bl-card-radius: var(--theme-card-radius, var(--theme-radius-lg, 12px));
    --bl-card-shadow: var(--theme-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.06));
    --bl-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --bl-body-font: var(--font-primary, sans-serif);
    --bl-grid-columns: 3;

    /* Flat, page-integrated listing — shared standard with product/service/category listing. */
    background: var(--bl-section-bg);
    border: none;
    border-radius: 0;
    box-shadow: none;
    color: var(--bl-text-color);
    font-family: var(--bl-body-font);
    padding: var(--bl-section-padding-block) var(--gm-section-inline-padding);
}

.gm-brand-listing-section__head { margin-bottom: 24px; }
.gm-brand-listing-section__title {
    color: var(--bl-title-color);
    font-family: var(--bl-title-font);
    margin: 4px 0 8px;
}
.gm-brand-listing-section .gm-kicker { color: var(--bl-kicker-color); }
.gm-brand-listing-section__intro { color: var(--bl-text-color); opacity: 0.85; }
.gm-brand-listing-section__empty {
    color: var(--bl-text-color);
    opacity: 0.7;
    padding: 24px;
    text-align: center;
}

/* Modifiers */
.gm-brand-listing-section--columns-2 { --bl-grid-columns: 2; }
.gm-brand-listing-section--columns-3 { --bl-grid-columns: 3; }
.gm-brand-listing-section--columns-4 { --bl-grid-columns: 4; }
.gm-brand-listing-section--card-minimal { border: none; box-shadow: none; }
.gm-brand-listing-section--card-elevated .gm-brand-listing-section__card {
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}

.gm-brand-listing-section--image-landscape .gm-brand-listing-section__card-image,
.gm-brand-listing-section--image-landscape .gm-brand-listing-section__placeholder { aspect-ratio: 4 / 3; }
.gm-brand-listing-section--image-portrait .gm-brand-listing-section__card-image,
.gm-brand-listing-section--image-portrait .gm-brand-listing-section__placeholder { aspect-ratio: 3 / 4; }

.gm-brand-listing-section--hover-border .gm-brand-listing-section__card:hover {
    box-shadow: none;
    transform: none;
}
.gm-brand-listing-section--hover-none .gm-brand-listing-section__card:hover {
    border-color: var(--bl-card-border);
    box-shadow: none;
    transform: none;
}
.gm-brand-listing-section--hover-zoom .gm-brand-listing-section__card-image { transition: transform 240ms ease; }
.gm-brand-listing-section--hover-zoom .gm-brand-listing-section__card:hover .gm-brand-listing-section__card-image {
    transform: scale(1.04);
}

/* Grid + card */
.gm-brand-listing-section .gm-brand-listing-section__grid {
    display: grid;
    gap: var(--bl-grid-gap);
    grid-template-columns: repeat(var(--bl-grid-columns), minmax(0, 1fr));
}

.gm-brand-listing-section .gm-brand-listing-section__card {
    background: var(--bl-card-bg);
    border: 1px solid var(--bl-card-border);
    border-radius: var(--bl-card-radius);
    box-shadow: var(--bl-card-shadow);
    display: grid;
    grid-template-rows: 1fr auto;
    min-width: 0;
    overflow: hidden;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.gm-brand-listing-section .gm-brand-listing-section__card:hover {
    border-color: color-mix(in srgb, var(--bl-button-bg) 35%, var(--bl-card-border));
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.10);
    transform: translateY(-2px);
}

.gm-brand-listing-section .gm-brand-listing-section__card-link {
    color: var(--bl-card-text);
    display: grid;
    grid-template-rows: auto auto auto auto;
    min-height: 100%;
    text-decoration: none;
}

.gm-brand-listing-section .gm-brand-listing-section__card-image,
.gm-brand-listing-section .gm-brand-listing-section__placeholder {
    aspect-ratio: 1 / 1;
    display: block;
    width: 100%;
}

.gm-brand-listing-section .gm-brand-listing-section__card-image {
    background: var(--gm-media-surface);
    height: auto;
    object-fit: cover;
}

.gm-brand-listing-section .gm-brand-listing-section__placeholder {
    background: linear-gradient(135deg, #eef2f7, #dbe3ef);
}

.gm-brand-listing-section .gm-brand-listing-section__card-meta {
    color: var(--bl-card-meta);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 11px;
    font-weight: 700;
    padding: 14px 14px 0;
    text-transform: uppercase;
}

.gm-brand-listing-section .gm-brand-listing-section__card-name {
    color: var(--bl-card-text);
    font-family: var(--bl-title-font);
    font-size: 16px;
    line-height: 1.3;
    margin: 6px 14px 0;
    overflow-wrap: anywhere;
    text-align: center;
}

.gm-brand-listing-section .gm-brand-listing-section__card-description {
    color: var(--bl-card-text);
    display: -webkit-box;
    font-size: 14px;
    line-height: 1.5;
    margin: 8px 18px 0;
    opacity: 0.7;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.gm-brand-listing-section .gm-brand-listing-section__card-actions {
    display: grid;
    gap: 8px;
    padding: 14px;
}

.gm-brand-listing-section .gm-brand-listing-section__card-cta {
    align-items: center;
    background: var(--bl-button-bg);
    border: 1px solid var(--bl-button-bg);
    border-radius: var(--bl-button-radius);
    box-shadow: var(--bl-button-shadow);
    color: var(--bl-button-text);
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    text-decoration: none;
}

.gm-brand-listing-section .gm-brand-listing-section__card-cta:hover { filter: brightness(0.92); }

@media (max-width: 980px) {
    .gm-brand-listing-section .gm-brand-listing-section__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .gm-brand-listing-section .gm-brand-listing-section__grid {
        grid-template-columns: 1fr;
    }
    .gm-brand-listing-section {
        padding: var(--bl-section-padding-block) var(--gm-section-inline-padding);
    }
}

/* getme-css-bundle:end css/commerce/sections/brand-listing.css */


/* getme-css-bundle: css/commerce/sections/brand-detail.css */
/* ════════════════════════════════════════════════════════════════════
   brand-detail — section stylesheet (self-contained)

   Owner       : sections/brand-detail.json + .html
   Namespace   : --bd-* (brand-detail). Unique to this section.
   Scope       : Every rule starts with `.gm-brand-detail-section`.
   ════════════════════════════════════════════════════════════════════ */

.gm-brand-detail-section {
    --bd-section-bg: transparent;
    --bd-text-color: var(--gm-text);
    --bd-title-color: var(--gm-text);
    --bd-kicker-color: var(--gm-muted);
    --bd-card-bg: #ffffff;
    --bd-card-border: var(--gm-border);
    --bd-card-meta: var(--gm-muted);
    --bd-button-bg: var(--gm-primary);
    --bd-button-text: #ffffff;
    --bd-button-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    --bd-button-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    --bd-section-padding-block: var(--theme-spacing-3xl, 64px);
    --bd-content-gap: var(--theme-spacing-xl, 32px);
    --bd-media-radius: var(--theme-radius-lg, 12px);
    --bd-media-shadow: var(--theme-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.06));
    --bd-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --bd-body-font: var(--font-primary, sans-serif);

    /* Flat, page-integrated brand page — shared standard with detail pages. */
    background: var(--bd-section-bg);
    border: none;
    border-radius: 0;
    color: var(--bd-text-color);
    font-family: var(--bd-body-font);
    padding: var(--bd-section-padding-block) var(--gm-section-inline-padding);
}

.gm-brand-detail-section .gm-brand-detail-section__hero {
    display: grid;
    gap: var(--bd-content-gap);
    grid-template-columns: minmax(0, 1.35fr) minmax(340px, 0.85fr);
}

.gm-brand-detail-section--layout-stacked .gm-brand-detail-section__hero,
.gm-brand-detail-section--layout-wide_hero .gm-brand-detail-section__hero {
    grid-template-columns: 1fr;
}

.gm-brand-detail-section--layout-wide_hero .gm-brand-detail-section__gallery {
    width: 100%;
}

.gm-brand-detail-section .gm-brand-detail-section__gallery { min-width: 0; }

.gm-brand-detail-section .gm-brand-detail-section__media {
    /* Frameless hero media — rounded image on the shared media surface, no box. */
    background: var(--gm-media-surface);
    border-radius: var(--bd-media-radius);
    overflow: hidden;
}

.gm-brand-detail-section .gm-brand-detail-section__media img {
    aspect-ratio: 4 / 3;
    display: block;
    height: auto;
    object-fit: cover;
    width: 100%;
}

.gm-brand-detail-section--image-square .gm-brand-detail-section__media img { aspect-ratio: 1 / 1; }
.gm-brand-detail-section--image-portrait .gm-brand-detail-section__media img { aspect-ratio: 3 / 4; }
.gm-brand-detail-section--image-auto .gm-brand-detail-section__media img { aspect-ratio: auto; }

.gm-brand-detail-section .gm-brand-detail-section__image-placeholder {
    aspect-ratio: 4 / 3;
    background: linear-gradient(135deg, #eef2f7, #dbe3ef);
    display: block;
    width: 100%;
}

.gm-brand-detail-section .gm-brand-detail-section__body { min-width: 0; }
.gm-brand-detail-section .gm-kicker { color: var(--bd-kicker-color); }
.gm-brand-detail-section .gm-brand-detail-section__title {
    color: var(--bd-title-color);
    font-family: var(--bd-title-font);
    font-size: 40px;
    line-height: 1.15;
    margin: 6px 0 12px;
    overflow-wrap: anywhere;
}

.gm-brand-detail-section .gm-brand-detail-section__summary {
    color: var(--bd-text-color);
    line-height: 1.65;
    margin: 0 0 16px;
    opacity: 0.85;
}

.gm-brand-detail-section .gm-brand-detail-section__count {
    color: var(--bd-card-meta);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin: 16px 0 0;
    text-transform: uppercase;
}

.gm-brand-detail-section .gm-brand-detail-section__description,
.gm-brand-detail-section .gm-brand-detail-section__products {
    border-top: 1px solid var(--gm-border);
    margin-top: 28px;
    padding-top: 24px;
}

.gm-brand-detail-section .gm-brand-detail-section__description h2,
.gm-brand-detail-section .gm-brand-detail-section__products h2 {
    color: var(--bd-title-color);
    font-family: var(--bd-title-font);
    font-size: 20px;
    margin: 0 0 14px;
}

.gm-brand-detail-section .gm-rich-text {
    color: var(--bd-text-color);
    line-height: 1.75;
    max-width: 760px;
}
.gm-brand-detail-section .gm-rich-text p:first-child { margin-top: 0; }

/* ── Embedded product grid (scoped) ────────────────────────────── */
.gm-brand-detail-section .gm-brand-detail-section__product-grid {
    display: grid;
    gap: 22px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gm-brand-detail-section .gm-brand-detail-section__product-card {
    background: var(--bd-card-bg);
    border: 1px solid var(--bd-card-border);
    border-radius: var(--bd-media-radius);
    display: grid;
    grid-template-rows: 1fr auto;
    min-width: 0;
    overflow: hidden;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.gm-brand-detail-section .gm-brand-detail-section__product-card:hover {
    border-color: color-mix(in srgb, var(--bd-button-bg) 35%, var(--bd-card-border));
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
    transform: translateY(-2px);
}

.gm-brand-detail-section .gm-brand-detail-section__product-card a {
    color: var(--bd-text-color);
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    text-decoration: none;
}

.gm-brand-detail-section .gm-brand-detail-section__product-card img,
.gm-brand-detail-section .gm-brand-detail-section__product-placeholder {
    aspect-ratio: 1 / 1;
    background: var(--gm-media-surface);
    display: block;
    object-fit: cover;
    width: 100%;
}

.gm-brand-detail-section .gm-brand-detail-section__product-placeholder {
    background: linear-gradient(135deg, #eef2f7, #dbe3ef);
}

.gm-brand-detail-section .gm-brand-detail-section__product-meta {
    color: var(--bd-card-meta);
    display: block;
    font-size: 11px;
    font-weight: 700;
    padding: 14px 14px 0;
    text-transform: uppercase;
}

.gm-brand-detail-section .gm-brand-detail-section__product-card h3 {
    color: var(--bd-text-color);
    font-family: var(--bd-title-font);
    font-size: 16px;
    line-height: 1.3;
    margin: 16px 18px 0;
    overflow-wrap: anywhere;
    text-align: center;
}

.gm-brand-detail-section .gm-brand-detail-section__product-price {
    color: var(--bd-text-color);
    display: block;
    font-size: 17px;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    margin: auto 18px 16px;
    padding-top: 12px;
    text-align: center;
}

.gm-brand-detail-section .gm-brand-detail-section__product-actions {
    padding: 0 18px 18px;
}

.gm-brand-detail-section .gm-brand-detail-section__product-cta {
    align-items: center;
    background: var(--bd-button-bg);
    border: 1px solid var(--bd-button-bg);
    border-radius: var(--bd-button-radius);
    box-shadow: var(--bd-button-shadow);
    color: var(--bd-button-text);
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    text-decoration: none;
    width: 100%;
}

.gm-brand-detail-section .gm-brand-detail-section__product-cta:hover { filter: brightness(0.92); }

.gm-brand-detail-section .gm-brand-detail-section__empty {
    color: var(--bd-text-color);
    opacity: 0.7;
    padding: 12px;
}

.gm-brand-detail-section--missing { text-align: center; }

@media (max-width: 980px) {
    .gm-brand-detail-section .gm-brand-detail-section__hero { grid-template-columns: 1fr; }
    .gm-brand-detail-section .gm-brand-detail-section__product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .gm-brand-detail-section { padding: var(--bd-section-padding-block) 18px; }
    .gm-brand-detail-section .gm-brand-detail-section__product-grid { grid-template-columns: 1fr; }
    .gm-brand-detail-section .gm-brand-detail-section__title { font-size: 32px; }
    .gm-brand-detail-section .gm-brand-detail-section__meta { grid-template-columns: 1fr; }
}

/* getme-css-bundle:end css/commerce/sections/brand-detail.css */

/* Editorial data sections */

/* getme-css-bundle: css/content/sections/blog.css */
.gm-blog-listing-section,
.gm-blog-post-section {
    --bl-section-bg: transparent;
    --bl-text-color: var(--gm-text);
    --bl-title-color: var(--gm-text);
    --bl-kicker-color: var(--gm-primary);
    --bl-card-bg: var(--gm-surface);
    --bl-card-border: var(--gm-border);
    --bl-link-color: var(--gm-primary-dark, var(--gm-primary));
    --bl-section-padding-block: var(--theme-spacing-3xl, 56px);
    --bl-grid-gap: var(--theme-spacing-lg, 24px);
    --bl-card-radius: var(--theme-card-radius, var(--theme-radius-lg, 8px));
    --bl-card-shadow: var(--theme-shadow-sm, none);
    --bl-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --bl-body-font: var(--font-primary, sans-serif);
    color: var(--bl-text-color);
    font-family: var(--bl-body-font);
}

.gm-blog-listing-section {
    background: var(--bl-section-bg);
    padding-block: var(--bl-section-padding-block);
}

.gm-blog-listing-section__head,
.gm-blog-post-section__header {
    max-width: 760px;
    margin: 0 auto var(--theme-spacing-xl, 32px);
    text-align: center;
}

.gm-blog-listing-section__title,
.gm-blog-post-section__title {
    margin: 0;
    color: var(--bl-title-color);
    font-family: var(--bl-title-font);
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.08;
}

.gm-blog-listing-section__intro,
.gm-blog-post-section__excerpt {
    margin: 14px auto 0;
    max-width: 640px;
    color: var(--gm-muted);
    font-size: 1rem;
    line-height: 1.7;
}

.gm-blog-listing-section__filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin: 0 0 var(--theme-spacing-xl, 32px);
}

.gm-blog-listing-section__filter,
.gm-blog-listing-section__pagination a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    border: 1px solid var(--bl-card-border);
    border-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    background: var(--bl-card-bg);
    color: var(--gm-muted);
    font-size: 14px;
    font-weight: 700;
    padding: 8px 14px;
    text-decoration: none;
}

.gm-blog-listing-section__filter:hover,
.gm-blog-listing-section__filter.is-active,
.gm-blog-listing-section__pagination a[aria-current="page"] {
    border-color: var(--gm-primary);
    color: var(--bl-link-color);
}

.gm-blog-listing-section__grid {
    display: grid;
    gap: var(--bl-grid-gap);
}

.gm-blog-listing-section--columns-2 .gm-blog-listing-section__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gm-blog-listing-section--columns-3 .gm-blog-listing-section__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gm-blog-listing-section--columns-4 .gm-blog-listing-section__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gm-blog-listing-section__card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--bl-card-border);
    border-radius: var(--bl-card-radius);
    background: var(--bl-card-bg);
    box-shadow: var(--bl-card-shadow);
}

.gm-blog-listing-section--card-minimal .gm-blog-listing-section__card {
    border-color: transparent;
    box-shadow: none;
}

.gm-blog-listing-section__media {
    display: block;
    overflow: hidden;
    background: var(--color-bg-secondary, var(--gm-bg));
}

.gm-blog-listing-section__media img,
.gm-blog-post-section__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gm-blog-listing-section--image-landscape .gm-blog-listing-section__media {
    aspect-ratio: 4 / 3;
}

.gm-blog-listing-section--image-wide .gm-blog-listing-section__media {
    aspect-ratio: 16 / 9;
}

.gm-blog-listing-section--image-square .gm-blog-listing-section__media {
    aspect-ratio: 1 / 1;
}

.gm-blog-listing-section--image-portrait .gm-blog-listing-section__media {
    aspect-ratio: 3 / 4;
}

.gm-blog-listing-section__placeholder {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 220px;
    background: var(--color-bg-secondary, var(--gm-bg));
}

.gm-blog-listing-section__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 14px;
    padding: 22px;
}

.gm-blog-listing-section__meta,
.gm-blog-post-section__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
    color: var(--gm-muted);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.01em;
}

.gm-blog-listing-section__meta time,
.gm-blog-post-section__meta time {
    font-variant-numeric: tabular-nums;
}

/* Article (detail) header is centered → keep its meta/date centered too (listing stays left). */
.gm-blog-post-section__meta {
    justify-content: center;
}

.gm-blog-listing-section__card-title {
    margin: 0;
    color: var(--bl-title-color);
    font-family: var(--bl-title-font);
    font-size: 1.25rem;
    line-height: 1.25;
}

.gm-blog-listing-section__card-title a,
.gm-blog-post-section__breadcrumb a,
.gm-blog-post-section__back,
.gm-blog-post-section__share a {
    color: inherit;
    text-decoration: none;
}

.gm-blog-listing-section__card-title a:hover,
.gm-blog-post-section__breadcrumb a:hover,
.gm-blog-post-section__back:hover,
.gm-blog-post-section__share a:hover {
    color: var(--bl-link-color);
}

.gm-blog-listing-section__excerpt {
    margin: 0;
    color: var(--gm-muted);
    line-height: 1.65;
}

.gm-blog-listing-section__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: auto;
}

.gm-blog-listing-section__author {
    color: var(--gm-muted);
    font-size: 13px;
    font-weight: 700;
}

.gm-blog-listing-section__readmore {
    color: var(--bl-link-color);
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

.gm-blog-listing-section__pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: var(--theme-spacing-xl, 32px);
}

.gm-blog-listing-section__empty,
.gm-blog-post-section__missing {
    max-width: 620px;
    margin: 0 auto;
    border: 1px solid var(--bl-card-border);
    border-radius: var(--theme-container-radius, var(--theme-radius-lg, 12px));
    background: var(--bl-card-bg);
    padding: 32px;
    text-align: center;
}

.gm-blog-listing-section__empty h2,
.gm-blog-post-section__missing h1 {
    margin: 0 0 8px;
}

.gm-blog-listing-section__empty p {
    margin: 0;
    color: var(--gm-muted);
}

.gm-blog-post-section {
    --bp-section-bg: transparent;
    --bp-text-color: var(--gm-text);
    --bp-title-color: var(--gm-text);
    --bp-kicker-color: var(--gm-primary);
    --bp-surface-bg: transparent;
    --bp-border: var(--gm-border);
    --bp-section-padding-block: var(--theme-spacing-3xl, 56px);
    --bp-content-gap: var(--theme-spacing-lg, 24px);
    --bp-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --bp-body-font: var(--font-primary, sans-serif);
    max-width: 920px;
    margin: 0 auto;
    background: var(--bp-section-bg);
    color: var(--bp-text-color);
    font-family: var(--bp-body-font);
    padding-block: var(--bp-section-padding-block);
}

.gm-blog-post-section--width-sm {
    max-width: 760px;
}

.gm-blog-post-section--width-lg {
    max-width: 1080px;
}

.gm-blog-post-section__header {
    display: grid;
    gap: 14px;
}

.gm-blog-post-section__breadcrumb {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    color: var(--gm-muted);
    font-size: 14px;
    font-weight: 700;
}

.gm-blog-post-section__media {
    overflow: hidden;
    margin: 0 0 var(--bp-content-gap);
    border-radius: var(--theme-media-radius, var(--theme-radius-lg, 12px));
    background: var(--color-bg-secondary, var(--gm-bg));
}

.gm-blog-post-section--image-wide .gm-blog-post-section__media {
    aspect-ratio: 16 / 9;
}

.gm-blog-post-section--image-landscape .gm-blog-post-section__media {
    aspect-ratio: 4 / 3;
}

.gm-blog-post-section--image-square .gm-blog-post-section__media {
    aspect-ratio: 1 / 1;
}

.gm-blog-post-section__body {
    display: block;
    border-top: 1px solid var(--bp-border);
    padding-top: var(--bp-content-gap);
    color: var(--bp-text-color);
    font-size: 1.05rem;
    line-height: 1.78;
}

.gm-blog-post-section__body > *:first-child {
    margin-top: 0;
}

.gm-blog-post-section__body img {
    max-width: 100%;
    height: auto;
    border-radius: var(--theme-media-radius, var(--theme-radius-lg, 12px));
}

.gm-blog-post-section__tags,
.gm-blog-post-section__footer,
.gm-blog-post-section__share {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.gm-blog-post-section__tags {
    margin-top: var(--bp-content-gap);
}

.gm-blog-post-section__tags span,
.gm-blog-post-section__share a {
    border: 1px solid var(--bp-border);
    border-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    color: var(--gm-muted);
    font-size: 13px;
    font-weight: 700;
    padding: 7px 10px;
}

.gm-blog-post-section__footer {
    align-items: center;
    justify-content: space-between;
    margin-top: var(--theme-spacing-xl, 32px);
}

.gm-blog-post-section__back {
    color: var(--bl-link-color);
    font-weight: 800;
}

@media (max-width: 980px) {
    .gm-blog-listing-section--columns-3 .gm-blog-listing-section__grid,
    .gm-blog-listing-section--columns-4 .gm-blog-listing-section__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .gm-blog-listing-section--columns-2 .gm-blog-listing-section__grid,
    .gm-blog-listing-section--columns-3 .gm-blog-listing-section__grid,
    .gm-blog-listing-section--columns-4 .gm-blog-listing-section__grid {
        grid-template-columns: 1fr;
    }

    .gm-blog-listing-section__footer,
    .gm-blog-post-section__footer {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* getme-css-bundle:end css/content/sections/blog.css */


/* getme-css-bundle: css/content/sections/docs.css */
.gm-docs-listing-section,
.gm-doc-detail-section {
    color: var(--dl-text-color, var(--dd-text-color, var(--gm-text)));
    font-family: var(--dl-body-font, var(--dd-body-font, var(--font-primary, sans-serif)));
}

.gm-docs-listing-section {
    --dl-section-bg: transparent;
    --dl-text-color: var(--gm-text);
    --dl-title-color: var(--gm-text);
    --dl-kicker-color: var(--gm-primary);
    --dl-card-bg: var(--gm-surface);
    --dl-card-border: var(--gm-border);
    --dl-link-color: var(--gm-primary-dark, var(--gm-primary));
    --dl-section-padding-block: var(--theme-spacing-3xl, 56px);
    --dl-grid-gap: var(--theme-spacing-lg, 24px);
    --dl-card-radius: var(--theme-radius-lg, 8px);
    --dl-card-shadow: var(--theme-shadow-sm, none);
    --dl-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --dl-body-font: var(--font-primary, sans-serif);
    background: var(--dl-section-bg);
    padding-block: var(--dl-section-padding-block);
}

.gm-docs-listing-section__head,
.gm-doc-detail-section__header {
    max-width: 780px;
    margin: 0 auto var(--theme-spacing-xl, 32px);
    text-align: center;
}

.gm-docs-listing-section__title,
.gm-doc-detail-section__title {
    margin: 0;
    color: var(--dl-title-color, var(--dd-title-color, var(--gm-text)));
    font-family: var(--dl-title-font, var(--dd-title-font, var(--font-heading, var(--font-primary, sans-serif))));
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.08;
}

.gm-docs-listing-section__intro,
.gm-doc-detail-section__summary {
    max-width: 660px;
    margin: 14px auto 0;
    color: var(--gm-muted);
    font-size: 1rem;
    line-height: 1.7;
}

.gm-docs-listing-section__filters,
.gm-docs-listing-section__pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}

.gm-docs-listing-section__filters {
    margin: 0 0 var(--theme-spacing-xl, 32px);
}

.gm-docs-listing-section__filter,
.gm-docs-listing-section__pagination a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    border: 1px solid var(--dl-card-border);
    border-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    background: var(--dl-card-bg);
    color: var(--gm-muted);
    font-size: 14px;
    font-weight: 700;
    padding: 8px 14px;
    text-decoration: none;
}

.gm-docs-listing-section__filter:hover,
.gm-docs-listing-section__filter.is-active,
.gm-docs-listing-section__pagination a[aria-current="page"] {
    border-color: var(--gm-primary);
    color: var(--dl-link-color);
}

.gm-docs-listing-section__grid {
    display: grid;
    gap: var(--dl-grid-gap);
}

.gm-docs-listing-section--columns-2 .gm-docs-listing-section__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gm-docs-listing-section--columns-3 .gm-docs-listing-section__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gm-docs-listing-section--columns-4 .gm-docs-listing-section__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gm-docs-listing-section__card {
    display: flex;
    min-width: 0;
    min-height: 220px;
    flex-direction: column;
    gap: 14px;
    border: 1px solid var(--dl-card-border);
    border-radius: var(--dl-card-radius);
    background: var(--dl-card-bg);
    box-shadow: var(--dl-card-shadow);
    padding: 24px;
}

.gm-docs-listing-section--card-minimal .gm-docs-listing-section__card {
    border-color: transparent;
    box-shadow: none;
}

.gm-docs-listing-section__meta,
.gm-doc-detail-section__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 6px 12px;
    color: var(--gm-muted);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.01em;
}

.gm-docs-listing-section__meta time,
.gm-doc-detail-section__meta time {
    font-variant-numeric: tabular-nums;
}

/* Detail header is centered → keep its meta/date centered too (listing stays left). */
.gm-doc-detail-section__meta {
    justify-content: center;
}

.gm-docs-listing-section__card-title {
    margin: 0;
    color: var(--dl-title-color);
    font-family: var(--dl-title-font);
    font-size: 1.25rem;
    line-height: 1.25;
}

.gm-docs-listing-section__card-title a,
.gm-doc-detail-section__breadcrumb a,
.gm-doc-detail-section__back {
    color: inherit;
    text-decoration: none;
}

.gm-docs-listing-section__card-title a:hover,
.gm-doc-detail-section__breadcrumb a:hover,
.gm-doc-detail-section__back:hover {
    color: var(--dl-link-color, var(--dd-link-color, var(--gm-primary)));
}

.gm-docs-listing-section__summary {
    margin: 0;
    color: var(--gm-muted);
    line-height: 1.65;
}

.gm-docs-listing-section__readmore {
    margin-top: auto;
    color: var(--dl-link-color);
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

.gm-docs-listing-section__pagination {
    margin-top: var(--theme-spacing-xl, 32px);
}

.gm-docs-listing-section__empty,
.gm-doc-detail-section__missing {
    max-width: 620px;
    margin: 0 auto;
    border: 1px solid var(--dl-card-border, var(--dd-border, var(--gm-border)));
    border-radius: var(--theme-container-radius, var(--theme-radius-lg, 12px));
    background: var(--dl-card-bg, var(--dd-surface-bg, var(--gm-surface)));
    padding: 32px;
    text-align: center;
}

.gm-docs-listing-section__empty h2,
.gm-doc-detail-section__missing h1 {
    margin: 0 0 8px;
}

.gm-docs-listing-section__empty p {
    margin: 0;
    color: var(--gm-muted);
}

.gm-doc-detail-section {
    --dd-section-bg: transparent;
    --dd-text-color: var(--gm-text);
    --dd-title-color: var(--gm-text);
    --dd-kicker-color: var(--gm-primary);
    --dd-surface-bg: transparent;
    --dd-border: var(--gm-border);
    --dd-section-padding-block: var(--theme-spacing-3xl, 56px);
    --dd-content-gap: var(--theme-spacing-lg, 24px);
    --dd-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --dd-body-font: var(--font-primary, sans-serif);
    max-width: 920px;
    margin: 0 auto;
    background: var(--dd-section-bg);
    padding-block: var(--dd-section-padding-block);
}

.gm-doc-detail-section--width-sm {
    max-width: 760px;
}

.gm-doc-detail-section--width-lg {
    max-width: 1080px;
}

.gm-doc-detail-section__breadcrumb {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-bottom: 18px;
    color: var(--gm-muted);
    font-size: 14px;
    font-weight: 700;
}

.gm-doc-detail-section__body {
    display: grid;
    gap: var(--dd-content-gap);
    border-top: 1px solid var(--dd-border);
    padding-top: var(--theme-spacing-xl, 32px);
    line-height: 1.75;
}

.gm-doc-detail-section__body > * {
    margin-block: 0;
}

.gm-doc-detail-section__body a {
    color: var(--gm-primary-dark, var(--gm-primary));
}

.gm-doc-detail-section__footer {
    display: flex;
    justify-content: center;
    border-top: 1px solid var(--dd-border);
    margin-top: var(--theme-spacing-xl, 32px);
    padding-top: var(--theme-spacing-lg, 24px);
}

.gm-doc-detail-section__back {
    border: 1px solid var(--dd-border);
    border-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    padding: 10px 16px;
    font-weight: 800;
}

@media (max-width: 900px) {
    .gm-docs-listing-section__grid {
        grid-template-columns: 1fr;
    }
}

/* getme-css-bundle:end css/content/sections/docs.css */

/* Customer account application surfaces */

/* getme-css-bundle: css/customer/portal.css */
.gm-page-customer-account.gm-layout-focused,
.gm-page-customer-login.gm-layout-focused {
    background: var(--gm-bg);
}

.gm-page-customer-account .gm-main--focused,
.gm-page-customer-login .gm-main--focused {
    margin: 0;
    padding: 0;
    width: 100%;
}

.gm-customer-portal-section {
    display: grid;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 0;
    place-items: stretch;
    width: 100%;
}

.gm-customer-portal-section__mount {
    min-width: 0;
    width: 100%;
}

.gm-customer-login-section {
    display: block;
    margin-inline: auto;
    width: 100%;
}

.gm-page-customer-login .gm-customer-login-section {
    background: transparent;
    border: 0;
    box-shadow: none;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 0;
}

.gm-customer-login-section--drawer,
.gm-customer-login-section--modal {
    width: min(100%, 440px);
}

/* getme-css-bundle:end css/customer/portal.css */

/* Curated commerce strips (reusable on home / promo pages) */

/* getme-css-bundle: css/commerce/sections/featured-products.css */
/* ════════════════════════════════════════════════════════════════════
   featured-products — Curated product strip.
   Namespace: --fp-*   Scope: .gm-featured-products-section
   ════════════════════════════════════════════════════════════════════ */

.gm-featured-products-section {
    --fp-section-bg: transparent;
    --fp-text-color: var(--gm-text);
    --fp-title-color: var(--gm-text);
    --fp-kicker-color: var(--gm-primary);
    --fp-card-bg: var(--gm-surface);
    --fp-card-border: var(--gm-border);
    --fp-price-color: var(--gm-text);
    --fp-button-bg: var(--gm-primary);
    --fp-button-text: var(--gm-on-primary, #ffffff);
    --fp-button-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    --fp-button-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    --fp-section-padding-block: var(--theme-spacing-3xl, 64px);
    --fp-grid-gap: var(--theme-spacing-lg, 24px);
    --fp-card-radius: var(--theme-radius-lg, 12px);
    --fp-card-shadow: var(--theme-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.06));
    --fp-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --fp-body-font: var(--font-primary, sans-serif);
    --fp-grid-columns: 3;

    background: var(--fp-section-bg);
    color: var(--fp-text-color);
    font-family: var(--fp-body-font);
    padding: var(--fp-section-padding-block) var(--gm-section-inline-padding);
}

.gm-featured-products-section__head {
    margin: 0 auto 32px;
    max-width: 800px;
    text-align: center;
}
.gm-featured-products-section__head .gm-kicker {
    color: var(--fp-kicker-color);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
    text-transform: uppercase;
}
.gm-featured-products-section__title {
    color: var(--fp-title-color);
    font-family: var(--fp-title-font);
    font-size: clamp(24px, 3.4vw, 38px);
    margin: 0 0 10px;
}
.gm-featured-products-section__intro {
    color: var(--fp-text-color);
    font-size: 16px;
    margin: 0;
    opacity: 0.85;
}

.gm-featured-products-section--columns-2 { --fp-grid-columns: 2; }
.gm-featured-products-section--columns-3 { --fp-grid-columns: 3; }
.gm-featured-products-section--columns-4 { --fp-grid-columns: 4; }
.gm-featured-products-section--card-minimal .gm-featured-products-section__card {
    border: none;
    box-shadow: none;
}
.gm-featured-products-section--card-elevated .gm-featured-products-section__card {
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}

.gm-featured-products-section--image-landscape .gm-featured-products-section__card img,
.gm-featured-products-section--image-landscape .gm-featured-products-section__placeholder { aspect-ratio: 4 / 3; }
.gm-featured-products-section--image-portrait .gm-featured-products-section__card img,
.gm-featured-products-section--image-portrait .gm-featured-products-section__placeholder { aspect-ratio: 3 / 4; }

.gm-featured-products-section__grid {
    display: grid;
    gap: var(--fp-grid-gap);
    grid-template-columns: repeat(var(--fp-grid-columns), minmax(0, 1fr));
}

.gm-featured-products-section__card {
    align-items: stretch;
    background: var(--fp-card-bg);
    border: 1px solid var(--fp-card-border);
    border-radius: var(--fp-card-radius);
    box-shadow: var(--fp-card-shadow);
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
.gm-featured-products-section__card:hover {
    border-color: color-mix(in srgb, var(--fp-button-bg) 35%, var(--fp-card-border));
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.10);
    transform: translateY(-2px);
}

.gm-featured-products-section__card-link {
    color: var(--fp-text-color);
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    text-decoration: none;
}

.gm-featured-products-section__card img,
.gm-featured-products-section__placeholder {
    aspect-ratio: 1 / 1;
    background: var(--gm-media-surface);
    display: block;
    object-fit: cover;
    width: 100%;
}
.gm-featured-products-section__placeholder {
    background: linear-gradient(135deg, var(--color-bg-tertiary, #eef2f7), color-mix(in srgb, var(--gm-border) 42%, transparent));
}

.gm-featured-products-section__brand {
    color: var(--fp-text-color);
    display: block;
    font-size: 11px;
    font-weight: 700;
    min-height: 16px;
    opacity: 0.65;
    overflow: hidden;
    padding: 14px 14px 0;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.gm-featured-products-section__name {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--fp-title-color);
    display: -webkit-box;
    font-family: var(--fp-title-font);
    font-size: 16px;
    line-height: 1.3;
    max-height: calc(1.3em * 2);
    margin: 6px 14px 0;
    min-height: calc(1.3em * 2);
    overflow: hidden;
    overflow-wrap: anywhere;
    text-align: center;
}

.gm-featured-products-section__price-stack {
    align-content: center;
    display: grid;
    gap: 4px;
    justify-items: center;
    margin: auto 14px 14px;
    min-height: 54px;
    padding-top: 12px;
}
.gm-featured-products-section__price { color: var(--fp-price-color); }
.gm-featured-products-section__compare-price {
    color: var(--fp-text-color);
    font-size: 13px;
    opacity: 0.7;
    text-decoration: line-through;
}

.gm-featured-products-section__actions {
    align-self: stretch;
    display: grid;
    flex: 0 0 auto;
    gap: 10px;
    grid-auto-rows: minmax(40px, auto);
    margin-top: 0;
    padding: 0 14px 14px;
}
.gm-featured-products-section__cta {
    align-items: center;
    background: var(--fp-button-bg);
    border: 1px solid var(--fp-button-bg);
    border-radius: var(--fp-button-radius);
    box-shadow: var(--fp-button-shadow);
    box-sizing: border-box;
    color: var(--fp-button-text);
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 700;
    height: 40px;
    justify-content: center;
    line-height: 1.2;
    min-height: 40px;
    padding: 0 14px;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    width: 100%;
    transition: background 150ms ease, color 150ms ease, filter 150ms ease, box-shadow 150ms ease;
}
.gm-featured-products-section__cta--secondary {
    background: transparent;
    color: var(--fp-button-bg);
}
.gm-featured-products-section__cta:hover:not([disabled]):not([aria-disabled="true"]) {
    box-shadow: 0 6px 18px color-mix(in srgb, var(--fp-button-bg) 28%, transparent);
    filter: brightness(0.92);
}
/* Outline secondary fills with the primary colour on hover (not a no-op brightness). */
.gm-featured-products-section__cta--secondary:hover:not([disabled]):not([aria-disabled="true"]) {
    background: var(--fp-button-bg);
    box-shadow: none;
    color: var(--fp-button-text);
    filter: none;
}
.gm-featured-products-section__cta:active:not([disabled]):not([aria-disabled="true"]) {
    filter: brightness(0.88);
}
.gm-featured-products-section__cta[disabled],
.gm-featured-products-section__cta[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.62;
}

.gm-featured-products-section__viewall {
    margin-top: 28px;
    text-align: center;
}
.gm-featured-products-section__viewall-link {
    color: var(--fp-button-bg);
    font-weight: 700;
    text-decoration: none;
}
.gm-featured-products-section__viewall-link:hover { text-decoration: underline; }

.gm-featured-products-section__empty {
    color: var(--fp-text-color);
    opacity: 0.7;
    padding: 24px;
    text-align: center;
}

@media (max-width: 980px) {
    .gm-featured-products-section__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .gm-featured-products-section__grid { grid-template-columns: 1fr; }
    .gm-featured-products-section { padding: var(--fp-section-padding-block) var(--gm-section-inline-padding); }
}

/* getme-css-bundle:end css/commerce/sections/featured-products.css */


/* getme-css-bundle: css/commerce/sections/featured-categories.css */
/* ════════════════════════════════════════════════════════════════════
   featured-categories — Curated category strip.
   Namespace: --fc-*   Scope: .gm-featured-categories-section
   ════════════════════════════════════════════════════════════════════ */

.gm-featured-categories-section {
    --fc-section-bg: transparent;
    --fc-text-color: var(--gm-text);
    --fc-title-color: var(--gm-text);
    --fc-kicker-color: var(--gm-primary);
    --fc-card-bg: #ffffff;
    --fc-card-border: var(--gm-border);
    --fc-button-bg: var(--gm-primary);
    --fc-button-text: #ffffff;
    --fc-section-padding-block: var(--theme-spacing-3xl, 64px);
    --fc-grid-gap: var(--theme-spacing-lg, 24px);
    --fc-card-radius: var(--theme-radius-lg, 12px);
    --fc-card-shadow: var(--theme-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.06));
    --fc-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --fc-body-font: var(--font-primary, sans-serif);
    --fc-grid-columns: 3;

    background: var(--fc-section-bg);
    color: var(--fc-text-color);
    font-family: var(--fc-body-font);
    padding: var(--fc-section-padding-block) var(--gm-section-inline-padding);
}

.gm-featured-categories-section__head { margin: 0 auto 32px; max-width: 800px; text-align: center; }
.gm-featured-categories-section__head .gm-kicker {
    color: var(--fc-kicker-color);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
    text-transform: uppercase;
}
.gm-featured-categories-section__title {
    color: var(--fc-title-color);
    font-family: var(--fc-title-font);
    font-size: clamp(24px, 3.4vw, 38px);
    margin: 0 0 10px;
}
.gm-featured-categories-section__intro { color: var(--fc-text-color); margin: 0; opacity: 0.85; }

.gm-featured-categories-section--columns-2 { --fc-grid-columns: 2; }
.gm-featured-categories-section--columns-3 { --fc-grid-columns: 3; }
.gm-featured-categories-section--columns-4 { --fc-grid-columns: 4; }

.gm-featured-categories-section--image-square .gm-featured-categories-section__card img,
.gm-featured-categories-section--image-square .gm-featured-categories-section__placeholder { aspect-ratio: 1 / 1; }
.gm-featured-categories-section--image-landscape .gm-featured-categories-section__card img,
.gm-featured-categories-section--image-landscape .gm-featured-categories-section__placeholder { aspect-ratio: 4 / 3; }
.gm-featured-categories-section--image-portrait .gm-featured-categories-section__card img,
.gm-featured-categories-section--image-portrait .gm-featured-categories-section__placeholder { aspect-ratio: 3 / 4; }

.gm-featured-categories-section__grid {
    display: grid;
    gap: var(--fc-grid-gap);
    grid-template-columns: repeat(var(--fc-grid-columns), minmax(0, 1fr));
}

.gm-featured-categories-section__card {
    background: var(--fc-card-bg);
    border: 1px solid var(--fc-card-border);
    border-radius: var(--fc-card-radius);
    box-shadow: var(--fc-card-shadow);
    color: inherit;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
    text-decoration: none;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.gm-featured-categories-section--card-minimal .gm-featured-categories-section__card {
    border: none; box-shadow: none;
}
.gm-featured-categories-section--card-elevated .gm-featured-categories-section__card {
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}

.gm-featured-categories-section__card:hover {
    border-color: color-mix(in srgb, var(--fc-button-bg) 35%, var(--fc-card-border));
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.10);
    transform: translateY(-2px);
}

.gm-featured-categories-section__card img,
.gm-featured-categories-section__placeholder {
    background: var(--gm-media-surface);
    display: block;
    object-fit: cover;
    width: 100%;
}
.gm-featured-categories-section__placeholder {
    background: linear-gradient(135deg, color-mix(in srgb, var(--fc-button-bg) 15%, #eef2f7), #dbe3ef);
}

.gm-featured-categories-section__caption {
    padding: 18px 18px 22px;
}
.gm-featured-categories-section__caption h3 {
    color: var(--fc-title-color);
    font-family: var(--fc-title-font);
    font-size: 18px;
    margin: 0 0 4px;
}
.gm-featured-categories-section__count {
    color: var(--fc-text-color);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    opacity: 0.65;
    text-transform: uppercase;
}

/* Overlay variant — caption sits over the image */
.gm-featured-categories-section--card-overlay .gm-featured-categories-section__card {
    aspect-ratio: 4 / 3;
    display: block;
    position: relative;
}
.gm-featured-categories-section--card-overlay .gm-featured-categories-section__card img,
.gm-featured-categories-section--card-overlay .gm-featured-categories-section__placeholder {
    height: 100%;
    inset: 0;
    position: absolute;
}
.gm-featured-categories-section--card-overlay .gm-featured-categories-section__caption {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0));
    bottom: 0;
    color: var(--fc-button-text);
    inset: auto 0 0 0;
    padding: 28px 18px 18px;
    position: absolute;
}
.gm-featured-categories-section--card-overlay .gm-featured-categories-section__caption h3 {
    color: var(--fc-button-text);
}
.gm-featured-categories-section--card-overlay .gm-featured-categories-section__count { opacity: 0.85; }

.gm-featured-categories-section__viewall { margin-top: 28px; text-align: center; }
.gm-featured-categories-section__viewall a {
    color: var(--fc-button-bg);
    font-weight: 700;
    text-decoration: none;
}
.gm-featured-categories-section__viewall a:hover { text-decoration: underline; }

.gm-featured-categories-section__empty {
    color: var(--fc-text-color);
    opacity: 0.7;
    padding: 24px;
    text-align: center;
}

@media (max-width: 980px) {
    .gm-featured-categories-section__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .gm-featured-categories-section__grid { grid-template-columns: 1fr; }
    .gm-featured-categories-section { padding: var(--fc-section-padding-block) var(--gm-section-inline-padding); }
}

/* getme-css-bundle:end css/commerce/sections/featured-categories.css */


/* getme-css-bundle: css/commerce/sections/featured-brands.css */
/* ════════════════════════════════════════════════════════════════════
   featured-brands — Curated brand strip / logo wall.
   Namespace: --fb-*   Scope: .gm-featured-brands-section
   ════════════════════════════════════════════════════════════════════ */

.gm-featured-brands-section {
    --fb-section-bg: transparent;
    --fb-text-color: var(--gm-text);
    --fb-title-color: var(--gm-text);
    --fb-kicker-color: var(--gm-primary);
    --fb-card-bg: #ffffff;
    --fb-card-border: var(--gm-border);
    --fb-section-padding-block: var(--theme-spacing-3xl, 64px);
    --fb-grid-gap: var(--theme-spacing-lg, 24px);
    --fb-card-radius: var(--theme-radius-lg, 12px);
    --fb-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --fb-body-font: var(--font-primary, sans-serif);
    --fb-grid-columns: 4;

    background: var(--fb-section-bg);
    color: var(--fb-text-color);
    font-family: var(--fb-body-font);
    padding: var(--fb-section-padding-block) var(--gm-section-inline-padding);
}

.gm-featured-brands-section__head { margin: 0 auto 32px; max-width: 800px; text-align: center; }
.gm-featured-brands-section__head .gm-kicker {
    color: var(--fb-kicker-color);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
    text-transform: uppercase;
}
.gm-featured-brands-section__title {
    color: var(--fb-title-color);
    font-family: var(--fb-title-font);
    font-size: clamp(24px, 3.4vw, 38px);
    margin: 0 0 10px;
}
.gm-featured-brands-section__intro { color: var(--fb-text-color); margin: 0; opacity: 0.85; }

.gm-featured-brands-section--columns-3 { --fb-grid-columns: 3; }
.gm-featured-brands-section--columns-4 { --fb-grid-columns: 4; }
.gm-featured-brands-section--columns-5 { --fb-grid-columns: 5; }
.gm-featured-brands-section--columns-6 { --fb-grid-columns: 6; }

.gm-featured-brands-section--image-square .gm-featured-brands-section__card img,
.gm-featured-brands-section--image-square .gm-featured-brands-section__placeholder { aspect-ratio: 1 / 1; }
.gm-featured-brands-section--image-landscape .gm-featured-brands-section__card img,
.gm-featured-brands-section--image-landscape .gm-featured-brands-section__placeholder { aspect-ratio: 4 / 3; }
.gm-featured-brands-section--image-wide .gm-featured-brands-section__card img,
.gm-featured-brands-section--image-wide .gm-featured-brands-section__placeholder { aspect-ratio: 16 / 9; }

.gm-featured-brands-section__grid {
    display: grid;
    gap: var(--fb-grid-gap);
    grid-template-columns: repeat(var(--fb-grid-columns), minmax(0, 1fr));
}

.gm-featured-brands-section__card {
    align-items: center;
    background: var(--fb-card-bg);
    border-radius: var(--fb-card-radius);
    color: var(--fb-text-color);
    display: flex;
    flex-direction: column;
    gap: 8px;
    overflow: hidden;
    padding: 16px;
    text-align: center;
    text-decoration: none;
    transition: filter 160ms ease, transform 160ms ease;
}
.gm-featured-brands-section--card-outlined .gm-featured-brands-section__card {
    border: 1px solid var(--fb-card-border);
}
.gm-featured-brands-section--card-elevated .gm-featured-brands-section__card {
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}
.gm-featured-brands-section--card-minimal .gm-featured-brands-section__card {
    background: transparent;
}
.gm-featured-brands-section__card:hover { transform: translateY(-2px); }

.gm-featured-brands-section__card img {
    background: #ffffff;
    display: block;
    filter: grayscale(0.2);
    object-fit: contain;
    transition: filter 160ms ease;
    width: 100%;
}
.gm-featured-brands-section__card:hover img { filter: grayscale(0); }

.gm-featured-brands-section__placeholder {
    align-items: center;
    background: linear-gradient(135deg, #eef2f7, #dbe3ef);
    color: var(--fb-title-color);
    display: flex;
    font-family: var(--fb-title-font);
    font-size: 28px;
    font-weight: 700;
    justify-content: center;
    text-transform: uppercase;
    width: 100%;
}

.gm-featured-brands-section__name {
    color: var(--fb-title-color);
    font-family: var(--fb-title-font);
    font-size: 14px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

.gm-featured-brands-section__viewall { margin-top: 28px; text-align: center; }
.gm-featured-brands-section__viewall a {
    color: var(--fb-title-color);
    font-weight: 700;
    text-decoration: none;
}
.gm-featured-brands-section__viewall a:hover { text-decoration: underline; }

.gm-featured-brands-section__empty {
    color: var(--fb-text-color);
    opacity: 0.7;
    padding: 24px;
    text-align: center;
}

@media (max-width: 980px) {
    .gm-featured-brands-section__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .gm-featured-brands-section__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gm-featured-brands-section { padding: var(--fb-section-padding-block) var(--gm-section-inline-padding); }
}

/* getme-css-bundle:end css/commerce/sections/featured-brands.css */


/* getme-css-bundle: css/commerce/sections/featured-services.css */
/* ════════════════════════════════════════════════════════════════════
   featured-services — Curated service strip.
   Namespace: --fs-*   Scope: .gm-featured-services-section
   ════════════════════════════════════════════════════════════════════ */

.gm-featured-services-section {
    --fs-section-bg: transparent;
    --fs-text-color: var(--gm-text);
    --fs-title-color: var(--gm-text);
    --fs-kicker-color: var(--gm-primary);
    --fs-card-bg: #ffffff;
    --fs-card-border: var(--gm-border);
    --fs-price-color: var(--gm-text);
    --fs-button-bg: var(--gm-primary);
    --fs-button-text: #ffffff;
    --fs-button-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    --fs-button-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    --fs-section-padding-block: var(--theme-spacing-3xl, 64px);
    --fs-grid-gap: var(--theme-spacing-lg, 24px);
    --fs-card-radius: var(--theme-radius-lg, 12px);
    --fs-card-shadow: var(--theme-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.06));
    --fs-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --fs-body-font: var(--font-primary, sans-serif);
    --fs-grid-columns: 3;

    background: var(--fs-section-bg);
    color: var(--fs-text-color);
    font-family: var(--fs-body-font);
    padding: var(--fs-section-padding-block) var(--gm-section-inline-padding);
}

.gm-featured-services-section__head { margin: 0 auto 32px; max-width: 800px; text-align: center; }
.gm-featured-services-section__head .gm-kicker {
    color: var(--fs-kicker-color);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
    text-transform: uppercase;
}
.gm-featured-services-section__title {
    color: var(--fs-title-color);
    font-family: var(--fs-title-font);
    font-size: clamp(24px, 3.4vw, 38px);
    margin: 0 0 10px;
}
.gm-featured-services-section__intro { color: var(--fs-text-color); margin: 0; opacity: 0.85; }

.gm-featured-services-section--columns-2 { --fs-grid-columns: 2; }
.gm-featured-services-section--columns-3 { --fs-grid-columns: 3; }
.gm-featured-services-section--columns-4 { --fs-grid-columns: 4; }
.gm-featured-services-section--card-minimal .gm-featured-services-section__card { border: none; box-shadow: none; }
.gm-featured-services-section--card-elevated .gm-featured-services-section__card {
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}
.gm-featured-services-section--image-square .gm-featured-services-section__card img,
.gm-featured-services-section--image-square .gm-featured-services-section__placeholder { aspect-ratio: 1 / 1; }
.gm-featured-services-section--image-landscape .gm-featured-services-section__card img,
.gm-featured-services-section--image-landscape .gm-featured-services-section__placeholder { aspect-ratio: 4 / 3; }
.gm-featured-services-section--image-portrait .gm-featured-services-section__card img,
.gm-featured-services-section--image-portrait .gm-featured-services-section__placeholder { aspect-ratio: 3 / 4; }

/* Image fit — `contain` letterboxes the full artwork (logos, badges)
   inside the ratio frame instead of cropping it like `cover`. */
.gm-featured-services-section--fit-contain .gm-featured-services-section__card img {
    background: var(--gm-media-surface);
    box-sizing: border-box;
    object-fit: contain;
    padding: 18px;
}

/* Content alignment — keeps kicker/title/price on one axis per card. */
.gm-featured-services-section--align-center .gm-featured-services-section__body {
    align-items: center;
    text-align: center;
}
.gm-featured-services-section--align-center .gm-featured-services-section__actions { justify-items: center; }

.gm-featured-services-section__grid {
    display: grid;
    gap: var(--fs-grid-gap);
    grid-template-columns: repeat(var(--fs-grid-columns), minmax(0, 1fr));
}

.gm-featured-services-section__card {
    background: var(--fs-card-bg);
    border: 1px solid var(--fs-card-border);
    border-radius: var(--fs-card-radius);
    box-shadow: var(--fs-card-shadow);
    display: grid;
    grid-template-rows: 1fr auto;
    min-width: 0;
    overflow: hidden;
    position: relative;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.gm-featured-services-section__badge {
    background: var(--fs-button-bg);
    border-radius: 999px;
    color: var(--fs-button-text);
    font-size: 11px;
    font-weight: 700;
    left: 12px;
    letter-spacing: 0.05em;
    padding: 4px 11px;
    position: absolute;
    text-transform: uppercase;
    top: 12px;
    z-index: 1;
}
.gm-featured-services-section__card:hover {
    border-color: color-mix(in srgb, var(--fs-button-bg) 35%, var(--fs-card-border));
    transform: translateY(-2px);
}
.gm-featured-services-section__card-link {
    color: var(--fs-text-color);
    display: grid;
    grid-template-rows: auto 1fr;
    min-height: 100%;
    text-decoration: none;
}

.gm-featured-services-section__card img,
.gm-featured-services-section__placeholder {
    background: var(--gm-media-surface);
    display: block;
    object-fit: cover;
    width: 100%;
}
.gm-featured-services-section__placeholder { background: linear-gradient(135deg, #eef2f7, #dbe3ef); }

.gm-featured-services-section__body {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    padding: 20px;
}
.gm-featured-services-section__body h3 {
    color: var(--fs-title-color);
    font-family: var(--fs-title-font);
    font-size: 18px;
    margin: 0 0 6px;
    overflow-wrap: anywhere;
}
.gm-featured-services-section__body p {
    color: var(--fs-text-color);
    font-size: 14px;
    line-height: 1.5;
    margin: 0 0 14px;
    opacity: 0.75;
}
.gm-featured-services-section__price {
    color: var(--fs-price-color);
    display: block;
    font-size: 18px;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    margin-top: auto; /* pins prices to the card bottom so sibling cards line up */
}

.gm-featured-services-section__actions {
    display: grid;
    gap: 10px;
    padding: 0 20px 20px;
}
.gm-featured-services-section__cta {
    align-items: center;
    background: var(--fs-button-bg);
    border: 1px solid var(--fs-button-bg);
    border-radius: var(--fs-button-radius);
    box-shadow: var(--fs-button-shadow);
    color: var(--fs-button-text);
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 700;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    text-decoration: none;
    width: 100%;
    transition: background 150ms ease, color 150ms ease, filter 150ms ease, box-shadow 150ms ease;
}
.gm-featured-services-section__cta--secondary {
    background: transparent;
    color: var(--fs-button-bg);
}
.gm-featured-services-section__cta:hover:not([disabled]):not([aria-disabled="true"]) {
    box-shadow: 0 6px 18px color-mix(in srgb, var(--fs-button-bg) 28%, transparent);
    filter: brightness(0.92);
}
/* Outline secondary fills with the primary colour on hover (not a no-op brightness). */
.gm-featured-services-section__cta--secondary:hover:not([disabled]):not([aria-disabled="true"]) {
    background: var(--fs-button-bg);
    box-shadow: none;
    color: var(--fs-button-text);
    filter: none;
}
.gm-featured-services-section__cta:active:not([disabled]):not([aria-disabled="true"]) {
    filter: brightness(0.88);
}
.gm-featured-services-section__cta:disabled,
.gm-featured-services-section__cta[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.68;
}

.gm-featured-services-section__viewall { margin-top: 28px; text-align: center; }
.gm-featured-services-section__viewall a {
    color: var(--fs-button-bg);
    font-weight: 700;
    text-decoration: none;
}
.gm-featured-services-section__viewall a:hover { text-decoration: underline; }

.gm-featured-services-section__empty {
    color: var(--fs-text-color);
    opacity: 0.7;
    padding: 24px;
    text-align: center;
}

@media (max-width: 980px) {
    .gm-featured-services-section__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .gm-featured-services-section__grid { grid-template-columns: 1fr; }
    .gm-featured-services-section { padding: var(--fs-section-padding-block) var(--gm-section-inline-padding); }
}

/* getme-css-bundle:end css/commerce/sections/featured-services.css */


/* getme-css-bundle: css/commerce/sections/booking-widget.css */
.gm-booking-widget-section {
    background: var(--gm-surface);
    border: 1px solid var(--gm-border);
    border-radius: var(--theme-container-radius, var(--theme-radius-lg));
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.06);
    padding: clamp(18px, 3vw, 32px);
}

.gm-booking-widget-section--compact-launcher {
    align-items: center;
    display: flex;
    justify-content: center;
}

.gm-booking-widget-section--guided-service {
    --gm-booking-widget-safe-inline: max(16px, var(--gm-page-gutter, 16px));
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
}

@media (max-width: 760px) {
    .gm-booking-widget-section--guided-service {
        padding-inline: max(0px, calc(var(--gm-booking-widget-safe-inline) - var(--gm-page-gutter, 16px)));
    }
}

/* Brand logo behaves as a home link (theme.js sends it to "/"). */
.gm-booking-guided__logo {
    cursor: pointer;
}

/* getme-css-bundle:end css/commerce/sections/booking-widget.css */

/* Content / cross-page sections */

/* getme-css-bundle: css/commerce/sections/hero.css */
/* ════════════════════════════════════════════════════════════════════
   hero — Reusable banner section.
   Namespace: --hr-*   Scope: .gm-hero-section
   Variants: full background, split (left/right), text only.
   ════════════════════════════════════════════════════════════════════ */

.gm-hero-section {
    --hr-section-bg: linear-gradient(135deg, color-mix(in srgb, var(--gm-primary) 12%, var(--gm-bg)), var(--gm-bg));
    --hr-text-color: var(--gm-text);
    --hr-title-color: var(--gm-text);
    --hr-kicker-color: var(--gm-primary);
    --hr-intro-color: var(--gm-muted);
    --hr-primary-bg: var(--gm-primary);
    --hr-primary-text: #ffffff;
    --hr-secondary-bg: transparent;
    --hr-secondary-text: var(--gm-text);
    --hr-section-padding-block: var(--theme-spacing-4xl, 96px);
    --hr-min-height: 560px;
    --hr-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --hr-body-font: var(--font-primary, sans-serif);
    --hr-overlay-alpha: 0%;

    background: var(--hr-section-bg);
    color: var(--hr-text-color);
    font-family: var(--hr-body-font);
    min-height: var(--hr-min-height);
    overflow: hidden;
    padding: var(--hr-section-padding-block) var(--gm-section-inline-padding);
    position: relative;
}

/* Full background image variant */
.gm-hero-section__bg {
    inset: 0;
    position: absolute;
    z-index: 0;
}
.gm-hero-section__bg img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}
.gm-hero-section__overlay {
    background: rgba(15, 23, 42, calc(var(--hr-overlay-alpha) / 100));
    inset: 0;
    position: absolute;
}

.gm-hero-section__inner {
    display: grid;
    gap: 48px;
    grid-template-columns: 1fr;
    margin: 0 auto;
    max-width: 1200px;
    position: relative;
    z-index: 1;
}

.gm-hero-section--image-right .gm-hero-section__inner,
.gm-hero-section--image-left .gm-hero-section__inner {
    align-items: center;
    grid-template-columns: 1fr 1fr;
}

.gm-hero-section--image-left .gm-hero-section__inner {
    direction: rtl;
}
.gm-hero-section--image-left .gm-hero-section__inner > * {
    direction: ltr;
}

.gm-hero-section__copy { min-width: 0; }

.gm-hero-section--text-left .gm-hero-section__copy { text-align: left; }
.gm-hero-section--text-center .gm-hero-section__copy { text-align: center; margin-inline: auto; max-width: 800px; }
.gm-hero-section--text-right .gm-hero-section__copy { text-align: right; }

.gm-hero-section__kicker {
    color: var(--hr-kicker-color);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 14px;
    text-transform: uppercase;
}

.gm-hero-section__title {
    color: var(--hr-title-color);
    font-family: var(--hr-title-font);
    font-size: clamp(32px, 5vw, 64px);
    font-weight: 700;
    line-height: 1.08;
    margin: 0 0 20px;
    overflow-wrap: anywhere;
}

.gm-hero-section__intro {
    color: var(--hr-intro-color);
    font-size: 18px;
    line-height: 1.55;
    margin: 0 0 28px;
}

.gm-hero-section__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.gm-hero-section--text-center .gm-hero-section__actions { justify-content: center; }
.gm-hero-section--text-right .gm-hero-section__actions { justify-content: flex-end; }

.gm-hero-section__button {
    align-items: center;
    border-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    box-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 48px;
    padding: 0 24px;
    text-decoration: none;
    transition: filter 160ms ease, transform 160ms ease;
}
.gm-hero-section__button--primary {
    background: var(--hr-primary-bg);
    border: 1px solid var(--hr-primary-bg);
    color: var(--hr-primary-text);
}
.gm-hero-section__button--secondary {
    background: var(--hr-secondary-bg);
    border: 1px solid currentColor;
    color: var(--hr-secondary-text);
}
.gm-hero-section__button:hover { filter: brightness(0.92); transform: translateY(-1px); }

.gm-hero-section__media {
    align-self: stretch;
    border-radius: var(--theme-radius-xl, 16px);
    box-shadow: var(--theme-shadow-lg, 0 12px 24px rgba(15, 23, 42, 0.12));
    overflow: hidden;
}
.gm-hero-section__media img {
    aspect-ratio: 4 / 3;
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

/* Background variant: place text over the background image */
.gm-hero-section--image-background .gm-hero-section__inner {
    grid-template-columns: 1fr;
}
.gm-hero-section--image-background {
    color: #ffffff;
    --hr-title-color: #ffffff;
    --hr-intro-color: rgba(255, 255, 255, 0.85);
}

@media (max-width: 980px) {
    .gm-hero-section--image-right .gm-hero-section__inner,
    .gm-hero-section--image-left .gm-hero-section__inner {
        grid-template-columns: 1fr;
    }
    .gm-hero-section--image-left .gm-hero-section__inner { direction: ltr; }
}

@media (max-width: 640px) {
    .gm-hero-section { padding: var(--hr-section-padding-block) var(--gm-section-inline-padding); }
    .gm-hero-section__title { font-size: clamp(28px, 8vw, 44px); }
}

/* getme-css-bundle:end css/commerce/sections/hero.css */


/* getme-css-bundle: css/commerce/sections/hero-split-media.css */
/* ════════════════════════════════════════════════════════════════════
   hero-split-media — Editorial 50/60/70 split hero.
   Namespace: --hs-*   Scope: .gm-hero-split-media-section
   ════════════════════════════════════════════════════════════════════ */

.gm-hero-split-media-section {
    --hs-section-bg: var(--gm-bg);
    --hs-text-color: var(--gm-text);
    --hs-title-color: var(--gm-text);
    --hs-kicker-color: var(--gm-primary);
    --hs-primary-bg: var(--gm-primary);
    --hs-primary-text: #ffffff;
    --hs-secondary-bg: transparent;
    --hs-secondary-text: var(--gm-text);
    --hs-section-padding-block: var(--theme-spacing-3xl, 64px);
    --hs-content-gap: var(--theme-spacing-xl, 32px);
    --hs-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --hs-body-font: var(--font-primary, sans-serif);
    --hs-media-fr: 1.5fr;
    --hs-copy-fr: 1fr;

    background: var(--hs-section-bg);
    color: var(--hs-text-color);
    font-family: var(--hs-body-font);
    padding: var(--hs-section-padding-block) var(--gm-section-inline-padding);
}

.gm-hero-split-media-section--size-50 { --hs-media-fr: 1fr; --hs-copy-fr: 1fr; }
.gm-hero-split-media-section--size-60 { --hs-media-fr: 1.5fr; --hs-copy-fr: 1fr; }
.gm-hero-split-media-section--size-70 { --hs-media-fr: 2.3fr; --hs-copy-fr: 1fr; }

.gm-hero-split-media-section__inner {
    align-items: center;
    display: grid;
    gap: var(--hs-content-gap);
    grid-template-columns: var(--hs-media-fr) var(--hs-copy-fr);
    margin: 0 auto;
    max-width: 1280px;
}

.gm-hero-split-media-section--media-left .gm-hero-split-media-section__inner {
    grid-template-columns: var(--hs-media-fr) var(--hs-copy-fr);
}

.gm-hero-split-media-section--media-right .gm-hero-split-media-section__inner {
    grid-template-columns: var(--hs-copy-fr) var(--hs-media-fr);
    direction: rtl;
}
.gm-hero-split-media-section--media-right .gm-hero-split-media-section__inner > * {
    direction: ltr;
}

.gm-hero-split-media-section__media {
    border-radius: var(--theme-radius-xl, 16px);
    box-shadow: var(--theme-shadow-lg, 0 18px 36px rgba(15, 23, 42, 0.16));
    min-width: 0;
    overflow: hidden;
}
.gm-hero-split-media-section__media img,
.gm-hero-split-media-section__placeholder {
    display: block;
    height: auto;
    object-fit: cover;
    width: 100%;
}
.gm-hero-split-media-section--ratio-square .gm-hero-split-media-section__media img,
.gm-hero-split-media-section--ratio-square .gm-hero-split-media-section__placeholder { aspect-ratio: 1 / 1; }
.gm-hero-split-media-section--ratio-landscape .gm-hero-split-media-section__media img,
.gm-hero-split-media-section--ratio-landscape .gm-hero-split-media-section__placeholder { aspect-ratio: 4 / 3; }
.gm-hero-split-media-section--ratio-portrait .gm-hero-split-media-section__media img,
.gm-hero-split-media-section--ratio-portrait .gm-hero-split-media-section__placeholder { aspect-ratio: 3 / 4; }
.gm-hero-split-media-section--ratio-wide .gm-hero-split-media-section__media img,
.gm-hero-split-media-section--ratio-wide .gm-hero-split-media-section__placeholder { aspect-ratio: 16 / 9; }
.gm-hero-split-media-section--ratio-tall .gm-hero-split-media-section__media img,
.gm-hero-split-media-section--ratio-tall .gm-hero-split-media-section__placeholder { aspect-ratio: 9 / 16; }

.gm-hero-split-media-section__placeholder {
    background: linear-gradient(135deg, color-mix(in srgb, var(--hs-primary-bg) 24%, #eef2f7), #d2dbea);
}

.gm-hero-split-media-section__copy { min-width: 0; }
.gm-hero-split-media-section__copy .gm-kicker {
    color: var(--hs-kicker-color);
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-bottom: 10px;
    text-transform: uppercase;
}
.gm-hero-split-media-section__title {
    color: var(--hs-title-color);
    font-family: var(--hs-title-font);
    font-size: clamp(28px, 4.4vw, 56px);
    font-weight: 700;
    line-height: 1.08;
    margin: 0 0 16px;
    overflow-wrap: anywhere;
}
.gm-hero-split-media-section__intro {
    color: var(--hs-text-color);
    font-size: 17px;
    line-height: 1.6;
    margin: 0 0 24px;
    opacity: 0.85;
}
.gm-hero-split-media-section__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.gm-hero-split-media-section__button {
    align-items: center;
    border-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    box-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 46px;
    padding: 0 22px;
    text-decoration: none;
    transition: filter 160ms ease, transform 160ms ease;
}
.gm-hero-split-media-section__button--primary {
    background: var(--hs-primary-bg);
    border: 1px solid var(--hs-primary-bg);
    color: var(--hs-primary-text);
}
.gm-hero-split-media-section__button--secondary {
    background: var(--hs-secondary-bg);
    border: 1px solid currentColor;
    color: var(--hs-secondary-text);
}
.gm-hero-split-media-section__button:hover { filter: brightness(0.92); transform: translateY(-1px); }

@media (max-width: 980px) {
    .gm-hero-split-media-section__inner,
    .gm-hero-split-media-section--media-right .gm-hero-split-media-section__inner,
    .gm-hero-split-media-section--media-left .gm-hero-split-media-section__inner {
        grid-template-columns: 1fr;
        direction: ltr;
    }
}
@media (max-width: 640px) {
    .gm-hero-split-media-section { padding: var(--hs-section-padding-block) var(--gm-section-inline-padding); }
    .gm-hero-split-media-section__title { font-size: clamp(26px, 7vw, 38px); }
}

/* getme-css-bundle:end css/commerce/sections/hero-split-media.css */


/* getme-css-bundle: css/commerce/sections/hero-carousel.css */
/* ════════════════════════════════════════════════════════════════════
   hero-carousel — Scroll-snap based hero slider.
   Namespace: --hc-*   Scope: .gm-hero-carousel-section
   No JS required — uses scroll-snap on a horizontal track + anchor dots.
   ════════════════════════════════════════════════════════════════════ */

.gm-hero-carousel-section {
    --hc-section-bg: linear-gradient(135deg, color-mix(in srgb, var(--gm-primary) 18%, var(--gm-bg)), var(--gm-bg));
    --hc-title-color: #ffffff;
    --hc-kicker-color: rgba(255, 255, 255, 0.85);
    --hc-intro-color: rgba(255, 255, 255, 0.88);
    --hc-cta-bg: var(--gm-primary);
    --hc-cta-text: #ffffff;
    --hc-dot-color: rgba(255, 255, 255, 0.7);
    --hc-min-height: 520px;
    --hc-overlay-alpha: 35%;
    --hc-section-padding-block: var(--theme-spacing-lg, 24px);
    --hc-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --hc-body-font: var(--font-primary, sans-serif);

    background: var(--hc-section-bg);
    font-family: var(--hc-body-font);
    padding: var(--hc-section-padding-block) 0;
    position: relative;
}

.gm-hero-carousel-section--aspect-wide .gm-hero-carousel-section__slide { aspect-ratio: 16 / 9; }
.gm-hero-carousel-section--aspect-landscape .gm-hero-carousel-section__slide { aspect-ratio: 4 / 3; }
.gm-hero-carousel-section--aspect-panoramic .gm-hero-carousel-section__slide { aspect-ratio: 21 / 9; }

.gm-hero-carousel-section__track {
    display: flex;
    gap: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.gm-hero-carousel-section__track::-webkit-scrollbar { display: none; }

.gm-hero-carousel-section__slide {
    flex: 0 0 100%;
    min-height: var(--hc-min-height);
    overflow: hidden;
    position: relative;
    scroll-snap-align: start;
    width: 100%;
}

.gm-hero-carousel-section__bg {
    height: 100%;
    inset: 0;
    object-fit: cover;
    position: absolute;
    width: 100%;
    z-index: 0;
}

.gm-hero-carousel-section__overlay {
    background: rgba(15, 23, 42, calc(var(--hc-overlay-alpha) / 100));
    inset: 0;
    position: absolute;
    z-index: 1;
}

.gm-hero-carousel-section__copy {
    align-items: flex-start;
    color: var(--hc-intro-color);
    display: flex;
    flex-direction: column;
    gap: 14px;
    height: 100%;
    justify-content: center;
    margin: 0 auto;
    max-width: 1180px;
    padding: 32px;
    position: relative;
    width: 100%;
    z-index: 2;
}

.gm-hero-carousel-section__kicker {
    color: var(--hc-kicker-color);
    font-weight: 700;
    letter-spacing: 0.1em;
    margin: 0;
    text-transform: uppercase;
}

.gm-hero-carousel-section__title {
    color: var(--hc-title-color);
    font-family: var(--hc-title-font);
    font-size: clamp(28px, 4.6vw, 56px);
    font-weight: 700;
    line-height: 1.08;
    margin: 0;
    max-width: 720px;
    overflow-wrap: anywhere;
}

.gm-hero-carousel-section__intro {
    color: var(--hc-intro-color);
    font-size: 17px;
    line-height: 1.55;
    margin: 0;
    max-width: 600px;
}

.gm-hero-carousel-section__cta {
    align-items: center;
    background: var(--hc-cta-bg);
    border: 1px solid var(--hc-cta-bg);
    border-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    box-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    color: var(--hc-cta-text);
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 46px;
    padding: 0 22px;
    text-decoration: none;
    transition: filter 160ms ease, transform 160ms ease;
}
.gm-hero-carousel-section__cta:hover { filter: brightness(0.92); transform: translateY(-1px); }

.gm-hero-carousel-section__dots {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 18px;
}

.gm-hero-carousel-section__dot {
    align-items: center;
    background: transparent;
    border: 1px solid var(--hc-dot-color);
    border-radius: 999px;
    color: var(--hc-dot-color);
    display: inline-flex;
    font-size: 12px;
    font-weight: 700;
    height: 28px;
    justify-content: center;
    min-width: 28px;
    padding: 0 10px;
    text-decoration: none;
}
.gm-hero-carousel-section__dot:hover { background: var(--hc-dot-color); color: rgba(15, 23, 42, 0.85); }

@media (max-width: 760px) {
    .gm-hero-carousel-section__slide { aspect-ratio: auto; min-height: var(--hc-min-height); }
    .gm-hero-carousel-section__copy { padding: 24px 20px; }
    .gm-hero-carousel-section__title { font-size: clamp(24px, 7vw, 36px); }
}

/* getme-css-bundle:end css/commerce/sections/hero-carousel.css */


/* getme-css-bundle: css/commerce/sections/text-with-image.css */
/* ════════════════════════════════════════════════════════════════════
   text-with-image — Editorial 2-column block.
   Namespace: --tw-*   Scope: .gm-text-with-image-section
   ════════════════════════════════════════════════════════════════════ */

.gm-text-with-image-section {
    --tw-section-bg: transparent;
    --tw-text-color: var(--gm-text);
    --tw-title-color: var(--gm-text);
    --tw-kicker-color: var(--gm-primary);
    --tw-cta-bg: var(--gm-primary);
    --tw-cta-text: #ffffff;
    --tw-section-padding-block: var(--theme-spacing-3xl, 64px);
    --tw-content-gap: var(--theme-spacing-xl, 32px);
    --tw-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --tw-body-font: var(--font-primary, sans-serif);

    background: var(--tw-section-bg);
    color: var(--tw-text-color);
    font-family: var(--tw-body-font);
    padding: var(--tw-section-padding-block) var(--gm-section-inline-padding);
}

.gm-text-with-image-section__inner {
    align-items: center;
    display: grid;
    gap: var(--tw-content-gap);
    grid-template-columns: 1fr 1fr;
    margin: 0 auto;
    max-width: 1200px;
}

.gm-text-with-image-section--image-left .gm-text-with-image-section__inner {
    direction: rtl;
}
.gm-text-with-image-section--image-left .gm-text-with-image-section__inner > * { direction: ltr; }

.gm-text-with-image-section__copy { min-width: 0; }
.gm-text-with-image-section__copy .gm-kicker {
    color: var(--tw-kicker-color);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 10px;
    text-transform: uppercase;
}
.gm-text-with-image-section__title {
    color: var(--tw-title-color);
    font-family: var(--tw-title-font);
    font-size: clamp(26px, 3.6vw, 40px);
    line-height: 1.15;
    margin: 0 0 18px;
}
.gm-text-with-image-section__body {
    color: var(--tw-text-color);
    font-size: 16px;
    line-height: 1.7;
    margin: 0 0 22px;
    opacity: 0.85;
}
.gm-text-with-image-section__cta {
    align-items: center;
    background: var(--tw-cta-bg);
    border: 1px solid var(--tw-cta-bg);
    border-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    box-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    color: var(--tw-cta-text);
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 44px;
    padding: 0 22px;
    text-decoration: none;
    transition: filter 160ms ease, transform 160ms ease;
}
.gm-text-with-image-section__cta:hover { filter: brightness(0.92); transform: translateY(-1px); }

.gm-text-with-image-section__media {
    border-radius: var(--theme-radius-xl, 16px);
    box-shadow: var(--theme-shadow-md, 0 4px 12px rgba(15, 23, 42, 0.08));
    overflow: hidden;
}
.gm-text-with-image-section__media img,
.gm-text-with-image-section__placeholder {
    display: block;
    height: auto;
    object-fit: cover;
    width: 100%;
}
.gm-text-with-image-section__placeholder {
    background: linear-gradient(135deg, color-mix(in srgb, var(--tw-cta-bg) 18%, #eef2f7), #dbe3ef);
}

.gm-text-with-image-section--ratio-square .gm-text-with-image-section__media img,
.gm-text-with-image-section--ratio-square .gm-text-with-image-section__placeholder { aspect-ratio: 1 / 1; }
.gm-text-with-image-section--ratio-landscape .gm-text-with-image-section__media img,
.gm-text-with-image-section--ratio-landscape .gm-text-with-image-section__placeholder { aspect-ratio: 4 / 3; }
.gm-text-with-image-section--ratio-portrait .gm-text-with-image-section__media img,
.gm-text-with-image-section--ratio-portrait .gm-text-with-image-section__placeholder { aspect-ratio: 3 / 4; }
.gm-text-with-image-section--ratio-wide .gm-text-with-image-section__media img,
.gm-text-with-image-section--ratio-wide .gm-text-with-image-section__placeholder { aspect-ratio: 16 / 9; }

@media (max-width: 980px) {
    .gm-text-with-image-section__inner { grid-template-columns: 1fr; }
    .gm-text-with-image-section--image-left .gm-text-with-image-section__inner { direction: ltr; }
}
@media (max-width: 640px) {
    .gm-text-with-image-section { padding: var(--tw-section-padding-block) var(--gm-section-inline-padding); }
}

/* getme-css-bundle:end css/commerce/sections/text-with-image.css */


/* getme-css-bundle: css/commerce/sections/feature-grid.css */
/* ════════════════════════════════════════════════════════════════════
   feature-grid — Inline feature cards (icon + title + body).
   Namespace: --fg-*   Scope: .gm-feature-grid-section
   ════════════════════════════════════════════════════════════════════ */

.gm-feature-grid-section {
    --fg-section-bg: transparent;
    --fg-text-color: var(--gm-text);
    --fg-title-color: var(--gm-text);
    --fg-kicker-color: var(--gm-primary);
    --fg-card-bg: #ffffff;
    --fg-card-border: var(--gm-border);
    --fg-icon-color: var(--gm-primary);
    --fg-section-padding-block: var(--theme-spacing-3xl, 64px);
    --fg-grid-gap: var(--theme-spacing-lg, 24px);
    --fg-card-radius: var(--theme-radius-lg, 12px);
    --fg-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --fg-body-font: var(--font-primary, sans-serif);
    --fg-grid-columns: 3;

    background: var(--fg-section-bg);
    color: var(--fg-text-color);
    font-family: var(--fg-body-font);
    padding: var(--fg-section-padding-block) var(--gm-section-inline-padding);
}

.gm-feature-grid-section__head { margin: 0 auto 36px; max-width: 800px; text-align: center; }
.gm-feature-grid-section__head .gm-kicker {
    color: var(--fg-kicker-color);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
    text-transform: uppercase;
}
.gm-feature-grid-section__title {
    color: var(--fg-title-color);
    font-family: var(--fg-title-font);
    font-size: clamp(24px, 3.4vw, 38px);
    margin: 0 0 10px;
}
.gm-feature-grid-section__intro {
    color: var(--fg-text-color);
    font-size: 16px;
    line-height: 1.6;
    margin: 0;
    opacity: 0.85;
}

.gm-feature-grid-section--columns-2 { --fg-grid-columns: 2; }
.gm-feature-grid-section--columns-3 { --fg-grid-columns: 3; }
.gm-feature-grid-section--columns-4 { --fg-grid-columns: 4; }
.gm-feature-grid-section--columns-6 { --fg-grid-columns: 6; }

.gm-feature-grid-section__grid {
    display: grid;
    gap: var(--fg-grid-gap);
    grid-template-columns: repeat(var(--fg-grid-columns), minmax(0, 1fr));
}

.gm-feature-grid-section__card {
    background: var(--fg-card-bg);
    border: 1px solid var(--fg-card-border);
    border-radius: var(--fg-card-radius);
    padding: 24px;
}

.gm-feature-grid-section__icon {
    display: inline-flex;
    color: var(--fg-icon-color);
    font-size: 28px;
    line-height: 1;
    margin-bottom: 14px;
}

.gm-feature-grid-section__card h3 {
    color: var(--fg-title-color);
    font-family: var(--fg-title-font);
    font-size: 18px;
    margin: 0 0 8px;
}

.gm-feature-grid-section__card p {
    color: var(--fg-text-color);
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
    opacity: 0.85;
}

@media (max-width: 980px) {
    .gm-feature-grid-section--columns-6 { --fg-grid-columns: 3; }
    .gm-feature-grid-section--columns-4 { --fg-grid-columns: 2; }
}
@media (max-width: 640px) {
    .gm-feature-grid-section__grid { grid-template-columns: 1fr; }
    .gm-feature-grid-section { padding: var(--fg-section-padding-block) var(--gm-section-inline-padding); }
}

/* getme-css-bundle:end css/commerce/sections/feature-grid.css */


/* getme-css-bundle: css/commerce/sections/gallery.css */
/* ════════════════════════════════════════════════════════════════════
   gallery — Responsive image gallery with optional :target lightbox.
   Namespace: --gl-*   Scope: .gm-gallery-section
   Variants: uniform grid (--style-uniform) or masonry (--style-masonry).
   ════════════════════════════════════════════════════════════════════ */

.gm-gallery-section {
    --gl-section-bg: transparent;
    --gl-text-color: var(--gm-text);
    --gl-title-color: var(--gm-text);
    --gl-kicker-color: var(--gm-primary);
    --gl-caption-color: var(--gm-muted);
    --gl-section-padding-block: var(--theme-spacing-3xl, 64px);
    --gl-grid-gap: var(--theme-spacing-lg, 24px);
    --gl-card-radius: var(--theme-radius-lg, 12px);
    --gl-grid-columns: 3;
    --gl-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --gl-body-font: var(--font-primary, sans-serif);

    background: var(--gl-section-bg);
    color: var(--gl-text-color);
    font-family: var(--gl-body-font);
    padding: var(--gl-section-padding-block) var(--gm-section-inline-padding);
}

.gm-gallery-section__head { margin: 0 auto 32px; max-width: 800px; text-align: center; }
.gm-gallery-section__head .gm-kicker {
    color: var(--gl-kicker-color);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
    text-transform: uppercase;
}
.gm-gallery-section__title {
    color: var(--gl-title-color);
    font-family: var(--gl-title-font);
    font-size: clamp(24px, 3.4vw, 38px);
    margin: 0 0 10px;
}
.gm-gallery-section__intro {
    color: var(--gl-text-color);
    margin: 0;
    opacity: 0.85;
}

/* Uniform grid */
.gm-gallery-section--style-uniform .gm-gallery-section__grid {
    display: grid;
    gap: var(--gl-grid-gap);
    grid-template-columns: repeat(var(--gl-grid-columns), minmax(0, 1fr));
}

/* Masonry: CSS columns */
.gm-gallery-section--style-masonry .gm-gallery-section__grid {
    column-count: var(--gl-grid-columns);
    column-gap: var(--gl-grid-gap);
}
.gm-gallery-section--style-masonry .gm-gallery-section__item {
    break-inside: avoid;
    margin-bottom: var(--gl-grid-gap);
}

.gm-gallery-section__item {
    margin: 0;
    min-width: 0;
}
.gm-gallery-section__media {
    border-radius: var(--gl-card-radius);
    display: block;
    overflow: hidden;
    position: relative;
    text-decoration: none;
}
.gm-gallery-section__media img {
    display: block;
    height: auto;
    object-fit: cover;
    transition: transform 220ms ease;
    width: 100%;
}
.gm-gallery-section__media--placeholder {
    background:
        linear-gradient(135deg, rgba(148, 163, 184, 0.18), rgba(226, 232, 240, 0.7)),
        linear-gradient(45deg, transparent 44%, rgba(100, 116, 139, 0.18) 45%, rgba(100, 116, 139, 0.18) 55%, transparent 56%);
    border: 1px dashed rgba(100, 116, 139, 0.34);
    min-height: 180px;
}
.gm-gallery-section--style-uniform.gm-gallery-section--ratio-square .gm-gallery-section__media img { aspect-ratio: 1 / 1; }
.gm-gallery-section--style-uniform.gm-gallery-section--ratio-landscape .gm-gallery-section__media img { aspect-ratio: 4 / 3; }
.gm-gallery-section--style-uniform.gm-gallery-section--ratio-portrait .gm-gallery-section__media img { aspect-ratio: 3 / 4; }
.gm-gallery-section--style-uniform.gm-gallery-section--ratio-wide .gm-gallery-section__media img { aspect-ratio: 16 / 9; }
.gm-gallery-section--style-uniform.gm-gallery-section--ratio-square .gm-gallery-section__media--placeholder { aspect-ratio: 1 / 1; }
.gm-gallery-section--style-uniform.gm-gallery-section--ratio-landscape .gm-gallery-section__media--placeholder { aspect-ratio: 4 / 3; }
.gm-gallery-section--style-uniform.gm-gallery-section--ratio-portrait .gm-gallery-section__media--placeholder { aspect-ratio: 3 / 4; }
.gm-gallery-section--style-uniform.gm-gallery-section--ratio-wide .gm-gallery-section__media--placeholder { aspect-ratio: 16 / 9; }

.gm-gallery-section__media:hover img { transform: scale(1.03); }

.gm-gallery-section__caption {
    color: var(--gl-caption-color);
    font-size: 13px;
    margin-top: 8px;
    overflow-wrap: anywhere;
}

/* Lightbox (CSS-only via :target) */
.gm-gallery-section__lightbox {
    display: none;
    inset: 0;
    position: fixed;
    z-index: 1000;
}
.gm-gallery-section__lightbox:target {
    align-items: center;
    display: flex;
    justify-content: center;
}
.gm-gallery-section__lightbox-backdrop {
    background: rgba(15, 23, 42, 0.88);
    inset: 0;
    position: absolute;
}
.gm-gallery-section__lightbox-frame {
    background: var(--gm-surface, #ffffff);
    border-radius: var(--theme-radius-lg, 12px);
    max-height: 90vh;
    max-width: min(1100px, 92vw);
    overflow: hidden;
    position: relative;
    z-index: 1;
}
.gm-gallery-section__lightbox-frame img {
    display: block;
    height: auto;
    max-height: 80vh;
    object-fit: contain;
    width: 100%;
}
.gm-gallery-section__lightbox-frame figcaption {
    color: var(--gm-text, #111);
    font-size: 14px;
    padding: 12px 16px;
}
.gm-gallery-section__lightbox-close {
    align-items: center;
    background: rgba(15, 23, 42, 0.85);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 22px;
    height: 36px;
    justify-content: center;
    position: absolute;
    right: 10px;
    text-decoration: none;
    top: 10px;
    width: 36px;
}

@media (max-width: 980px) {
    .gm-gallery-section--style-uniform .gm-gallery-section__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gm-gallery-section--style-masonry .gm-gallery-section__grid { column-count: 2; }
}
@media (max-width: 560px) {
    .gm-gallery-section { padding: var(--gl-section-padding-block) 18px; }
    .gm-gallery-section--style-uniform .gm-gallery-section__grid { grid-template-columns: 1fr; }
    .gm-gallery-section--style-masonry .gm-gallery-section__grid { column-count: 1; }
}

/* getme-css-bundle:end css/commerce/sections/gallery.css */


/* getme-css-bundle: css/commerce/sections/testimonials.css */
/* ════════════════════════════════════════════════════════════════════
   testimonials — Customer quote cards.
   Namespace: --ts-*   Scope: .gm-testimonials-section
   ════════════════════════════════════════════════════════════════════ */

.gm-testimonials-section {
    --ts-section-bg: color-mix(in srgb, var(--gm-primary) 8%, var(--gm-bg));
    --ts-text-color: var(--gm-text);
    --ts-title-color: var(--gm-text);
    --ts-kicker-color: var(--gm-primary);
    --ts-card-bg: #ffffff;
    --ts-card-border: var(--gm-border);
    --ts-quote-color: var(--gm-text);
    --ts-section-padding-block: var(--theme-spacing-3xl, 64px);
    --ts-grid-gap: var(--theme-spacing-lg, 24px);
    --ts-card-radius: var(--theme-radius-lg, 12px);
    --ts-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --ts-body-font: var(--font-primary, sans-serif);
    --ts-grid-columns: 3;

    background: var(--ts-section-bg);
    color: var(--ts-text-color);
    font-family: var(--ts-body-font);
    padding: var(--ts-section-padding-block) var(--gm-section-inline-padding);
}

.gm-testimonials-section__head { margin: 0 auto 36px; max-width: 800px; text-align: center; }
.gm-testimonials-section__head .gm-kicker {
    color: var(--ts-kicker-color);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
    text-transform: uppercase;
}
.gm-testimonials-section__title {
    color: var(--ts-title-color);
    font-family: var(--ts-title-font);
    font-size: clamp(24px, 3.4vw, 38px);
    margin: 0 0 10px;
}
.gm-testimonials-section__intro { color: var(--ts-text-color); margin: 0; opacity: 0.85; }

.gm-testimonials-section--columns-1 { --ts-grid-columns: 1; }
.gm-testimonials-section--columns-1 .gm-testimonials-section__grid {
    margin: 0 auto;
    max-width: 720px;
}
.gm-testimonials-section--columns-2 { --ts-grid-columns: 2; }
.gm-testimonials-section--columns-3 { --ts-grid-columns: 3; }

.gm-testimonials-section__grid {
    display: grid;
    gap: var(--ts-grid-gap);
    grid-template-columns: repeat(var(--ts-grid-columns), minmax(0, 1fr));
}

.gm-testimonials-section__card {
    background: var(--ts-card-bg);
    border: 1px solid var(--ts-card-border);
    border-radius: var(--ts-card-radius);
    margin: 0;
    padding: 28px;
    position: relative;
}

.gm-testimonials-section__card::before {
    color: var(--ts-kicker-color);
    content: "\201C";
    display: block;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 56px;
    line-height: 0.7;
    margin-bottom: 6px;
}

.gm-testimonials-section__card blockquote {
    color: var(--ts-quote-color);
    font-size: 16px;
    font-style: italic;
    line-height: 1.65;
    margin: 0 0 16px;
}

.gm-testimonials-section__card figcaption {
    display: grid;
    gap: 2px;
}
.gm-testimonials-section__card figcaption strong {
    color: var(--ts-title-color);
    font-family: var(--ts-title-font);
    font-size: 14px;
    font-weight: 700;
}
.gm-testimonials-section__card figcaption span {
    color: var(--ts-text-color);
    font-size: 13px;
    opacity: 0.7;
}

@media (max-width: 980px) {
    .gm-testimonials-section__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .gm-testimonials-section { padding: var(--ts-section-padding-block) var(--gm-section-inline-padding); }
}

/* getme-css-bundle:end css/commerce/sections/testimonials.css */


/* getme-css-bundle: css/commerce/sections/faq.css */
/* ════════════════════════════════════════════════════════════════════
   faq — Accordion using native <details>.
   Namespace: --fq-*   Scope: .gm-faq-section
   ════════════════════════════════════════════════════════════════════ */

.gm-faq-section {
    --fq-section-bg: transparent;
    --fq-text-color: var(--gm-text);
    --fq-title-color: var(--gm-text);
    --fq-kicker-color: var(--gm-primary);
    --fq-question-color: var(--gm-text);
    --fq-answer-color: var(--gm-muted);
    --fq-item-bg: var(--gm-surface);
    --fq-item-border: var(--gm-border);
    --fq-section-padding-block: var(--theme-spacing-3xl, 64px);
    --fq-item-gap: var(--theme-spacing-sm, 12px);
    --fq-item-radius: var(--theme-radius-md, 10px);
    --fq-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --fq-body-font: var(--font-primary, sans-serif);

    background: var(--fq-section-bg);
    color: var(--fq-text-color);
    font-family: var(--fq-body-font);
    padding: var(--fq-section-padding-block) var(--gm-section-inline-padding);
}

.gm-faq-section__head { margin: 0 auto 32px; max-width: 760px; text-align: center; }
.gm-faq-section__head .gm-kicker {
    color: var(--fq-kicker-color);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
    text-transform: uppercase;
}
.gm-faq-section__title {
    color: var(--fq-title-color);
    font-family: var(--fq-title-font);
    font-size: clamp(24px, 3.4vw, 38px);
    margin: 0 0 10px;
}
.gm-faq-section__intro { color: var(--fq-text-color); margin: 0; opacity: 0.85; }

.gm-faq-section__list {
    display: grid;
    gap: var(--fq-item-gap);
    margin: 0 auto;
    max-width: 820px;
}

.gm-faq-section--layout-two-column .gm-faq-section__list {
    grid-template-columns: 1fr 1fr;
    max-width: 1200px;
}

.gm-faq-section__item {
    background: var(--fq-item-bg);
    border: 1px solid var(--fq-item-border);
    border-radius: var(--fq-item-radius);
    padding: 0;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}
.gm-faq-section__item[open] {
    border-color: color-mix(in srgb, var(--gm-primary) 40%, var(--fq-item-border));
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
}

.gm-faq-section__question {
    align-items: center;
    color: var(--fq-question-color);
    cursor: pointer;
    display: flex;
    font-weight: 700;
    gap: 14px;
    justify-content: space-between;
    list-style: none;
    padding: 18px 22px;
}
.gm-faq-section__question::-webkit-details-marker { display: none; }
.gm-faq-section__question:focus-visible {
    border-radius: var(--fq-item-radius);
    outline: 2px solid var(--gm-primary);
    outline-offset: 2px;
}

.gm-faq-section__icon {
    align-items: center;
    border: 1px solid currentColor;
    border-radius: 999px;
    color: var(--fq-question-color);
    display: inline-flex;
    flex: 0 0 28px;
    font-size: 18px;
    font-weight: 400;
    height: 28px;
    justify-content: center;
    transition: transform 180ms ease;
    width: 28px;
}
.gm-faq-section__item[open] .gm-faq-section__icon { transform: rotate(45deg); }

.gm-faq-section__answer {
    color: var(--fq-answer-color);
    line-height: 1.6;
    padding: 0 22px 20px;
}

@media (max-width: 760px) {
    .gm-faq-section--layout-two-column .gm-faq-section__list {
        grid-template-columns: 1fr;
    }
    .gm-faq-section__question { padding: 16px 18px; }
    .gm-faq-section__answer { padding: 0 18px 16px; }
}

/* getme-css-bundle:end css/commerce/sections/faq.css */


/* getme-css-bundle: css/commerce/sections/pricing.css */
/* ════════════════════════════════════════════════════════════════════
   pricing — Plan tier cards with optional "popular" emphasis.
   Namespace: --pc-*   Scope: .gm-pricing-section
   ════════════════════════════════════════════════════════════════════ */

.gm-pricing-section {
    --pc-section-bg: transparent;
    --pc-text-color: var(--gm-text);
    --pc-title-color: var(--gm-text);
    --pc-kicker-color: var(--gm-primary);
    --pc-card-bg: var(--gm-surface);
    --pc-card-border: var(--gm-border);
    --pc-popular-accent: var(--gm-primary);
    --pc-price-color: var(--gm-text);
    --pc-feature-color: var(--gm-muted);
    --pc-cta-bg: var(--gm-primary);
    --pc-cta-text: #ffffff;
    --pc-section-padding-block: var(--theme-spacing-3xl, 64px);
    --pc-grid-gap: var(--theme-spacing-lg, 24px);
    --pc-card-radius: var(--theme-radius-lg, 12px);
    --pc-grid-columns: 3;
    --pc-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --pc-body-font: var(--font-primary, sans-serif);

    background: var(--pc-section-bg);
    color: var(--pc-text-color);
    font-family: var(--pc-body-font);
    padding: var(--pc-section-padding-block) var(--gm-section-inline-padding);
}

.gm-pricing-section__head { margin: 0 auto 32px; max-width: 760px; text-align: center; }
.gm-pricing-section__head .gm-kicker {
    color: var(--pc-kicker-color);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
    text-transform: uppercase;
}
.gm-pricing-section__title {
    color: var(--pc-title-color);
    font-family: var(--pc-title-font);
    font-size: clamp(24px, 3.4vw, 38px);
    margin: 0 0 10px;
}
.gm-pricing-section__intro { color: var(--pc-text-color); margin: 0; opacity: 0.85; }

.gm-pricing-section__grid {
    display: grid;
    gap: var(--pc-grid-gap);
    grid-template-columns: repeat(var(--pc-grid-columns), minmax(0, 1fr));
    margin: 0 auto;
    max-width: 1180px;
}

.gm-pricing-section__card {
    background: var(--pc-card-bg);
    border: 1px solid var(--pc-card-border);
    border-radius: var(--pc-card-radius);
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-width: 0;
    padding: 28px 24px;
    position: relative;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
.gm-pricing-section__card:hover {
    border-color: color-mix(in srgb, var(--pc-popular-accent) 35%, var(--pc-card-border));
    transform: translateY(-2px);
}

.gm-pricing-section__card--popular {
    border-color: var(--pc-popular-accent);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.10);
}

.gm-pricing-section__badge {
    align-self: flex-start;
    background: var(--pc-popular-accent);
    border-radius: 999px;
    color: #ffffff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 4px 10px;
    text-transform: uppercase;
}

.gm-pricing-section__plan-name {
    color: var(--pc-title-color);
    font-family: var(--pc-title-font);
    font-size: 20px;
    font-weight: 700;
    margin: 0;
}

.gm-pricing-section__price-row {
    align-items: baseline;
    color: var(--pc-price-color);
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
}
.gm-pricing-section__price {
    color: var(--pc-price-color);
    font-family: var(--pc-title-font);
    font-size: 36px;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    line-height: 1;
}
.gm-pricing-section__period {
    color: var(--pc-feature-color);
    font-size: 14px;
}

.gm-pricing-section__features {
    color: var(--pc-feature-color);
    display: grid;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.gm-pricing-section__features li {
    line-height: 1.5;
    padding-left: 24px;
    position: relative;
}
.gm-pricing-section__features li::before {
    color: var(--pc-popular-accent);
    content: "✓";
    font-weight: 700;
    left: 0;
    position: absolute;
}

.gm-pricing-section__cta {
    align-items: center;
    background: var(--pc-cta-bg);
    border: 1px solid var(--pc-cta-bg);
    border-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    box-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    color: var(--pc-cta-text);
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    margin-top: auto;
    min-height: 44px;
    padding: 0 16px;
    text-decoration: none;
    width: 100%;
}
.gm-pricing-section__cta:hover { filter: brightness(0.92); }
.gm-pricing-section__card--popular .gm-pricing-section__cta { background: var(--pc-popular-accent); border-color: var(--pc-popular-accent); }

@media (max-width: 980px) {
    .gm-pricing-section__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .gm-pricing-section { padding: var(--pc-section-padding-block) 18px; }
    .gm-pricing-section__grid { grid-template-columns: 1fr; }
    .gm-pricing-section__price { font-size: 32px; }
}

/* getme-css-bundle:end css/commerce/sections/pricing.css */


/* getme-css-bundle: css/commerce/sections/cta-banner.css */
/* ════════════════════════════════════════════════════════════════════
   cta-banner — Compact call-to-action band.
   Namespace: --cb-*   Scope: .gm-cta-banner-section
   ════════════════════════════════════════════════════════════════════ */

.gm-cta-banner-section {
    --cb-section-bg: linear-gradient(135deg, var(--gm-primary), color-mix(in srgb, var(--gm-primary) 70%, #000));
    --cb-text-color: rgba(255, 255, 255, 0.9);
    --cb-title-color: #ffffff;
    --cb-kicker-color: rgba(255, 255, 255, 0.8);
    --cb-primary-bg: #ffffff;
    --cb-primary-text: var(--gm-primary);
    --cb-secondary-bg: transparent;
    --cb-secondary-text: #ffffff;
    --cb-section-padding-block: var(--theme-spacing-3xl, 64px);
    --cb-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --cb-body-font: var(--font-primary, sans-serif);

    background: var(--cb-section-bg);
    color: var(--cb-text-color);
    font-family: var(--cb-body-font);
    padding: var(--cb-section-padding-block) var(--gm-section-inline-padding);
}

.gm-cta-banner-section__inner {
    align-items: center;
    display: grid;
    gap: 28px;
    margin: 0 auto;
    max-width: 1200px;
}

.gm-cta-banner-section--layout-centered .gm-cta-banner-section__inner {
    justify-items: center;
    text-align: center;
}
.gm-cta-banner-section--layout-row .gm-cta-banner-section__inner {
    grid-template-columns: minmax(0, 1.6fr) auto;
}

.gm-cta-banner-section__copy .gm-kicker {
    color: var(--cb-kicker-color);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 10px;
    text-transform: uppercase;
}
.gm-cta-banner-section__title {
    color: var(--cb-title-color);
    font-family: var(--cb-title-font);
    font-size: clamp(24px, 3.6vw, 40px);
    line-height: 1.15;
    margin: 0 0 12px;
}
.gm-cta-banner-section__intro {
    color: var(--cb-text-color);
    font-size: 16px;
    line-height: 1.55;
    margin: 0;
    max-width: 680px;
}

.gm-cta-banner-section__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}

.gm-cta-banner-section__button {
    align-items: center;
    border-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    box-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 48px;
    padding: 0 24px;
    text-decoration: none;
    transition: filter 160ms ease, transform 160ms ease;
}
.gm-cta-banner-section__button--primary {
    background: var(--cb-primary-bg);
    border: 1px solid var(--cb-primary-bg);
    color: var(--cb-primary-text);
}
.gm-cta-banner-section__button--secondary {
    background: var(--cb-secondary-bg);
    border: 1px solid currentColor;
    color: var(--cb-secondary-text);
}
.gm-cta-banner-section__button:hover { filter: brightness(0.92); transform: translateY(-1px); }

@media (max-width: 980px) {
    .gm-cta-banner-section--layout-row .gm-cta-banner-section__inner {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 640px) {
    .gm-cta-banner-section { padding: var(--cb-section-padding-block) var(--gm-section-inline-padding); }
}

/* getme-css-bundle:end css/commerce/sections/cta-banner.css */


/* getme-css-bundle: css/commerce/sections/newsletter.css */
/* ════════════════════════════════════════════════════════════════════
   newsletter — Inline subscribe form.
   Namespace: --nw-*   Scope: .gm-newsletter-section
   ════════════════════════════════════════════════════════════════════ */

.gm-newsletter-section {
    --nw-section-bg: var(--gm-bg);
    --nw-text-color: var(--gm-text);
    --nw-title-color: var(--gm-text);
    --nw-kicker-color: var(--gm-primary);
    --nw-field-bg: #ffffff;
    --nw-field-text: var(--gm-text);
    --nw-field-border: var(--gm-border);
    --nw-button-bg: var(--gm-primary);
    --nw-button-text: #ffffff;
    --nw-section-padding-block: var(--theme-spacing-3xl, 64px);
    --nw-title-font: var(--font-heading, var(--font-primary, sans-serif));
    --nw-body-font: var(--font-primary, sans-serif);

    background: var(--nw-section-bg);
    color: var(--nw-text-color);
    font-family: var(--nw-body-font);
    padding: var(--nw-section-padding-block) var(--gm-section-inline-padding);
}

.gm-newsletter-section__inner {
    align-items: center;
    display: grid;
    gap: 28px;
    margin: 0 auto;
    max-width: 1080px;
}

.gm-newsletter-section--layout-centered .gm-newsletter-section__inner {
    justify-items: center;
    text-align: center;
}

.gm-newsletter-section--layout-row .gm-newsletter-section__inner {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
}

.gm-newsletter-section__copy { min-width: 0; }
.gm-newsletter-section__copy .gm-kicker {
    color: var(--nw-kicker-color);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
    text-transform: uppercase;
}
.gm-newsletter-section__title {
    color: var(--nw-title-color);
    font-family: var(--nw-title-font);
    font-size: clamp(22px, 3vw, 34px);
    margin: 0 0 8px;
}
.gm-newsletter-section__intro {
    color: var(--nw-text-color);
    line-height: 1.55;
    margin: 0;
    opacity: 0.85;
}

.gm-newsletter-section__form {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    width: 100%;
    max-width: 560px;
}
.gm-newsletter-section--layout-centered .gm-newsletter-section__form { margin: 0 auto; }

.gm-newsletter-section__field {
    display: grid;
    flex: 1;
    min-width: 220px;
}
.gm-newsletter-section__field-label {
    color: var(--nw-text-color);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-bottom: 4px;
    opacity: 0.7;
    text-transform: uppercase;
}
.gm-newsletter-section--layout-centered .gm-newsletter-section__field-label {
    position: absolute;
    clip: rect(0, 0, 0, 0);
    overflow: hidden;
    width: 1px;
    height: 1px;
}

.gm-newsletter-section__field input {
    background: var(--nw-field-bg);
    border: 1px solid var(--nw-field-border);
    border-radius: var(--gm-control-radius, var(--theme-input-radius, var(--theme-radius-md, 8px)));
    color: var(--nw-field-text);
    font-family: inherit;
    font-size: 15px;
    min-height: 48px;
    padding: 0 14px;
}

.gm-newsletter-section__button {
    align-items: center;
    background: var(--nw-button-bg);
    border: 1px solid var(--nw-button-bg);
    border-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md, 8px)));
    box-shadow: var(--gm-button-shadow, var(--theme-button-shadow, none));
    color: var(--nw-button-text);
    cursor: pointer;
    display: inline-flex;
    font-family: inherit;
    font-weight: 700;
    justify-content: center;
    min-height: 48px;
    padding: 0 24px;
    transition: filter 160ms ease, transform 160ms ease;
}
.gm-newsletter-section__button:hover { filter: brightness(0.92); transform: translateY(-1px); }

.gm-newsletter-section__consent {
    color: var(--nw-text-color);
    font-size: 12px;
    margin: 18px auto 0;
    max-width: 700px;
    opacity: 0.65;
    text-align: center;
}

@media (max-width: 980px) {
    .gm-newsletter-section--layout-row .gm-newsletter-section__inner { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .gm-newsletter-section { padding: var(--nw-section-padding-block) var(--gm-section-inline-padding); }
}

/* getme-css-bundle:end css/commerce/sections/newsletter.css */


/* getme-css-bundle: css/commerce/sections/announcement-bar.css */
/* ════════════════════════════════════════════════════════════════════
   announcement-bar — campaign / announcement marquee strip.

   Owner     : sections/announcement-bar.json + .html
   Namespace : --ab-*  (announcement-bar). Unique to this section.
   Scope     : Every rule starts with `.gm-announcement-bar`.
   Marquee   : CSS-only. The track holds two identical message groups and
               translates -50% for a seamless loop. Paused on hover and
               disabled (static, centered) for reduced-motion visitors.
   ════════════════════════════════════════════════════════════════════ */

.gm-announcement-bar {
    --ab-bg: var(--color-bg-dark, #0f172a);
    --ab-text: #ffffff;
    --ab-padding: var(--theme-spacing-sm, 10px);
    --ab-font-size: 14px;
    --ab-duration: 28s;

    background: var(--ab-bg);
    color: var(--ab-text);
    overflow: hidden;
}

/* Optional edge-to-edge full-bleed (off by default). overflow:hidden on the
   bar clips the marquee so the page never gains a horizontal scrollbar. */
.gm-announcement-bar--full {
    margin-inline: calc(50% - 50vw);
}

.gm-announcement-bar--font-sm { --ab-font-size: 13px; }
.gm-announcement-bar--font-md { --ab-font-size: 14px; }
.gm-announcement-bar--font-lg { --ab-font-size: 16px; }

.gm-announcement-bar--speed-slow { --ab-duration: 42s; }
.gm-announcement-bar--speed-medium { --ab-duration: 28s; }
.gm-announcement-bar--speed-fast { --ab-duration: 18s; }

.gm-announcement-bar__link {
    color: inherit;
    display: block;
    text-decoration: none;
}

.gm-announcement-bar__viewport {
    overflow: hidden;
    padding: var(--ab-padding) 0;
}

.gm-announcement-bar__track {
    animation: gm-ab-marquee var(--ab-duration) linear infinite;
    display: inline-flex;
    white-space: nowrap;
    will-change: transform;
}

.gm-announcement-bar:hover .gm-announcement-bar__track {
    animation-play-state: paused;
}

.gm-announcement-bar__group {
    align-items: center;
    display: inline-flex;
}

.gm-announcement-bar__item {
    font-size: var(--ab-font-size);
    font-weight: 500;
    padding: 0 10px;
}

.gm-announcement-bar__sep {
    font-size: var(--ab-font-size);
    opacity: 0.55;
    padding: 0 2px;
}

@keyframes gm-ab-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* Static (off) + reduced-motion: show one centered group, no animation. */
.gm-announcement-bar--speed-off .gm-announcement-bar__track {
    animation: none;
    justify-content: center;
    width: 100%;
}
.gm-announcement-bar--speed-off .gm-announcement-bar__group[aria-hidden="true"] {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    .gm-announcement-bar__track {
        animation: none;
        justify-content: center;
        width: 100%;
    }
    .gm-announcement-bar__group[aria-hidden="true"] {
        display: none;
    }
}

/* ── Arrows mode (one message, prev/next) ───────────────────────── */
.gm-announcement-bar__arrows {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: center;
    padding: var(--ab-padding) 12px;
}

.gm-announcement-bar__stage {
    flex: 1 1 auto;
    min-width: 0;
    position: relative;
    text-align: center;
}

.gm-announcement-bar__slide {
    display: none;
    font-size: var(--ab-font-size);
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gm-announcement-bar__slide.is-active {
    animation: gm-ab-fade 280ms ease;
    display: block;
}

@keyframes gm-ab-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

.gm-announcement-bar__nav {
    align-items: center;
    background: transparent;
    border: none;
    color: inherit;
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 22px;
    height: 28px;
    justify-content: center;
    line-height: 1;
    opacity: 0.75;
    width: 28px;
}

.gm-announcement-bar__nav:hover { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
    .gm-announcement-bar__slide.is-active { animation: none; }
}

/* getme-css-bundle:end css/commerce/sections/announcement-bar.css */


/* ── Legacy stylesheets — service listing surfaces not yet migrated ── */

/* getme-css-bundle: css/commerce/listings.css */
/* ════════════════════════════════════════════════════════════════════
   commerce/listings.css — shared listing chrome

   The service listing was migrated to a section-scoped stylesheet
   (commerce/sections/service-listing.css, --sl-*). The .gm-service-*
   classes below are now consumed by the booking-listing section
   (sections/booking-listing.html reuses .gm-service-section / -grid /
   -card / -category), so this file must stay until booking-listing
   gets its own namespace.
   ════════════════════════════════════════════════════════════════════ */

.gm-service-section {
    --gm-commerce-action-bg: var(--gm-primary);
    --gm-commerce-action-hover: var(--gm-primary-dark);
    --gm-commerce-action-text: #ffffff;
    --gm-commerce-secondary-text: var(--gm-primary-dark);
    --gm-commerce-grid-columns: 3;
    --gm-commerce-action-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md)));
    background: var(--gm-surface);
    border: 1px solid var(--gm-border);
    border-radius: var(--theme-container-radius, var(--theme-radius-lg));
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.06);
    padding: 26px;
}

.gm-service-grid {
    display: grid;
    gap: 22px;
    grid-template-columns: repeat(var(--gm-commerce-grid-columns), minmax(0, 1fr));
}

.gm-service-card {
    background: #ffffff;
    border: 1px solid var(--gm-border);
    border-radius: var(--theme-card-service-radius, var(--theme-radius-lg));
    display: grid;
    grid-template-rows: 1fr auto;
    min-width: 0;
    overflow: hidden;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.gm-service-card:hover {
    border-color: color-mix(in srgb, var(--gm-commerce-action-bg) 35%, var(--gm-border));
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.10);
    transform: translateY(-2px);
}

.gm-service-card a {
    color: var(--gm-text);
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    min-height: 100%;
    text-decoration: none;
}

.gm-service-card img,
.gm-service-image-placeholder {
    aspect-ratio: 1 / 1;
}

.gm-service-card img {
    background: var(--gm-media-surface);
    display: block;
    height: auto;
    object-fit: cover;
    width: 100%;
}

.gm-service-image-placeholder {
    background: linear-gradient(135deg, #eef2f7, #dbe3ef);
    display: block;
    width: 100%;
}

.gm-service-category {
    color: var(--gm-muted);
    display: block;
    font-size: 11px;
    font-weight: 700;
    min-height: 16px;
    overflow: hidden;
    padding: 14px 14px 0;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.gm-service-card h3 {
    font-size: 16px;
    line-height: 1.3;
    margin: 6px 14px 0;
    overflow-wrap: anywhere;
    text-align: center;
}

.gm-service-card p {
    color: var(--gm-muted);
    display: -webkit-box;
    font-size: 14px;
    line-height: 1.5;
    margin: 8px 18px 0;
    min-height: 42px;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.gm-service-card strong {
    display: block;
    font-size: 17px;
    font-variant-numeric: tabular-nums;
    text-align: center;
}

.gm-service-price-stack {
    align-items: center;
    display: grid;
    gap: 4px;
    justify-items: center;
    margin: 16px 14px;
    min-height: 46px;
}

.gm-service-compare-price {
    color: var(--gm-muted);
    font-size: 13px;
    text-decoration: line-through;
}

.gm-service-actions {
    display: grid;
    gap: 8px;
    padding: 0 14px 14px;
}

.gm-service-actions a,
.gm-service-actions button {
    align-items: center;
    background: var(--gm-commerce-action-bg);
    border: 1px solid var(--gm-commerce-action-bg);
    border-radius: var(--gm-commerce-action-radius);
    color: var(--gm-commerce-action-text);
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 700;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    text-decoration: none;
    transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.gm-service-actions a:hover,
.gm-service-actions button:hover {
    background: var(--gm-commerce-action-hover);
    border-color: var(--gm-commerce-action-hover);
    box-shadow: 0 6px 18px color-mix(in srgb, var(--gm-commerce-action-bg) 26%, transparent);
}

.gm-service-actions a:active,
.gm-service-actions button:active {
    filter: brightness(0.92);
}

.gm-service-actions button:disabled,
.gm-service-actions [aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.68;
}

.gm-product-section__pagination,
.gm-service-listing-section__pagination,
.gm-category-listing-section__pagination,
.gm-brand-listing-section__pagination {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin-top: 28px;
}

.gm-product-section__pagination a,
.gm-product-section__pagination span,
.gm-service-listing-section__pagination a,
.gm-service-listing-section__pagination span,
.gm-category-listing-section__pagination a,
.gm-category-listing-section__pagination span,
.gm-brand-listing-section__pagination a,
.gm-brand-listing-section__pagination span {
    align-items: center;
    border: 1px solid var(--gm-border);
    border-radius: var(--gm-button-radius, var(--theme-button-radius, var(--theme-radius-md)));
    color: var(--gm-text);
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 38px;
    min-width: 38px;
    padding: 0 12px;
    text-decoration: none;
}

.gm-product-section__pagination span,
.gm-service-listing-section__pagination span,
.gm-category-listing-section__pagination span,
.gm-brand-listing-section__pagination span {
    border-color: transparent;
    color: var(--gm-muted);
}

.gm-product-section__pagination a[aria-current="page"],
.gm-service-listing-section__pagination a[aria-current="page"],
.gm-category-listing-section__pagination a[aria-current="page"],
.gm-brand-listing-section__pagination a[aria-current="page"] {
    background: var(--gm-primary);
    border-color: var(--gm-primary);
    color: var(--gm-on-primary, #ffffff);
}

@media (max-width: 980px) {
    .gm-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .gm-service-grid { grid-template-columns: 1fr; }
    .gm-service-section { padding: 20px; }
}

/* getme-css-bundle:end css/commerce/listings.css */


:root {
    color-scheme: light;

    /* Token bridge
       The renderer injects merchant/theme settings as canonical tokens such as
       --color-primary, --color-bg-primary, --font-primary and --theme-radius-lg.
       The core library maps only those canonical tokens into its own --gm-*
       internal surface. */
    --gm-primary: var(--color-primary);
    /* Dark/light primary shades derive from the BRAND primary (or the renderer's
       derived --color-primary-hover), NOT --color-primary-dark/light: the library
       ships those canonical tokens with a non-brand default that does not track
       --color-primary, so they leaked a stale colour onto hovers + outline
       buttons (e.g. blue on an orange theme). One source of truth = the primary. */
    --gm-primary-dark: var(--color-primary-hover, color-mix(in srgb, var(--gm-primary) 80%, #000));
    --gm-primary-light: color-mix(in srgb, var(--gm-primary) 12%, transparent);
    --gm-on-primary: var(--color-text-on-primary, #ffffff);
    --gm-bg: var(--color-bg-secondary, var(--color-bg-primary));
    --gm-surface: var(--color-surface, var(--color-card-bg, var(--color-bg-primary)));
    /* Single source for card media/image backgrounds — keeps every product &
       service card (featured / listing / booking) on the same light surface. */
    --gm-media-surface: var(--color-bg-tertiary, #eef2f7);
    --gm-text: var(--color-text-primary);
    --gm-muted: var(--color-text-muted, var(--color-text-secondary));
    --gm-border: var(--color-border, var(--color-border-light, var(--color-border-medium)));
    --gm-button-radius: var(--theme-button-radius, var(--theme-radius-md));
    --gm-button-shadow: var(--theme-button-shadow, none);
    --gm-control-bg: var(--theme-input-background, var(--gm-surface));
    --gm-control-border: var(--theme-input-border, var(--gm-border));
    --gm-control-focus: var(--theme-input-focus, var(--gm-primary));
    --gm-control-radius: var(--theme-input-radius, var(--theme-radius-md));
    --gm-dropdown-bg: var(--theme-dropdown-popup-background, var(--gm-surface));
    --gm-dropdown-radius: var(--theme-dropdown-popup-radius, var(--gm-control-radius));
    /* Interaction + semantic tokens — a single source for radius, shadow, motion
       and focus, so components reference tokens instead of literal values. */
    --gm-card-radius: var(--theme-card-radius, var(--theme-radius-lg, 12px));
    --gm-card-shadow: var(--theme-card-shadow, none);
    --gm-pill-radius: var(--theme-variant-pill-radius, var(--theme-radius-pill, 9999px));
    --gm-badge-radius: var(--theme-badge-radius, var(--theme-radius-pill, 9999px));
    --gm-shadow-sm: var(--theme-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.06));
    --gm-shadow-md: var(--theme-shadow-md, 0 4px 12px rgba(15, 23, 42, 0.08));
    --gm-shadow-lg: var(--theme-shadow-lg, 0 12px 28px rgba(15, 23, 42, 0.1));
    --gm-transition-fast: var(--theme-animation-duration-fast, 160ms) var(--theme-animation-easing-standard, ease);
    --gm-transition: var(--theme-animation-duration-normal, 240ms) var(--theme-animation-easing-standard, ease);
    --gm-focus-ring-width: 3px;
    --gm-focus-ring-mix: 16%;
    --gm-focus-ring-color: var(--gm-control-focus, var(--gm-primary));
    --gm-focus-ring: 0 0 0 var(--gm-focus-ring-width) color-mix(in srgb, var(--gm-focus-ring-color) var(--gm-focus-ring-mix), transparent);
    --gm-hover-bg: color-mix(in srgb, var(--gm-primary) 82%, #000);
    --gm-disabled-opacity: 0.56;
    /* Color palette — named colors derived from the theme's --color-* tokens.
       The color schemes below are built from these. */
    --palette-brand: var(--color-primary);
    --palette-brand-contrast: var(--color-text-on-primary, #ffffff);
    --palette-accent: var(--color-accent, var(--color-primary));
    --palette-accent-contrast: var(--color-text-on-accent, #ffffff);
    --palette-surface: var(--gm-surface);
    --palette-surface-text: var(--gm-text);
    --palette-surface-border: var(--gm-border);
    --palette-muted: var(--color-bg-secondary, var(--gm-surface));
    --palette-muted-text: var(--gm-muted);
    --palette-inverse: var(--color-bg-dark, var(--color-secondary));
    --palette-inverse-text: var(--color-text-light, #ffffff);
    /* Color schemes — named role sets (background, text, border, button) built
       from the palette. A section applies one via its Color scheme setting. */
    --scheme-background-1-bg: var(--palette-surface);
    --scheme-background-1-text: var(--palette-surface-text);
    --scheme-background-1-border: var(--palette-surface-border);
    --scheme-background-1-button: var(--palette-brand);
    --scheme-background-1-button-text: var(--palette-brand-contrast);
    --scheme-background-2-bg: var(--palette-muted);
    --scheme-background-2-text: var(--palette-muted-text);
    --scheme-background-2-border: var(--palette-surface-border);
    --scheme-background-2-button: var(--palette-brand);
    --scheme-background-2-button-text: var(--palette-brand-contrast);
    --scheme-inverse-bg: var(--palette-inverse);
    --scheme-inverse-text: var(--palette-inverse-text);
    --scheme-inverse-border: color-mix(in srgb, var(--palette-inverse-text) 20%, transparent);
    --scheme-inverse-button: var(--palette-brand);
    --scheme-inverse-button-text: var(--palette-brand-contrast);
    /* Header chrome — single source for the hairline separator + pinned elevation.
       Token-only (no editor field): follows the theme border + a soft shadow. */
    --gm-header-border: var(--gm-border);
    --gm-header-shadow: 0 6px 20px -12px color-mix(in srgb, var(--gm-text) 40%, transparent);

    --gm-page-max-width: var(--theme-container-content-max-width, 1440px);
    --gm-page-gutter: var(--theme-container-content-inline-padding, clamp(14px, 2vw, 40px));
    --gm-section-inline-padding: clamp(14px, 1.5vw, 24px);
}

* {
    box-sizing: border-box;
}

html {
    font-family: var(--font-primary, sans-serif);
    background: var(--gm-bg);
    color: var(--gm-text);
    /* Crisp grayscale antialiasing site-wide (inherited → storefront + widgets, incl. the
       checkout shadow DOM). Themeable from the Typography settings via --gm-font-smoothing
       (e.g. "auto" to restore the OS default subpixel rendering). */
    -webkit-font-smoothing: var(--gm-font-smoothing, antialiased);
    -moz-osx-font-smoothing: var(--gm-font-smoothing-moz, grayscale);
}

body {
    display: flex;
    flex-direction: column;
    margin: 0;
    min-height: 100vh;
    background: var(--gm-bg);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-heading, var(--font-primary, sans-serif));
}

a {
    color: inherit;
}

.gm-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.gm-header,
.gm-footer {
    width: min(var(--gm-page-max-width), calc(100% - (var(--gm-page-gutter) * 2)));
    margin: 0 auto;
}

.gm-footer {
    flex-shrink: 0;
}

.gm-header {
    background: var(--gm-header-bg, transparent);
    color: var(--gm-header-text, var(--gm-text));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: var(--gm-header-padding-block, 22px) 0;
    border-bottom: 1px solid var(--gm-header-border);
}

/* Sticky header — opt-in via the "Stick header to top on scroll" editor toggle
   (component setting `sticky`). Pins to top with a readable surface + soft
   elevation. A merchant-set header background still wins via the var fallback. */
.gm-header--sticky {
    position: sticky;
    top: 0;
    z-index: 40;
    background: var(--gm-header-bg, var(--gm-surface));
    box-shadow: var(--gm-header-shadow);
}

.gm-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--gm-text);
    font-weight: 700;
    text-decoration: none;
}

.gm-header .gm-brand {
    color: var(--gm-header-text, var(--gm-text));
    font-family: var(--gm-header-brand-font, inherit);
}

.gm-brand-logo,
.gm-footer-logo {
    display: block;
    height: auto;
    max-width: 160px;
}

.gm-brand-logo {
    max-height: 42px;
}

.gm-footer-logo {
    margin-bottom: 12px;
    max-height: 48px;
}

.gm-brand-tagline {
    color: var(--gm-muted);
    font-size: 13px;
    font-weight: 500;
}

.gm-header .gm-brand-tagline {
    color: color-mix(in srgb, var(--gm-header-text, var(--gm-muted)) 72%, transparent);
}

.gm-brand-mark {
    display: inline-grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border-radius: var(--gm-button-radius);
    background: var(--gm-primary);
    color: var(--gm-on-primary);
}

.gm-header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

.gm-header-menu-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    width: 42px;
    height: 42px;
    border: 1px solid var(--gm-border);
    border-radius: var(--gm-button-radius);
    background: var(--gm-surface);
    color: var(--gm-text);
    cursor: pointer;
}

.gm-header-menu-toggle {
    transition:
        background var(--gm-transition-fast),
        border-color var(--gm-transition-fast);
}

.gm-header-menu-toggle:hover {
    border-color: var(--gm-primary);
}

.gm-header-menu-toggle[aria-expanded="true"] {
    background: var(--gm-primary-light);
    border-color: var(--gm-primary);
    color: var(--gm-primary-dark);
}

.gm-header-menu-toggle__bar {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
}

.gm-nav,
.gm-header-utility {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.gm-nav__item {
    display: inline-flex;
    position: relative;
}

.gm-nav__item--has-children {
    --gm-submenu-offset: 8px;
}

.gm-nav__item--has-children > .gm-nav__link::after {
    color: currentColor;
    content: "⌄";
    font-size: 12px;
    line-height: 1;
    opacity: 0.72;
    transition: transform var(--gm-transition-fast);
}

.gm-nav__item--has-children:hover > .gm-nav__link::after,
.gm-nav__item--has-children[data-open="true"] > .gm-nav__link::after {
    transform: rotate(180deg);
    opacity: 1;
}

.gm-nav__link {
    align-items: center;
    border-radius: var(--gm-button-radius);
    border: 1px solid transparent;
    color: var(--gm-muted);
    display: inline-flex;
    font-size: 14px;
    font-weight: 500;
    gap: 7px;
    line-height: 1.2;
    min-height: 38px;
    padding: 9px 12px;
    text-decoration: none;
    box-shadow: var(--gm-button-shadow);
    transition:
        background var(--gm-transition-fast),
        color var(--gm-transition-fast);
}

.gm-header .gm-nav__link,
.gm-header .gm-header-utility__link {
    color: var(--gm-header-nav-link, var(--gm-muted));
    font-family: var(--gm-header-nav-font, inherit);
}

.gm-nav button.gm-nav__link {
    cursor: pointer;
    font: inherit;
}

.gm-nav__link:hover {
    background: var(--gm-primary-light);
    color: var(--gm-primary-dark);
}

.gm-header .gm-nav__link[aria-current="page"],
.gm-header .gm-nav__link.is-active {
    color: var(--gm-header-text, var(--gm-text));
    font-weight: 600;
}

.gm-nav__submenu {
    background: var(--gm-dropdown-bg);
    border: 1px solid var(--gm-control-border);
    border-radius: var(--gm-dropdown-radius);
    box-shadow: var(--theme-shadow-lg);
    display: grid;
    gap: 2px;
    left: 0;
    min-width: 220px;
    opacity: 0;
    padding: 8px;
    pointer-events: none;
    position: absolute;
    top: calc(100% + var(--gm-submenu-offset));
    transform: translateY(-4px);
    transition:
        opacity var(--gm-transition-fast),
        transform var(--gm-transition-fast);
    z-index: 35;
}

.gm-nav__submenu::before {
    content: "";
    height: var(--gm-submenu-offset);
    left: 0;
    position: absolute;
    right: 0;
    top: calc(var(--gm-submenu-offset) * -1);
}

.gm-nav__submenu--mega-columns,
.gm-nav__submenu--logo-grid,
.gm-nav__submenu--card-grid,
.gm-nav__submenu--featured-panel {
    gap: 16px;
    left: 50%;
    padding: 16px;
    transform: translate(-50%, -4px);
    width: min(760px, calc(100vw - (var(--gm-page-gutter) * 2)));
}

.gm-nav__submenu--mega-columns {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.gm-nav__submenu--logo-grid {
    grid-template-columns: repeat(auto-fit, minmax(116px, 1fr));
}

.gm-nav__submenu--card-grid,
.gm-nav__submenu--featured-panel {
    grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
}

.gm-nav__submenu-column {
    display: grid;
    align-content: start;
    gap: 7px;
    min-width: 0;
}

.gm-nav__submenu-list {
    display: grid;
    gap: 2px;
}

.gm-nav__submenu-heading.gm-nav__link {
    border-bottom: 1px solid var(--gm-border);
    border-radius: 0;
    box-shadow: none;
    color: var(--gm-text);
    font-size: 13px;
    font-weight: 700;
    justify-content: flex-start;
    min-height: 34px;
    padding: 0 0 8px;
    text-transform: uppercase;
    white-space: normal;
}

.gm-nav__tile {
    align-items: center;
    border: 1px solid var(--gm-control-border);
    border-radius: var(--gm-control-radius);
    color: var(--gm-text);
    display: grid;
    gap: 9px;
    justify-items: center;
    min-height: 96px;
    padding: 12px;
    text-align: center;
    text-decoration: none;
}

.gm-nav__tile:hover {
    border-color: var(--gm-primary);
    box-shadow: var(--theme-shadow-sm, none);
    color: var(--gm-primary-dark);
}

.gm-nav__tile-media {
    align-items: center;
    display: flex;
    height: 38px;
    justify-content: center;
    width: 100%;
}

.gm-nav__tile-media img {
    display: block;
    max-height: 38px;
    max-width: 92px;
    object-fit: contain;
}

.gm-nav__tile-label {
    font-size: 13px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.gm-nav__item:hover > .gm-nav__submenu,
.gm-nav__item:focus-within > .gm-nav__submenu,
.gm-nav__item[data-open="true"] > .gm-nav__submenu {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.gm-nav__item:hover > .gm-nav__submenu--mega-columns,
.gm-nav__item:focus-within > .gm-nav__submenu--mega-columns,
.gm-nav__item:hover > .gm-nav__submenu--logo-grid,
.gm-nav__item:focus-within > .gm-nav__submenu--logo-grid,
.gm-nav__item:hover > .gm-nav__submenu--card-grid,
.gm-nav__item:focus-within > .gm-nav__submenu--card-grid,
.gm-nav__item:hover > .gm-nav__submenu--featured-panel,
.gm-nav__item:focus-within > .gm-nav__submenu--featured-panel,
.gm-nav__item[data-open="true"] > .gm-nav__submenu--mega-columns,
.gm-nav__item[data-open="true"] > .gm-nav__submenu--logo-grid,
.gm-nav__item[data-open="true"] > .gm-nav__submenu--card-grid,
.gm-nav__item[data-open="true"] > .gm-nav__submenu--featured-panel {
    transform: translate(-50%, 0);
}

.gm-nav__item:nth-last-child(-n+2) > .gm-nav__submenu--mega-columns,
.gm-nav__item:nth-last-child(-n+2) > .gm-nav__submenu--logo-grid,
.gm-nav__item:nth-last-child(-n+2) > .gm-nav__submenu--card-grid,
.gm-nav__item:nth-last-child(-n+2) > .gm-nav__submenu--featured-panel {
    left: auto;
    right: 0;
    transform: translateY(-4px);
}

.gm-nav__item:nth-last-child(-n+2):hover > .gm-nav__submenu--mega-columns,
.gm-nav__item:nth-last-child(-n+2):focus-within > .gm-nav__submenu--mega-columns,
.gm-nav__item:nth-last-child(-n+2):hover > .gm-nav__submenu--logo-grid,
.gm-nav__item:nth-last-child(-n+2):focus-within > .gm-nav__submenu--logo-grid,
.gm-nav__item:nth-last-child(-n+2):hover > .gm-nav__submenu--card-grid,
.gm-nav__item:nth-last-child(-n+2):focus-within > .gm-nav__submenu--card-grid,
.gm-nav__item:nth-last-child(-n+2):hover > .gm-nav__submenu--featured-panel,
.gm-nav__item:nth-last-child(-n+2):focus-within > .gm-nav__submenu--featured-panel,
.gm-nav__item:nth-last-child(-n+2)[data-open="true"] > .gm-nav__submenu--mega-columns,
.gm-nav__item:nth-last-child(-n+2)[data-open="true"] > .gm-nav__submenu--logo-grid,
.gm-nav__item:nth-last-child(-n+2)[data-open="true"] > .gm-nav__submenu--card-grid,
.gm-nav__item:nth-last-child(-n+2)[data-open="true"] > .gm-nav__submenu--featured-panel {
    transform: translateY(0);
}

.gm-nav__submenu-link.gm-nav__link {
    border-radius: calc(var(--gm-dropdown-radius) - 4px);
    box-shadow: none;
    color: var(--gm-text);
    justify-content: flex-start;
    min-height: 38px;
    padding: 9px 10px;
    white-space: nowrap;
}

.gm-nav__link--ghost {
    background: transparent;
    color: var(--gm-muted);
}

.gm-nav__icon {
    flex: 0 0 auto;
    font-size: 0.95em;
    line-height: 1;
}

.gm-nav__label {
    min-width: 0;
}

.gm-header-utility {
    gap: 8px;
}

.gm-header-utility__link {
    min-width: 42px;
}

.gm-nav__badge {
    align-items: center;
    background: var(--theme-badge-background, var(--gm-primary));
    border-radius: var(--theme-badge-radius, 9999px);
    color: var(--theme-badge-text, var(--gm-on-primary));
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 800;
    justify-content: center;
    line-height: 1;
    min-width: 19px;
    padding: 4px 6px;
}

.gm-nav__badge[hidden],
[data-getme-cart-count][hidden] {
    display: none;
}

.gm-nav__link--primary,
.gm-nav__link--button-primary,
.gm-header-cta--primary,
.gm-header-cta--button-primary {
    background: var(--gm-primary);
    border-color: var(--gm-primary);
    color: var(--gm-on-primary);
    font-weight: 700;
}

.gm-nav__link--primary:hover,
.gm-nav__link--button-primary:hover,
.gm-header-cta--primary:hover,
.gm-header-cta--button-primary:hover {
    background: var(--gm-primary-dark);
    border-color: var(--gm-primary-dark);
    color: var(--gm-on-primary);
}

.gm-nav__link--secondary,
.gm-nav__link--button-secondary,
.gm-header-cta--secondary,
.gm-header-cta--button-secondary {
    background: var(--color-bg-tertiary);
    border-color: var(--gm-border);
    color: var(--gm-text);
    font-weight: 700;
}

.gm-nav__link--secondary:hover,
.gm-nav__link--button-secondary:hover,
.gm-header-cta--secondary:hover,
.gm-header-cta--button-secondary:hover {
    background: var(--gm-surface);
    border-color: var(--gm-primary);
    color: var(--gm-primary-dark);
}

.gm-nav__link--outline,
.gm-nav__link--outline-primary,
.gm-header-cta--outline,
.gm-header-cta--outline-primary {
    background: transparent;
    border-color: var(--gm-primary);
    color: var(--gm-primary-dark);
    font-weight: 700;
}

.gm-nav__link--outline:hover,
.gm-nav__link--outline-primary:hover,
.gm-header-cta--outline:hover,
.gm-header-cta--outline-primary:hover {
    background: var(--gm-primary-light);
    color: var(--gm-primary-dark);
}

.gm-nav__link--outline-light,
.gm-header-cta--outline-light {
    background: transparent;
    border-color: rgba(255, 255, 255, 0.72);
    color: #ffffff;
    font-weight: 700;
}

.gm-nav__link--outline-light:hover,
.gm-header-cta--outline-light:hover {
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
}

.gm-header .gm-header-cta {
    background: var(--gm-header-cta-bg, var(--gm-primary));
    border-color: var(--gm-header-cta-bg, var(--gm-primary));
    color: var(--gm-header-cta-text, var(--gm-on-primary));
}

.gm-language-switcher {
    position: relative;
    color: var(--gm-text);
    font-size: 13px;
    font-weight: 700;
}

.gm-language-switcher--dropdown {
    display: inline-block;
}

.gm-language-switcher__summary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 8px 10px;
    /* Outline treatment to match the Cart/Account header buttons. */
    border: 1px solid var(--gm-primary);
    border-radius: var(--gm-button-radius);
    background: transparent;
    color: var(--gm-primary-dark);
    font-weight: 700;
    cursor: pointer;
    list-style: none;
    transition:
        border-color var(--gm-transition-fast),
        box-shadow var(--gm-transition-fast),
        color var(--gm-transition-fast);
}

.gm-language-switcher__summary::-webkit-details-marker {
    display: none;
}

.gm-language-switcher__summary:hover,
.gm-language-switcher[open] .gm-language-switcher__summary {
    border-color: var(--gm-control-focus);
    color: var(--gm-primary-dark);
    box-shadow: var(--gm-focus-ring);
}

.gm-language-switcher__flag {
    display: inline-block;
    flex: 0 0 auto;
    width: 20px;
    height: 15px;
    border-radius: 3px;
    box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.12);
    object-fit: cover;
}

.gm-language-switcher__current,
.gm-language-switcher__label {
    min-width: 0;
    white-space: nowrap;
}

.gm-language-switcher__chevron {
    color: var(--gm-muted);
    font-size: 14px;
    line-height: 1;
    transition: transform var(--gm-transition-fast);
}

.gm-language-switcher[open] .gm-language-switcher__chevron {
    color: var(--gm-primary-dark);
    transform: rotate(180deg);
}

.gm-language-switcher__menu {
    position: absolute;
    z-index: 30;
    top: calc(100% + 8px);
    right: 0;
    display: grid;
    gap: 2px;
    min-width: 184px;
    padding: 6px;
    overflow: hidden;
    border: 1px solid var(--gm-control-border);
    border-radius: var(--gm-dropdown-radius);
    background: var(--gm-dropdown-bg);
    box-shadow: var(--theme-shadow-lg);
    transform-origin: top right;
    animation: gm-lang-menu-in 140ms var(--theme-animation-easing-standard, ease);
}

@keyframes gm-lang-menu-in {
    from { opacity: 0; transform: translateY(-4px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    .gm-language-switcher__menu { animation: none; }
    .gm-header--mobile-menu .gm-header-actions[data-open="true"] { animation: none; }
    .gm-nav__item--has-children > .gm-nav__link::after { transition: none; }
}

.gm-language-switcher__item,
.gm-language-switcher--pills a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--gm-text);
    line-height: 1.1;
    text-decoration: none;
}

.gm-language-switcher__item {
    min-height: 38px;
    padding: 8px 12px;
    border-radius: var(--gm-control-radius, 8px);
    font-weight: 600;
    transition:
        background var(--gm-transition-fast),
        color var(--gm-transition-fast);
}

.gm-language-switcher__item:hover,
.gm-language-switcher--pills a:hover {
    background: var(--gm-primary-light);
    color: var(--gm-primary-dark);
}

.gm-language-switcher__item[aria-current="page"] {
    background: var(--gm-primary);
    color: var(--gm-on-primary);
    font-weight: 700;
}

.gm-language-switcher--pills {
    display: inline-flex;
    align-items: center;
    overflow: hidden;
    border: 1px solid var(--gm-control-border);
    border-radius: var(--gm-button-radius);
    background: var(--theme-variant-pill-background, var(--gm-control-bg));
}

.gm-language-switcher--pills a {
    min-height: 38px;
    padding: 8px 10px;
    font-size: 12px;
    text-align: center;
}

.gm-language-switcher--pills a + a {
    border-left: 1px solid var(--gm-border);
}

.gm-language-switcher--pills a[aria-current="page"] {
    background: var(--gm-primary);
    color: var(--gm-on-primary);
}

.gm-search-overlay[hidden] {
    display: none;
}

.gm-search-overlay {
    inset: 0;
    position: fixed;
    z-index: 80;
}

.gm-search-overlay__backdrop {
    background: rgba(15, 23, 42, 0.46);
    inset: 0;
    position: absolute;
}

.gm-search-overlay__dialog {
    background: var(--gm-surface);
    border: 1px solid var(--gm-border);
    border-radius: var(--theme-container-radius, var(--theme-radius-lg, 14px));
    box-shadow: var(--theme-shadow-lg);
    display: grid;
    gap: 12px;
    left: 50%;
    max-height: min(680px, calc(100vh - 48px));
    max-width: min(680px, calc(100vw - 32px));
    overflow: hidden;
    padding: 14px;
    position: absolute;
    top: 48px;
    transform: translateX(-50%);
    width: 100%;
}

.gm-search-overlay__form {
    align-items: center;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto;
}

.gm-search-overlay__input {
    background: var(--gm-control-bg);
    border: 1px solid var(--gm-control-border);
    border-radius: var(--gm-control-radius);
    box-sizing: border-box;
    color: var(--gm-text);
    font: inherit;
    font-size: 16px;
    min-height: 40px;
    padding: 9px 12px;
    transition:
        border-color var(--gm-transition-fast),
        box-shadow var(--gm-transition-fast);
    width: 100%;
}

.gm-search-overlay__input::placeholder {
    color: var(--gm-muted);
}

.gm-search-overlay__input:focus {
    border-color: var(--gm-control-focus);
    box-shadow: var(--gm-focus-ring);
    outline: none;
}

.gm-search-overlay__close {
    align-items: center;
    background: var(--gm-control-bg);
    border: 1px solid var(--gm-control-border);
    border-radius: var(--gm-button-radius);
    box-shadow: var(--gm-button-shadow);
    color: var(--gm-text);
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-size: 20px;
    height: 40px;
    justify-content: center;
    line-height: 1;
    transition:
        border-color var(--gm-transition-fast),
        box-shadow var(--gm-transition-fast),
        color var(--gm-transition-fast);
    width: 40px;
}

.gm-search-overlay__close:hover,
.gm-search-overlay__close:focus-visible {
    border-color: var(--gm-control-focus);
    box-shadow:
        var(--gm-button-shadow),
        var(--gm-focus-ring);
    outline: none;
}

.gm-search-overlay__results {
    display: grid;
    gap: 12px;
    max-height: min(520px, calc(100vh - 160px));
    overflow: auto;
    padding: 2px;
}

.gm-search-overlay__empty {
    color: var(--gm-muted);
    margin: 10px 4px;
}

.gm-search-group {
    display: grid;
    gap: 6px;
}

.gm-search-group h3 {
    color: var(--gm-muted);
    font-size: 12px;
    letter-spacing: 0;
    margin: 6px 4px 0;
    text-transform: uppercase;
}

.gm-search-result {
    align-items: center;
    border: 1px solid transparent;
    border-radius: var(--gm-control-radius);
    color: var(--gm-text);
    display: grid;
    gap: 10px;
    grid-template-columns: 46px minmax(0, 1fr);
    min-height: 58px;
    padding: 8px;
    text-decoration: none;
}

.gm-search-result:hover {
    background: var(--gm-primary-light);
    border-color: var(--gm-border);
}

.gm-search-result img,
.gm-search-result__mark {
    background: var(--color-bg-tertiary);
    border: 1px solid var(--gm-border);
    border-radius: var(--theme-media-radius, var(--theme-radius-sm, 6px));
    height: 46px;
    object-fit: cover;
    width: 46px;
}

.gm-search-result span {
    min-width: 0;
}

.gm-search-result strong,
.gm-search-result small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gm-search-result small {
    color: var(--gm-muted);
    font-size: 13px;
    margin-top: 3px;
}

:where(.gm-main, .gm-header, .gm-footer) :where(
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
    select,
    textarea
) {
    min-height: 38px;
    border: 1px solid var(--gm-control-border);
    border-radius: var(--gm-control-radius);
    background: var(--gm-control-bg);
    color: var(--gm-text);
    font: inherit;
    padding: 8px 11px;
    transition:
        border-color var(--gm-transition-fast),
        box-shadow var(--gm-transition-fast);
}

:where(.gm-main, .gm-header, .gm-footer) :where(
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
    select,
    textarea
):focus {
    border-color: var(--gm-control-focus);
    box-shadow: var(--gm-focus-ring);
    outline: none;
}

:where(.gm-main, .gm-header, .gm-footer) :where(button) {
    border-radius: var(--gm-button-radius);
    font: inherit;
}

.gm-main {
    flex: 1 0 auto;
    width: min(var(--gm-page-max-width), calc(100% - (var(--gm-page-gutter) * 2)));
    margin: 0 auto;
    padding: 42px 0 72px;
}

.gm-hero,
.gm-page-heading,
.gm-widget-card,
.gm-grid article {
    background: var(--gm-surface);
    border: 1px solid var(--gm-border);
    border-radius: var(--theme-radius-md);
    box-shadow: var(--theme-shadow-lg);
}

.gm-hero {
    padding: 56px;
}

.gm-kicker {
    color: var(--gm-primary);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0;
    margin-bottom: 12px;
    text-transform: uppercase;
}

.gm-hero h1,
.gm-page-heading h1 {
    font-size: 42px;
    line-height: 1.1;
    margin: 0;
}

.gm-hero p,
.gm-page-heading p,
.gm-grid p,
.gm-widget-card p,
.gm-footer p {
    color: var(--gm-muted);
    line-height: 1.65;
}

.gm-hero p {
    max-width: 680px;
    font-size: 18px;
}

.gm-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.gm-button {
    align-items: center;
    background: var(--gm-primary);
    border: 1px solid var(--gm-primary);
    border-radius: var(--theme-radius-md);
    color: var(--gm-on-primary);
    display: inline-flex;
    font-weight: 700;
    min-height: 42px;
    padding: 0 16px;
    text-decoration: none;
}

.gm-button:hover {
    background: var(--gm-primary-dark);
}

.gm-button-secondary {
    background: var(--gm-surface);
    border-color: var(--gm-border);
    color: var(--gm-text);
}

.gm-button-secondary:hover {
    background: var(--color-bg-tertiary);
}

.gm-grid,
.gm-lab-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 18px;
}

.gm-grid article,
.gm-widget-card,
.gm-page-heading {
    padding: 26px;
}

.gm-grid h2,
.gm-widget-card h2 {
    font-size: 18px;
    margin: 0 0 8px;
}

.gm-page-heading {
    margin-bottom: 18px;
}

.gm-page-heading p {
    max-width: 760px;
}

.gm-error-page-heading {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 16px;
    justify-content: center;
    min-height: 220px;
    text-align: center;
}

.gm-error-page-heading p {
    margin: 0;
    max-width: 620px;
}

.gm-error-page-heading .gm-button {
    margin-top: 6px;
}

.gm-widget-card-header {
    align-items: flex-start;
    border-bottom: 1px solid var(--gm-border);
    display: flex;
    justify-content: space-between;
    margin: -26px -26px 24px;
    padding: 20px 26px;
}

.gm-widget-card code {
    background: var(--color-bg-tertiary);
    border: 1px solid var(--gm-border);
    border-radius: var(--theme-radius-sm);
    color: var(--gm-muted);
    padding: 2px 6px;
}

.gm-lab-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gm-runtime-lab-sections,
.gm-runtime-section {
    display: grid;
    gap: 18px;
    margin-top: 22px;
}

.gm-runtime-section {
    background: var(--gm-surface);
    border: 1px solid var(--gm-border);
    border-radius: var(--theme-radius-md);
    box-shadow: var(--theme-shadow-lg);
    grid-template-columns: minmax(0, 0.8fr) minmax(360px, 1.2fr);
    padding: 26px;
}

.gm-runtime-copy {
    align-content: start;
    display: grid;
    gap: 14px;
}

.gm-runtime-copy h1 {
    font-size: 34px;
    line-height: 1.15;
    margin: 0;
    overflow-wrap: anywhere;
}

.gm-runtime-copy p {
    color: var(--gm-muted);
    line-height: 1.65;
    margin: 0;
}

.gm-runtime-widget-frame {
    background: var(--gm-surface);
    border: 1px solid var(--gm-border);
    border-radius: var(--theme-radius-md);
    min-height: 220px;
    min-width: 0;
    padding: 18px;
}

.gm-cart-page-section {
    /* Full-width cart (Shopify-style): the cart is NOT a boxed card. Strip the shared
       .gm-runtime-section container chrome (surface/border/shadow/padding) so it reads
       edge-to-edge within the page gutter. Cart-specific only — .gm-runtime-section
       (product/service runtime pages) keeps its card. */
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
}

.gm-cart-page-section__copy {
    max-width: 720px;
}

.gm-cart-page-section__copy p {
    max-width: 560px;
}

.gm-cart-page-section__frame {
    background: transparent;
    border: 0;
    min-height: 0;
    min-width: 0;
    padding: 0;
}

/* Empty cart: the widget body already shows "Your cart is empty", so hide this
   section's page heading/intro to avoid a redundant double title. The widget flags an
   empty cart on its mount host (data-getme-checkout-empty="true"), which lives in light
   DOM, so :has() can react from here. */
.gm-cart-page-section:has([data-getme-checkout-empty="true"]) .gm-cart-page-section__copy {
    display: none;
}

.gm-footer:not(.gm-footer--columns):not(.gm-footer--minimal) {
    --gm-footer-bg-resolved: var(--gm-footer-bg, var(--color-footer-bg, var(--color-bg-dark, #0f172a)));
    --gm-footer-text-resolved: var(--gm-footer-text, var(--color-text-on-footer, var(--color-text-light, #ffffff)));
    --gm-footer-muted-resolved: var(--gm-footer-muted, color-mix(in srgb, var(--gm-footer-text-resolved) 72%, transparent));
    --gm-footer-link-resolved: var(--gm-footer-link, color-mix(in srgb, var(--gm-footer-text-resolved) 86%, transparent));
    --gm-footer-accent-resolved: var(--gm-footer-accent, var(--gm-primary));
    --gm-footer-border-resolved: var(--gm-footer-border, color-mix(in srgb, var(--gm-footer-text-resolved) 18%, transparent));
    background: var(--gm-footer-bg-resolved);
    border-top: 1px solid var(--gm-footer-border-resolved);
    color: var(--gm-footer-text-resolved);
    font-family: var(--gm-footer-font, inherit);
    margin: 0;
    max-width: none;
    padding: clamp(44px, var(--gm-footer-padding-block, 64px), 96px) var(--gm-page-gutter) clamp(28px, 4vw, 40px);
    width: 100%;
}

.gm-footer__inner {
    margin: 0 auto;
    max-width: var(--gm-page-max-width);
    width: 100%;
}

.gm-footer__grid {
    align-items: start;
    display: grid;
    gap: clamp(28px, 4vw, 64px);
    grid-template-columns: minmax(280px, 1.45fr) repeat(3, minmax(150px, 0.72fr));
}

.gm-footer__brand {
    display: grid;
    gap: 12px;
    max-width: 480px;
}

.gm-footer__brand-head {
    align-items: center;
    display: flex;
    gap: 12px;
    min-width: 0;
}

.gm-footer-logo {
    height: auto;
    max-height: 58px;
    max-width: min(200px, 100%);
    object-fit: contain;
    object-position: left center;
}

.gm-footer__brand-mark {
    align-items: center;
    background: color-mix(in srgb, var(--gm-footer-accent-resolved) 18%, transparent);
    border: 1px solid color-mix(in srgb, var(--gm-footer-accent-resolved) 42%, transparent);
    border-radius: var(--theme-radius-md, 8px);
    color: var(--gm-footer-text-resolved);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 17px;
    font-weight: 900;
    height: 40px;
    justify-content: center;
    line-height: 1;
    width: 40px;
}

.gm-footer__brand-name {
    color: var(--gm-footer-text-resolved);
    font-size: 20px;
    font-weight: 800;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.gm-footer .gm-footer__tagline,
.gm-footer .gm-footer__description,
.gm-footer .gm-footer-copyright {
    margin: 0;
}

.gm-footer .gm-footer__tagline {
    color: var(--gm-footer-accent-resolved);
    font-weight: 800;
    line-height: 1.45;
    margin-top: 6px;
}

.gm-footer .gm-footer__description {
    color: var(--gm-footer-muted-resolved);
    line-height: 1.65;
    max-width: 42rem;
}

.gm-footer__column {
    display: grid;
    gap: 14px;
    min-width: 0;
}

.gm-footer__heading {
    color: var(--gm-footer-text-resolved);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1.2;
    margin: 0;
    text-transform: uppercase;
}

.gm-footer__heading::after {
    background: var(--gm-footer-accent-resolved);
    content: "";
    display: block;
    height: 2px;
    margin-top: 10px;
    width: 36px;
}

.gm-footer-link-list,
.gm-footer-contact-list {
    display: grid;
    gap: 11px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.gm-footer-link,
.gm-footer-contact-list a,
.gm-footer-contact-list span {
    color: var(--gm-footer-link-resolved);
    font-size: 15px;
    line-height: 1.5;
    text-decoration: none;
}

.gm-footer-link {
    align-items: center;
    display: inline-flex;
    gap: 8px;
    min-width: 0;
}

.gm-footer-link:hover,
.gm-footer-contact-list a:hover,
.gm-footer-powered:hover {
    color: var(--gm-footer-text-resolved);
}

.gm-footer-link:hover span {
    text-decoration: underline;
    text-underline-offset: 4px;
}

.gm-footer-contact-list li {
    align-items: flex-start;
    display: flex;
    gap: 10px;
}

.gm-footer-contact-list i {
    color: var(--gm-footer-accent-resolved);
    flex: 0 0 auto;
    margin-top: 4px;
    width: 16px;
}

.gm-footer-social {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 4px;
}

.gm-footer-social__link {
    align-items: center;
    background: color-mix(in srgb, var(--gm-footer-text-resolved) 10%, transparent);
    border: 1px solid var(--gm-footer-border-resolved);
    border-radius: var(--theme-radius-pill, 9999px);
    color: var(--gm-footer-text-resolved);
    display: inline-flex;
    height: 38px;
    justify-content: center;
    text-decoration: none;
    transition: transform var(--gm-transition-fast), border-color var(--gm-transition-fast), background var(--gm-transition-fast);
    width: 38px;
}

.gm-footer-social__link:hover {
    background: color-mix(in srgb, var(--gm-footer-accent-resolved) 28%, transparent);
    border-color: color-mix(in srgb, var(--gm-footer-accent-resolved) 58%, transparent);
    transform: translateY(-1px);
}

.gm-footer__bottom {
    align-items: center;
    border-top: 1px solid var(--gm-footer-border-resolved);
    display: flex;
    flex-wrap: wrap;
    gap: 14px 24px;
    justify-content: space-between;
    margin-top: clamp(28px, 4vw, 48px);
    padding-top: 22px;
}

.gm-footer__language { display: inline-flex; }

/* Footer switcher opens upward (it sits at the page bottom). */
.gm-language-switcher--footer .gm-language-switcher__menu {
    top: auto;
    bottom: calc(100% + 8px);
    right: auto;
    left: 0;
    transform-origin: bottom left;
}

.gm-footer .gm-footer-copyright {
    color: var(--gm-footer-muted-resolved);
    font-size: 13px;
}

.gm-footer-powered {
    align-items: baseline;
    color: var(--gm-footer-muted-resolved);
    display: inline-flex;
    font-size: 13px;
    gap: 6px;
    text-decoration: none;
}

.gm-footer-powered strong {
    color: var(--gm-footer-accent-resolved);
    font-weight: 800;
}

@media (max-width: 980px) {
    .gm-footer__grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}

@media (max-width: 760px) {
    .gm-header {
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .gm-header--mobile-menu .gm-header-menu-toggle {
        display: inline-flex;
        margin-left: auto;
    }

    .gm-header--mobile-menu .gm-header-actions {
        display: none;
        width: 100%;
        align-items: stretch;
        flex-direction: column;
        gap: 4px;
        margin-top: 12px;
        padding-top: 12px;
        border-top: 1px solid var(--gm-header-border);
    }

    .gm-header--mobile-menu .gm-header-actions[data-open="true"] {
        display: flex;
        animation: gm-header-menu-in var(--theme-animation-duration, 200ms) var(--theme-animation-easing-standard, ease);
    }

    @keyframes gm-header-menu-in {
        from { opacity: 0; transform: translateY(-6px); }
        to { opacity: 1; transform: translateY(0); }
    }

    .gm-nav,
    .gm-header-utility {
        width: 100%;
        justify-content: flex-start;
    }

    .gm-nav__item {
        display: grid;
        width: 100%;
    }

    .gm-nav__item--has-children > .gm-nav__link::after {
        margin-left: auto;
    }

    .gm-nav__link,
    .gm-header-utility__link {
        width: 100%;
        justify-content: flex-start;
        min-height: 44px;
    }

    .gm-nav__submenu {
        position: static;
        min-width: 0;
        width: 100%;
        opacity: 1;
        pointer-events: auto;
        transform: none;
        box-shadow: none;
        margin: 2px 0 6px;
    }

    .gm-nav__submenu::before {
        display: none;
    }

    .gm-nav__submenu--mega-columns,
    .gm-nav__submenu--logo-grid,
    .gm-nav__submenu--card-grid,
    .gm-nav__submenu--featured-panel {
        left: auto;
        right: auto;
        transform: none;
        width: 100%;
    }

    .gm-nav__item:nth-last-child(-n+2) > .gm-nav__submenu--mega-columns,
    .gm-nav__item:nth-last-child(-n+2) > .gm-nav__submenu--logo-grid,
    .gm-nav__item:nth-last-child(-n+2) > .gm-nav__submenu--card-grid,
    .gm-nav__item:nth-last-child(-n+2) > .gm-nav__submenu--featured-panel {
        left: auto;
        right: auto;
        transform: none;
    }

    .gm-nav__item:hover > .gm-nav__submenu--mega-columns,
    .gm-nav__item:focus-within > .gm-nav__submenu--mega-columns,
    .gm-nav__item:hover > .gm-nav__submenu--logo-grid,
    .gm-nav__item:focus-within > .gm-nav__submenu--logo-grid,
    .gm-nav__item:hover > .gm-nav__submenu--card-grid,
    .gm-nav__item:focus-within > .gm-nav__submenu--card-grid,
    .gm-nav__item:hover > .gm-nav__submenu--featured-panel,
    .gm-nav__item:focus-within > .gm-nav__submenu--featured-panel,
    .gm-nav__item:nth-last-child(-n+2):hover > .gm-nav__submenu--mega-columns,
    .gm-nav__item:nth-last-child(-n+2):focus-within > .gm-nav__submenu--mega-columns,
    .gm-nav__item:nth-last-child(-n+2):hover > .gm-nav__submenu--logo-grid,
    .gm-nav__item:nth-last-child(-n+2):focus-within > .gm-nav__submenu--logo-grid,
    .gm-nav__item:nth-last-child(-n+2):hover > .gm-nav__submenu--card-grid,
    .gm-nav__item:nth-last-child(-n+2):focus-within > .gm-nav__submenu--card-grid,
    .gm-nav__item:nth-last-child(-n+2):hover > .gm-nav__submenu--featured-panel,
    .gm-nav__item:nth-last-child(-n+2):focus-within > .gm-nav__submenu--featured-panel {
        transform: none;
    }

    .gm-nav__submenu-link.gm-nav__link {
        white-space: normal;
    }

    .gm-language-switcher,
    .gm-language-switcher__summary,
    .gm-language-switcher--pills {
        width: 100%;
    }

    .gm-language-switcher__summary {
        justify-content: space-between;
    }

    .gm-language-switcher__menu {
        right: auto;
        left: 0;
        width: 100%;
    }

    .gm-language-switcher--pills {
        flex-wrap: wrap;
    }

    .gm-hero {
        padding: 32px 24px;
    }

    .gm-hero h1,
    .gm-page-heading h1 {
        font-size: 32px;
    }

    .gm-grid,
    .gm-lab-grid,
    .gm-runtime-section {
        grid-template-columns: 1fr;
    }

    .gm-footer__grid {
        grid-template-columns: 1fr;
    }

    .gm-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ════════════════════════════════════════════════════════════════════
   Kucuksu Care chrome overrides — reference-site behaviors only.
   NO hardcoded values: every color resolves through editor-owned tokens
   (--color-secondary from theme colors; --gm-footer-* from the footer
   component settings), so the web editor stays the single source.
   ════════════════════════════════════════════════════════════════════ */

/* Header nav link text: reference size — 16px, weight 500, padding 5px 10px
   (the reference's .nav-links a inherits the 16px body font; the base theme
   sets 14px / 9px-12px, so it's matched here). */
.gm-header .gm-nav__link {
    font-size: 16px;
    font-weight: 500;
    padding: 5px 10px;
    min-height: 0;
}

/* Header nav: plain color-shift to the accent on hover/active (no pill bg). */
.gm-header .gm-nav__link:hover {
    background: transparent;
    color: var(--color-secondary, var(--gm-primary));
}
.gm-header .gm-nav__link[aria-current="page"],
.gm-header .gm-nav__link.is-active {
    color: var(--color-secondary, var(--gm-primary));
    font-weight: 500;
}

/* Footer: accent hover with the reference's subtle left-pad slide. */
.gm-footer .gm-footer-link { transition: color 200ms ease, padding-left 200ms ease; }
.gm-footer .gm-footer-link:hover {
    color: var(--gm-footer-accent, var(--color-secondary, var(--gm-primary)));
    padding-left: 5px;
}
/* Footer headings ("Snelle Links", "Diensten", "Contact") — footer text token. */
.gm-footer h3 { color: var(--gm-footer-text, var(--gm-text)); font-size: 18px; }

/* Reference column order: brand + contact on the LEFT, then the link groups
   (Snelle Links, Diensten). Pure layout — content stays editor-driven. */
.gm-footer__grid > .gm-footer__brand { order: 1; }
.gm-footer__grid > .gm-footer__contact { order: 2; }
.gm-footer__grid > .gm-footer__column:not(.gm-footer__contact) { order: 3; }

/* Reference logo sizing: header 50px tall (kucuksu.png is 1000×200 → 250×50px,
   exactly like the reference). The base .gm-brand-logo caps it at max-height
   42px / max-width 160px, which would squash the wide 5:1 logo to ~160×32px —
   so those caps are cleared here to let it render at the true reference size.
   Footer stays 40px white-knockout. */
.gm-header .gm-brand img,
.gm-header .gm-brand-logo,
.gm-header-logo {
    height: 50px;
    width: auto;
    max-height: none;
    max-width: none;
}
.gm-footer-logo { height: 40px; width: auto; filter: brightness(0) invert(1); }

/* Reference header height: 15px block padding (top+bottom) around the 50px
   logo → ~80px tall, matching the reference site's .header { padding: 15px 0 }.
   Background/colour stay editor-owned (header_bg = #ffffff = reference white). */
.gm-header { padding-block: 15px; }

/* ── Full-bleed page shell (reference: header and hero span the viewport) ──
   The base shell boxes .gm-header and .gm-main into the content column,
   leaving the body background visible around them. The reference site is
   edge-to-edge: header background runs the full width (content stays on
   the page column, like the footer already does) and the hero bleeds out. */
body { background: var(--color-bg-primary, var(--gm-bg)); }
/* Kill the horizontal scrollbar caused by 100vw full-bleed (100vw counts the
   vertical scrollbar width). overflow-x:clip clips the tiny overflow WITHOUT
   creating a scroll container, so the sticky header keeps working. */
html { overflow-x: clip; }
.gm-header {
    width: 100%;
    max-width: none;
    /* keep content aligned to the page column while the bg spans the edge */
    padding-inline: max(var(--gm-page-gutter, 16px), calc((100% - var(--gm-page-max-width)) / 2));
    box-sizing: border-box;
}
/* Hero sits flush under the header — no page-shell gap above it. */
.gm-main { padding-top: 0; }
/* Hero breaks out of the content column to the viewport edges (static hero
   and the dynamic carousel hero both go full-bleed). Scrollbar-safe: the
   width fills the parent's box (100%) plus a symmetric breakout that never
   exceeds the visible viewport, so no right-side horizontal scroll. */
.gm-main > .gm-hero-section,
.gm-hero-section,
.gm-main > .gm-hero-carousel-section,
.gm-hero-carousel-section {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

/* ── Hero framing — 60vh mobile, responsive 4:3 desktop ───────────────
   Mobile keeps the tuned 60vh flat height. Desktop is restored to the
   earlier 4:3 responsive box (grows with width, capped at 80vh so a
   full-bleed hero never overgrows the viewport). The image is a cover crop
   anchored at 50% 30%, copy centered in an 800px column. The photo is
   untouched (same CDN asset, no resample); only this CSS box crops it, the
   way background-size:cover would. */
.gm-hero-carousel-section .gm-hero-carousel-section__slide {
    width: 100%;
    height: 60vh;                 /* mobile / default: 60% of viewport height */
    aspect-ratio: auto;           /* no ratio box on mobile — height wins */
    min-height: 0;                /* no floor overriding the height */
    padding-block: 20px;          /* hero padding, top + bottom */
    padding-inline: 0;
    box-sizing: border-box;       /* padding included, cover img still fills */
    overflow: hidden;
}
.gm-hero-carousel-section__bg {
    object-fit: cover;            /* = background-size: cover */
    object-position: 50% 30%;     /* = background-position: 50% 30% */
    background-repeat: no-repeat; /* parity with reference (no tiling) */
}
/* Hero darkening — reference .hero::before: a top→bottom black gradient
   (0.4 → 0.6). Replaces the base flat slate overlay so text stays readable
   over the photo exactly like the reference. */
.gm-hero-carousel-section__overlay {
    background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.6));
}
@media (max-width: 480px) {
    /* Reference darkens the overlay further on small phones (0.7 → 0.8). */
    .gm-hero-carousel-section__overlay {
        background: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.8));
    }
}
/* Reference copy layout: centered column, max 800px (like .hero .container). */
.gm-hero-carousel-section__copy {
    align-items: center;
    text-align: center;
    max-width: 800px;
    padding: 20px;
    /* referans: elemanlar arası boşluk tek tip gap yerine per-eleman margin ile
       verilir (başlık→yazı 1.5rem, yazı→buton 2rem). Base gap:14px sıfırlanır. */
    gap: 0;
}

/* ── Hero text — reference typography ─────────────────────────────────
   Reference .hero h1 { font-size: 3rem; font-weight: 700 } in the body font
   (Roboto, --font-primary), white with a soft text-shadow; .hero p is 1.2rem
   white. Responsive steps match the reference (2rem/1rem @768, 1.8rem/0.95rem
   @480). Colours resolve through tokens (white = --color-text-light). */
.gm-hero-carousel-section__title {
    font-family: var(--font-primary, var(--hc-body-font, sans-serif));
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.1;
    max-width: none;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
    /* referans .hero h1 { margin-bottom: 1.5rem } — başlık → alt yazı boşluğu */
    margin-bottom: 1.5rem;
    /* alt sayfa hero'larıyla aynı yüklenme animasyonu (referans .hero h1) */
    animation: gm-slide-up 0.8s ease-out forwards;
    animation-delay: 0.2s;
    opacity: 0;
}
.gm-hero-carousel-section__intro {
    font-size: 1.2rem;
    color: var(--color-text-light, #ffffff);
    max-width: 85%;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    /* referans .hero p { margin-bottom: 2rem } — alt yazı → butonlar boşluğu */
    margin-bottom: 2rem;
    animation: gm-slide-up 0.8s ease-out forwards;
    animation-delay: 0.4s;
    opacity: 0;
}
/* tüm hero fade-in (referans .hero { animation: gradualFade 1s }) */
.gm-hero-carousel-section {
    animation: gm-gradual-fade 1s ease-in-out;
}
/* butonlar (referans .hero .btn { animation: fadeIn 1s; delay .6s }) */
.gm-hero-carousel-section__actions {
    animation: gm-gradual-fade 1s ease-out forwards;
    animation-delay: 0.6s;
    opacity: 0;
}

/* ── Hero buttons — reference .btn (2 buttons) ────────────────────────
   Primary = --color-primary (#800000), secondary = --color-secondary
   (#f5451f), both white text, pill (30px), uppercase, weight 600, 0.5px
   tracking, 1.1rem, reference padding + shadow + lift-on-hover. All colours
   are editor-owned tokens (with the reference hexes as fallbacks). */
.gm-hero-carousel-section__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: center;
    /* boşluk artık intro'nun margin-bottom:2rem'inden geliyor (referans) */
    margin-top: 0;
}
.gm-hero-carousel-section__cta {
    background: var(--color-primary, var(--gm-primary));
    color: var(--color-text-light, #ffffff);
    border: none;
    border-radius: 30px;
    padding: 12px 30px;
    min-height: 0;
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
    transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.gm-hero-carousel-section__cta:hover {
    background: var(--color-primary-hover, #600000);
    transform: translateY(-3px);
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2);
    filter: none;
}
.gm-hero-carousel-section__cta--secondary {
    background: var(--color-secondary, #f5451f);
}
.gm-hero-carousel-section__cta--secondary:hover {
    background: var(--color-secondary-hover, #d13d1b);
}

@media (max-width: 768px) {
    .gm-hero-carousel-section__title { font-size: 2rem; }
    .gm-hero-carousel-section__intro { font-size: 1rem; }
    .gm-hero-carousel-section__cta { padding: 10px 20px; font-size: 0.9rem; }
}
@media (max-width: 480px) {
    .gm-hero-carousel-section__title { font-size: 1.8rem; }
    .gm-hero-carousel-section__intro { font-size: 0.95rem; }
}

/* Desktop: restore the 4:3 responsive hero (mobile stays 60vh above). It
   grows proportionally with width, capped at 80vh so the full-bleed hero
   never grows taller than the viewport on very wide screens. */
@media (min-width: 769px) {
    .gm-hero-carousel-section .gm-hero-carousel-section__slide {
        height: auto;             /* aspect-ratio drives the height */
        aspect-ratio: 4 / 3;
        max-height: 80vh;         /* ceiling on wide screens */
    }
}

@media (max-width: 768px) {
    /* Reference mobile header: 35px logo (matches .logo img @768px in the ref). */
    .gm-header .gm-brand img,
    .gm-header .gm-brand-logo,
    .gm-header-logo { height: 35px; max-height: none; max-width: none; }
}

/* Hero sits flush: no section band under the image. Dots are turned off via
   the editor (show_dots=false); this also zeroes the section's own block
   padding so the coloured band ('none' spacing token may not resolve to 0)
   never shows below the photo. */
.gm-hero-carousel-section { padding-block: 0; }
.gm-hero-carousel-section__dots { margin-top: 0; }

/* ── Zorgdiensten bento-box kartları (referans: Flask .card) ──────────────
   Yalnızca foto içeren feature-grid kartlarını hedefler (--media). Foto üstte
   full-bleed, altta gövde: başlık (bordo) + metin (#666) + "Meer informatie"
   outline pill buton. Diğer feature-grid'ler (ikon+metin) etkilenmez. */
.gm-feature-grid-section__card--media {
    padding: 0;
    background: #ffffff;
    border: none;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    text-align: left;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.gm-feature-grid-section__card--media:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
}
.gm-feature-grid-section__card-img {
    height: 200px;
    width: 100%;
    overflow: hidden;
}
.gm-feature-grid-section__card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}
.gm-feature-grid-section__card--media:hover .gm-feature-grid-section__card-img img {
    transform: scale(1.1);
}
.gm-feature-grid-section__card-body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: 1 1 auto;
}
.gm-feature-grid-section__card--media .gm-feature-grid-section__card-body h3 {
    font-size: 20px;
    margin: 0 0 10px;
    color: var(--color-primary, #800000);
}
.gm-feature-grid-section__card--media .gm-feature-grid-section__card-body p {
    margin: 0 0 20px;
    color: #666;
    opacity: 1;
    font-size: 15px;
    line-height: 1.6;
}
.gm-feature-grid-section__card-cta {
    display: inline-block;
    margin-top: auto;
    background: transparent;
    border: 2px solid var(--color-primary, #800000);
    color: var(--color-primary, #800000);
    border-radius: 30px;
    padding: 10px 24px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-size: 0.9rem;
    text-decoration: none;
    transition: all 0.3s ease;
}
.gm-feature-grid-section__card-cta:hover {
    background: var(--color-primary, #800000);
    color: #ffffff;
    transform: translateY(-3px);
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2);
}

/* ── feature-grid "Persoonlijke aanpak" varyantı (referans .section + .card) ──
   Ortalı bordo section-title + turuncu çizgi + alt yazı; kartlar beyaz + gölge +
   ortalı içerik, büyük bordo FA ikon (fa-3x), bordo başlık, gri metin. */
.gm-feature-grid-section__header {
    text-align: center;
    width: 100%;
    max-width: 800px;
    margin: 0 auto 40px;
}
.gm-feature-grid-section__section-title {
    position: relative;
    display: inline-block;
    font-size: 32px;
    color: var(--color-primary, #800000);
    margin: 0 0 10px;
}
.gm-feature-grid-section__section-title::after {
    content: "";
    position: absolute;
    left: 25%;
    bottom: -10px;
    width: 50%;
    height: 3px;
    background: var(--color-secondary, #f5451f);
}
.gm-feature-grid-section__section-subtitle {
    color: var(--color-primary, #800000);
    font-size: 16px;
    margin: 10px 0 0;
}
/* İçeriği referans .container gibi ortalı 1140px'e al → header + grid ortalanır
   (text-with-image bölümleriyle birebir hizalı). */
.gm-feature-grid-section--cards-approach {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.gm-feature-grid-section--cards-approach .gm-feature-grid-section__header,
.gm-feature-grid-section--cards-approach .gm-feature-grid-section__grid {
    width: 100%;
    max-width: 1140px;
}

/* ── "team" kart varyantı (referans Ons Team) — dikey üye kartı ──────────
   Üstte logo/foto (contain, kırpılmaz), bordo isim, gri rol, ortalı metin. */
.gm-feature-grid-section--cards-team {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.gm-feature-grid-section--cards-team .gm-feature-grid-section__header,
.gm-feature-grid-section--cards-team .gm-feature-grid-section__grid {
    width: 100%;
    max-width: 1140px;
}
/* Tek üye kartı ortada dursun (grid'in sol hücresine yaslanmasın) */
.gm-feature-grid-section--cards-team .gm-feature-grid-section__grid {
    justify-content: center;
    grid-template-columns: minmax(0, 360px);
}
.gm-feature-grid-section--cards-team .gm-feature-grid-section__card--media {
    background: #ffffff;
    border: none;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    padding: 0;
    text-align: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.gm-feature-grid-section--cards-team .gm-feature-grid-section__card--media:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12);
}
.gm-feature-grid-section--cards-team .gm-feature-grid-section__card-img {
    /* kutu logoya göre daralır — sabit 260px'in bıraktığı boşluk kalktı */
    height: auto;
    padding: 28px 24px 0;
    box-sizing: border-box;
    background: #ffffff;
}
.gm-feature-grid-section--cards-team .gm-feature-grid-section__card-img img {
    /* genişlik-esaslı boyut: sabit 170px yükseklik kutusunun yarattığı
       görünmez üst/alt boşluk yok — yükseklik orandan gelir */
    width: min(240px, 80%);
    height: auto;
    object-fit: contain;
    display: block;
    margin: 0 auto;
    transition: none;
}
/* media kartının hover zoom'u team kartında KAPALI (logo yazıya taşıyordu) */
.gm-feature-grid-section--cards-team .gm-feature-grid-section__card--media:hover .gm-feature-grid-section__card-img img {
    transform: none;
}
.gm-feature-grid-section--cards-team .gm-feature-grid-section__card-body {
    align-items: center;
    padding: 0 26px 30px;
}
.gm-feature-grid-section--cards-team .gm-feature-grid-section__card-body h3 {
    color: var(--color-primary, #800000);
    font-size: 20px;
    margin: 0 0 6px;
}
.gm-feature-grid-section__card-subtitle {
    color: #555555;
    font-size: 15px;
    margin: 0 0 14px;
}
.gm-feature-grid-section--cards-team .gm-feature-grid-section__card-body p {
    text-align: center;
    color: #666666;
}
.gm-feature-grid-section--cards-approach .gm-feature-grid-section__card {
    background: #ffffff;
    border: none;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
    padding: 40px 24px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.gm-feature-grid-section--cards-approach .gm-feature-grid-section__card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12);
}
.gm-feature-grid-section--cards-approach .gm-feature-grid-section__icon {
    color: var(--color-primary, #800000);
    font-size: 48px;              /* referans fa-3x */
    margin-bottom: 20px;
}
.gm-feature-grid-section--cards-approach .gm-feature-grid-section__card h3 {
    color: var(--color-primary, #800000);
    font-size: 20px;
    margin: 0 0 12px;
}
.gm-feature-grid-section--cards-approach .gm-feature-grid-section__card p {
    color: #666;
    opacity: 1;
    font-size: 15px;
    line-height: 1.7;
    margin: 0;
}
/* 4 kolonlu değer kartları tablet aralığında 2 kolona insin (sıkışmasın) */
@media (max-width: 1024px) {
    .gm-feature-grid-section--cards-approach.gm-feature-grid-section--columns-4 .gm-feature-grid-section__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .gm-feature-grid-section--cards-approach.gm-feature-grid-section--columns-4 .gm-feature-grid-section__grid {
        grid-template-columns: 1fr;
    }
}

/* ── CSS kartvizit (Ons Team) — referans kartvizit görselinin kod hali ─────
   Beyaz kart: solda bordo isim + slogan + iletişim satırları, sağda logo. */
.gm-business-card {
    display: flex;
    align-items: center;
    gap: 24px;
    width: 100%;
    aspect-ratio: 1024 / 599;
    background: #ffffff;
    padding: clamp(20px, 5%, 48px);
    box-sizing: border-box;
}
.gm-business-card__info {
    flex: 1 1 60%;
    min-width: 0;
}
.gm-business-card__name {
    font-family: var(--font-heading, var(--font-primary, sans-serif));
    font-size: clamp(18px, 2.2vw, 26px);
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--color-primary, #800000);
    margin: 0 0 14px;
}
.gm-business-card__tagline {
    color: var(--color-primary, #800000);
    font-size: clamp(13px, 1.4vw, 16px);
    margin: 0 0 22px;
}
.gm-business-card__lines {
    margin: 0;
}
.gm-business-card__lines span {
    display: block;
    color: var(--color-primary, #800000);
    font-size: clamp(12px, 1.3vw, 15px);
    line-height: 1.65;
}
.gm-business-card__brand {
    flex: 0 0 36%;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* base __media img kurallarını ez: logo kendi oranında, kutuyu doldurmasın */
.gm-text-with-image-section__media .gm-business-card__brand img {
    width: 100%;
    max-width: 260px;
    height: auto;
    object-fit: contain;
    aspect-ratio: auto;
    border-radius: 0;
    box-shadow: none;
}

/* ── "Waarom Kucuksu Care?" ✓ checklist (referans: Flask ul.list-unstyled) ──
   text-with-image gövdesinde madde listesi: bordo check + metin, satır aralığı. */
.gm-text-with-image-section__list {
    list-style: none;
    margin: 4px 0 26px;
    padding: 0;
}
.gm-text-with-image-section__list li {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 12px;
    font-size: 16px;
    line-height: 1.5;
}
.gm-text-with-image-section__check {
    color: var(--color-primary, #800000);
    flex-shrink: 0;
    font-size: 0.95em;
}
/* text-with-image butonu referans .btn-primary gibi: bordo dolu, uppercase pill */
.gm-text-with-image-section__cta {
    border-radius: 30px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 12px 28px;
}
.gm-text-with-image-section__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
}
/* İkinci buton = referans .btn-outline: şeffaf zemin, bordo kenar+yazı, hover'da dolar */
.gm-text-with-image-section__cta--secondary {
    background: transparent;
    border: 2px solid var(--color-primary, #800000);
    color: var(--color-primary, #800000);
}
.gm-text-with-image-section__cta--secondary:hover {
    background: var(--color-primary, #800000);
    color: #ffffff;
}
/* Üstte ortalı bölüm başlığı — referans .section-title (bordo h2 + turuncu ::after) */
.gm-text-with-image-section__header {
    text-align: center;
    width: 100%;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 40px;
}
.gm-text-with-image-section__section-title {
    position: relative;
    display: inline-block;
    font-size: 32px;
    color: var(--color-primary, #800000);
    margin: 0 0 10px;
}
.gm-text-with-image-section__section-title::after {
    content: "";
    position: absolute;
    left: 25%;
    bottom: -10px;
    width: 50%;
    height: 3px;
    background: var(--color-secondary, #f5451f);
}
.gm-text-with-image-section__section-subtitle {
    /* alt yazı da bordo (kullanılan marka rengi) */
    color: var(--color-primary, #800000);
    font-size: 16px;
    margin: 10px 0 0;
}
/* Liste başlığı "Onze thuiszorg omvat:" (referans h4) */
.gm-text-with-image-section__list-heading {
    font-size: 20px;
    font-weight: 700;
    margin: 4px 0 14px;
    color: var(--gm-text);
}

/* ── Footer — referans (Flask .footer) ────────────────────────────────────
   Sol: beyaz logo (yazısız) + slogan + beyaz ikonlu iletişim (konum/tel/mail).
   Orta/sağ: Snelle Links + Diensten. Alt: çizgi + ortalanmış "2026 / ©…".
   En altta full-bleed siyah "Powered by GetMe" barı (referans getmeonline-banner). */
.gm-footer__grid {
    /* brand + 2 link kolonu (Contact kolonu brand'e taşındı) */
    grid-template-columns: minmax(280px, 1.4fr) repeat(2, minmax(160px, 1fr));
}
.gm-footer-logo {
    /* referans .footer-logo img: height 40px + beyaza çevir (brightness(0) invert(1)) */
    max-height: 40px;
    filter: brightness(0) invert(1);
    margin-bottom: 0;
    /* PNG'nin solunda 103px transparan alan var (ölçüldü) → 40px render'da
       ~21px görünmez boşluk. Negatif margin ile logo, alttaki konum/tel/mail
       ikonlarıyla aynı sol hizaya gelir. */
    margin-left: -21px;
}
.gm-footer .gm-footer__tagline {
    color: var(--gm-footer-text-resolved);
    font-weight: 400;
}
.gm-footer-contact-list--brand {
    margin-top: 4px;
}
.gm-footer-contact-list--brand i {
    /* referans: ikonlar beyaz (accent bordo, bordo zeminde görünmez) */
    color: var(--gm-footer-text-resolved, #ffffff);
}
.gm-footer-contact-list--brand a,
.gm-footer-contact-list--brand span {
    color: var(--gm-footer-text-resolved, #ffffff);
}
.gm-footer__bottom {
    /* çizgi altında tek satır: copyright çizginin TAM sol ucunda,
       Powered by GetMe TAM sağ ucunda (uçlar divider ile hizalı) */
    justify-content: space-between;
    text-align: left;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
}
.gm-footer__bottom .gm-footer-copyright {
    margin-right: auto;
    padding: 0;
}
.gm-footer__bottom .gm-footer-powered {
    margin-left: auto;
    margin-right: 0;
    padding: 0;
}
.gm-footer__bottom .gm-footer-powered__logo {
    margin-right: 0;
}
.gm-footer .gm-footer-copyright {
    color: var(--gm-footer-text-resolved);
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
}
.gm-footer .gm-footer-powered {
    align-items: center;
    gap: 10px;
    color: #f4f4f4;
    font-size: 14px;
    font-weight: 300;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}
.gm-footer-powered__logo {
    /* "Powered by" metniyle (14px) aynı yükseklik. SVG'nin width="1500"
       attribute'u yüzünden width:auto 1500px'e patlıyor — ikisi de sabit. */
    display: block;
    height: 14px;
    width: 53px; /* 1125:300 oran × 14px */
    object-fit: contain;
    transition: transform 0.3s ease;
}
.gm-footer-powered:hover .gm-footer-powered__logo {
    transform: scale(1.05);
}
@media (max-width: 980px) {
    .gm-footer__grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}
/* cta-banner zemini — MERKEZİ, tüm CTA'lar tek tip: base'in koyu
   (bordo→siyah) gradient'i yerine marka gradient'i bordo→turuncu. */
.gm-cta-banner-section {
    --cb-section-bg: linear-gradient(135deg, var(--color-primary, #800000), var(--color-secondary, #f5451f));
}

/* cta-banner ortalı düzen: __copy'yi flex-column + align-items center yap →
   başlık ve açıklama gerçekten ortalanır (intro'nun 680px kutusu başlıktan dar
   olunca sola yaslanıyordu). */
.gm-cta-banner-section--layout-centered .gm-cta-banner-section__copy {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
}
.gm-cta-banner-section--layout-centered .gm-cta-banner-section__intro {
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

/* ── rich-text — düz intro paragrafı (referans .section > .col-lg-10 > .content) ──
   Ortalanmış okunur genişlik, beyaz zemin, koyu metin, section padding 60px. */
.gm-rich-text-section {
    background: var(--rt-section-bg, transparent);
    padding: var(--rt-section-padding-block, 60px) var(--gm-section-inline-padding);
    font-family: var(--rt-body-font, inherit);
}
.gm-rich-text-section__inner {
    margin: 0 auto;
    max-width: 950px;            /* referans col-lg-10 mx-auto */
    width: 100%;
}
.gm-rich-text-section--align-center .gm-rich-text-section__inner {
    text-align: center;
}
.gm-rich-text-section__heading {
    color: var(--rt-text-color, var(--gm-text));
    font-size: clamp(24px, 3.4vw, 32px);
    margin: 0 0 20px;
    text-align: center; /* referans: h2.text-center — başlık ortalı, metin sola akar */
}
.gm-rich-text-section__text {
    color: var(--rt-text-color, var(--gm-text));
    font-size: 17px;
    line-height: 1.7;
    margin: 0;
}
.gm-rich-text-section__list-intro {
    margin-top: 18px;
}
.gm-rich-text-section__list {
    margin: 12px 0 0;
    padding-left: 24px;
    color: var(--rt-text-color, var(--gm-text));
    font-size: 17px;
    line-height: 1.7;
    text-align: left;
}
.gm-rich-text-section__list li {
    margin-bottom: 8px;
}

/* ── rich-text "mission" varyantı — Onze Missie ──────────────────────────
   Ortalı bordo başlık (turuncu çizgi, section-title stili) + beyaz alıntı
   kartı: bordo sol şerit, büyük soluk tırnak, geniş satır aralıklı metin. */
.gm-rich-text-section--variant-mission .gm-rich-text-section__inner {
    text-align: center;
}
.gm-rich-text-section--variant-mission .gm-rich-text-section__heading {
    position: relative;
    display: inline-block;
    font-size: 32px;
    color: var(--color-primary, #800000);
    margin: 0 0 40px;
}
.gm-rich-text-section--variant-mission .gm-rich-text-section__heading::after {
    content: "";
    position: absolute;
    left: 25%;
    bottom: -10px;
    width: 50%;
    height: 3px;
    background: var(--color-secondary, #f5451f);
}
.gm-rich-text-section--variant-mission .gm-rich-text-section__text {
    position: relative;
    background: #ffffff;
    border-left: 4px solid var(--color-primary, #800000);
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
    padding: 40px 44px 40px 84px;
    text-align: left;
    font-size: 18px;
    line-height: 1.8;
    color: #444444;
    max-width: 950px;
    margin: 0 auto;
}
.gm-rich-text-section--variant-mission .gm-rich-text-section__text::before {
    content: "\201C";
    position: absolute;
    left: 26px;
    top: 18px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 72px;
    line-height: 1;
    color: var(--color-primary, #800000);
    opacity: 0.35;
}
@media (max-width: 640px) {
    .gm-rich-text-section--variant-mission .gm-rich-text-section__text {
        padding: 56px 24px 28px;
        font-size: 16px;
    }
    .gm-rich-text-section--variant-mission .gm-rich-text-section__text::before {
        left: 20px;
        top: 12px;
        font-size: 56px;
    }
}

/* ── form-embed — GetMe forms widget (runtime-owned, forms.v1 kontratı) ───
   Ortalı bordo başlık + turuncu çizgi; widget beyaz gölgeli kartta. */
.gm-form-embed-section {
    background: var(--fe-section-bg, transparent);
    padding: var(--fe-section-padding-block, 60px) var(--gm-section-inline-padding);
    display: flex;
    flex-direction: column;
    align-items: center;
}
.gm-form-embed-section__header {
    text-align: center;
    width: 100%;
    max-width: 800px;
    margin: 0 auto 40px;
}
.gm-form-embed-section__section-title {
    position: relative;
    display: inline-block;
    font-size: 32px;
    color: var(--color-primary, #800000);
    margin: 0 0 10px;
}
.gm-form-embed-section__section-title::after {
    content: "";
    position: absolute;
    left: 25%;
    bottom: -10px;
    width: 50%;
    height: 3px;
    background: var(--color-secondary, #f5451f);
}
.gm-form-embed-section__section-subtitle {
    color: #666666;
    font-size: 16px;
    margin: 10px 0 0;
}
.gm-form-embed-section__card {
    width: 100%;
    max-width: 950px;
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
    padding: clamp(20px, 4vw, 40px);
    box-sizing: border-box;
}

/* ── map — Google Maps embed (referans .map-responsive + card shadow) ─────
   Ortalı bordo başlık + turuncu çizgi, altında yuvarlatılmış gölgeli harita. */
.gm-map-section {
    background: var(--mp-section-bg, transparent);
    padding: var(--mp-section-padding-block, 60px) var(--gm-section-inline-padding);
    display: flex;
    flex-direction: column;
    align-items: center;
}
.gm-map-section__header {
    text-align: center;
    width: 100%;
    max-width: 800px;
    margin: 0 auto 40px;
}
.gm-map-section__section-title {
    position: relative;
    display: inline-block;
    font-size: 32px;
    color: var(--color-primary, #800000);
    margin: 0 0 10px;
}
.gm-map-section__section-title::after {
    content: "";
    position: absolute;
    left: 25%;
    bottom: -10px;
    width: 50%;
    height: 3px;
    background: var(--color-secondary, #f5451f);
}
.gm-map-section__section-subtitle {
    color: #666666;
    font-size: 16px;
    margin: 10px 0 0;
}
.gm-map-section__frame {
    width: 100%;
    max-width: 1140px;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    background: #ffffff;
}
.gm-map-section__frame iframe {
    display: block;
    width: 100%;
}

/* ── Alt sayfa hero'su — referans .hero.hero-subpage (Flask style.css) ────
   Ölçüler ve mobil davranış BİREBİR referanstan:
   desktop 50vh / bg center 30% / h1 2.5rem / p 1.2rem (max-width 85%);
   ≤768px: 40vh, padding 20px 0, h1 28px, p 16px (cascade'de kazanan 2. blok);
   ≤480px: bg center 25%. Overlay = linear-gradient(rgba(0,0,0,.4), rgba(0,0,0,.6)).
   Fade: tüm hero gradualFade 1s; h1 slideUp .8s delay .2s; p slideUp .8s delay .4s. */
@keyframes gm-gradual-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes gm-slide-up {
    from { transform: translateY(30px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}
.gm-hero-section {
    min-height: 0;
    height: 50vh;
    padding-block: 20px;
    display: grid;
    align-content: center;
    animation: gm-gradual-fade 1s ease-in-out;
}
.gm-hero-section__bg img {
    object-position: center 30%;
}
.gm-hero-section__overlay {
    background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.6));
}
.gm-hero-section__title {
    font-family: var(--font-primary, sans-serif); /* referans h1 gövde fontunda */
    font-size: 2.5rem;
    color: #ffffff;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
    margin-bottom: 1.5rem;
    animation: gm-slide-up 0.8s ease-out forwards;
    animation-delay: 0.2s;
    opacity: 0;
}
.gm-hero-section__intro {
    font-size: 1.2rem;
    color: #ffffff;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    max-width: 85%;
    margin-left: auto;
    margin-right: auto;
    animation: gm-slide-up 0.8s ease-out forwards;
    animation-delay: 0.4s;
    opacity: 0;
}
@media (max-width: 768px) {
    .gm-hero-section {
        height: 40vh;
        padding-block: 20px;
    }
    .gm-hero-section__title { font-size: 28px; }
    .gm-hero-section__intro { font-size: 16px; }
}
@media (max-width: 480px) {
    .gm-hero-section__bg img { object-position: center 25%; }
}

/* Mobil: tek kolon, sabit ve eşit boşluklar (referans footer-container
   auto-fit → telefonda tek kolon). İki kolonlu sıkışık/dengesiz görünüm biter. */
@media (max-width: 640px) {
    .gm-footer__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .gm-footer__brand {
        max-width: none;
        gap: 16px;
    }
    .gm-footer__brand-head {
        justify-content: flex-start;
    }
    .gm-footer__column {
        gap: 14px;
    }
    .gm-footer-contact-list--brand {
        margin-top: 0;
        gap: 14px;
    }
    .gm-footer__bottom {
        margin-top: 32px;
        padding-top: 20px;
        /* mobil: copyright + powered-by alt alta, ikisi de ORTALI
           (masaüstündeki sol/sağ uç hizalama margin'leri sıfırlanır) */
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
    }
    .gm-footer__bottom .gm-footer-copyright,
    .gm-footer__bottom .gm-footer-powered {
        margin-left: 0;
        margin-right: 0;
    }
}

/* ── ANA SAYFA HERO YÜKLENME ANİMASYONU — zorg (subpage hero) ile birebir ──
   Dosya sonunda konsolide + !important: hiçbir base/tema kuralı ezemez.
   Referans: .hero gradualFade 1s; h1 slideUp .8s d.2s; p slideUp .8s d.4s;
   .btn fadeIn 1s d.6s. */
.gm-hero-carousel-section {
    animation: gm-gradual-fade 1s ease-in-out !important;
}
.gm-hero-carousel-section__title {
    animation: gm-slide-up 0.8s ease-out 0.2s both !important;
}
.gm-hero-carousel-section__intro {
    animation: gm-slide-up 0.8s ease-out 0.4s both !important;
}
.gm-hero-carousel-section__actions {
    animation: gm-gradual-fade 1s ease-out 0.6s both !important;
}
