/* ============================================================
   visit-from.css — Styles specific to visit-from pages
   Loaded only by src/visit-from/*.html pages.
   ============================================================ */

/* ---- Final CTA block (copied from condition-landing.css) ---- */

.location-bottom-cta--card {
    background-color: var(--overlay-light);
    border-radius: var(--radius-sm);
    padding: 2.5rem;
    margin-top: 0;
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.cta-final-body {
    color: var(--text-muted);
    font-size: 1rem;
    line-height: 1.75;
    margin-bottom: 2rem;
    max-width: 520px;
}

.cta-final-footnote {
    color: var(--text-faint);
    font-size: 0.8rem;
    margin-top: 1.5rem;
    margin-bottom: 0;
}

.location-bottom-cta {
    background-color: var(--bg-dark);
    border-radius: var(--radius-sm);
    padding: 2.5rem;
    margin-top: 2rem;
}
.location-bottom-cta h3 {
    font-size: 1.4rem;
    font-weight: 300;
    color: var(--text-on-dark);
    margin-bottom: 1.5rem;
    letter-spacing: -0.5px;
}
.location-bottom-cta .cta-stack {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    justify-content: center;
}
/* TODO: was 480px — normalized to 640px. CTA buttons stay stacked 40px longer. Verify on device. */
@media (min-width: 640px) {
    .location-bottom-cta .cta-stack {
        flex-direction: row;
        flex-wrap: wrap;
    }
}

/* ---- Visit-from aside (hub index page) ---- */
.visit-from-aside { margin-top: 2rem; }
.visit-from-aside + .btn { margin-top: 1.5rem; }

/* ---- Other neighborhoods chip nav (leaf pages) ---- */
.visit-from-neighborhood-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--border);
}
.visit-from-neighborhood-links .vf-nav-label {
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-right: 0.25rem;
}
.visit-from-neighborhood-links a {
    display: inline-block;
    padding: 0.35rem 0.9rem;
    border: 1px solid var(--border);
    border-radius: 2rem;
    font-size: 0.85rem;
    color: var(--text-secondary);
    text-decoration: none;
    transition: border-color 0.15s ease, color 0.15s ease;
}
.visit-from-neighborhood-links a:hover {
    border-color: var(--accent);
    color: var(--accent);
}

/* Inline paragraph links on dark/warm backgrounds — base style inherits text color, making them invisible */
.section--warm p a,
.section--dark p a {
    color: var(--accent-text);
    text-decoration: underline;
    text-decoration-color: rgba(78, 205, 196, 0.35);
}
.section--warm p a:hover,
.section--dark p a:hover {
    text-decoration-color: var(--accent-text);
}

/* ---- Visit-from stat chip in hero ---- */
.visit-from-stat {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 2rem;
    padding: 0.5rem 1.25rem;
    margin: 1.5rem 0 2rem;
}
.visit-from-stat-value {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--accent-text);
}
.visit-from-stat-label {
    font-size: 0.875rem;
    color: rgba(255,255,255,0.7);
}

/* ---- Who Makes This Trip — 3-card grid ---- */
.visit-from-who-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    margin-top: 2rem;
}
@media (min-width: 640px) {
    .visit-from-who-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
.visit-from-who-card {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm, 8px);
    padding: 1.75rem 2rem;
}
.visit-from-who-card h3 {
    font-size: 1.05rem;
    font-weight: 600;
    margin: 0 0 0.5rem;
    color: var(--text-primary);
}
.visit-from-who-card p {
    font-size: 0.9rem;
    line-height: 1.6;
    margin: 0;
    color: var(--text-secondary);
}

/* Hero shape overrides for visit-from leaves */
.hero--page .condition-title {
    font-size: clamp(2.2rem, 6vw, 4.2rem);
    margin-bottom: 1rem;
}

/* Heavier scrim for busy photos */
.section--photo-overlay-heavy::before {
    background: rgba(27, 58, 75, 0.92) !important;
}

/* Beach photo: push clutter below the heading area */
.section--photo-sg-beach {
    background-position: center 70%;
}

/* Cards on photo backgrounds */
[class*="section--photo-"] .visit-from-who-card {
    background: rgba(15, 28, 38, 0.78);
    border: none;
    border-top: 2px solid var(--accent-text);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
[class*="section--photo-"] .visit-from-who-card h3 {
    color: var(--accent-text);
}
[class*="section--photo-"] .visit-from-who-card p {
    color: rgba(250, 250, 248, 0.82);
}

@media (min-width: 768px) {
    .visit-from-who-grid {
        gap: 2rem;
    }
}

/* Subsection labels within Parking and Arrival (By Car / By Transit) */
.visit-from-subheading {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-top: 2rem;
    margin-bottom: 0.35rem;
}

/* Tighten the final CTA section — default section padding is too generous for the cta-duo block */
.section--dark:has(.cta-duo) {
    padding-top: var(--space-sm);
    padding-bottom: var(--space-sm);
}

