/* ==========================================================
   NORTH FORK FIREARMS — Design System
   Country Hardware & Heritage
   ========================================================== */

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Lora', Georgia, serif;
  background-color: #F7F0E3;
  color: #2A1A0A;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { text-decoration: none; }
button { cursor: pointer; border: none; background: none; font: inherit; }

/* ── Brand Typography ── */
.font-display { font-family: 'Playfair Display', Georgia, serif; }
.font-body    { font-family: 'Lora', Georgia, serif; }
.font-sub     { font-family: 'Oswald', sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.font-stamp   { font-family: 'Special Elite', monospace; letter-spacing: .04em; }

/* ── Container ── */
.container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1rem;
}
@media (min-width: 640px)  { .container { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .container { padding: 0 2rem; } }

/* ── Section Backgrounds ── */
.section-linen  { background: #F7F0E3; color: #2A1A0A; }
.section-dark   { background: #7A4E28; color: #FDF5E4; position: relative; }
.section-hunter { background: #4E7A4E; color: #FDF5E4; }

/* Wood-grain overlay for .section-dark */
.section-dark::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(92deg,
    transparent, transparent 2px,
    rgba(0,0,0,.03) 2px, rgba(0,0,0,.03) 4px);
  pointer-events: none;
  z-index: 0;
}
.section-dark > .container { position: relative; z-index: 1; }

/* ── Section Badge ── */
.section-badge {
  font-family: 'Special Elite', monospace;
  font-size: .75rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: #C8922A;
  border: 1px solid #C8922A;
  padding: .25rem .75rem;
  display: inline-block;
  opacity: .9;
}

/* ── Rope Divider ── */
.rope-divider {
  height: 12px;
  width: 3rem;
  background-image: repeating-linear-gradient(90deg,
    #C4A882 0, #C4A882 4px,
    #9A7A5A 4px, #9A7A5A 8px);
  opacity: .5;
  border-radius: 6px;
  margin: .75rem auto;
}

/* ── Buttons ── */
.btn-brass {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: linear-gradient(135deg, #C8922A 0%, #E4B84A 50%, #C8922A 100%);
  color: #2A1A0A;
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: .875rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  border: 1px solid #9A6E1A;
  padding: .75rem 2rem;
  transition: all 160ms cubic-bezier(.23,1,.32,1);
  box-shadow: 0 2px 8px rgba(200,146,42,.3);
  cursor: pointer;
}
.btn-brass:hover {
  background: linear-gradient(135deg, #E4B84A 0%, #F0CC6A 50%, #E4B84A 100%);
  box-shadow: 0 4px 16px rgba(200,146,42,.5);
  transform: translateY(-1px);
}
.btn-brass:active { transform: scale(.97) translateY(0); }
.btn-brass.full-width { width: 100%; justify-content: center; }

.btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: transparent;
  color: #C8922A;
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: .875rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  border: 2px solid #C8922A;
  padding: .75rem 2rem;
  transition: all 160ms cubic-bezier(.23,1,.32,1);
  cursor: pointer;
}
.btn-ghost:hover { background: #C8922A; color: #2A1A0A; box-shadow: 0 4px 16px rgba(200,146,42,.4); }
.btn-ghost:active { transform: scale(.97); }
.btn-ghost.light  { border-color: #EDE0C8; color: #EDE0C8; }
.btn-ghost.light:hover { background: #EDE0C8; color: #2A1A0A; }
.btn-ghost.full-width { width: 100%; justify-content: center; }

/* ── Cards ── */
.card {
  background: #FFFDF7;
  border: 1px solid #C4A882;
  transition: all 200ms cubic-bezier(.23,1,.32,1);
}
.card:hover { border-color: #C8922A; box-shadow: 0 4px 20px rgba(200,146,42,.2); transform: translateY(-2px); }

.card-dark {
  background: #7A4E28;
  border: 1px solid rgba(196,168,130,.4);
  transition: border-color 200ms ease;
}
.card-dark:hover { border-color: rgba(200,146,42,.6); }

/* ── NAVBAR ── */
.navbar {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #6B3E1E;
  transition: box-shadow .3s, background .3s;
}
.navbar.scrolled { background: rgba(107,62,30,.98); box-shadow: 0 4px 20px rgba(0,0,0,.2); }

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0;
}
.nav-brand { display: flex; flex-direction: column; line-height: 1; gap: .15rem; }
.nav-brand-name {
  font-family: 'Playfair Display', Georgia, serif;
  color: #C8922A;
  font-size: 1.875rem;
  font-weight: 700;
  letter-spacing: -.01em;
  transition: color .15s;
}
.nav-brand:hover .nav-brand-name { color: #E4B84A; }
.nav-brand-sub {
  font-family: 'Oswald', sans-serif;
  color: rgba(237,224,200,.6);
  font-size: .6875rem;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.nav-links { display: none; gap: .25rem; }
@media (min-width: 1024px) { .nav-links { display: flex; align-items: center; } }

.nav-link {
  font-family: 'Oswald', sans-serif;
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #C4A882;
  padding: .5rem .75rem;
  position: relative;
  transition: color .15s;
}
.nav-link::after {
  content: '';
  position: absolute;
  bottom: 0; left: .75rem; right: .75rem;
  height: 1px;
  background: #C8922A;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .2s ease;
}
.nav-link:hover, .nav-link.active { color: #C8922A; }
.nav-link:hover::after, .nav-link.active::after { transform: scaleX(1); }

.nav-cta { display: none; }
@media (min-width: 768px) { .nav-cta { display: inline-flex; } }

.nav-toggle {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: .25rem;
  cursor: pointer;
  background: none;
  border: none;
}
.nav-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: #C4A882;
  transition: all .25s;
}
.nav-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity: 0; }
.nav-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (min-width: 1024px) { .nav-toggle { display: none; } }

.nav-mobile {
  display: none;
  background: #7A4E28;
  border-top: 1px solid rgba(196,168,130,.3);
  padding: 0 0 1rem;
}
.nav-mobile.open { display: block; }
.nav-mobile-link {
  display: block;
  font-family: 'Oswald', sans-serif;
  font-size: .875rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #C4A882;
  padding: .75rem 1rem;
  border-bottom: 1px solid rgba(196,168,130,.1);
  transition: color .15s;
}
.nav-mobile-link:hover, .nav-mobile-link.active { color: #C8922A; }
.nav-mobile-cta {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 1rem 1rem 0;
  padding: .625rem 1rem;
  justify-content: center;
}

/* ── FOOTER ── */
.footer { background: #6B3E1E; color: #FDF5E4; border-top: 1px solid rgba(196,168,130,.4); }
.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  padding: 3.5rem 0;
}
@media (min-width: 768px) { .footer-grid { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1024px) { .footer-grid { grid-template-columns: repeat(4,1fr); } }

.footer-brand-name {
  font-family: 'Playfair Display', Georgia, serif;
  color: #C8922A;
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: .15rem;
}
.footer-brand-sub {
  font-family: 'Oswald', sans-serif;
  color: rgba(237,224,200,.6);
  font-size: .625rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.footer-body { font-size: .875rem; color: rgba(224,200,152,.9); line-height: 1.6; margin-bottom: 1rem; }

.footer-col-title {
  font-family: 'Oswald', sans-serif;
  color: #EDE0C8;
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding-bottom: .625rem;
  border-bottom: 1px solid rgba(196,168,130,.2);
  margin-bottom: 1.25rem;
}
.footer-links { list-style: none; display: flex; flex-direction: column; gap: .625rem; }
.footer-links a { font-size: .875rem; color: rgba(224,200,152,.9); transition: color .15s; }
.footer-links a:hover { color: #C8922A; }

.footer-hours { list-style: none; display: flex; flex-direction: column; gap: .375rem; }
.footer-hours li { display: flex; justify-content: space-between; gap: 1rem; font-size: .875rem; }
.footer-hours .day  { font-family: 'Lora', Georgia, serif; color: rgba(224,200,152,.8); }
.footer-hours .time { font-family: 'Special Elite', monospace; color: #F5EDD8; font-size: .75rem; }

.footer-contact { list-style: none; display: flex; flex-direction: column; gap: 1rem; }
.footer-contact li { display: flex; gap: .75rem; }
.footer-contact .ico { color: #C8922A; flex-shrink: 0; margin-top: 2px; font-size: 1rem; }
.footer-contact .label { font-family: 'Lora', serif; font-size: .875rem; color: #F5EDD8; }
.footer-contact .sub   { font-family: 'Lora', serif; font-size: .875rem; color: rgba(224,200,152,.9); }
.footer-contact .tiny  { font-family: 'Lora', serif; font-size: .75rem; color: rgba(224,200,152,.7); margin-top: 2px; }
.footer-contact a { color: #F5EDD8; transition: color .15s; }
.footer-contact a:hover { color: #C8922A; }

.footer-bar {
  border-top: 1px solid rgba(196,168,130,.1);
  padding: 1rem 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
}
@media (min-width: 640px) { .footer-bar { flex-direction: row; justify-content: space-between; } }
.footer-bar span { font-family: 'Special Elite', monospace; font-size: .75rem; color: rgba(224,200,152,.6); }

/* ── HERO ── */
.hero {
  position: relative;
  min-height: 90vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(30,18,8,.4), rgba(30,18,8,.15) 60%, transparent);
}
.hero-overlay2 {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(30,18,8,.15), transparent);
}
.hero-content { position: relative; z-index: 2; padding: 6rem 0; }
.hero-badge { margin-bottom: 1.5rem; font-size: .6875rem; }
.hero-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.5rem, 7vw, 4.5rem);
  font-weight: 700;
  color: white;
  line-height: 1.1;
  margin-bottom: 1.5rem;
  text-shadow: 0 2px 12px rgba(0,0,0,.7);
}
.hero-title .accent { color: #C8922A; }
.hero-subtitle {
  font-family: 'Lora', Georgia, serif;
  font-size: 1.125rem;
  color: #FDF5E4;
  line-height: 1.65;
  margin-bottom: 1rem;
  max-width: 38rem;
  text-shadow: 0 1px 6px rgba(0,0,0,.6);
}
.hero-meta {
  font-family: 'Special Elite', monospace;
  font-size: .875rem;
  color: rgba(253,245,228,.9);
  margin-bottom: 2.5rem;
  text-shadow: 0 1px 4px rgba(0,0,0,.6);
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; }
.hero-scroll {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  width: 1px;
  height: 3rem;
  background: linear-gradient(to bottom, transparent, rgba(200,146,42,.6));
}

/* ── PAGE HERO (inner pages) ── */
.page-hero {
  position: relative;
  height: clamp(15rem, 25vw, 22rem);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.page-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.page-hero-overlay { position: absolute; inset: 0; background: linear-gradient(to right, rgba(30,18,8,.95), rgba(30,18,8,.6)); }
.page-hero-overlay2 { position: absolute; inset: 0; background: linear-gradient(to top, rgba(30,18,8,.8), transparent); }
.page-hero-content { position: relative; z-index: 2; padding-bottom: 2.5rem; }
.page-hero-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 700;
  color: #EDE0C8;
  line-height: 1.15;
  margin-top: .75rem;
}
.page-hero-title .accent { color: #C8922A; }

/* ── SERVICES SECTION ── */
.services-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 640px)  { .services-grid { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1024px) { .services-grid { grid-template-columns: repeat(3,1fr); } }

.service-card {
  display: block;
  padding: 1.5rem;
  border: 1px solid rgba(196,168,130,.4);
  background: #6B3E1E;
  transition: all 200ms ease;
  cursor: pointer;
}
.service-card:hover { border-color: rgba(200,146,42,.7); background: #7A4E28; }
.service-icon {
  width: 2.5rem; height: 2.5rem;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid;
  margin-bottom: 1rem;
}
.service-card-title {
  font-family: 'Oswald', sans-serif;
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #EDE0C8;
  margin-bottom: .5rem;
  transition: color .15s;
}
.service-card:hover .service-card-title { color: #C8922A; }
.service-card-desc { font-family: 'Lora', serif; font-size: .875rem; color: rgba(224,200,152,.85); line-height: 1.6; }
.service-card-cta {
  display: flex; align-items: center; gap: .25rem;
  color: #C8922A;
  font-family: 'Oswald', sans-serif;
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-top: 1rem;
  opacity: 0;
  transition: opacity .2s;
}
.service-card:hover .service-card-cta { opacity: 1; }

/* ── PRODUCTS TEASER ── */
.products-teaser {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
}
@media (min-width: 1024px) { .products-teaser { grid-template-columns: repeat(2,1fr); } }

.product-cats { display: grid; grid-template-columns: repeat(2,1fr); gap: .75rem; margin-bottom: 2rem; }
.product-cat { display: flex; align-items: flex-start; gap: .5rem; }
.product-cat-dot { width: .25rem; height: .25rem; border-radius: 50%; background: #C8922A; flex-shrink: 0; margin-top: .4rem; }
.product-cat-name { font-family: 'Oswald', sans-serif; font-size: .75rem; letter-spacing: .05em; text-transform: uppercase; color: #2A1A0A; }
.product-cat-sub  { font-family: 'Lora', serif; font-size: .75rem; color: rgba(74,46,14,.6); }

.products-image-grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 1rem;
}
.products-image-grid .wide { grid-column: span 2; }
.products-image-grid img { width: 100%; object-fit: cover; border: 1px solid #C4A882; }
.products-stat {
  background: #7A4E28;
  border: 1px solid #C4A882;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.products-stat-number { font-family: 'Playfair Display', serif; font-size: 1.875rem; font-weight: 700; color: #C8922A; margin-bottom: .25rem; }
.products-stat-label { font-family: 'Oswald', sans-serif; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: #EDE0C8; text-align: center; }
.products-stat-note { font-family: 'Special Elite', monospace; font-size: .75rem; color: rgba(224,200,152,.8); text-align: center; margin-top: .25rem; }

/* ── ABOUT OWNER ── */
.about-block { max-width: 48rem; margin: 0 auto; text-align: center; }
.about-body { font-family: 'Lora', serif; color: #4A2E0E; line-height: 1.75; margin-bottom: 1rem; }
.about-body.large { font-size: 1.125rem; }
.about-actions { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; margin-top: 2.5rem; }

/* ── TWO-COL LAYOUT ── */
.two-col {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
}
@media (min-width: 1024px) { .two-col { grid-template-columns: repeat(2,1fr); } }
.two-col.align-start { align-items: flex-start; }

.img-with-caption img { width: 100%; object-fit: cover; border: 1px solid rgba(196,168,130,.3); display: block; }
.img-caption { background: #7A4E28; border: 1px solid rgba(196,168,130,.4); border-top: none; padding: 1.25rem 1.5rem; }
.img-caption p { font-family: 'Special Elite', monospace; font-size: .875rem; color: rgba(224,200,152,.8); line-height: 1.6; }

/* ── MEMBERSHIP CTA ── */
.membership-cta-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: center;
}
@media (min-width: 1024px) { .membership-cta-grid { grid-template-columns: 2fr 1fr; } }

.membership-perks { display: grid; grid-template-columns: 1fr; gap: 1rem; margin-top: 1.5rem; }
@media (min-width: 640px) { .membership-perks { grid-template-columns: repeat(3,1fr); } }
.membership-perk { display: flex; align-items: center; gap: .75rem; }
.membership-perk-icon { color: #C8922A; flex-shrink: 0; font-size: 1rem; }
.membership-perk-label { font-family: 'Oswald', sans-serif; font-size: .75rem; letter-spacing: .05em; text-transform: uppercase; color: #EDE0C8; }

.membership-actions { display: flex; flex-direction: column; gap: .75rem; }

/* ── PRODUCTS PAGE ── */
.products-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 768px) { .products-grid { grid-template-columns: repeat(3,1fr); } }

.products-two {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: start;
}
@media (min-width: 1024px) { .products-two { grid-template-columns: repeat(2,1fr); } }

.sticky-img { position: static; }
@media (min-width: 1024px) { .sticky-img { position: sticky; top: 6rem; } }

.supplies-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 768px) { .supplies-grid { grid-template-columns: repeat(2,1fr); } }

.item-stack { display: flex; flex-direction: column; gap: 1rem; }
.item-card { border: 1px solid rgba(196,168,130,.3); padding: 1.25rem; background: #7A4E28; transition: border-color .2s; }
.item-card:hover { border-color: rgba(200,146,42,.5); }

.supply-card { padding: 1.5rem; }
.supply-title {
  font-family: 'Oswald', sans-serif;
  font-size: .875rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #2A1A0A;
  padding-bottom: .75rem;
  border-bottom: 1px solid rgba(196,168,130,.3);
  margin-bottom: 1rem;
}
.supply-list { list-style: none; display: flex; flex-direction: column; gap: .5rem; }
.supply-list li { display: flex; align-items: flex-start; gap: .5rem; }
.supply-dot { width: .25rem; height: .25rem; border-radius: 50%; background: #C8922A; flex-shrink: 0; margin-top: .5rem; }
.supply-list span { font-family: 'Lora', serif; font-size: .875rem; color: rgba(74,46,14,.8); }

/* ── MAINTENANCE PAGE ── */
.why-choose { display: flex; flex-direction: column; gap: 1rem; }
.why-card { display: flex; gap: 1rem; padding: 1.25rem; }
.why-icon { width: 2.5rem; height: 2.5rem; background: rgba(200,146,42,.1); border: 1px solid rgba(200,146,42,.3); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: #C8922A; font-size: 1.125rem; }
.why-title { font-family: 'Oswald', sans-serif; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: #2A1A0A; margin-bottom: .25rem; }
.why-desc  { font-family: 'Lora', serif; font-size: .875rem; color: rgba(74,46,14,.7); }

.services-menu { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 768px) { .services-menu { grid-template-columns: repeat(2,1fr); } }

.svc-card { padding: 1.5rem; border: 1px solid rgba(196,168,130,.4); transition: border-color .2s; }
.svc-card:hover { border-color: rgba(200,146,42,.5); }
.svc-title { font-family: 'Oswald', sans-serif; font-size: .875rem; letter-spacing: .1em; text-transform: uppercase; color: #EDE0C8; margin: .75rem 0 .5rem; }
.svc-desc  { font-family: 'Lora', serif; font-size: .875rem; color: rgba(232,213,168,.85); line-height: 1.6; }
.svc-includes-label { font-family: 'Oswald', sans-serif; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(196,168,130,.5); margin-bottom: .75rem; }
.svc-includes { list-style: none; display: flex; flex-direction: column; gap: .5rem; }
.svc-includes li { display: flex; align-items: flex-start; gap: .5rem; font-family: 'Lora', serif; font-size: .75rem; color: rgba(232,213,168,.8); }
.svc-divider { border: none; border-top: 1px solid rgba(196,168,130,.1); margin: 1.25rem 0; }

.serviced-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
@media (min-width: 768px) { .serviced-grid { grid-template-columns: repeat(3,1fr); } }
.serviced-item { display: flex; align-items: center; gap: .5rem; padding: 1rem; }
.serviced-dot { width: .375rem; height: .375rem; border-radius: 50%; background: #C8922A; flex-shrink: 0; }
.serviced-name { font-family: 'Lora', serif; font-size: .875rem; color: #2A1A0A; }

/* ── CONTACT PAGE ── */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}
@media (min-width: 1024px) { .contact-grid { grid-template-columns: 1fr 2fr; } }

.contact-info { display: flex; flex-direction: column; gap: 1.5rem; }

.contact-card { display: flex; gap: 1rem; padding: 1.25rem; }
.contact-card-icon { width: 2.5rem; height: 2.5rem; background: rgba(200,146,42,.1); border: 1px solid rgba(200,146,42,.3); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: #C8922A; font-size: 1.125rem; }
.contact-card-label { font-family: 'Oswald', sans-serif; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: #2A1A0A; margin-bottom: .25rem; }
.contact-card-main  { font-family: 'Playfair Display', serif; font-size: 1.125rem; font-weight: 600; color: #C8922A; }
.contact-card-main:hover { color: #9A6E1A; }
.contact-card-sub   { font-family: 'Special Elite', monospace; font-size: .75rem; color: rgba(74,46,14,.5); margin-top: .125rem; }

.hours-list { list-style: none; display: flex; flex-direction: column; gap: .375rem; margin-top: .25rem; }
.hours-list li { display: flex; justify-content: space-between; gap: 1rem; font-size: .875rem; padding: .25rem 0; }
.hours-list .day-name { font-family: 'Lora', serif; }
.hours-list .day-time { font-family: 'Special Elite', monospace; font-size: .75rem; color: rgba(74,46,14,.7); }
.hours-list li.today { border-left: 2px solid #C8922A; padding-left: .5rem; margin-left: -.625rem; }
.hours-list li.today .day-name { color: #2A1A0A; font-weight: 600; }
.today-badge { font-family: 'Special Elite', monospace; font-size: .625rem; color: #C8922A; margin-left: .5rem; }
.hours-note { font-family: 'Special Elite', monospace; font-size: .75rem; color: rgba(74,46,14,.4); border-top: 1px solid rgba(196,168,130,.2); padding-top: .75rem; margin-top: .75rem; }

/* Form */
.form-grid-2 { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 640px) { .form-grid-2 { grid-template-columns: repeat(2,1fr); } }

.form-group { display: flex; flex-direction: column; gap: .5rem; }
.form-label { font-family: 'Oswald', sans-serif; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: #2A1A0A; }
.form-input, .form-select, .form-textarea {
  width: 100%;
  border: 1px solid #C4A882;
  background: white;
  padding: .75rem 1rem;
  font-family: 'Lora', Georgia, serif;
  font-size: .875rem;
  color: #2A1A0A;
  outline: none;
  transition: border-color .2s;
  appearance: none;
}
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color: #C8922A; }
.form-textarea { resize: none; }
.form-note { font-family: 'Special Elite', monospace; font-size: .75rem; color: rgba(74,46,14,.4); text-align: center; }

.form-success {
  background: #2B4A2B;
  border: 1px solid rgba(200,146,42,.3);
  padding: 3rem 2rem;
  text-align: center;
}
.form-success-title { font-family: 'Playfair Display', serif; font-size: 1.5rem; font-weight: 700; color: #EDE0C8; margin-bottom: .75rem; }
.form-success-body  { font-family: 'Lora', serif; color: #C4A882; margin-bottom: 1rem; }
.form-success-note  { font-family: 'Special Elite', monospace; font-size: .875rem; color: rgba(196,168,130,.6); }

/* Map */
.map-wrap { width: 100%; height: clamp(18rem, 30vw, 26rem); border-top: 1px solid rgba(196,168,130,.2); }
.map-wrap iframe { width: 100%; height: 100%; border: 0; display: block; }

/* ── CTA SECTIONS ── */
.cta-center { max-width: 42rem; margin: 0 auto; text-align: center; }
.cta-title  { font-family: 'Playfair Display', serif; font-size: clamp(1.5rem, 4vw, 2rem); font-weight: 700; margin-bottom: 1rem; }
.cta-body   { font-family: 'Lora', serif; margin-bottom: 2rem; opacity: .8; line-height: 1.65; max-width: 36rem; margin-left: auto; margin-right: auto; }
.cta-actions { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }

/* ── TIERS (Membership on Home) ── */
.section-title { font-family: 'Playfair Display', serif; font-size: clamp(1.75rem, 4vw, 2.25rem); font-weight: 700; margin-top: 1rem; margin-bottom: 1.5rem; }
.section-sub   { font-family: 'Lora', serif; line-height: 1.65; }

/* ── UTILITY ── */
.text-accent { color: #C8922A; }
.text-cream  { color: #EDE0C8; }
.text-tan    { color: #C4A882; }
.text-muted  { opacity: .7; }
.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
.py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.py-20 { padding-top: 5rem; padding-bottom: 5rem; }
.mb-1 { margin-bottom: .25rem; }
.mb-2 { margin-bottom: .5rem; }
.mb-3 { margin-bottom: .75rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; }
.mb-10{ margin-bottom: 2.5rem; }
.mb-12{ margin-bottom: 3rem; }
.mt-1 { margin-top: .25rem; }
.mt-2 { margin-top: .5rem; }
.mt-4 { margin-top: 1rem; }
.mt-6 { margin-top: 1.5rem; }
.text-center { text-align: center; }
.max-w-3xl { max-width: 48rem; margin-left: auto; margin-right: auto; }
.max-w-xl  { max-width: 36rem; }
.min-h-screen { min-height: 100vh; display: flex; flex-direction: column; }
.flex-1 { flex: 1; }

/* ── Scroll reveal ── */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .5s cubic-bezier(.23,1,.32,1), transform .5s cubic-bezier(.23,1,.32,1); }
.reveal.visible { opacity: 1; transform: translateY(0); }

/* ── Checklist ── */
.checklist { list-style: none; display: flex; flex-direction: column; gap: .75rem; }
.checklist li { display: flex; align-items: flex-start; gap: .625rem; font-family: 'Lora', serif; font-size: .875rem; color: #4A2E0E; }

/* ── SVG icons inline ── */
.ico-sm { width: 1.125rem; height: 1.125rem; display: inline-block; vertical-align: middle; flex-shrink: 0; }
.ico-md { width: 1.375rem; height: 1.375rem; display: inline-block; vertical-align: middle; flex-shrink: 0; }

/* ── Three-col info grid ── */
.steps { display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 768px) { .steps { grid-template-columns: repeat(3,1fr); } }
.step { text-align: center; }
.step-num { font-family: 'Playfair Display', serif; font-size: 2.5rem; font-weight: 700; color: rgba(200,146,42,.35); margin-bottom: .5rem; }
.step-title{ font-family: 'Oswald', sans-serif; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: #EDE0C8; margin-bottom: .5rem; }
.step-desc { font-family: 'Lora', serif; font-size: .875rem; color: rgba(196,168,130,.7); }

/* ── Benefits grid ── */
.benefits-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 640px)  { .benefits-grid { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1024px) { .benefits-grid { grid-template-columns: repeat(3,1fr); } }

.benefit-card { padding: 1.5rem; border: 1px solid rgba(196,168,130,.4); transition: border-color .2s; }
.benefit-card:hover { border-color: rgba(200,146,42,.6); }
.benefit-icon { color: #C8922A; margin-bottom: 1rem; font-size: 1.375rem; }
.benefit-title { font-family: 'Oswald', sans-serif; font-size: .875rem; letter-spacing: .1em; text-transform: uppercase; color: #EDE0C8; margin-bottom: .5rem; }
.benefit-desc  { font-family: 'Lora', serif; font-size: .875rem; color: rgba(232,213,168,.85); line-height: 1.6; }
