/* =========================================================
   Boutique shop template — storefront + owner dashboard
   Design tokens (override these per shop in theme.css)
   ========================================================= */
:root{
  --maroon:        #6b1220;
  --maroon-dark:   #430a13;
  --maroon-soft:   #8a2233;
  --gold:          #c8973f;
  --gold-light:    #e9d29d;
  --gold-deep:     #a67526;
  --cream:         #faf4e8;
  --cream-deep:    #f2e8d5;
  --ivory:         #fffdf9;
  --ink:           #2a1512;
  --ink-soft:      #6b5850;
  --emerald:       #1f4d3d;

  --font-display: 'Cormorant Garamond', 'Georgia', serif;
  --font-body:    'Jost', 'Segoe UI', sans-serif;

  --radius: 2px;
  --shadow-soft: 0 12px 32px -18px rgba(67,10,19,0.35);
  --shadow-card: 0 8px 24px -14px rgba(42,21,18,0.28);
  --max-w: 1240px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{
  font-family: var(--font-display);
  color: var(--maroon-dark);
  margin:0 0 .4em;
  font-weight:600;
  letter-spacing:.01em;
}
.container{
  max-width: var(--max-w);
  margin:0 auto;
  padding: 0 24px;
}
.eyebrow{
  display:inline-block;
  font-family:var(--font-body);
  font-size:.72rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color: var(--gold-deep);
  margin-bottom:.7em;
  font-weight:600;
}
.section{ padding: 76px 0; }
.section-tight{ padding: 48px 0; }
.section-title{
  font-size: clamp(1.9rem, 3.2vw, 2.7rem);
  margin-bottom:.25em;
}
.section-intro{
  max-width: 620px;
  color: var(--ink-soft);
  font-size:1.02rem;
}
.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
  margin-bottom:38px;
}
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 13px 28px;
  border-radius: var(--radius);
  font-size:.86rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:600;
  border:1px solid transparent;
  transition: all .25s ease;
  white-space:nowrap;
}
.btn-primary{
  background: var(--maroon);
  color: var(--ivory);
  border-color: var(--maroon);
}
.btn-primary:hover{ background: var(--maroon-dark); }
.btn-gold{
  background: var(--gold);
  color: var(--maroon-dark);
  border-color: var(--gold);
}
.btn-gold:hover{ background: var(--gold-deep); color:var(--ivory); }
.btn-outline{
  background: transparent;
  color: var(--maroon);
  border-color: var(--maroon);
}
.btn-outline:hover{ background: var(--maroon); color: var(--ivory); }
.btn-outline-light{
  background: transparent;
  color: var(--ivory);
  border-color: rgba(255,255,255,.55);
}
.btn-outline-light:hover{ background: rgba(255,255,255,.12); border-color:#fff; }
.btn-wa{
  background: #25D366;
  color:#fff;
  border-color:#25D366;
}
.btn-wa:hover{ background:#1ebc59; }
.btn-block{ width:100%; justify-content:center; }
.btn-sm{ padding:9px 18px; font-size:.74rem; }

/* ---------- Zari divider — signature motif ----------
   A repeating gold diamond/paisley band, echoing the
   woven zari border that runs along a saree's edge. */
.zari-divider{
  height: 14px;
  width:100%;
  background-image:
    linear-gradient(45deg, var(--gold) 25%, transparent 25%, transparent 75%, var(--gold) 75%),
    linear-gradient(45deg, var(--gold) 25%, transparent 25%, transparent 75%, var(--gold) 75%);
  background-size: 14px 14px;
  background-position: 0 0, 7px 7px;
  opacity:.55;
}
.zari-divider.on-dark{ opacity:.85; }
.zari-rule{
  border:0;
  height:1px;
  background: linear-gradient(90deg, transparent, var(--gold) 20%, var(--gold) 80%, transparent);
  margin: 8px 0 0;
}

/* ---------- Fabric swatch (placeholder artwork) ----------
   Until real photography is dropped in, every product/
   category visual is a woven-pattern swatch so the layout
   still reads like a boutique rather than broken images. */
.swatch{
  position:relative;
  overflow:hidden;
  border-radius: var(--radius);
}
.swatch::after{
  content:"";
  position:absolute; inset:0;
  background-image: repeating-linear-gradient(115deg, rgba(255,255,255,.10) 0 2px, transparent 2px 9px);
  mix-blend-mode: overlay;
}
.swatch .swatch-motif{
  position:absolute; inset:0;
  background-image: radial-gradient(circle at 18% 22%, rgba(255,255,255,.35) 0 2px, transparent 3px),
                     radial-gradient(circle at 62% 68%, rgba(255,255,255,.28) 0 2px, transparent 3px),
                     radial-gradient(circle at 84% 30%, rgba(255,255,255,.22) 0 2px, transparent 3px);
  background-size: 46px 46px;
}
.swatch-1{ background: linear-gradient(135deg, var(--maroon), var(--maroon-soft) 55%, var(--gold)); }
.swatch-2{ background: linear-gradient(135deg, var(--maroon-dark), var(--maroon) 55%, var(--gold-light)); }
.swatch-3{ background: linear-gradient(135deg, var(--cream-deep), var(--cream) 55%, var(--gold-deep)); }
.swatch-4{ background: linear-gradient(135deg, var(--ink), var(--maroon-soft) 55%, var(--gold)); }
.swatch-5{ background: linear-gradient(135deg, var(--maroon-dark), var(--maroon-soft) 55%, var(--gold-deep)); }
.swatch-6{ background: linear-gradient(135deg, var(--emerald), var(--maroon-soft) 55%, var(--gold)); }
.swatch-label{
  position:absolute; left:0; right:0; bottom:0;
  padding: 14px 16px;
  background: linear-gradient(0deg, rgba(0,0,0,.45), transparent);
  color:#fff;
  font-family: var(--font-display);
  font-size:1.15rem;
}

/* ================= HEADER ================= */
.topbar{
  background: var(--maroon-dark);
  color: var(--gold-light);
  font-size:.78rem;
  letter-spacing:.03em;
}
.topbar .container{
  display:flex; justify-content:space-between; align-items:center;
  padding-top:7px; padding-bottom:7px; gap:12px; flex-wrap:wrap;
}
.topbar a{ color:var(--gold-light); }
.topbar .topbar-links{ display:flex; gap:18px; }
.topbar .topbar-links span, .topbar .topbar-links a{ display:inline-flex; align-items:center; gap:6px; }
.topbar svg, .icon-btn svg, .btn svg, .contact-card svg, .pd-trust svg{ width:16px; height:16px; fill:currentColor; flex-shrink:0; }
.icon-btn svg{ width:18px; height:18px; }
@media (max-width:700px){ .hide-sm{ display:none !important; } }

.site-header{
  background: var(--ivory);
  position: sticky; top:0; z-index: 60;
  border-bottom:1px solid var(--cream-deep);
}
.nav-wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding: 16px 0;
  gap: 20px;
}
.logo{
  display:flex; align-items:center; gap:12px;
}
.logo-mark{
  width:46px; height:46px;
  border-radius:50%;
  object-fit:cover;
  flex-shrink:0;
  box-shadow: 0 2px 8px rgba(67,10,19,.25);
}
.logo-text{
  font-family: var(--font-display);
  font-size:2rem;
  color: var(--maroon);
  letter-spacing:.06em;
  display:flex; flex-direction:column; line-height:1;
}
.logo-text small{
  font-family:var(--font-body);
  font-size:.6rem;
  letter-spacing:.32em;
  color: var(--gold-deep);
  text-transform:uppercase;
  margin-top:4px;
}
.main-nav{ display:flex; gap:34px; }
.main-nav a{
  font-size:.86rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  font-weight:500;
  color: var(--ink);
  position:relative;
  padding: 6px 0;
}
.main-nav a::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0;
  height:2px; background:var(--gold);
  transform:scaleX(0); transform-origin:left;
  transition:transform .25s ease;
}
.main-nav a:hover::after,
.main-nav a.active::after{ transform:scaleX(1); }
.main-nav a.active{ color: var(--maroon); }

.nav-actions{ display:flex; align-items:center; gap:16px; }
.icon-btn{
  width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: var(--cream);
  color: var(--maroon);
  border:1px solid var(--cream-deep);
  transition:.2s;
}
.icon-btn:hover{ background: var(--maroon); color:#fff; }
.nav-toggle{
  display:none;
  width:38px;height:38px;
  border:1px solid var(--cream-deep);
  background:var(--cream);
  border-radius:50%;
  align-items:center; justify-content:center;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; display:block; width:16px; height:2px; background:var(--maroon); position:relative;
  transition:.2s;
}
.nav-toggle span::before{ position:absolute; top:-5px; }
.nav-toggle span::after{ position:absolute; top:5px; }

.search-panel{
  max-height:0; overflow:hidden;
  background: var(--cream);
  border-top:1px solid transparent;
  transition:max-height .3s ease;
}
.search-panel.open{ max-height:90px; border-top:1px solid var(--cream-deep); }
.search-panel form{
  display:flex; gap:10px; padding:16px 0;
}
.search-panel input{
  flex:1;
  padding:12px 16px;
  border:1px solid var(--cream-deep);
  background:var(--ivory);
  font-family:inherit;
}

/* Mobile nav */
@media (max-width: 900px){
  .main-nav{
    position:fixed; inset:0 0 0 auto; width:78%; max-width:340px;
    background: var(--ivory);
    flex-direction:column; gap:0;
    padding: 90px 30px 30px;
    transform: translateX(100%);
    transition: transform .3s ease;
    box-shadow: -20px 0 40px rgba(0,0,0,.15);
  }
  .main-nav.open{ transform: translateX(0); }
  .main-nav a{ padding:14px 0; border-bottom:1px solid var(--cream-deep); width:100%; }
  .nav-toggle{ display:flex; }
  body.nav-open::after{
    content:""; position:fixed; inset:0; background:rgba(42,21,18,.4); z-index:55;
  }
}

/* ================= HERO ================= */
.hero{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 78vh;
  background: var(--cream);
}
.hero-copy{
  display:flex; flex-direction:column; justify-content:center;
  padding: 60px clamp(24px,6vw,90px);
}
.hero-copy h1{
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  line-height:1.05;
}
.hero-copy h1 em{ font-style:italic; color: var(--gold-deep); }
.hero-copy p{
  color: var(--ink-soft);
  max-width: 460px;
  margin: 18px 0 30px;
  font-size:1.05rem;
}
.hero-cta{ display:flex; gap:16px; flex-wrap:wrap; }
.hero-stats{
  display:flex; gap:34px; margin-top:46px; flex-wrap:wrap;
}
.hero-stats div strong{
  display:block; font-family:var(--font-display); font-size:1.9rem; color:var(--maroon);
}
.hero-stats div span{ font-size:.76rem; letter-spacing:.05em; color:var(--ink-soft); text-transform:uppercase; }

.hero-art{
  position:relative;
  background: linear-gradient(160deg, var(--maroon) 0%, var(--maroon-dark) 60%, #2c060c 100%);
  overflow:hidden;
  min-height: 340px;
}
.hero-art::before{
  content:"";
  position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 20% 20%, rgba(200,151,63,.35), transparent 40%),
    radial-gradient(circle at 80% 75%, rgba(200,151,63,.28), transparent 45%);
}
.hero-art .paisley-grid{
  position:absolute; inset:0;
  background-image: radial-gradient(rgba(233,210,157,.35) 1.5px, transparent 1.5px);
  background-size: 26px 26px;
  opacity:.5;
}
.hero-art .drape{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:70%; aspect-ratio:3/4;
  border:1px solid rgba(233,210,157,.5);
  display:flex; align-items:center; justify-content:center;
  text-align:center;
}
.hero-art .drape p{
  color: var(--gold-light);
  font-family: var(--font-display);
  font-size:1.3rem;
  padding: 0 30px;
}

/* ================= COLLECTIONS GRID ================= */
.cat-scroll{
  display:grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 18px;
}
.cat-card{
  aspect-ratio: 3/4;
  position:relative;
}
.cat-card .swatch{ height:100%; }
@media (max-width:1000px){ .cat-scroll{ grid-template-columns: repeat(3,1fr); } }
@media (max-width:600px){ .cat-scroll{ grid-template-columns: repeat(2,1fr); } }

.product-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 26px 22px;
}
@media (max-width:1000px){ .product-grid{ grid-template-columns: repeat(3,1fr); } }
@media (max-width:680px){ .product-grid{ grid-template-columns: repeat(2,1fr); gap:16px 12px;} }

.product-card{
  background: var(--ivory);
  box-shadow: var(--shadow-card);
  transition: transform .25s ease, box-shadow .25s ease;
}
.product-card:hover{ transform: translateY(-5px); box-shadow: var(--shadow-soft); }
.product-card .swatch{ aspect-ratio: 3/4; }
.product-card .badge{
  position:absolute; top:12px; left:12px;
  background: var(--gold); color: var(--maroon-dark);
  font-size:.66rem; letter-spacing:.08em; text-transform:uppercase;
  padding: 5px 10px; font-weight:700;
}
.product-card .badge.sale{ background:var(--maroon); color:#fff; }
.product-info{ padding: 16px 16px 18px; }
.product-info .cat{ font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-deep); font-weight:600;}
.product-info h3{ font-size:1.15rem; margin:.25em 0 .3em; }
.price{ display:flex; align-items:baseline; gap:8px; margin-bottom:12px; }
.price .now{ font-family:var(--font-display); font-size:1.3rem; color:var(--maroon); font-weight:600; }
.price .was{ font-size:.85rem; color:var(--ink-soft); text-decoration:line-through; }
.product-actions{ display:flex; gap:8px; }
.product-actions .btn{ flex:1; padding:10px 8px; font-size:.68rem; }

/* filter bar */
.filter-bar{
  display:flex; flex-wrap:wrap; gap:10px; align-items:center;
  padding: 18px 0 30px;
  border-bottom:1px solid var(--cream-deep);
  margin-bottom: 34px;
}
.chip{
  padding:9px 18px;
  border:1px solid var(--maroon);
  color:var(--maroon);
  font-size:.78rem; letter-spacing:.03em; text-transform:uppercase;
  border-radius: 999px;
  background:transparent;
}
.chip.active, .chip:hover{ background:var(--maroon); color:#fff; }
.filter-tools{
  margin-left:auto; display:flex; gap:10px; align-items:center;
}
.filter-tools select, .filter-tools input{
  padding:9px 14px; border:1px solid var(--cream-deep); background:var(--ivory); font-family:inherit;
}
.results-empty{ text-align:center; padding: 60px 20px; color:var(--ink-soft); display:none; }
.results-empty.show{ display:block; }

/* ================= BANDS / BANNER ================= */
.band{
  background: linear-gradient(120deg, var(--maroon-dark), var(--maroon));
  color: var(--ivory);
  position:relative; overflow:hidden;
}
.band .container{
  display:grid; grid-template-columns: 1fr 1fr; align-items:center; gap:40px;
  padding: 70px 24px;
}
.band h2{ color:var(--ivory); }
.band p{ color: var(--gold-light); max-width:420px; }
.band .band-art{ aspect-ratio: 4/3; }
@media (max-width:820px){ .band .container{ grid-template-columns:1fr; } }

/* ================= TESTIMONIALS ================= */
.testimonials{ background: var(--cream-deep); }
.t-track{
  display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px;
}
.t-track::-webkit-scrollbar{ height:6px; }
.t-track::-webkit-scrollbar-thumb{ background: var(--gold); }
.t-card{
  scroll-snap-align:start;
  flex: 0 0 min(360px, 82vw);
  background: var(--ivory);
  padding: 30px 26px;
  box-shadow: var(--shadow-card);
  position:relative;
}
.t-card .quote-mark{
  font-family: var(--font-display); font-size:3rem; color:var(--gold); line-height:1; display:block; margin-bottom:6px;
}
.t-card p.msg{ color: var(--ink-soft); font-size:.98rem; }
.t-card .who{ display:flex; align-items:center; gap:12px; margin-top:18px; }
.t-avatar{
  width:42px; height:42px; border-radius:50%;
  background: linear-gradient(135deg,var(--maroon),var(--gold));
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-family:var(--font-display); font-weight:700;
}
.t-who-name{ font-weight:600; font-size:.92rem; }
.t-who-loc{ font-size:.78rem; color:var(--ink-soft); }
.stars{ color: var(--gold-deep); letter-spacing:2px; font-size:.9rem; }

/* ================= INSTAGRAM ================= */
.insta-grid{
  display:grid; grid-template-columns: repeat(6,1fr); gap:10px;
}
.insta-item{ aspect-ratio:1/1; position:relative; overflow:hidden; }
.insta-item .swatch{ height:100%; }
.insta-item .insta-icon{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background: rgba(67,10,19,0); transition:.25s; opacity:0;
}
.insta-item:hover .insta-icon{ background: rgba(67,10,19,.45); opacity:1; }
.insta-item svg{ width:26px; height:26px; fill:#fff; }
@media (max-width:900px){ .insta-grid{ grid-template-columns: repeat(3,1fr);} }

/* ================= FOOTER ================= */
.site-footer{ background: var(--maroon-dark); color: var(--gold-light); }
.footer-grid{
  display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap:40px;
  padding: 64px 0 34px;
}
@media (max-width:900px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns: 1fr; } }
.footer-grid h4{
  color:#fff; font-family:var(--font-body); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:18px;
}
.footer-grid p, .footer-grid li{ font-size:.9rem; color: rgba(255,255,255,.72); margin-bottom:10px; }
.footer-grid a:hover{ color:#fff; }
.footer-logo{ font-family:var(--font-display); font-size:1.7rem; color:#fff; display:flex; align-items:center; gap:12px; }
.footer-logo-mark{ width:40px; height:40px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.footer-socials{ display:flex; gap:12px; margin-top:16px; }
.footer-socials a{
  width:36px; height:36px; border:1px solid rgba(255,255,255,.3); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.footer-socials svg{ width:16px; height:16px; fill:#fff; }
.newsletter-form{ display:flex; gap:8px; margin-top:6px; }
.newsletter-form input{
  flex:1; padding:11px 14px; border:1px solid rgba(255,255,255,.3); background:transparent; color:#fff;
}
.newsletter-form input::placeholder{ color: rgba(255,255,255,.55); }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.15);
  padding: 20px 0;
  display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
  font-size:.78rem; color: rgba(255,255,255,.6);
}

/* ================= WHATSAPP FLOAT ================= */
.wa-float{
  position:fixed; right:20px; bottom:20px; z-index:80;
  width:58px; height:58px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow: 0 10px 24px rgba(37,211,102,.45);
  animation: wa-pulse 2.6s infinite;
}
.wa-float svg{ width:28px; height:28px; fill:#fff; }
@keyframes wa-pulse{
  0%{ box-shadow:0 0 0 0 rgba(37,211,102,.55); }
  70%{ box-shadow:0 0 0 16px rgba(37,211,102,0); }
  100%{ box-shadow:0 0 0 0 rgba(37,211,102,0); }
}
@media (prefers-reduced-motion: reduce){
  .wa-float{ animation:none; }
  html{ scroll-behavior:auto; }
}

/* ================= PAGE HERO (inner pages) ================= */
.page-hero{
  background: var(--maroon-dark);
  color:#fff;
  padding: 56px 0;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.page-hero::before{
  content:"";
  position:absolute; inset:0;
  background-image: radial-gradient(rgba(233,210,157,.25) 1.5px, transparent 1.5px);
  background-size:24px 24px;
  opacity:.5;
}
.page-hero h1{ color:#fff; position:relative; }
.breadcrumb{ font-size:.8rem; color: var(--gold-light); position:relative; }
.breadcrumb a{ color: var(--gold-light); }
.breadcrumb span{ opacity:.6; margin:0 6px; }

/* ================= PRODUCT DETAIL ================= */
.pd-wrap{ display:grid; grid-template-columns: 1fr 1fr; gap:56px; }
@media (max-width:880px){ .pd-wrap{ grid-template-columns:1fr; gap:30px; } }
.pd-gallery-main{ aspect-ratio:3/4; margin-bottom:14px; }
.pd-thumbs{ display:flex; gap:10px; }
.pd-thumbs .swatch{ width:70px; height:88px; cursor:pointer; border:2px solid transparent; }
.pd-thumbs .swatch.active{ border-color: var(--gold-deep); }
.pd-info .cat{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); font-weight:700; }
.pd-info h1{ font-size:2.1rem; margin:.2em 0 .3em; }
.pd-price{ display:flex; align-items:baseline; gap:12px; margin-bottom:14px; }
.pd-price .now{ font-family:var(--font-display); color:var(--maroon); font-size:2rem; font-weight:700; }
.pd-price .was{ text-decoration:line-through; color:var(--ink-soft); }
.pd-price .save{ background: var(--gold-light); color:var(--maroon-dark); font-size:.72rem; padding:4px 8px; font-weight:700; }
.pd-desc{ color: var(--ink-soft); margin-bottom: 20px; }
.pd-meta{ border-top:1px solid var(--cream-deep); border-bottom:1px solid var(--cream-deep); padding: 16px 0; margin: 18px 0; }
.pd-meta dl{ display:grid; grid-template-columns: 140px 1fr; row-gap:10px; margin:0; }
.pd-meta dt{ color: var(--ink-soft); font-size:.85rem; }
.pd-meta dd{ margin:0; font-weight:500; font-size:.92rem; }
.pd-actions{ display:flex; gap:12px; margin: 22px 0; flex-wrap:wrap; }
.pd-actions .btn{ flex:1; min-width:200px; }
.pd-trust{ display:flex; gap:22px; flex-wrap:wrap; margin-top:20px; }
.pd-trust div{ display:flex; align-items:center; gap:8px; font-size:.82rem; color:var(--ink-soft); }
.pd-trust svg{ width:20px; height:20px; fill:var(--gold-deep); flex-shrink:0; }

.tabs{ margin-top:56px; }
.tab-list{ display:flex; gap:0; border-bottom:1px solid var(--cream-deep); }
.tab-list button{
  padding:14px 22px; background:none; border:none; font-size:.9rem; text-transform:uppercase; letter-spacing:.04em;
  color: var(--ink-soft); border-bottom:2px solid transparent; margin-bottom:-1px;
}
.tab-list button.active{ color: var(--maroon); border-color: var(--maroon); font-weight:600; }
.tab-panel{ display:none; padding: 28px 0; color: var(--ink-soft); }
.tab-panel.active{ display:block; }

/* ================= ABOUT PAGE ================= */
.value-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:24px; }
@media (max-width:900px){ .value-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:560px){ .value-grid{ grid-template-columns: 1fr; } }
.value-card{ background:var(--ivory); padding: 30px 24px; box-shadow: var(--shadow-card); text-align:center; }
.value-card svg{ width:34px; height:34px; fill:var(--maroon); margin-bottom:14px; }
.value-card h3{ font-size:1.15rem; }
.value-card p{ font-size:.9rem; color:var(--ink-soft); }

.timeline{ display:grid; grid-template-columns: repeat(4,1fr); gap:26px; margin-top: 30px; }
@media (max-width:900px){ .timeline{ grid-template-columns: 1fr 1fr; } }
@media (max-width:560px){ .timeline{ grid-template-columns: 1fr; } }
.tl-item{ border-top:3px solid var(--gold); padding-top:16px; }
.tl-item .yr{ font-family: var(--font-display); font-size:1.7rem; color: var(--maroon); }

.about-split{ display:grid; grid-template-columns: .9fr 1.1fr; gap:56px; align-items:center; }
@media (max-width:880px){ .about-split{ grid-template-columns:1fr; } }
.about-split .swatch{ aspect-ratio: 4/5; }

/* ================= CONTACT PAGE ================= */
.contact-grid{ display:grid; grid-template-columns: .9fr 1.1fr; gap:50px; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-form{ display:grid; gap:16px; }
.contact-form label{ font-size:.8rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft); margin-bottom:6px; display:block; }
.contact-form input, .contact-form select, .contact-form textarea{
  width:100%; padding:13px 14px; border:1px solid var(--cream-deep); background:var(--ivory); font-family:inherit; font-size:.95rem;
}
.contact-form textarea{ resize:vertical; min-height:120px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px){ .form-row{ grid-template-columns:1fr; } }

.contact-card{ background:var(--ivory); box-shadow: var(--shadow-card); padding: 26px; margin-bottom:18px; }
.contact-card h3{ font-size:1.05rem; margin-bottom:10px; }
.contact-card .row{ display:flex; gap:12px; align-items:flex-start; margin-bottom:12px; font-size:.92rem; color:var(--ink-soft); }
.contact-card svg{ width:20px; height:20px; fill:var(--gold-deep); flex-shrink:0; margin-top:2px; }
.map-frame{ width:100%; height:340px; border:0; filter: sepia(8%) saturate(92%); }
.hours-table{ width:100%; font-size:.9rem; }
.hours-table td{ padding:5px 0; color:var(--ink-soft); }
.hours-table td:last-child{ text-align:right; font-weight:500; color:var(--ink); }

.faq-item{ border-bottom:1px solid var(--cream-deep); padding: 16px 0; }
.faq-q{ display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-weight:600; }
.faq-a{ max-height:0; overflow:hidden; color:var(--ink-soft); font-size:.92rem; transition:max-height .25s ease; }
.faq-item.open .faq-a{ max-height:200px; padding-top:10px; }
.faq-plus{ transition:.25s; }
.faq-item.open .faq-plus{ transform:rotate(45deg); }

/* misc */
.tag-strip{
  background: var(--gold-light); color: var(--maroon-dark);
  text-align:center; font-size:.82rem; letter-spacing:.03em; padding:9px 16px;
}
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }
.skip-link{
  position:absolute; left:-999px; top:0; background:var(--maroon); color:#fff; padding:10px 16px; z-index:100;
}
.skip-link:focus{ left:10px; top:10px; }
:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:2px; }
