/*
Theme Name: TSC Theme
Author: Information Technology
Description: Theme #1 for the TSC
*/

/* ===== Brand Fonts ===== */
@font-face {
  font-family: 'Espiritu Regular';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/Espiritu-Regular.woff2') format('woff2'),
       url('fonts/Espiritu-Regular.woff') format('woff'),
       url('fonts/Espiritu-Regular.ttf') format('truetype');
}

@font-face {
  font-family: 'Espiritu Script';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/Espiritu-Script.woff2') format('woff2'),
       url('fonts/Espiritu-Script.woff') format('woff'),
       url('fonts/Espiritu-Script.ttf') format('truetype');
}

@font-face {
  font-family: 'Espiritu';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/Espiritu-Script.woff2') format('woff2'),
       url('fonts/Espiritu-Script.woff') format('woff'),
       url('fonts/Espiritu-Script.ttf') format('truetype');
}

@font-face {
  font-family: 'Espiritu Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/Espiritu-Condensed.woff2') format('woff2'),
       url('fonts/Espiritu-Condensed.woff') format('woff'),
       url('fonts/Espiritu-Condensed.ttf') format('truetype');
}

/* ===== Brand Tokens ===== */
:root {
  --tsc-color-primary: #38403F;
  --tsc-color-secondary: #4D5A5A;
  --tsc-color-text: #343434;
  --tsc-color-accent: #93A8A3;
  --tsc-color-transparent: #FFFFFF00;
  --tsc-color-black: #000000;
  --tsc-color-white: #FFFFFF;
  --tsc-color-warm-beige: #F3E6D3;
  --tsc-color-white-overlay: #FFFFFF4A;
  --tsc-color-page-transition: #FFBC7D;
  --tsc-color-link: #64EE77;
  --tsc-color-deep-footer: #1D201D;

  --tsc-font-display: 'Espiritu Regular', serif;
  --tsc-font-script: 'Espiritu Script', cursive;
  --tsc-font-condensed: 'Espiritu Condensed', sans-serif;
  --tsc-font-body: 'Inter', 'Helvetica Neue', sans-serif;
  --tsc-font-accent: 'Jost', 'Helvetica Neue', sans-serif;
  --tsc-font-ui: 'Roboto Condensed', sans-serif;

  --tsc-type-size-base: 16px;
  --tsc-type-weight-regular: 400;
  --tsc-type-weight-medium: 500;
  --tsc-type-tracking-wide: 1px;
  --tsc-type-tracking-wider: 2px;

  --tsc-radius-sm: 10px;
  --tsc-radius-md: 20px;
  --tsc-radius-pill: 100px;
  --tsc-container-max: 1300px;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--tsc-font-body);
  font-size: var(--tsc-type-size-base);
  font-weight: var(--tsc-type-weight-regular);
  color: var(--tsc-color-text);
  background: var(--tsc-color-white);
}

a {
  color: var(--tsc-color-link);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--tsc-font-display);
  color: var(--tsc-color-primary);
}

/* ===== Three Sisters Collective Navbar ===== */
.tsc-navbar {
  position: sticky;
  top: 0;
  z-index: 1020;
  background: rgba(56, 64, 63, 0.92);
  backdrop-filter: saturate(120%) blur(8px);
  -webkit-backdrop-filter: saturate(120%) blur(8px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  transition: background 0.25s ease, box-shadow 0.25s ease;
}

body.admin-bar .tsc-navbar {
  top: 32px;
}

.tsc-navbar.scrolled {
  background: rgba(56, 64, 63, 0.97);
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.4);
}
/* REPLACE the existing .tsc-nav-inner rule */
.tsc-nav-inner {
  max-width: var(--tsc-container-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto 1fr;  /* ← KEY FIX: 3 columns, logo sizes to content */
  align-items: center;
  padding: 0 2rem;
  min-height: 88px;
  /* Remove: position:relative — no longer needed */
}

/* REPLACE left/right/center rules */
.tsc-nav-left {
  display: flex;
  align-items: center;
  justify-content: flex-end;   /* ← pushes links toward center */
  padding-right: 0;            /* ← remove the old 5.75rem padding */
}

.tsc-nav-right {
  display: flex;
  align-items: center;
  justify-content: flex-start; /* ← pulls links toward center */
  padding-left: 0;             /* ← remove the old 5.75rem padding */
}

.tsc-nav-center {
  /* REPLACE the absolute positioning with normal flow */
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 1.25rem;
  /* Remove: position:absolute, left, top, transform, z-index, pointer-events */
}

/* Bigger logo */
.tsc-logo-img {
  max-height: 76px;   /* was 64px */
  width: auto;
  display: block;
  transition: opacity 0.2s;
}
/* Menu lists (Bootstrap navwalker outputs <ul>) */
.tsc-menu {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.4rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tsc-menu .nav-item {
  flex: 0 0 auto;
}

.tsc-menu .nav-item > .nav-link {
  font-family: var(--tsc-font-body);
  font-size: 15px;
  font-weight: var(--tsc-type-weight-medium);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tsc-color-white);
  white-space: nowrap;
  padding: 0 0.8rem;
  min-height: 88px;
  display: flex;
  align-items: center;
  position: relative;
  text-decoration: none;
  transition: color 0.2s;
}
.tsc-menu .nav-item > .nav-link:hover,
.tsc-menu .nav-item > .nav-link:focus {
  color: var(--tsc-color-accent);
}
.tsc-menu .nav-item > .nav-link::after {
  content: '';
  position: absolute;
  bottom: 0; left: 1rem; right: 1rem;
  height: 2px;
  background: var(--tsc-color-accent);
  transform: scaleX(0);
  transition: transform 0.25s ease;
}
.tsc-menu .nav-item > .nav-link:hover::after { transform: scaleX(1); }

/* Logo */
.tsc-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  pointer-events: auto;
}
.tsc-logo-img {
  max-height: 120px;
  width: auto;
  display: block;
  transition: opacity 0.2s;
}
.tsc-logo:hover .tsc-logo-img { opacity: 0.85; }
.tsc-logo-text {
  font-family: var(--tsc-font-display);
  font-size: 20px;
  color: var(--tsc-color-white);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Icon buttons */
.tsc-icons { display: flex; align-items: center; gap: 2px; margin-left: 6px; }
.tsc-icon-btn {
  width: 36px; height: 36px;
  border: none; background: transparent;
  color: var(--tsc-color-white);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; border-radius: 6px;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.tsc-icon-btn:hover { background: var(--tsc-color-white-overlay); color: var(--tsc-color-accent); }

/* Mobile menu */
.tsc-mobile-menu { padding: 1rem 2rem 1.5rem; }
.tsc-mobile-nav { list-style: none; margin: 0; padding: 0; }
.tsc-mobile-nav .nav-item > .nav-link {
  display: block;
  padding: 10px 0;
  font-family: var(--tsc-font-condensed);
  font-size: 20px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tsc-color-white);
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  text-decoration: none;
}
.tsc-mobile-nav .nav-item > .nav-link:hover { color: var(--tsc-color-accent); }

/* Scroll shadow trigger */
@media (max-width: 991px) {
  .tsc-nav-left, .tsc-nav-center { display: none; }
  .tsc-nav-right {
    grid-column: 1 / -1;
    justify-content: flex-end;
    padding-left: 0;
  }
  .tsc-nav-inner { grid-template-columns: 1fr; }
}

/* ===== Home Page ===== */
.tsc-home-page {
  background:
    radial-gradient(circle at top, rgba(147, 168, 163, 0.18), transparent 34%),
    linear-gradient(180deg, #f7f3ec 0%, #eef2ee 24%, #fbf8f3 49%, #eef3f1 74%, #38403f 100%);
}

.tsc-home-shell {
  width: min(var(--tsc-container-max), calc(100% - 3rem));
  margin: 0 auto;
}

.tsc-home-section {
  position: relative;
  padding: 2rem 0;
}

.tsc-home-section::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 90px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.42));
  pointer-events: none;
}

.tsc-section-kicker {
  margin: 0 0 0.75rem;
  font-family: var(--tsc-font-script);
  font-size: 2rem;
  color: var(--tsc-color-accent);
}


.tsc-section-heading {
  max-width: 700px;
  margin: 0 auto; 
  text-align: center;
}

.tsc-section-heading h2,
.tsc-home-hero h1 {
  margin: 0;
  font-family: var(--tsc-font-display);
  font-weight: var(--tsc-type-weight-regular);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.02;
  text-align: center;
}

.tsc-home-hero {
  overflow: hidden;
  padding: 8rem 0 7rem;
  background:
    linear-gradient(135deg, rgba(56, 64, 63, 0.92), rgba(77, 90, 90, 0.78)),
    radial-gradient(circle at top, rgba(243, 230, 211, 0.18), transparent 40%);
  color: var(--tsc-color-white);
 min-height: 90vh;

}

.tsc-home-hero::after {
  display: none;
}

.tsc-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.tsc-hero-media::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(20, 20, 20, 0.46), rgba(20, 20, 20, 0.22)),
    rgba(0, 0, 0, 0.26);
}

.tsc-hero-media iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 177.78vh;
  min-width: 100%;
  min-height: 56.25vw;
  height: 100%;
  transform: translate(-50%, -50%);
  border: 0;
}

.tsc-home-hero .tsc-home-shell {
  max-width: 880px;
  text-align: center;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.tsc-home-hero .tsc-section-kicker,
.tsc-home-hero h1,
.tsc-home-hero p {
  color: var(--tsc-color-white);
}

.tsc-home-hero .tsc-section-kicker {
  font-family: 'Espiritu', 'Espiritu Script', 'Segoe Script', 'Brush Script MT', cursive;
  font-style: normal;
  font-size: clamp(2rem, 4vw, 2.5rem);
  text-transform: none;
  letter-spacing: 0;
}

.tsc-hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  margin: 0 0 1rem;
}

.tsc-hero-kicker::before,
.tsc-hero-kicker::after {
  content: '';
  display: block;
  width: clamp(2.5rem, 6vw, 4.5rem);
  height: 1px;
  background: rgba(255, 255, 255, 0.75);
}

.tsc-home-hero h1 {
  font-family: var(--tsc-font-display);
  font-weight: var(--tsc-type-weight-regular);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: clamp(2.4rem, 5.8vw, 4.6rem);
}

.tsc-hero-heading-nowrap {
  white-space: nowrap;
}

.tsc-hero-subheading {
  margin: 1.1rem 0 0;
  font-size: clamp(1.15rem, 2vw, 1.6rem);
  font-family: var(--tsc-font-display);
  font-weight: var(--tsc-type-weight-regular);
  letter-spacing: 0.04em;
  line-height: 1.35;
  text-transform: uppercase;
  color: var(--tsc-color-white);
}

.tsc-hero-copy,
.tsc-section-heading p,
.tsc-pillar-card p,
.tsc-review-card p,
.tsc-location-card p {
  font-family: var(--tsc-font-body);
  font-size: 1.05rem;
  line-height: 1.8;
}

.tsc-hero-copy {
  max-width: 680px;
  margin: 0.85rem auto 0;
  color: rgba(255, 255, 255, 0.86);
  text-align: center;
  font-family: var(--tsc-font-display);
  font-weight: var(--tsc-type-weight-regular);
}

.tsc-hero-actions,
.tsc-contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin-top: 2rem;
}

.tsc-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 180px;
  padding: 1rem 1.75rem;
  border: 2px solid transparent;
  border-radius: var(--tsc-radius-pill);
  font-family: var(--tsc-font-condensed);
  font-size: 1.2rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.tsc-button:hover {
  transform: translateY(-2px);
}

.tsc-button-primary {
  background: var(--tsc-color-white);
  color: var(--tsc-color-primary);
}

.tsc-button-primary:hover {
  background: var(--tsc-color-accent);
  color: var(--tsc-color-white);
}

.tsc-button-secondary {
  border-color: rgba(255, 255, 255, 0.7);
  background: transparent;
  color: var(--tsc-color-white);
}

.tsc-button-secondary:hover {
  border-color: var(--tsc-color-white);
  background: rgba(255, 255, 255, 0.08);
  color: var(--tsc-color-white);
}

.tsc-home-pillars {
  background: linear-gradient(180deg, rgba(243, 230, 211, 0.88), rgba(255, 255, 255, 0.78));
  margin-top: -1px;
}

.tsc-home-pillars::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  height: 96px;
  background: linear-gradient(180deg, rgba(20, 20, 20, 0), rgba(243, 230, 211, 0.88));
  pointer-events: none;
}

.tsc-home-pillars .tsc-section-heading h2,
.tsc-home-categories .tsc-section-heading h2,
.tsc-home-reviews .tsc-section-heading h2,
.tsc-home-contact .tsc-section-heading h2,
.tsc-home-location .tsc-section-heading h2 {
  font-size: clamp(2rem, 4.5vw, 3.5rem);
}

.tsc-pillar-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 2.5rem;
}

.tsc-pillar-card,
.tsc-review-card,
.tsc-location-card,
.tsc-contact-panel {
  border-radius: var(--tsc-radius-md);
  box-shadow: 0 18px 45px rgba(52, 52, 52, 0.08);
}

.tsc-pillar-card {
  padding: 2rem;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(147, 168, 163, 0.18);
}

.tsc-pillar-card h3,
.tsc-location-card h3 {
  margin: 0 0 0.8rem;
  font-family: var(--tsc-font-condensed);
  font-size: 1.65rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--tsc-color-primary);
}

.tsc-pillar-card a {
  font-family: var(--tsc-font-accent);
  font-weight: var(--tsc-type-weight-medium);
  color: var(--tsc-color-secondary);
  text-decoration: none;
}

.tsc-home-categories {
  background: linear-gradient(180deg, rgba(238, 243, 241, 0.9), rgba(243, 230, 211, 0.58));
}

/* ===== Category Strip ===== */
.tsc-home-categories .tsc-home-shell {
  margin-bottom: 2rem;
}

.tsc-category-strip {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  padding: 0.5rem 2rem 1.5rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(56,64,63,0.2) transparent;
  -webkit-overflow-scrolling: touch;
  width: 100%;
  justify-content: center;  /* centers when all cards fit */
  flex-wrap: wrap;
}

/* On small screens, switch back to scroll row */
@media (max-width: 767px) {
  .tsc-category-strip {
    flex-wrap: nowrap;        /* single row */
    justify-content: flex-start;
    padding: 0.5rem 1rem 1.25rem;
  }
}

.tsc-category-strip::-webkit-scrollbar {
  height: 4px;
}
.tsc-category-strip::-webkit-scrollbar-track {
  background: transparent;
}
.tsc-category-strip::-webkit-scrollbar-thumb {
  background: rgba(56,64,63,0.2);
  border-radius: 100px;
}

/* Individual card */
.tsc-cat-card {
  flex: 0 0 auto;
  width: 140px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.2s ease;
}

.tsc-cat-card:hover {
  transform: translateY(-4px);
}

/* Image circle */
.tsc-cat-img-wrap {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  overflow: hidden;
  background: rgba(56, 64, 63, 0.08);
  border: 2px solid rgba(56, 64, 63, 0.1);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  flex-shrink: 0;
}

.tsc-cat-card:hover .tsc-cat-img-wrap {
  border-color: var(--tsc-color-accent);
  box-shadow: 0 8px 24px rgba(147, 168, 163, 0.3);
}

.tsc-cat-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.tsc-cat-card:hover .tsc-cat-img-wrap img {
  transform: scale(1.08);
}

/* Label */
.tsc-cat-card span {
  font-family: var(--tsc-font-condensed);
  font-size: 0.95rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tsc-color-primary);
  text-align: center;
  line-height: 1.2;
}

.tsc-cat-card:hover span {
  color: var(--tsc-color-accent);
}

@media (max-width: 767px) {
  .tsc-category-strip {
    padding: 0.5rem 1rem 1.25rem;
    gap: 0.75rem;
  }
  .tsc-cat-card  { width: 110px; }
  .tsc-cat-img-wrap { width: 90px; height: 90px; }
}

.tsc-home-reviews {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(147, 168, 163, 0.2));
}

.tsc-review-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 2.5rem;
}

.tsc-review-card {
  margin: 0;
  padding: 2rem;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(56, 64, 63, 0.08);
}

.tsc-review-card cite {
  display: block;
  margin-top: 1rem;
  font-family: var(--tsc-font-condensed);
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--tsc-color-secondary);
}

.tsc-home-contact {
  background: linear-gradient(180deg, rgba(77, 90, 90, 0.16), rgba(56, 64, 63, 0.9));
}

.tsc-contact-panel {
  padding: 3rem;
  background: linear-gradient(135deg, rgba(56, 64, 63, 0.94), rgba(77, 90, 90, 0.84));
}

.tsc-home-contact .tsc-section-heading,
.tsc-home-contact .tsc-section-heading h2,
.tsc-home-contact .tsc-section-heading p {
  color: var(--tsc-color-white);
}

.tsc-home-location {
  background: linear-gradient(180deg, rgba(56, 64, 63, 1), rgba(29, 32, 29, 1));
  color: var(--tsc-color-white);
}

.tsc-home-location::after {
  display: none;
}

.tsc-home-location .tsc-section-heading,
.tsc-home-location .tsc-section-heading h2,
.tsc-home-location .tsc-section-heading p,
.tsc-home-location .tsc-section-kicker {
  color: var(--tsc-color-white);
}

.tsc-location-card {
  padding: 2rem;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.tsc-location-card .tsc-button-primary {
  margin-top: 1rem;
}

@media (max-width: 991px) {
  .tsc-home-section {
    padding: 5rem 0;
  }

  .tsc-pillar-grid,
  .tsc-review-grid,
  .tsc-location-layout {
    grid-template-columns: 1fr;
  }

  .tsc-contact-panel {
    padding: 2rem;
  }
}

@media (max-width: 767px) {
  body.admin-bar .tsc-navbar {
    top: 46px;
  }

  .tsc-hero-heading-nowrap {
    white-space: normal;
  }

  .tsc-home-shell {
    width: min(var(--tsc-container-max), calc(100% - 1.5rem));
  }

  .tsc-home-hero {
    padding: 6rem 0 5rem;
  }

  .tsc-hero-kicker {
    gap: 0.65rem;
  }

  .tsc-hero-kicker::before,
  .tsc-hero-kicker::after {
    width: 2.25rem;
  }

  .tsc-home-section {
    padding: 4rem 0;
  }

  .tsc-section-kicker {
    font-size: 1.6rem;
  }

  .tsc-pillar-card,
  .tsc-review-card,
  .tsc-location-card,
  .tsc-contact-panel {
    padding: 1.5rem;
  }

  .tsc-button {
    width: 100%;
  }
}

/* ===== Footer ===== */
.tsc-site-footer {
  background: #1e211d;
  color: var(--tsc-color-white);
}

.tsc-footer-shell {
  width: min(var(--tsc-container-max), calc(100% - 3rem));
  margin: 0 auto;
  padding: 4.5rem 0 1rem;
}

.tsc-footer-grid {
  display: grid;
  grid-template-columns: 1.15fr 1.1fr 1.2fr 0.85fr;
  gap: 2.5rem;
  align-items: start;
}

.tsc-footer-brand,
.tsc-footer-column {
  min-width: 0;
}

.tsc-footer-logo-link {
  display: inline-flex;
  text-decoration: none;
}

.tsc-footer-logo {
  width: 150px;
  max-width: 100%;
  height: auto;
  display: block;
}

.tsc-footer-disclaimer,
.tsc-footer-contact-list,
.tsc-footer-social-copy,
.tsc-footer-bottom p {
  font-family: var(--tsc-font-body);
  font-size: 1rem;
  line-height: 1.6;
}

.tsc-footer-disclaimer {
  max-width: 290px;
  margin: 1rem 0 0;
  color: rgba(255, 255, 255, 0.92);
}

.tsc-footer-column h2 {
  margin: 0 0 1.25rem;
  font-family: var(--tsc-font-ui);
  font-size: 1.9rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #9eaaa5;
}

.tsc-footer-contact-list {
  margin: 0;
  font-style: normal;
}

.tsc-footer-contact-list p {
  margin: 0 0 1rem;
}

.tsc-footer-contact-list a,
.tsc-footer-bottom p,
.tsc-footer-social-copy {
  color: var(--tsc-color-white);
  text-decoration: none;
}

.tsc-footer-hours {
  display: grid;
  gap: 0.85rem;
}

.tsc-footer-hours div {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 1rem;
  align-items: baseline;
  font-family: var(--tsc-font-body);
  font-size: 1rem;
}

.tsc-footer-hours span:first-child {
  font-family: var(--tsc-font-ui);
  font-weight: 700;
  color: #93a8a3;
}

.tsc-footer-social-copy {
  max-width: 260px;
  margin: 0 0 1.5rem;
}

.tsc-footer-socials {
  display: flex;
  gap: 1.1rem;
  align-items: center;
}

.tsc-footer-social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  color: var(--tsc-color-white);
  text-decoration: none;
  transition: transform 0.2s ease, color 0.2s ease;
}

.tsc-footer-social-link:hover {
  color: var(--tsc-color-accent);
  transform: translateY(-2px);
}

.tsc-footer-social-link svg {
  width: 30px;
  height: 30px;
  fill: currentColor;
}

.tsc-footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.tsc-footer-bottom p {
  margin: 0;
}

.tsc-footer-bottom-link {
  font-family: var(--tsc-font-body);
  font-size: 1rem;
  color: var(--tsc-color-white);
  text-decoration: none;
  transition: color 0.2s ease;
}

.tsc-footer-bottom-link:hover {
  color: var(--tsc-color-accent);
}

@media (max-width: 991px) {
  .tsc-footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 767px) {
  .tsc-footer-shell {
    width: min(var(--tsc-container-max), calc(100% - 1.5rem));
    padding: 3rem 0 1rem;
  }

  .tsc-footer-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .tsc-footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ===== Age Gate ===== */
body.tsc-age-locked {
  overflow: hidden;
}

#tsc-age-gate {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(20, 24, 20, 0.97);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.tsc-age-modal {
  background: var(--tsc-color-primary);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--tsc-radius-md);
  padding: 3rem 2.5rem;
  max-width: 420px;
  width: 100%;
  text-align: center;
}

.tsc-age-logo img {
  height: 160px;
  width: auto;
  margin: 0 auto 1.5rem;
  display: block;
  opacity: 0.9;
}

.tsc-age-modal h2 {
  font-family: var(--tsc-font-display);
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tsc-color-white);
  margin: 0 0 0.6rem;
}

.tsc-age-modal > p {
  font-family: var(--tsc-font-body);
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.7;
  margin: 0 0 2rem;
}

.tsc-age-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.tsc-age-yes,
.tsc-age-no {
  padding: 0.9rem 1rem;
  border-radius: var(--tsc-radius-pill);
  font-family: var(--tsc-font-condensed);
  font-size: 1rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity 0.2s, transform 0.2s;
}

.tsc-age-yes {
  background: var(--tsc-color-accent);
  color: var(--tsc-color-primary);
  border: none;
}

.tsc-age-no {
  background: transparent;
  color: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.tsc-age-yes:hover { opacity: 0.88; transform: translateY(-1px); }
.tsc-age-no:hover  { border-color: rgba(255,255,255,0.4); color: rgba(255,255,255,0.8); }

.tsc-age-disclaimer {
  font-family: var(--tsc-font-body);
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.25);
  line-height: 1.6;
  margin: 0;
}

.tsc-age-disclaimer a {
  color: rgba(255, 255, 255, 0.4);
  text-decoration: underline;
}

@media (max-width: 480px) {
  .tsc-age-modal { padding: 2rem 1.5rem; }
  .tsc-age-actions { grid-template-columns: 1fr; }
}

/* =========================================
   MOBILE + TABLET RESPONSIVE FIXES
========================================= */

/* ---------- LARGE TABLETS ---------- */
@media (max-width: 1100px) {

  .tsc-nav-inner {
    grid-template-columns: 1fr auto;
    min-height: 82px;
    padding: 0 1.25rem;
  }

  .tsc-nav-left {
    display: none;
  }

  .tsc-nav-center {
    justify-content: flex-start;
    padding: 0;
  }

  .tsc-nav-right {
    justify-content: flex-end;
  }

  .tsc-logo-img {
    max-height: 86px;
  }

  .tsc-menu .nav-item > .nav-link {
    font-size: 14px;
    padding: 0 0.65rem;
  }
}

/* ---------- MOBILE NAVBAR ---------- */
@media (max-width: 767px) {

  body.admin-bar .tsc-navbar {
    top: 46px;
  }

  .tsc-navbar {
    backdrop-filter: blur(10px);
  }

  .tsc-nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 74px;
    padding: 0 1rem;
    gap: 1rem;
  }

  /* Hide desktop nav sections */
  .tsc-nav-left {
    display: none;
  }

  .tsc-nav-center {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex: 1;
    padding: 0;
  }

  .tsc-nav-right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-shrink: 0;
    grid-column: auto;
  }

  /* Smaller mobile logo */
  .tsc-logo-img {
    max-height: 62px;
    width: auto;
  }

  /* Mobile menu spacing */
  .tsc-mobile-menu {
    padding: 1rem 1.25rem 1.5rem;
    background: rgba(29, 32, 29, 0.98);
    border-top: 1px solid rgba(255,255,255,0.08);
  }

  .tsc-mobile-nav .nav-item > .nav-link {
    font-size: 18px;
    padding: 14px 0;
    line-height: 1.3;
  }

  /* Icons */
  .tsc-icons {
    gap: 0.35rem;
    margin-left: 0;
  }

  .tsc-icon-btn {
    width: 40px;
    height: 40px;
  }

  /* Hero improvements */
  .tsc-home-hero {
    min-height: auto;
    padding: 5rem 0 4rem;
  }

  .tsc-home-hero h1 {
    font-size: clamp(2rem, 10vw, 3rem);
    line-height: 1.05;
  }

  .tsc-hero-subheading {
    font-size: 1rem;
    line-height: 1.5;
  }

  .tsc-hero-copy {
    font-size: 0.98rem;
    line-height: 1.75;
  }

  /* Buttons full width */
  .tsc-hero-actions,
  .tsc-contact-actions {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }

  .tsc-button {
    width: 100%;
    min-width: 0;
  }

  /* Better spacing */
  .tsc-home-section {
    padding: 3.5rem 0;
  }

  .tsc-section-heading h2 {
    line-height: 1.1;
  }

  /* Cards */
  .tsc-pillar-card,
  .tsc-review-card,
  .tsc-location-card,
  .tsc-contact-panel {
    padding: 1.35rem;
    border-radius: 18px;
  }
}

/* ---------- SMALL PHONES ---------- */
@media (max-width: 480px) {

  .tsc-nav-inner {
    min-height: 68px;
    padding: 0 0.85rem;
  }

  .tsc-logo-img {
    max-height: 54px;
  }

  .tsc-mobile-nav .nav-item > .nav-link {
    font-size: 17px;
    padding: 12px 0;
  }

  .tsc-home-shell {
    width: calc(100% - 1rem);
  }

  .tsc-home-hero {
    padding: 4.5rem 0 3.5rem;
  }

  .tsc-home-hero h1 {
    font-size: 1.85rem;
    letter-spacing: 0.04em;
  }

  .tsc-section-kicker {
    font-size: 1.35rem;
  }

  .tsc-hero-copy,
  .tsc-section-heading p,
  .tsc-pillar-card p,
  .tsc-review-card p,
  .tsc-location-card p {
    font-size: 0.95rem;
    line-height: 1.7;
  }

  .tsc-button {
    padding: 0.95rem 1.1rem;
    font-size: 1rem;
  }
}

/* =========================================
   FOOTER MOBILE IMPROVEMENTS
========================================= */

@media (max-width: 767px) {

  .tsc-footer-shell {
    width: calc(100% - 1.5rem);
    padding: 3rem 0 1.25rem;
  }

  .tsc-footer-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
    text-align: center;
  }

  .tsc-footer-brand,
  .tsc-footer-column {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .tsc-footer-logo {
    width: 115px;
  }

  .tsc-footer-disclaimer,
  .tsc-footer-social-copy {
    max-width: 100%;
  }

  .tsc-footer-column h2 {
    font-size: 1.45rem;
    margin-bottom: 1rem;
  }

  .tsc-footer-contact-list p {
    margin-bottom: 0.8rem;
  }

  .tsc-footer-hours {
    width: 100%;
    max-width: 260px;
  }

  .tsc-footer-hours div {
    grid-template-columns: 46px 1fr;
    text-align: left;
  }

  .tsc-footer-socials {
    justify-content: center;
  }

  .tsc-footer-bottom {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.75rem;
    margin-top: 2rem;
  }
}

/* ---------- EXTRA SMALL DEVICES ---------- */
@media (max-width: 420px) {

  .tsc-footer-shell {
    width: calc(100% - 1rem);
  }

  .tsc-footer-column h2 {
    font-size: 1.25rem;
  }

  .tsc-footer-disclaimer,
  .tsc-footer-contact-list,
  .tsc-footer-social-copy,
  .tsc-footer-bottom p,
  .tsc-footer-bottom-link {
    font-size: 0.92rem;
  }

  .tsc-footer-hours div {
    font-size: 0.92rem;
  }

  .tsc-footer-social-link {
    width: 38px;
    height: 38px;
  }

  .tsc-footer-social-link svg {
    width: 24px;
    height: 24px;
  }
}