/* =========================================================
   R. CHUNILAL — 2026 revamp
   Elegant, modern, trade-focused.
   Deep green · antique brass · warm paper.
   ========================================================= */

:root{
  --paper:      #FAF7F0;
  --paper-2:    #F3EEE1;
  --surface:    #FFFFFF;
  --line:       #E7E0CF;

  --green-950:  #05231A;
  --green-900:  #073826;
  --green-800:  #0A4A33;
  --green-700:  #11593F;
  --green-soft: #E9F1EC;

  --brass:      #B38B2E;
  --brass-300:  #D9BC72;
  --brass-soft: #F2E8CF;

  --ink:        #1B2620;
  --muted:      #67756C;
  --on-dark:    #F3EFE3;
  --on-dark-2:  #AFC3B8;
  --dark-line:  rgba(243, 239, 227, 0.14);

  --display: "Fraunces", Georgia, "Times New Roman", serif;
  --sans: "Manrope", "Segoe UI", system-ui, sans-serif;

  --max: 1200px;
  --pad: clamp(20px, 5vw, 60px);
  --r-sm: 10px;
  --r: 18px;
  --r-lg: 26px;
}

/* ---------- Base ---------- */
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: var(--sans);
  font-size:16px;
  line-height:1.7;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
p{ margin:0 0 1em; }
h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:520;
  line-height:1.08;
  letter-spacing:-0.015em;
  margin:0;
  color:var(--green-900);
  text-wrap:balance;
}
.container{
  max-width:var(--max);
  margin:0 auto;
  padding-left:var(--pad);
  padding-right:var(--pad);
}
.section{ padding: clamp(64px, 9vw, 120px) 0; }
.section--tight{ padding: clamp(40px, 6vw, 72px) 0; }

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--sans);
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:var(--brass);
}

.band-dark{
  background:
    radial-gradient(1100px 500px at 85% -10%, rgba(179,139,46,0.14), transparent 60%),
    var(--green-950);
  color:var(--on-dark);
}
.band-dark h1,.band-dark h2,.band-dark h3{ color:var(--on-dark); }
.band-dark p{ color:var(--on-dark-2); }

/* ---------- Header ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:80;
  background:rgba(250,247,240,0.88);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.site-header__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding-top:14px;
  padding-bottom:14px;
}
.brand{
  display:flex;
  align-items:center;
  gap:14px;
}
.brand__logo{
  height:58px;
  width:auto;
  object-fit:contain;
  mix-blend-mode:multiply;
}
.brand__text{ display:flex; flex-direction:column; line-height:1.08; }
.brand__name{
  font-family:var(--display);
  font-size:1.45rem;
  font-weight:560;
  color:var(--green-900);
}
.brand__tag{
  font-size:0.64rem;
  font-weight:700;
  letter-spacing:0.3em;
  text-transform:uppercase;
  color:var(--brass);
  margin-top:3px;
}
.nav{ display:flex; align-items:center; gap:26px; }
.nav__links{ display:flex; gap:6px; }
.nav__links a{
  font-size:0.86rem;
  font-weight:600;
  color:var(--muted);
  padding:9px 15px;
  border-radius:999px;
  transition:color .15s, background .15s;
}
.nav__links a:hover{ color:var(--green-900); background:var(--paper-2); }
.nav__links a[aria-current="page"]{
  color:var(--on-dark);
  background:var(--green-900);
}
.nav__toggle{
  display:none;
  background:none;
  border:1px solid var(--line);
  color:var(--green-900);
  border-radius:12px;
  width:44px;
  height:40px;
  font-size:1.25rem;
  cursor:pointer;
}
@media (max-width: 900px){
  .nav__links{ display:none; }
  .nav__toggle{ display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .site-header.nav-open .nav__links{
    display:flex;
    flex-direction:column;
    position:absolute;
    top:100%;
    left:0; right:0;
    z-index:100;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    box-shadow:0 18px 32px rgba(5,35,26,0.14);
    padding:14px var(--pad) 22px;
    gap:6px;
  }
  .site-header.nav-open .nav__links a{
    display:block;
    width:100%;
    padding:11px 16px;
    border-radius:12px;
    font-size:0.9rem;
  }
  .brand__logo{ height:46px; }
  .brand__name{ font-size:1.25rem; }
}

@media (max-width: 420px){
  .site-header__inner{ gap:12px; }
  .brand{ min-width:0; gap:10px; }
  .brand__text{ min-width:0; }
  .brand__name{ font-size:1.12rem; white-space:nowrap; }
  .brand__tag{ font-size:0.56rem; letter-spacing:0.22em; white-space:nowrap; }
  .nav{ flex-shrink:0; }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  font-family:var(--sans);
  font-size:0.9rem;
  font-weight:700;
  letter-spacing:0.01em;
  padding:14px 26px;
  border-radius:999px;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .15s ease, background .15s, color .15s, border-color .15s, box-shadow .15s;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-1px); }
.btn:active{ transform:translateY(0); }
.btn--primary{
  background:var(--green-900);
  color:var(--on-dark);
}
.btn--primary:hover{ background:var(--green-800); box-shadow:0 10px 24px rgba(7,56,38,0.22); }
.btn--brass{
  background:var(--brass);
  color:#fff;
}
.btn--brass:hover{ background:#C09A3F; box-shadow:0 10px 24px rgba(179,139,46,0.28); }
.btn--outline{
  background:transparent;
  color:var(--green-900);
  border-color:var(--green-900);
}
.btn--outline:hover{ background:var(--green-900); color:var(--on-dark); }
.btn--outline-light{
  background:transparent;
  color:var(--on-dark);
  border-color:var(--dark-line);
}
.btn--outline-light:hover{ border-color:var(--brass-300); color:var(--brass-300); }

/* ---------- Hero (home) ---------- */
.hero{
  position:relative;
  overflow:hidden;
  padding: clamp(72px, 10vw, 140px) 0 clamp(56px, 8vw, 104px);
}
.hero::after{
  /* oversized ghost emblem, bottom-right */
  content:"";
  position:absolute;
  right:-140px;
  bottom:-190px;
  width:620px;
  height:620px;
  background:url("../images/logo-emblem.png") no-repeat center / contain;
  opacity:0.07;
  pointer-events:none;
}
.hero__inner{ position:relative; max-width:840px; }
.hero h1{
  font-size:clamp(2.7rem, 6.2vw, 4.8rem);
  margin:20px 0 22px;
}
.hero h1 em{
  font-style:italic;
  font-weight:480;
  color:var(--brass);
}
.hero .lede{
  font-size:clamp(1.02rem, 1.6vw, 1.2rem);
  color:var(--muted);
  max-width:58ch;
}
.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:30px;
}

/* stat strip */
.stats{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--surface);
}
.stats__row{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
}
.stat{
  padding:30px 26px;
  border-right:1px solid var(--line);
}
.stat:last-child{ border-right:none; }
.stat strong{
  display:block;
  font-family:var(--display);
  font-size:clamp(1.6rem, 2.6vw, 2.2rem);
  font-weight:540;
  color:var(--green-900);
  line-height:1.1;
}
.stat span{
  font-size:0.78rem;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--muted);
}
@media (max-width: 860px){
  .stats__row{ grid-template-columns:1fr 1fr; }
  .stat:nth-child(2){ border-right:none; }
  .stat:nth-child(-n+2){ border-bottom:1px solid var(--line); }
}
@media (max-width: 480px){
  .stats__row{ grid-template-columns:1fr; }
  .stat{ border-right:none !important; border-bottom:1px solid var(--line); }
  .stat:last-child{ border-bottom:none; }
}

/* ---------- Section heads ---------- */
.section__head{
  max-width:720px;
  margin-bottom:clamp(34px, 5vw, 56px);
}
.section__head h2{
  font-size:clamp(1.9rem, 3.6vw, 2.9rem);
  margin:16px 0 14px;
}
.section__head p{ color:var(--muted); margin:0; font-size:1.02rem; }
.band-dark .section__head p{ color:var(--on-dark-2); }
.section__head--split{
  max-width:none;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:32px;
  flex-wrap:wrap;
}
.section__head--split > div{ max-width:640px; }

/* ---------- Range grid (home) ---------- */
.range-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
}
.range-card{
  position:relative;
  display:block;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:28px 26px 26px;
  overflow:hidden;
  text-decoration:none;
  color:inherit;
  transition:border-color .2s, transform .2s, box-shadow .2s;
}
.range-card:hover{
  border-color:var(--brass);
  transform:translateY(-4px);
  box-shadow:0 18px 36px rgba(27,38,32,0.08);
}
.range-card h3{
  font-size:1.35rem;
  margin:0 0 8px;
}
.range-card p{
  font-size:0.93rem;
  color:var(--muted);
  margin:0;
}
@media (max-width: 900px){ .range-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width: 560px){ .range-grid{ grid-template-columns:1fr; } }

/* ---------- Pan-India: the supply chain ---------- */
.reach{ position:relative; overflow:hidden; }
.reach__grid{
  display:grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap:clamp(36px, 5vw, 72px);
  align-items:center;
}
.reach__copy h2{
  font-size:clamp(1.9rem, 3.6vw, 2.9rem);
  margin:16px 0 16px;
}
.reach__copy h2 em{ font-style:italic; color:var(--brass-300); font-weight:480; }
.reach__note{
  font-size:0.84rem;
  color:var(--on-dark-2);
  opacity:0.85;
  font-style:italic;
}
.reach__stat{
  display:flex;
  gap:34px;
  margin:26px 0 18px;
  padding:18px 0;
  border-top:1px solid var(--dark-line);
  border-bottom:1px solid var(--dark-line);
}
.reach__stat div strong{
  display:block;
  font-family:var(--display);
  font-size:1.7rem;
  color:var(--brass-300);
  line-height:1.15;
}
.reach__stat div span{
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--on-dark-2);
}

/* India map visual: section bg matches the artwork so it blends seamlessly */
.band-dark.reach{
  background:#092B1B;
}
.reach__map{
  display:flex;
  justify-content:center;
}
.reach__map img{
  width:100%;
  max-width:560px;
  height:auto;
}
@media (max-width: 960px){
  .reach__grid{ grid-template-columns:1fr; }
  .reach__map{ margin-top:10px; }
}

/* ---------- FAQ ---------- */
.faq{
  max-width:820px;
  margin:0 auto;
}
.faq details{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  margin-bottom:10px;
  overflow:hidden;
  transition:border-color .2s;
}
.faq details[open]{ border-color:var(--brass); }
.faq summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:19px 24px;
  font-family:var(--display);
  font-size:1.12rem;
  font-weight:540;
  color:var(--green-900);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"+";
  font-family:var(--sans);
  font-weight:400;
  font-size:1.5rem;
  color:var(--brass);
  line-height:1;
  transition:transform .2s;
  flex-shrink:0;
}
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details p{
  padding:0 24px 20px;
  margin:0;
  color:var(--muted);
  font-size:0.96rem;
}

/* ---------- Visit / CTA band ---------- */
.visit-band{
  position:relative;
  overflow:hidden;
}
.visit-band::before{
  content:"";
  position:absolute;
  left:-160px;
  top:-160px;
  width:480px;
  height:480px;
  background:url("../images/logo-emblem.png") no-repeat center / contain;
  opacity:0.06;
  filter:grayscale(1) brightness(3);
  pointer-events:none;
}
.visit-band__inner{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,0.9fr);
  gap:clamp(32px, 5vw, 64px);
  align-items:center;
}
.visit-band h2{ font-size:clamp(1.8rem, 3.4vw, 2.7rem); margin:16px 0 14px; }
.visit-card{
  background:rgba(243,239,227,0.05);
  border:1px solid var(--dark-line);
  border-radius:var(--r-lg);
  padding:clamp(26px, 3.4vw, 40px);
}
.visit-card h3{
  font-size:1.3rem;
  margin:12px 0 12px;
}
.visit-card p{ font-size:0.95rem; margin-bottom:12px; }
.visit-card .btn{ margin-top:8px; }
@media (max-width: 880px){
  .visit-band__inner{ grid-template-columns:1fr; }
}

/* ---------- Footer ---------- */
.site-footer{
  background:var(--green-950);
  color:var(--on-dark-2);
  border-top:3px solid var(--brass);
}
.site-footer > .container{
  padding-left:calc(var(--pad) + 14px);
  padding-right:calc(var(--pad) + 14px);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.5fr 1fr 1.3fr;
  gap:52px;
  padding:68px 0 46px;
}
.footer-grid ul{ gap:12px; }
.footer-brand{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:16px;
}
.footer-brand img{ height:44px; width:auto; filter:brightness(1.9) saturate(0.7); opacity:0.9; }
.footer-brand span{
  font-family:var(--display);
  font-size:1.35rem;
  color:var(--on-dark);
}
.footer-grid h4{
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--brass-300);
  margin:0 0 16px;
}
.footer-grid p, .footer-grid a, .footer-grid li{ font-size:0.92rem; }
.footer-grid ul{ display:flex; flex-direction:column; gap:10px; }
.footer-grid a:hover{ color:var(--brass-300); }
.footer-bottom{
  border-top:1px solid var(--dark-line);
  padding:22px 0;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  font-size:0.78rem;
  letter-spacing:0.04em;
}
@media (max-width: 860px){
  .footer-grid{ grid-template-columns:1fr; gap:32px; padding:48px 0 36px; }
}

/* ---------- Page hero (inner pages) ---------- */
.page-hero{
  padding:clamp(56px, 8vw, 96px) 0 clamp(40px, 6vw, 64px);
  border-bottom:1px solid var(--line);
  position:relative;
  overflow:hidden;
}
.page-hero::after{
  content:"";
  position:absolute;
  right:-100px;
  top:-80px;
  width:380px;
  height:380px;
  background:url("../images/logo-emblem.png") no-repeat center / contain;
  opacity:0.06;
  pointer-events:none;
}
.page-hero h1{
  font-size:clamp(2.2rem, 4.6vw, 3.6rem);
  margin:16px 0 16px;
  max-width:760px;
  position:relative;
}
.page-hero .lede{
  color:var(--muted);
  max-width:62ch;
  font-size:1.05rem;
  position:relative;
}

/* ---------- Catalogue ---------- */
.category-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:24px;
}
.category-tab{
  font-family:var(--sans);
  font-size:0.85rem;
  font-weight:700;
  color:var(--ink);
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:999px;
  padding:10px 20px;
  cursor:pointer;
  transition:border-color .15s, background .15s, color .15s;
}
.category-tab:hover{
  border-color:var(--brass);
}
.category-tab--active{
  background:var(--green-900);
  border-color:var(--green-900);
  color:var(--on-dark);
}
.catalogue-tools{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:34px;
  flex-wrap:wrap;
}
.catalogue-search{
  display:flex;
  flex-direction:column;
  gap:8px;
  width:min(100%, 480px);
}
.catalogue-search span{
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--brass);
}
.catalogue-search input{
  width:100%;
  border:1px solid var(--line);
  border-radius:999px;
  padding:15px 22px;
  background:var(--surface);
  color:var(--ink);
  font-family:var(--sans);
  font-size:0.98rem;
  outline:none;
  transition:border-color .15s, box-shadow .15s;
}
.catalogue-search input:focus{
  border-color:var(--brass);
  box-shadow:0 0 0 4px rgba(179,139,46,0.14);
}
.catalogue-count{
  color:var(--muted);
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  padding-bottom:14px;
}
.product-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(210px, 1fr));
  gap:16px;
}
.product-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  overflow:hidden;
  cursor:zoom-in;
  transition:border-color .2s, transform .2s, box-shadow .2s;
}
.product-card:hover{
  border-color:var(--brass);
  transform:translateY(-3px);
  box-shadow:0 14px 28px rgba(27,38,32,0.09);
}
.product-card__img{
  aspect-ratio:1/1;
  background:#fff;
  overflow:hidden;
}
.product-card__img img{ width:100%; height:100%; object-fit:cover; }
.product-card__body{
  padding:12px 14px;
  text-align:center;
  border-top:1px solid var(--line);
}
.product-card__code{
  font-size:0.85rem;
  font-weight:700;
  letter-spacing:0.08em;
  color:var(--green-800);
}
.product-grid__empty{
  grid-column:1 / -1;
  text-align:center;
  padding:70px 20px;
  color:var(--muted);
  font-size:0.9rem;
}
.load-more-wrap{
  display:flex;
  justify-content:center;
  margin-top:40px;
}

/* ---------- Lightbox ---------- */
.product-lightbox{
  position:fixed;
  inset:0;
  z-index:120;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(5,35,26,0.9);
}
.product-lightbox[hidden]{ display:none; }
.lightbox-dialog{
  background:var(--paper);
  border-radius:var(--r);
  padding:16px 16px 14px;
  max-width:min(680px, 94vw);
  max-height:92vh;
  display:flex;
  flex-direction:column;
  gap:10px;
  position:relative;
}
.lightbox-dialog img{
  max-width:100%;
  max-height:calc(92vh - 150px);
  width:auto;
  height:auto;
  margin:0 auto;
  object-fit:contain;
  background:#fff;
  border-radius:var(--r-sm);
}
.lightbox-dialog h3{
  font-family:var(--sans);
  font-size:0.92rem;
  font-weight:700;
  letter-spacing:0.1em;
  color:var(--green-800);
  text-align:center;
  margin:0;
}
.lightbox-close{
  position:absolute;
  top:-16px;
  right:-16px;
  width:40px;
  height:40px;
  border-radius:50%;
  border:2px solid var(--paper);
  background:var(--brass);
  color:#fff;
  font-size:1.3rem;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .15s;
}
.lightbox-close:hover{ background:var(--green-800); }
.lightbox-whatsapp{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  margin:2px auto 4px;
  background:#1DA851;
  color:#fff;
  font-size:0.86rem;
  font-weight:700;
  border-radius:999px;
  padding:11px 22px;
  transition:background .15s, transform .15s;
}
.lightbox-whatsapp:hover{ background:#178C43; transform:translateY(-1px); }
.lightbox-whatsapp svg{
  width:16px;
  height:16px;
  fill:currentColor;
  flex-shrink:0;
}
@media (max-width: 640px){
  .lightbox-close{ top:8px; right:8px; }
}

/* ---------- About page ---------- */
.story-grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,0.85fr);
  gap:clamp(36px, 5vw, 72px);
  align-items:center;
}
.emblem-card{
  background:#F8F5EE; /* matches the logo artwork's ground so it sits seamlessly */
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:clamp(32px, 4vw, 56px);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
  text-align:center;
}
.emblem-card img{ width:min(320px, 82%); mix-blend-mode:multiply; }
.emblem-card strong{
  font-family:var(--display);
  font-size:1.2rem;
  color:var(--green-900);
}
.emblem-card span{
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.26em;
  text-transform:uppercase;
  color:var(--brass);
}
@media (max-width: 880px){ .story-grid{ grid-template-columns:1fr; } }

.timeline{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:14px;
}
.timeline__item{
  background:rgba(243,239,227,0.05);
  border:1px solid var(--dark-line);
  border-radius:var(--r);
  padding:26px 24px;
}
.timeline__period{
  font-family:var(--display);
  font-style:italic;
  font-size:1rem;
  color:var(--brass-300);
  margin-bottom:12px;
}
.timeline__item h3{ font-size:1.15rem; margin-bottom:8px; }
.timeline__item p{ font-size:0.9rem; margin:0; }
@media (max-width: 960px){ .timeline{ grid-template-columns:1fr 1fr; } }
@media (max-width: 560px){ .timeline{ grid-template-columns:1fr; } }

.principles{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:14px;
  max-width:900px;
}
.principles li{
  display:flex;
  gap:14px;
  align-items:flex-start;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  padding:18px 20px;
  font-size:0.95rem;
  font-weight:600;
  color:var(--ink);
}
.principles li::before{
  content:"";
  flex-shrink:0;
  margin-top:5px;
  width:18px;
  height:11px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='11' viewBox='0 0 18 11'%3E%3Cellipse cx='9' cy='5.5' rx='7.5' ry='4.5' fill='none' stroke='%23B38B2E' stroke-width='2'/%3E%3C/svg%3E") no-repeat center / contain;
}
@media (max-width: 640px){ .principles{ grid-template-columns:1fr; } }

/* ---------- Contact page ---------- */
.contact-grid{
  display:grid;
  grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr);
  gap:clamp(28px, 4vw, 56px);
  align-items:stretch;
}
.contact-info{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:clamp(28px, 3.6vw, 44px);
}
.contact-info h2{ font-size:1.7rem; margin:14px 0 18px; }
.address-block{
  color:var(--muted);
  font-size:0.98rem;
  line-height:1.75;
  margin-bottom:20px;
}
.address-block strong{ color:var(--ink); }
.hours-table{
  width:100%;
  border-collapse:collapse;
  font-size:0.93rem;
  margin-bottom:22px;
}
.hours-table td{
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
.hours-table td:first-child{ font-weight:700; color:var(--ink); }
.hours-table td:last-child{ text-align:right; color:var(--muted); }
.map-frame{
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  overflow:hidden;
  min-height:380px;
  background:var(--surface);
  box-shadow:0 18px 40px rgba(27,38,32,0.10);
}
.map-frame iframe{
  width:100%;
  flex:1;
  min-height:340px;
  border:0;
  display:block;
  /* warm the default Google palette toward the paper + green theme */
  filter:grayscale(0.25) sepia(0.22) saturate(0.9) contrast(0.98);
}
.map-frame__caption{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  padding:14px 20px;
  border-top:2px solid var(--brass);
  background:var(--green-950);
}
.map-frame__caption span{
  font-family:var(--display);
  font-size:0.98rem;
  color:var(--on-dark);
}
.map-frame__caption a{
  font-size:0.76rem;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--brass-300);
}
.map-frame__caption a:hover{ color:var(--on-dark); }
@media (max-width: 880px){ .contact-grid{ grid-template-columns:1fr; } }

.person-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
}
.person-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:26px 24px;
  text-align:center;
  transition:border-color .2s, transform .2s, box-shadow .2s;
}
.person-card:hover{
  border-color:var(--brass);
  transform:translateY(-3px);
  box-shadow:0 14px 28px rgba(27,38,32,0.08);
}
.person-card h3,
.band-dark .person-card h3{ font-size:1.3rem; margin-bottom:16px; color:var(--green-900); }
.person-card .contact-actions{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}
.person-card .contact-actions a{
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  border:1px solid var(--green-900);
  border-radius:999px;
  padding:10px 18px;
  color:var(--green-900);
  transition:background .15s, color .15s;
}
.person-card .contact-actions a:hover{
  background:var(--green-900);
  color:var(--on-dark);
}
.person-card .contact-actions a{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.contact-actions svg,
.mobile-bar svg{
  width:15px;
  height:15px;
  fill:currentColor;
  flex-shrink:0;
}
.mobile-bar a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
@media (max-width: 820px){ .person-grid{ grid-template-columns:1fr; } }

/* ---------- Legal page ---------- */
.legal-content .container{ max-width:820px; }
.legal-content article{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:26px 30px;
  margin-bottom:14px;
}
.legal-content h2{
  font-size:1.3rem;
  margin-bottom:10px;
}
.legal-content p{
  color:var(--muted);
  font-size:0.96rem;
  margin:0;
}
.legal-updated{
  font-size:0.8rem;
  color:var(--muted);
  font-style:italic;
  margin-top:20px;
}
.footer-bottom a{
  color:var(--brass-300);
}
.footer-bottom a:hover{ color:var(--on-dark); }

/* ---------- Mobile quick bar ---------- */
.mobile-bar{ display:none; }
@media (max-width: 720px){
  .mobile-bar{
    display:flex;
    position:fixed;
    bottom:0; left:0; right:0;
    z-index:90;
    background:var(--green-950);
    border-top:1px solid var(--dark-line);
  }
  .mobile-bar a{
    flex:1;
    text-align:center;
    padding:15px 0;
    font-size:0.85rem;
    font-weight:700;
  }
  .mobile-bar a.call{ color:var(--on-dark); border-right:1px solid var(--dark-line); }
  .mobile-bar a.whatsapp{ color:var(--green-950); background:var(--brass-300); }
  body{ padding-bottom:52px; }
}

/* On mobile the fixed Call/WhatsApp bar covers this, so hide the duplicate hero button */
@media (max-width: 720px){
  .hero__actions .btn--outline{ display:none; }
}

/* ---------- A11y & motion ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible{
  outline:2px solid var(--brass);
  outline-offset:2px;
}
@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; scroll-behavior:auto !important; }
}
