/*
Theme Name: TAF Community Events
Description: Standalone hand-coded theme for The Athlete's Foot Raleigh — Community Space Reservation landing page. Ported from the approved Claude Design ("TAF Raleigh Events"). Bold, athletic, red-accent, mobile-first.
Version: 1.0
Author: Snazzy Solutions
*/

/* =========================================================================
   DESIGN SYSTEM — TAF Raleigh Community Events
   Fonts: Archivo (loaded in functions.php) stands in for Helvetica Now Display
   until the client supplies brand fonts — flagged as a placeholder.
   ========================================================================= */
:root {
    /* Brand color */
    --c-red:      #EE202E;   /* TAF winged-foot red — primary accent */
    --c-red-dark: #C8151F;   /* hover / pressed red */
    --c-ink:      #111111;   /* near-black — hero overlays, footer, headings */
    --c-white:    #ffffff;
    --c-body:     #333333;   /* body copy */
    --c-muted:    #9A9A9A;   /* secondary text, disabled */
    --c-line:     #E5E5E5;   /* dividers / card borders */
    --c-line-soft:#EDEDED;
    --c-bg-soft:  #F5F5F5;   /* soft gray section / inputs */

    /* Type */
    --font-head: 'Archivo', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    --font-body: 'Archivo', 'Helvetica Neue', Helvetica, Arial, sans-serif;

    /* Layout */
    --wrap:    1320px;
    --pad-x:   48px;
    --header-h: 84px;
}

/* ---- reset-ish ---- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font-body); color: var(--c-ink); background: var(--c-white);
       -webkit-font-smoothing: antialiased; line-height: 1.6; overflow-x: clip;
       touch-action: manipulation; /* kill double-tap-to-zoom (keeps pinch-zoom + scroll) */ }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--c-red); text-decoration: none; }
a:hover { color: var(--c-red-dark); }
::selection { background: var(--c-red); color: #fff; }
h1, h2, h3, h4 { margin: 0; font-family: var(--font-head); }

/* Utility: heavy display */
.taf-display { font-family: var(--font-head); font-weight: 900; letter-spacing: -0.03em; text-transform: lowercase; line-height: 1.1; }
/* Red highlight span (box-decoration clone so multi-line wraps keep the box) */
.taf-hl { background: var(--c-red); color: #fff; padding: 0.03em 0.16em;
          -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.taf-eyebrow { font-weight: 700; font-size: 13px; letter-spacing: 0.22em; text-transform: uppercase; }

.taf-wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--pad-x); box-sizing: border-box; }

/* ---- buttons ---- */
.taf-btn { display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-body);
           font-weight: 700; font-size: 16px; padding: 18px 36px; cursor: pointer; border: 0; transition: background .2s ease, color .2s ease, border-color .2s ease; white-space: nowrap; }
.taf-btn--red   { background: var(--c-red); color: #fff; }
.taf-btn--red:hover { background: var(--c-red-dark); color: #fff; }
.taf-btn--dark  { background: var(--c-ink); color: #fff; }
.taf-btn--dark:hover { background: #000; color: #fff; }
.taf-btn--ghost { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,0.6); padding: 16px 34px; }
.taf-btn--ghost:hover { border-color: #fff; background: rgba(255,255,255,0.08); color: #fff; }

/* =========================================================================
   HEADER — fixed; transparent over the hero, solid white once scrolled.
   Front page starts transparent (.home); interior pages start solid.
   ========================================================================= */
.taf-header { position: fixed; top: 0; left: 0; right: 0; z-index: 50;
              display: flex; align-items: center; justify-content: space-between;
              padding: 0 var(--pad-x); height: var(--header-h); box-sizing: border-box;
              background: #fff; border-bottom: 1px solid var(--c-line-soft); box-shadow: 0 2px 14px rgba(0,0,0,0.07);
              transition: background .25s ease, box-shadow .25s ease, border-color .25s ease; }
.admin-bar .taf-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .taf-header { top: 46px; } }

/* transparent state (front page, not yet scrolled) */
.home .taf-header { background: transparent; border-color: transparent; box-shadow: none; }
.home .taf-header.is-scrolled { background: #fff; border-color: var(--c-line-soft); box-shadow: 0 2px 14px rgba(0,0,0,0.07); }

.taf-brand { display: flex; align-items: center; gap: 14px; }
.taf-brand img { height: 34px; width: auto; }
.taf-logo-white { display: none; }
.taf-logo-color { display: block; }
.home .taf-header .taf-logo-white { display: block; }
.home .taf-header .taf-logo-color { display: none; }
.home .taf-header.is-scrolled .taf-logo-white { display: none; }
.home .taf-header.is-scrolled .taf-logo-color { display: block; }

.taf-brand-divider { width: 1px; height: 30px; background: var(--c-line); }
.home .taf-header .taf-brand-divider { background: rgba(255,255,255,0.3); }
.home .taf-header.is-scrolled .taf-brand-divider { background: var(--c-line); }
.taf-brand-label { font-weight: 700; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; line-height: 1.25; color: var(--c-muted); }
.home .taf-header .taf-brand-label { color: rgba(255,255,255,0.85); }
.home .taf-header.is-scrolled .taf-brand-label { color: var(--c-muted); }

.taf-nav { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; }
.taf-nav a { color: var(--c-ink); padding: 10px 14px; white-space: nowrap; }
.taf-nav a:hover { color: var(--c-red); }
.home .taf-header .taf-nav a { color: #fff; }
.home .taf-header .taf-nav a:hover { color: #fff; }
.home .taf-header.is-scrolled .taf-nav a { color: var(--c-ink); }
.home .taf-header.is-scrolled .taf-nav a:hover { color: var(--c-red); }
.taf-nav a.taf-nav-cta { background: var(--c-red); color: #fff; padding: 13px 24px; margin-left: 12px; }
.taf-nav a.taf-nav-cta:hover { background: var(--c-red-dark); color: #fff; }
.home .taf-header .taf-nav a.taf-nav-cta,
.home .taf-header.is-scrolled .taf-nav a.taf-nav-cta { color: #fff; }

/* Active section (scrollspy) — red pill in every header state */
.taf-header .taf-nav a.is-active,
.home .taf-header .taf-nav a.is-active,
.home .taf-header.is-scrolled .taf-nav a.is-active { background: var(--c-red); color: #fff; }
.taf-header .taf-nav a.is-active:hover,
.home .taf-header .taf-nav a.is-active:hover { background: var(--c-red-dark); color: #fff; }

/* mobile menu */
.taf-hamburger { display: none; background: none; border: 0; width: 44px; height: 44px; cursor: pointer;
                 align-items: center; justify-content: center; color: var(--c-ink); }
.home .taf-header .taf-hamburger { color: #fff; }
.home .taf-header.is-scrolled .taf-hamburger { color: var(--c-ink); }
.taf-hamburger svg { width: 26px; height: 26px; }
.taf-mobile-panel { display: none; position: fixed; top: var(--header-h); left: 0; right: 0; z-index: 49;
                    background: #111; padding: 8px 0 20px; }
.admin-bar .taf-mobile-panel { top: calc(var(--header-h) + 32px); }
.taf-mobile-panel.is-open { display: block; }
.taf-mobile-panel a { display: block; color: #fff; font-weight: 700; font-size: 17px; padding: 16px var(--pad-x);
                      text-transform: lowercase; border-bottom: 1px solid #2A2A2A; }
.taf-mobile-panel a.taf-nav-cta { background: var(--c-red); margin: 12px var(--pad-x) 0; text-align: center; border: 0; }

/* =========================================================================
   HERO
   ========================================================================= */
.taf-hero { position: relative; height: 760px; overflow: hidden; background: var(--c-ink); }
.taf-hero-slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
                  opacity: 0; transition: opacity 1.4s ease; animation: tafKenburns 12s ease-in-out infinite alternate; }
.taf-hero-slide.is-active { opacity: 1; }
.taf-hero-overlay { position: absolute; inset: 0;
                    background: linear-gradient(90deg, rgba(17,17,17,0.72) 0%, rgba(17,17,17,0.34) 52%, rgba(17,17,17,0.04) 100%); }
.taf-hero-inner { position: relative; z-index: 1; max-width: var(--wrap); margin: 0 auto; height: 100%;
                  display: flex; flex-direction: column; justify-content: center;
                  padding: calc(var(--header-h) + 32px) var(--pad-x) 0; box-sizing: border-box; }
.taf-hero-kicker { color: #fff; font-weight: 700; font-size: 14px; letter-spacing: 0.22em; text-transform: uppercase; margin-bottom: 22px; }
.taf-hero-kicker span { background: var(--c-red); padding: 6px 12px; }
.taf-hero h1 { font-family: var(--font-head); font-weight: 900; font-size: 90px; line-height: 0.82;
               letter-spacing: -0.045em; color: #fff; margin: 0 0 26px; max-width: 760px; text-transform: lowercase; }
.taf-hero-sub { font-size: 19px; line-height: 1.55; color: rgba(255,255,255,0.9); max-width: 520px; margin: 0 0 38px; }
.taf-hero-actions { display: flex; gap: 16px; flex-wrap: wrap; }
.taf-hero-dots { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); z-index: 2; display: flex; gap: 10px; }
.taf-hero-dots span { width: 28px; height: 4px; background: rgba(255,255,255,0.45); transition: background .3s ease;
                      cursor: pointer; box-sizing: content-box; padding: 11px 3px; background-clip: content-box; }
.taf-hero-dots span:hover { background: rgba(255,255,255,0.8); background-clip: content-box; }
.taf-hero-dots span.is-active { background-color: var(--c-red); }

@keyframes tafKenburns { from { transform: scale(1.02); } to { transform: scale(1.12); } }

/* =========================================================================
   NEWSLETTER STRIP
   ========================================================================= */
.taf-news { background: var(--c-red); padding: 44px var(--pad-x); }
.taf-news-inner { max-width: var(--wrap); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.taf-news-title { font-family: var(--font-head); font-weight: 900; font-size: 28px; color: #fff; text-transform: lowercase; letter-spacing: -0.02em; }
.taf-news-sub { font-size: 14px; color: rgba(255,255,255,0.85); margin-top: 6px; }
.taf-news-form { display: flex; flex: 1; min-width: 320px; max-width: 520px; }
.taf-news-form input { flex: 1; min-width: 0; border: 0; padding: 16px 18px; font-family: inherit; font-size: 15px; outline: none; }
.taf-news-form button { background: var(--c-ink); color: #fff; font-weight: 700; font-size: 15px; padding: 16px 28px; border: 0; cursor: pointer; white-space: nowrap; }
.taf-news-form button:hover { background: #000; }

/* =========================================================================
   SECTIONS — generic
   ========================================================================= */
.taf-section { max-width: var(--wrap); margin: 0 auto; padding: 96px var(--pad-x); box-sizing: border-box; }
.taf-kicker-ink { color: var(--c-ink); margin-bottom: 16px; }
.taf-kicker-red { color: var(--c-red); margin-bottom: 16px; }

/* ---- About the Space ---- */
.taf-space { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.taf-space h2 { font-family: var(--font-head); font-weight: 900; font-size: 52px; line-height: 1.18; letter-spacing: -0.03em; margin: 0 0 28px; text-transform: lowercase; }
.taf-space p { font-size: 18px; line-height: 1.65; color: var(--c-body); margin: 0 0 36px; max-width: 480px; }
.taf-stats { display: flex; gap: 40px; border-top: 3px solid var(--c-ink); padding-top: 24px; flex-wrap: wrap; }
.taf-stat-num { font-family: var(--font-head); font-weight: 900; font-size: 48px; line-height: 1; color: var(--c-ink); }
.taf-stat-label { font-weight: 600; font-size: 13px; color: #666; margin-top: 6px; }
.taf-space-hours { margin-top: 24px; font-size: 14px; color: var(--c-muted); font-weight: 600; }
.taf-space-img { height: 560px; overflow: hidden; }
.taf-space-img img { width: 100%; height: 100%; object-fit: cover; }

/* =========================================================================
   GALLERY (dark)
   ========================================================================= */
.taf-gallery { background: var(--c-ink); padding: 96px 0; }
.taf-gallery h2 { font-family: var(--font-head); font-weight: 900; font-size: 46px; line-height: 1.12; letter-spacing: -0.03em; margin: 0 0 48px; color: #fff; text-transform: lowercase; }
.taf-gallery-feature { position: relative; margin-bottom: 24px; }
.taf-gallery-feature-img { height: 460px; overflow: hidden; }
.taf-gallery-feature-img img { width: 100%; height: 100%; object-fit: cover; }
.taf-gallery-feature-cap { background: #fff; padding: 36px 40px; max-width: 460px; position: absolute; left: 40px; bottom: 40px; }
.taf-cap-kicker { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-ink); margin-bottom: 14px; }
.taf-gallery-feature-cap h3 { font-family: var(--font-head); font-weight: 900; font-size: 38px; line-height: 1.08; letter-spacing: -0.03em; text-transform: lowercase; }
.taf-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
/* Column flex + flex:1 on the caption so all three white boxes bottom-align
   even when their copy runs to different line counts. */
.taf-gcard { position: relative; display: flex; flex-direction: column; }
.taf-gcard-img { height: 340px; flex: none; overflow: hidden; }
.taf-gcard-cap { flex: 1; }
.taf-gcard-img img { width: 100%; height: 100%; object-fit: cover; }
.taf-gcard-cap { background: #fff; padding: 26px 28px; margin: -64px 20px 0; position: relative; }
.taf-gcard-cap h3 { font-family: var(--font-head); font-weight: 900; font-size: 26px; line-height: 1.12; letter-spacing: -0.02em; text-transform: lowercase; margin-bottom: 12px; }
.taf-gcard-cap p { font-size: 14px; line-height: 1.5; color: #666; margin: 0; }

/* zoom-on-scroll (JS-gated so images are never stuck zoomed without JS) */
.taf-js [data-zoom] img { transition: transform 1.4s ease; }
.taf-js [data-zoom]:not(.is-in) img { transform: scale(1.12); }
.taf-js [data-zoom].is-in img { transform: scale(1); }

/* =========================================================================
   USE CASES
   ========================================================================= */
.taf-uses h2 { font-family: var(--font-head); font-weight: 900; font-size: 46px; line-height: 0.92; letter-spacing: -0.03em; margin: 0 0 48px; text-transform: lowercase; }
.taf-uses-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.taf-use { border: 1px solid var(--c-line); padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; transition: all .15s ease; }
/* full red highlight on hover (like the "got an idea?" card) */
.taf-use:hover { background: var(--c-red); border-color: var(--c-red); transform: translateY(-2px); }
.taf-use:hover .taf-use-num { color: #fff; }
.taf-use:hover .taf-use-label { color: #fff; }
.taf-use:hover .taf-use-desc { color: rgba(255,255,255,0.85); }
.taf-use-num { font-family: var(--font-head); font-weight: 900; font-size: 26px; color: var(--c-red); line-height: 1; transition: color .15s ease; }
.taf-use-label { font-weight: 700; font-size: 17px; line-height: 1.25; color: var(--c-ink); transition: color .15s ease; }
.taf-use-desc { font-size: 14px; line-height: 1.55; color: var(--c-muted); transition: color .15s ease; }
.taf-use--red { background: var(--c-red); padding: 28px 24px; display: flex; flex-direction: column; justify-content: flex-end; gap: 10px; }
.taf-use--red h3 { font-family: var(--font-head); font-weight: 900; font-size: 24px; line-height: 1.05; color: #fff; text-transform: lowercase; }
.taf-use--red p { font-size: 14px; line-height: 1.5; color: rgba(255,255,255,0.85); margin: 0; }
.taf-use-cta { color: #fff; font-weight: 700; font-size: 15px; margin-top: 4px; display: inline-flex; align-items: center; gap: 8px; transition: gap .15s ease; }
.taf-use-cta:hover { color: #fff; gap: 12px; }

/* =========================================================================
   TESTIMONIALS
   ========================================================================= */
.taf-tests h2 { font-family: var(--font-head); font-weight: 900; font-size: 46px; line-height: 0.92; letter-spacing: -0.03em; margin: 0 0 48px; text-transform: lowercase; }
.taf-tests-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.taf-test { border: 1px solid var(--c-line); padding: 32px; display: flex; flex-direction: column; gap: 20px; }
.taf-test-quote-mark { color: var(--c-red); font-family: var(--font-head); font-weight: 900; font-size: 44px; line-height: 0.5; height: 22px; }
.taf-test-quote { font-size: 17px; line-height: 1.6; color: var(--c-ink); }
.taf-test-by { margin-top: auto; display: flex; align-items: center; gap: 12px; padding-top: 20px; border-top: 1px solid var(--c-line-soft); }
.taf-test-avatar { width: 42px; height: 42px; background: var(--c-ink); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--font-head); font-weight: 900; font-size: 15px; flex-shrink: 0; }
.taf-test-name { font-weight: 700; font-size: 14px; color: var(--c-ink); }
.taf-test-role { font-size: 12px; color: var(--c-muted); }

/* =========================================================================
   MID CTA (photo | red | photo)
   ========================================================================= */
.taf-midcta { display: grid; grid-template-columns: 1fr 1.7fr 1fr; min-height: 480px; }
.taf-midcta-img { overflow: hidden; }
.taf-midcta-img img { width: 100%; height: 100%; object-fit: cover; }
.taf-midcta-mid { background: var(--c-red); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 72px 48px; }
.taf-midcta-kicker { font-size: 13px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.85); margin-bottom: 24px; }
.taf-midcta-mid h2 { font-family: var(--font-head); font-weight: 900; font-size: 68px; line-height: 0.84; letter-spacing: -0.045em; color: #fff; margin: 0; text-transform: lowercase; }
.taf-midcta-mid .taf-btn { margin-top: 40px; }

/* =========================================================================
   RESERVE (reach-out card + form)
   ========================================================================= */
.taf-reserve { background: var(--c-bg-soft); padding: 96px 0; }
.taf-reserve-head { text-align: center; margin-bottom: 48px; }
.taf-reserve-head h2 { font-family: var(--font-head); font-weight: 900; font-size: 46px; line-height: 0.92; letter-spacing: -0.03em; margin: 0 0 16px; text-transform: lowercase; }
.taf-reserve-head p { font-size: 16px; color: var(--c-body); max-width: 520px; margin: 0 auto; line-height: 1.6; }
/* stretch, not start: the two cards run to different natural heights and a
   staggered bottom edge reads as a mistake next to the rest of the page. */
.taf-reserve-grid { display: grid; grid-template-columns: 5fr 6fr; gap: 24px; align-items: stretch; }
/* Grid/flex items default to min-width:auto, so the long unbreakable
   events@tafcommunityeventsnc.com address forced the column wider than a 375px
   viewport (real horizontal overflow, 2026-08-04). Let the address wrap and
   stop the items claiming their min-content width. */
.taf-reserve-grid > * { min-width: 0; }
/* break-word (not anywhere) so the <wbr> after the "@" in the markup is used as
   the break point — "anywhere" split it mid-domain and read as a typo. Cloudflare
   Email Obfuscation is OFF for this zone so the <wbr> survives; if it is ever
   turned back on, CF rewrites the anchor's innerHTML and the <wbr> is lost. */
.taf-reach-val, .taf-contact-col-val, .taf-footer-visit, .taf-footer-news-email { overflow-wrap: break-word; }
.taf-reach-val a[href^="mailto:"] { font-size: 15px; }
.taf-card-white { background: #fff; box-shadow: 0 2px 16px rgba(17,17,17,0.06); }
/* ---- reach-out card (left column — replaced the static calendar 2026-08-03,
       archived in design-archive/reserve-calendar/) ---- */
.taf-reach { padding: 40px; }
.taf-reach-title { font-family: var(--font-head); font-weight: 900; font-size: 26px; margin-bottom: 8px; text-transform: lowercase; }
.taf-reach-sub { font-size: 14px; color: #666; margin-bottom: 24px; line-height: 1.5; }
.taf-reach-list { list-style: none; margin: 0; padding: 0; }
.taf-reach-list li { display: flex; gap: 16px; padding: 20px 0; border-top: 1px solid var(--c-line-soft); }
.taf-reach-list li:first-child { border-top: 0; padding-top: 0; }
.taf-reach-icon { flex: 0 0 44px; width: 44px; height: 44px; background: #FDECEE; color: var(--c-red); display: flex; align-items: center; justify-content: center; }
.taf-reach-icon svg { width: 20px; height: 20px; }
.taf-reach-body { display: flex; flex-direction: column; gap: 5px; }
.taf-reach-label { font-weight: 700; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-muted); }
.taf-reach-val { font-size: 17px; font-weight: 600; line-height: 1.45; color: var(--c-ink); }
.taf-reach-val a { color: var(--c-ink); }
.taf-reach-val a:hover { color: var(--c-red); }
.taf-reach-link { font-weight: 700; font-size: 13px; margin-top: 2px; }
.taf-reach-steps { margin-top: 28px; padding-top: 24px; border-top: 3px solid var(--c-ink); }
.taf-reach-steps-label { font-weight: 700; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 16px; }
.taf-reach-steps ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.taf-reach-steps li { display: flex; gap: 14px; font-size: 14px; line-height: 1.55; color: var(--c-body); }
.taf-reach-step-num { font-family: var(--font-head); font-weight: 900; font-size: 15px; color: var(--c-red); line-height: 1.5; }

/* The request form is Fluent Forms id 3 — its skin lives in the form's own
   customizer CSS (working copy: forms/request-the-space.css). The old
   hand-coded form's styles are in design-archive/reserve-form-static/. */

/* ---- flatpickr popup (Preferred Date field) ----
   flatpickr appends its calendar to <body>, OUTSIDE .fluentform_wrapper_3, so
   the form's own customizer CSS can never reach it — this has to live in the
   theme. Squared off (nothing on this site is rounded) and TAF red. */
.flatpickr-calendar { border-radius: 0; box-shadow: 0 4px 24px rgba(17,17,17,0.14); font-family: var(--font-body); }
.flatpickr-calendar.arrowTop:before, .flatpickr-calendar.arrowTop:after,
.flatpickr-calendar.arrowBottom:before, .flatpickr-calendar.arrowBottom:after { display: none; }
.flatpickr-months .flatpickr-month { color: var(--c-ink); fill: var(--c-ink); }
.flatpickr-current-month { font-weight: 700; }
.flatpickr-weekday { color: var(--c-muted); font-weight: 700; font-size: 11px; letter-spacing: 0.08em; }
.flatpickr-day { border-radius: 0; color: var(--c-ink); font-weight: 600; border-color: transparent; }
.flatpickr-day:hover { background: var(--c-bg-soft); border-color: var(--c-bg-soft); }
.flatpickr-day.today { border-color: var(--c-ink); }
.flatpickr-day.selected, .flatpickr-day.selected:hover,
.flatpickr-day.startRange, .flatpickr-day.endRange {
    background: var(--c-red); border-color: var(--c-red); color: #fff; border-radius: 0; }
.flatpickr-day.flatpickr-disabled, .flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay { color: #C9C9C9; }

/* =========================================================================
   FAQ
   ========================================================================= */
.taf-faq { max-width: 1000px; margin: 0 auto; padding: 96px var(--pad-x); box-sizing: border-box; }
.taf-faq-head { text-align: center; margin-bottom: 48px; }
.taf-faq-head h2 { font-family: var(--font-head); font-weight: 900; font-size: 46px; line-height: 0.92; letter-spacing: -0.03em; margin: 0; text-transform: lowercase; }
.taf-faq-list { border-top: 1px solid var(--c-line); }
.taf-faq-item { border-bottom: 1px solid var(--c-line); }
.taf-faq-q { display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 26px 8px; cursor: pointer; }
.taf-faq-q h3 { font-weight: 700; font-size: 18px; color: var(--c-ink); font-family: var(--font-body); text-transform: none; letter-spacing: 0; }
.taf-faq-sign { color: var(--c-red); font-family: var(--font-head); font-weight: 900; font-size: 26px; line-height: 1; width: 24px; text-align: center; flex-shrink: 0; }
.taf-faq-a { font-size: 15px; line-height: 1.65; color: var(--c-body); padding: 0 8px 28px; max-width: 820px; display: none; }
.taf-faq-item.is-open .taf-faq-a { display: block; }

/* =========================================================================
   CONTACT (big black band)
   ========================================================================= */
.taf-contact { background: var(--c-ink); color: #fff; padding: 120px var(--pad-x); text-align: center; }
.taf-contact-inner { max-width: 1040px; margin: 0 auto; }
.taf-contact h2 { font-family: var(--font-head); font-weight: 900; font-size: 150px; line-height: 1.02; letter-spacing: -0.045em; margin: 0; text-transform: lowercase; }
.taf-contact p { font-size: 19px; line-height: 1.6; color: rgba(255,255,255,0.72); max-width: 620px; margin: 32px auto 0; }
.taf-contact-cols { display: flex; justify-content: center; gap: 64px; margin-top: 56px; flex-wrap: wrap; }
.taf-contact-icon { display: flex; justify-content: center; margin-bottom: 14px; }
.taf-contact-icon svg { width: 28px; height: 28px; color: var(--c-red); }
.taf-contact-col-label { font-weight: 700; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-red); margin-bottom: 10px; }
.taf-contact-col-val { font-size: 17px; font-weight: 600; line-height: 1.5; }
.taf-contact-col-val a { color: #fff; }
.taf-contact-col-val a:hover { color: var(--c-red); }
.taf-socials { display: flex; justify-content: center; gap: 14px; margin-top: 52px; }
.taf-social { width: 46px; height: 46px; border-radius: 50%; background: #fff; color: var(--c-ink); display: flex; align-items: center; justify-content: center; }
.taf-social:hover { background: var(--c-red); color: #fff; }

/* =========================================================================
   MAP STRIP
   ========================================================================= */
.taf-map { position: relative; height: 460px; background: #E4E6E8; overflow: hidden; }
.taf-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.taf-map-card { position: absolute; left: 48px; bottom: 48px; background: #fff; padding: 24px 28px; box-shadow: 0 10px 30px rgba(0,0,0,0.15); max-width: 340px; z-index: 2; }
.taf-map-card h3 { font-family: var(--font-head); font-weight: 900; font-size: 20px; text-transform: lowercase; margin-bottom: 8px; }
.taf-map-card p { font-size: 15px; color: var(--c-body); line-height: 1.5; margin: 0 0 14px; }
.taf-map-card a { font-weight: 700; font-size: 14px; color: var(--c-red); }
.taf-map-card a:hover { color: var(--c-red-dark); }

/* =========================================================================
   FOOTER
   ========================================================================= */
.taf-footer { background: var(--c-ink); padding: 72px 0 32px; }
.taf-footer-top { display: grid; grid-template-columns: 1.8fr 1fr 1fr 1.4fr; gap: 48px; padding-bottom: 48px; border-bottom: 1px solid #2A2A2A; }
.taf-footer-logo { height: 34px; width: auto; margin-bottom: 20px; }
.taf-footer-about { font-size: 14px; line-height: 1.65; color: var(--c-muted); max-width: 300px; margin: 0 0 22px; }
.taf-footer-socials { display: flex; gap: 12px; }
.taf-footer-social { width: 38px; height: 38px; border: 1px solid #2A2A2A; display: flex; align-items: center; justify-content: center; color: var(--c-muted); }
.taf-footer-social:hover { border-color: var(--c-red); color: #fff; }
.taf-footer-col-label { font-weight: 700; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: #fff; margin-bottom: 18px; }
.taf-footer-links { display: flex; flex-direction: column; gap: 12px; }
.taf-footer-links a { color: var(--c-muted); font-size: 14px; font-weight: 600; }
.taf-footer-links a:hover { color: #fff; }
.taf-footer-visit { display: flex; flex-direction: column; gap: 12px; font-size: 14px; color: var(--c-muted); line-height: 1.5; }
.taf-footer-news p { font-size: 14px; color: var(--c-muted); line-height: 1.6; margin: 0 0 16px; }
.taf-footer-news-form { display: flex; }
.taf-footer-news-form input { flex: 1; min-width: 0; border: 0; padding: 13px 14px; font-family: inherit; font-size: 14px; outline: none; }
.taf-footer-news-form button { background: var(--c-red); color: #fff; font-weight: 700; font-size: 14px; padding: 13px 18px; border: 0; cursor: pointer; white-space: nowrap; }
.taf-footer-news-form button:hover { background: var(--c-red-dark); }
.taf-footer-news-email { margin-top: 16px; font-size: 14px; color: var(--c-muted); }
.taf-footer-bottom { display: flex; align-items: center; gap: 24px; padding-top: 24px; font-size: 13px; color: var(--c-muted); flex-wrap: wrap; }
.taf-footer-tagline { text-transform: lowercase; font-family: var(--font-head); font-weight: 900; color: #333333; }
.taf-footer-privacy { color: var(--c-muted); font-weight: 600; margin-left: auto; }
.taf-footer-privacy:hover { color: #fff; }

/* scroll reveal (JS-gated so content is never hidden without JS) */
.taf-js [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s ease; }
.taf-js [data-reveal].is-in { opacity: 1; transform: none; }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 1100px) {
    .taf-uses-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 980px) {
    :root { --pad-x: 28px; }
    .taf-nav { display: none; }
    .taf-hamburger { display: inline-flex; }
    /* hero grows to fit its content (no clipping into the newsletter) */
    .taf-hero { height: auto; min-height: 620px; }
    .taf-hero-inner { height: auto; padding-top: calc(var(--header-h) + 52px); padding-bottom: 76px; }
    .taf-hero h1 { font-size: 62px; }
    /* The hero sources are wide crops; on a narrow viewport `cover` centre-crops
       them hard, which parks the headline over the brightest / busiest part of
       each photo. Re-anchor per slide so the type always lands on quiet pixels. */
    .taf-hero-slide--store    { object-position: center 68%; }
    .taf-hero-slide--backdrop { object-position: 70% center; }
    .taf-hero-slide--room     { object-position: center 78%; }
    /* The left-to-right gradient assumes a wide viewport with the type in the
       dark end. On mobile the headline runs the full width, so carry the scrim
       across instead — the room slide in particular is a bright photo. */
    .taf-hero-overlay { background: linear-gradient(180deg, rgba(17,17,17,0.62) 0%, rgba(17,17,17,0.58) 62%, rgba(17,17,17,0.30) 100%); }
    .taf-space { grid-template-columns: 1fr; gap: 36px; }
    .taf-space-img { height: 380px; }
    .taf-gallery-grid { grid-template-columns: 1fr; }
    .taf-gcard-cap { margin: -64px 20px 0; }
    .taf-tests-grid { grid-template-columns: 1fr; }
    /* mid-CTA: photo above + below the red block */
    .taf-midcta { grid-template-columns: 1fr; }
    .taf-midcta-img { height: 240px; }
    .taf-reserve-grid { grid-template-columns: 1fr; }
    .taf-contact h2 { font-size: 92px; }
    .taf-footer-top { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 640px) {
    .taf-section { padding: 64px var(--pad-x); }
    .taf-hero { min-height: 540px; }
    .taf-hero h1 { font-size: 46px; }
    .taf-hero-sub { font-size: 17px; }
    /* address stays on one line */
    .taf-hero-kicker { font-size: 11px; letter-spacing: 0.1em; }
    .taf-hero-kicker span { white-space: nowrap; }
    /* hero buttons stay inline (side by side) */
    .taf-hero-actions { gap: 12px; }
    .taf-hero-actions .taf-btn { flex: 1; padding: 15px 8px; font-size: 14px; white-space: nowrap; }
    /* smaller section headings on mobile */
    .taf-space h2, .taf-gallery h2, .taf-uses h2, .taf-tests h2,
    .taf-reserve-head h2, .taf-faq-head h2 { font-size: 30px; }
    .taf-news-inner { flex-direction: column; align-items: stretch; gap: 20px; }
    .taf-news-form { max-width: none; min-width: 0; }
    .taf-stats { gap: 24px; }
    .taf-stat-num { font-size: 38px; }
    /* gallery feature caption overlaps the image (same as desktop) */
    .taf-gallery-feature-cap { left: 16px; right: 16px; bottom: 16px; max-width: none; padding: 22px 24px; }
    .taf-gallery-feature-cap h3 { font-size: 28px; }
    .taf-uses-grid { grid-template-columns: 1fr; }
    .taf-midcta-mid h2 { font-size: 48px; }
    /* testimonials become a swipeable slider — inset from the edges, cards center */
    .taf-tests-grid { display: flex; grid-template-columns: none; gap: 16px; overflow-x: auto;
                      scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
                      padding-bottom: 10px; scroll-padding-left: var(--pad-x); scrollbar-width: none; }
    .taf-tests-grid::-webkit-scrollbar { display: none; }
    .taf-test { flex: 0 0 85%; scroll-snap-align: center; }
    .taf-contact { padding: 80px var(--pad-x); }
    .taf-contact h2 { font-size: 52px; }
    .taf-contact-cols { gap: 32px; }
    .taf-map-card { left: 20px; right: 20px; bottom: 20px; max-width: none; }
    /* about (full) · Explore | Visit (side by side) · newsletter (full) */
    .taf-footer-top { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
    .taf-footer-top > :first-child, .taf-footer-top > :last-child { grid-column: 1 / -1; }
    /* footer bottom: copyright centered on top; dare to play (left) + Privacy (right) inline below */
    .taf-footer-bottom { justify-content: space-between; row-gap: 14px; }
    .taf-footer-copy { flex: 0 0 100%; text-align: center; }
    .taf-footer-privacy { margin-left: 0; }
    .taf-reach { padding: 24px; }
}
