/* ==========================================================================
   Page family: state / regional landing pages
   Shared by every state page (Georgia, Texas; others to follow).
   Contains ONLY what is genuinely new: the state-hero background motif, the
   US market map component, the market-tier label and the two-up proof grid.
   Everything else on these pages reuses main.css, buttons, cta, faq,
   hero-internal, trust-bar, standard-pages and discovery-pages.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Hero modifier
   Uses self-storage facility photography already shipped in /images/. The
   overlay is strengthened relative to the shared default so white hero copy
   keeps AA contrast over a photographic background.
   -------------------------------------------------------------------------- */
.internal-hero--state .internal-hero__bg{
    --internal-hero-bg-image:url('/images/storage-facility-hero-dusk.jpg');
    background-position:center 62%;
}
.internal-hero--state .internal-hero__overlay{
    background:
        radial-gradient(circle at 74% 40%,rgba(19,167,179,.14),transparent 38%),
        linear-gradient(135deg,rgba(0,31,49,.95) 0%,rgba(11,48,73,.90) 48%,rgba(0,31,49,.86) 100%);
}

/* Texas hero: a different existing StorageRankers brand image (not an operator's
   facility) so the two state pages are not visually identical. */
.state-page--texas .internal-hero--state .internal-hero__bg{
    --internal-hero-bg-image:url('/images/storage-facility-hero-sunset.jpg');
    background-position:center 55%;
}

/* --------------------------------------------------------------------------
   1b. Dark-section heading colour - SCOPED WORKAROUND
   standard-pages.css declares .sp-section--dark h2 {color:white} on line 82 and
   then .sp-section h2 {color:navy} on line 84. Both are specificity 0-1-1, so
   the later rule wins and every h2 inside a dark section renders navy on navy.
   This is a pre-existing sitewide issue (it is visible on the live
   /multi-location-self-storage-seo page today), NOT something introduced here.
   Rather than edit the shared stylesheet in a Georgia-page build, this scopes
   the correct colour to the state pages only. See the review notes: the proper
   one-line fix in standard-pages.css should be approved separately.
   -------------------------------------------------------------------------- */
.state-page .sp-section--dark h2{color:var(--white);}

/* Hairline between two consecutive dark bands so they read as separate
   sections rather than one long block. */
.state-page .sp-section--dark + .sp-section--dark{
    border-top:1px solid rgba(255,255,255,.07);
}

/* --------------------------------------------------------------------------
   2. US market map
   Lightweight inline SVG, Albers Equal Area Conic, contiguous 48 states.
   Sits inside a .sp-section--dark band. The SVG carries its own title and
   desc, and each highlighted state carries a <title>, so the meaning is
   available to assistive technology without a duplicated text block.
   -------------------------------------------------------------------------- */
.smap-layout{
    display:grid;
    grid-template-columns:minmax(0,.92fr) minmax(0,1.28fr);
    gap:52px;
    align-items:center;
    margin-top:36px;
}
.smap-layout__copy{min-width:0;}
.smap-layout__copy h2{text-align:left;}
.smap-layout__copy h2::after{margin-left:0;}
.smap-layout__copy .section-eyebrow{text-align:left;}
.smap-layout__copy p{
    color:var(--gray-300);
    font-size:1rem;
    line-height:1.7;
    margin:0 0 16px;
}
.smap-layout__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;}

/* ---- Framed map panel ---- */
.smap{min-width:0;}
.smap__frame{
    position:relative;
    border-radius:18px;
    padding:22px 22px 18px;
    background:
        radial-gradient(ellipse 70% 90% at 78% 12%,rgba(19,167,179,.16) 0%,transparent 58%),
        linear-gradient(158deg,#0E4055 0%,#0A3049 46%,#04243A 100%);
    border:1px solid rgba(111,217,224,.20);
    box-shadow:
        0 22px 54px rgba(0,16,26,.46),
        0 4px 14px rgba(0,16,26,.28);
}
.smap__frame::before{
    content:'';
    position:absolute;
    top:0;left:0;right:0;
    height:1px;
    background:linear-gradient(90deg,transparent,rgba(111,217,224,.45),transparent);
    border-radius:18px 18px 0 0;
    pointer-events:none;
}
.smap__svg{display:block;width:100%;height:auto;overflow:visible;}

/* ---- States ---- */
.smap__state{
    fill:rgba(255,255,255,.055);
    stroke:rgba(255,255,255,.17);
    stroke-width:1;
    stroke-linejoin:round;
}
.smap__state--rep{
    fill:url(#smapRepFill);
    stroke:#7FE2EA;
    stroke-width:1.1;
    filter:url(#smapRepGlow);
}
.smap__state--feature{
    fill:url(#smapFeatFill);
    stroke:#FFCE94;
    stroke-width:1.3;
    filter:url(#smapFeatGlow);
}

/* ---- State abbreviations ---- */
.smap__label{
    fill:#06202F;
    font-family:'DM Sans',Arial,sans-serif;
    font-size:15px;
    font-weight:800;
    letter-spacing:.4px;
    text-anchor:middle;
    pointer-events:none;
}
.smap__label--feature{fill:#3A1C00;font-size:16px;}

/* ---- Featured state chosen by attribute (shared map partial) ----
   Pages that include /includes/components/us-map.html set data-feature="XX"
   on the .smap wrapper; the matching state then takes the featured (orange)
   treatment without duplicating the SVG. When a new market state is added to
   the partial, add its code to the lists below. The Georgia page predates the
   partial and uses the --feature / --feature classes directly; both work. */
.smap[data-feature="AR"] .smap__state[data-state="AR"],
.smap[data-feature="CO"] .smap__state[data-state="CO"],
.smap[data-feature="GA"] .smap__state[data-state="GA"],
.smap[data-feature="MS"] .smap__state[data-state="MS"],
.smap[data-feature="PA"] .smap__state[data-state="PA"],
.smap[data-feature="SC"] .smap__state[data-state="SC"],
.smap[data-feature="TX"] .smap__state[data-state="TX"],
.smap[data-feature="WI"] .smap__state[data-state="WI"]{
    fill:url(#smapFeatFill);
    stroke:#FFCE94;
    stroke-width:1.3;
    filter:url(#smapFeatGlow);
}
.smap[data-feature="AR"] .smap__label[data-state="AR"],
.smap[data-feature="CO"] .smap__label[data-state="CO"],
.smap[data-feature="GA"] .smap__label[data-state="GA"],
.smap[data-feature="MS"] .smap__label[data-state="MS"],
.smap[data-feature="PA"] .smap__label[data-state="PA"],
.smap[data-feature="SC"] .smap__label[data-state="SC"],
.smap[data-feature="TX"] .smap__label[data-state="TX"],
.smap[data-feature="WI"] .smap__label[data-state="WI"]{fill:#3A1C00;font-size:16px;}

/* ---- Legend ---- */
.smap__legend{
    display:flex;
    flex-wrap:wrap;
    gap:10px 24px;
    margin-top:16px;
    padding-top:15px;
    border-top:1px solid rgba(255,255,255,.14);
}
.smap__key{
    display:flex;
    align-items:center;
    gap:9px;
    font-size:.82rem;
    color:var(--gray-300);
    line-height:1.4;
}
.smap__swatch{
    width:14px;height:14px;border-radius:4px;flex-shrink:0;
}
.smap__swatch--feature{
    background:linear-gradient(145deg,#FFA43D,#E07908);
    box-shadow:0 0 0 1px rgba(255,206,148,.55),0 0 9px rgba(245,141,29,.45);
}
.smap__swatch--rep{
    background:linear-gradient(145deg,#1FC2CE,#0E8691);
    box-shadow:0 0 0 1px rgba(127,226,234,.55),0 0 9px rgba(19,167,179,.40);
}
.smap__swatch--other{
    background:rgba(255,255,255,.07);
    box-shadow:0 0 0 1px rgba(255,255,255,.22);
}

.smap__note{
    margin:14px 0 0;
    font-size:.8rem;
    line-height:1.6;
    color:var(--gray-300);
}
.smap__note strong{color:var(--white);}
.smap__note a{color:var(--teal-300);}

@media (max-width:1024px){
    .smap-layout{grid-template-columns:1fr;gap:34px;}
}
@media (max-width:640px){
    .smap__frame{padding:14px 14px 12px;border-radius:14px;}
    .smap__legend{gap:8px 16px;margin-top:12px;padding-top:12px;}
    .smap__key{font-size:.78rem;}
    .smap__label{font-size:20px;}
    .smap__label--feature{font-size:21px;}
    .smap[data-feature="AR"] .smap__label[data-state="AR"],
    .smap[data-feature="CO"] .smap__label[data-state="CO"],
    .smap[data-feature="GA"] .smap__label[data-state="GA"],
    .smap[data-feature="MS"] .smap__label[data-state="MS"],
    .smap[data-feature="PA"] .smap__label[data-state="PA"],
    .smap[data-feature="SC"] .smap__label[data-state="SC"],
    .smap[data-feature="TX"] .smap__label[data-state="TX"],
    .smap[data-feature="WI"] .smap__label[data-state="WI"]{font-size:21px;}
}

/* --------------------------------------------------------------------------
   3. Proof grid - two publicly named operators, centred
   -------------------------------------------------------------------------- */
.st-proof-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:760px;
    margin-left:auto;
    margin-right:auto;
}
@media (max-width:640px){
    .st-proof-grid{grid-template-columns:1fr;}
}

/* --------------------------------------------------------------------------
   4. Market-tier label
   Builds on .sp-card rather than replacing it - adds only the tier chip.
   -------------------------------------------------------------------------- */
.st-tier__label{
    display:inline-block;
    font-size:.72rem;
    font-weight:700;
    letter-spacing:1.4px;
    text-transform:uppercase;
    color:var(--teal-500);
    background:rgba(19,167,179,.10);
    border:1px solid rgba(19,167,179,.25);
    border-radius:999px;
    padding:4px 11px;
    margin-bottom:12px;
}
