/* =============================================================
   site-closing-cta  —  isolated global bottom CTA (photographic)
   -------------------------------------------------------------
   Self-contained, scoped ONLY to `.site-closing-cta*`.
   No dependency on .hero / .inner-hero / .button / .eyebrow /
   header / footer / page-hero styles. Future hero/header
   redesigns CANNOT break this component.
   Loaded via @stack('head') (after app.css) so it wins at
   equal specificity without !important.
   ============================================================= */

.site-closing-cta,
.site-closing-cta * {
    box-sizing: border-box;
}

.site-closing-cta {
    /* Own colour system — deliberately NOT inherited from hero. */
    --ccta-ink: var(--warm-white, #fbfaf6);      /* light text on the photo */
    --ccta-muted: rgba(251, 250, 246, 0.82);     /* readable light brown-grey */
    --ccta-accent: var(--clay, #8a4937);         /* brand terracotta */
    --ccta-accent-ink: #fbfaf6;                  /* light text on accent */

    position: relative;
    isolation: isolate;
    overflow: hidden;
    width: 100%;
    /* Fallback colour shows if the image ever fails to load. */
    background: var(--near-black, #151612);
    color: var(--ccta-ink);
    /* 100–130px vertical, 32px inline (compact, intentional) */
    padding: clamp(6.25rem, 9vw, 8.125rem) 32px;
    display: flex;
    justify-content: center;
}

/* Photographic background layer */
.site-closing-cta__media {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.site-closing-cta__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* Focal point: keep the tents / horizon visible, not the sky. */
    object-position: center 42%;
}

/* Readability scrim over the photograph */
.site-closing-cta__scrim {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(17, 19, 16, 0.52) 0%, rgba(17, 19, 16, 0.62) 55%, rgba(17, 19, 16, 0.72) 100%);
}

.site-closing-cta__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1160px;          /* 1100–1200px container */
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.site-closing-cta__eyebrow {
    margin: 0 0 1rem;
    font-size: clamp(0.6875rem, 0.8vw, 0.75rem); /* 11–12px */
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: #eccbb0;              /* warm sand on the photo */
}

.site-closing-cta__title {
    margin: 0 0 1.25rem;
    font-family: var(--font-serif, ui-serif, Georgia, serif);
    font-weight: 600;
    font-size: clamp(2.625rem, 4.4vw, 3.5rem); /* 42–56px desktop */
    line-height: 1.05;
    color: var(--ccta-ink);      /* light, always readable on the scrim */
    max-width: 20ch;
    text-shadow: 0 1px 24px rgba(17, 19, 16, 0.35);
}

.site-closing-cta__text {
    margin: 0 0 2.5rem;
    font-size: clamp(1.0625rem, 1.05vw, 1.1875rem); /* 17–19px */
    line-height: 1.6;
    color: var(--ccta-muted);
    max-width: 600px;
    text-shadow: 0 1px 18px rgba(17, 19, 16, 0.3);
}

.site-closing-cta__actions {
    display: flex;
    justify-content: center;
}

/* High-contrast button that stands out on the photograph */
.site-closing-cta__button {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    min-height: 52px;            /* 50–54px */
    padding: 0 30px;            /* ~26–32px horizontal */
    border-radius: 999px;        /* refined pill */
    background: var(--warm-white, #fbfaf6);
    color: var(--near-black, #151612);
    border: 1px solid var(--warm-white, #fbfaf6);
    font-size: 0.72rem;
    font-weight: 650;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 10px 30px -12px rgba(17, 19, 16, 0.7);
    transition: background-color 0.35s ease, color 0.35s ease,
                border-color 0.35s ease, transform 0.35s var(--ease-luxury, cubic-bezier(0.22, 1, 0.36, 1));
}

.site-closing-cta__button:hover,
.site-closing-cta__button:focus-visible {
    background: var(--ccta-accent);
    color: var(--ccta-accent-ink);
    border-color: var(--ccta-accent);
    outline: none;
}

.site-closing-cta__button-icon {
    flex: none;
    transition: transform 0.35s var(--ease-luxury, cubic-bezier(0.22, 1, 0.36, 1));
}

.site-closing-cta__button:hover .site-closing-cta__button-icon,
.site-closing-cta__button:focus-visible .site-closing-cta__button-icon {
    transform: translateX(4px);
}

/* RTL: flip the arrow so it points the natural reading direction */
[dir="rtl"] .site-closing-cta__button-icon {
    transform: scaleX(-1);
}
[dir="rtl"] .site-closing-cta__button:hover .site-closing-cta__button-icon,
[dir="rtl"] .site-closing-cta__button:focus-visible .site-closing-cta__button-icon {
    transform: scaleX(-1) translateX(4px);
}

/* ---------------- Tablet ---------------- */
@media (max-width: 1024px) {
    .site-closing-cta {
        padding: clamp(4.5rem, 8vw, 6rem) 28px;
    }
    .site-closing-cta__title {
        font-size: clamp(2.25rem, 5vw, 2.75rem);
    }
}

/* ---------------- Mobile ---------------- */
@media (max-width: 768px) {
    .site-closing-cta {
        padding: 76px 22px;       /* 70–80px vertical, ~20–24px inline */
    }
    .site-closing-cta__media img {
        /* Mobile focal point: raise the crop to keep the camp in frame. */
        object-position: center 38%;
    }
    .site-closing-cta__title {
        font-size: clamp(2.125rem, 8vw, 2.625rem); /* 34–42px */
    }
    .site-closing-cta__text {
        margin-bottom: 2rem;
    }
    .site-closing-cta__button {
        width: 100%;
        max-width: 360px;
        min-height: 48px;         /* mobile min-height */
        justify-content: center;
        padding: 0 24px;
    }
}

@media (max-width: 390px) {
    .site-closing-cta {
        padding: 72px 20px;
    }
}
