/* ═══════════════════════════════════════════════════════════════
   CG PUBLIC HOUSE & CATERING — SITE STYLES
   Brand colors pulled from official logo + Pantone style sheet.
   Edit rarely. Page content lives in the .html files.
   ═══════════════════════════════════════════════════════════════ */

:root{
  --navy:#35445e;          /* CG Navy (Pantone 2377C) */
  --navy-deep:#28344a;
  --navy-ink:#1d2636;
  --gray:#6f7878;          /* Cool Gray 8C */
  --gray-soft:#a9b0b0;
  --gold:#b8863b;          /* Pantone 7510C support color */
  --green:#7a9544;         /* CG Fresh swoosh green */
  --green-deep:#5f7733;
  --paper:#f7f5f1;         /* warm whitewash */
  --paper-deep:#efeae2;
  --white:#ffffff;
  --ink:#242a35;
  --line:#ddd6cb;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

body{
  font-family:'Source Sans 3',system-ui,sans-serif;
  font-size:1.06rem;line-height:1.65;
  color:var(--ink);background:var(--paper);
}
img{max-width:100%;display:block}
a{color:var(--navy)}

h1,h2,h3,.disp{
  font-family:'Big Shoulders',sans-serif;
  font-weight:700;line-height:1.05;
  color:var(--navy);letter-spacing:.01em;
  text-transform:uppercase;
}
h1{font-size:clamp(2.4rem,7vw,4rem)}
h2{font-size:clamp(1.8rem,5vw,2.6rem)}
h3{font-size:clamp(1.25rem,4vw,1.5rem)}

.eyebrow{
  font-family:'Big Shoulders',sans-serif;font-weight:600;
  text-transform:uppercase;letter-spacing:.22em;
  font-size:.85rem;color:var(--gold);margin-bottom:.5rem;
}
.eyebrow.green{color:var(--green-deep)}

.wrap{max-width:1080px;margin:0 auto;padding:0 1.25rem}
section{padding:3.5rem 0}
.center{text-align:center}
.lead{font-size:1.15rem;color:#454c58;max-width:44rem}
.center .lead{margin:0 auto}

/* ── Top utility bar: phone always one tap away ── */
.util{
  background:var(--navy-ink);color:#cfd6e2;
  font-size:.9rem;padding:.45rem 0;
}
.util .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.util a{color:#fff;font-weight:600;text-decoration:none}
.util .addr{opacity:.85}
@media(max-width:560px){.util .addr{display:none}}

/* ── Header + nav ── */
header.site{
  background:var(--white);border-bottom:3px solid var(--navy);
  position:sticky;top:0;z-index:50;
}
.brandbar{display:flex;align-items:center;justify-content:space-between;padding:.7rem 0;gap:1rem}
.brandbar img{height:88px;width:auto}
@media(max-width:560px){.brandbar img{height:70px}}
.brandbar .call-btn{white-space:nowrap}
nav.main{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
nav.main::-webkit-scrollbar{display:none}
nav.main ul{display:flex;gap:.25rem;list-style:none;padding-bottom:.55rem}
nav.main a{
  font-family:'Big Shoulders',sans-serif;font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;font-size:1rem;
  text-decoration:none;color:var(--navy);
  padding:.4rem .8rem;border-radius:4px;white-space:nowrap;
}
nav.main a:hover{background:var(--paper-deep)}
nav.main a.on{background:var(--navy);color:#fff}
nav.main a.fresh{color:var(--green-deep)}
nav.main a.fresh.on{background:var(--green-deep);color:#fff}

/* ── Buttons ── */
.btn{
  display:inline-block;font-family:'Big Shoulders',sans-serif;
  font-weight:700;text-transform:uppercase;letter-spacing:.1em;
  font-size:1.05rem;text-decoration:none;text-align:center;
  padding:.75rem 1.6rem;border-radius:5px;border:2px solid transparent;
  background:var(--navy);color:#fff;cursor:pointer;
}
.btn:hover{background:var(--navy-deep)}
.btn.gold{background:var(--gold)}
.btn.gold:hover{background:#a1732f}
.btn.green{background:var(--green-deep)}
.btn.green:hover{background:#4d6129}
.btn.ghost{background:transparent;border-color:#fff;color:#fff}
.btn.ghost:hover{background:rgba(255,255,255,.12)}
.btn.line{background:transparent;border-color:var(--navy);color:var(--navy)}
.btn.line:hover{background:var(--navy);color:#fff}
.btn:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

/* ── Hero ── */
.hero{
  background:linear-gradient(180deg,var(--navy) 0%,var(--navy-deep) 100%);
  color:#e8ecf3;padding:4rem 0 4.5rem;text-align:center;
}
.hero h1{color:#fff}
.hero .lead{color:#c6cedd;margin:.9rem auto 1.6rem}
.hero .btn-row{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}

/* ── Signature: the three painted doors ── */
.doors{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:-2.6rem}
.door{
  background:var(--white);border:1px solid var(--line);border-top:6px solid var(--navy);
  border-radius:6px;padding:1.8rem 1.5rem 1.6rem;text-align:center;
  box-shadow:0 10px 24px rgba(29,38,54,.14);
  text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:.6rem;
  transition:transform .15s ease;
}
.door:hover{transform:translateY(-3px)}
.door .glyph{font-size:1.9rem;line-height:1}
.door h3{letter-spacing:.04em}
.door p{font-size:.98rem;color:#4c5462;flex:1}
.door .go{font-family:'Big Shoulders',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--navy)}
.door.gold-door{border-top-color:var(--gold)}
.door.green-door{border-top-color:var(--green)}
.door.green-door .go{color:var(--green-deep)}

/* ── Info strips / cards ── */
.strip{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.grid2{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:center}
.grid3{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.card{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:1.5rem}
.card h3{margin-bottom:.4rem}
.framed{border-radius:8px;box-shadow:0 12px 28px rgba(29,38,54,.18)}

/* ── Hours table ── */
.hours{width:100%;border-collapse:collapse;max-width:26rem}
.hours td{padding:.45rem .2rem;border-bottom:1px solid var(--line)}
.hours td:last-child{text-align:right;font-weight:600}
.hours .closed td:last-child{color:var(--gold)}

/* ── Specials banner ── */
.special{
  background:var(--gold);color:#fff;border-radius:6px;
  padding:1.1rem 1.4rem;display:flex;gap:.9rem;align-items:center;flex-wrap:wrap;
}
.special strong{font-family:'Big Shoulders',sans-serif;text-transform:uppercase;letter-spacing:.08em;font-size:1.15rem}

/* ── Menu lists ── */
.menu-sec{margin-top:2.2rem}
.menu-item{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px dashed var(--line)}
.menu-item .nm{font-weight:700}
.menu-item .ds{font-size:.95rem;color:#565e6b}
.menu-item .pr{font-family:'Big Shoulders',sans-serif;font-weight:700;color:var(--navy);white-space:nowrap}

/* ── Quote / testimonial ── */
.quote{
  background:var(--white);border-left:5px solid var(--gold);
  padding:1.4rem 1.6rem;border-radius:0 6px 6px 0;font-size:1.08rem;
}
.quote footer{margin-top:.6rem;font-size:.92rem;color:var(--gray);font-style:normal}

/* ── CG Fresh flavor ── */
.fresh-hero{background:#101418;color:#e9eef2;text-align:center;padding:3.5rem 0}
.fresh-hero img{max-width:290px;margin:0 auto 1.2rem;border-radius:8px}
.fresh-band{
  background:var(--navy-ink);color:#fff;text-align:center;
  font-family:'Big Shoulders',sans-serif;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;padding:.8rem 1rem;font-size:1rem;
}
.steps{counter-reset:st}
.step{position:relative;padding-left:3.4rem;margin-bottom:1.6rem}
.step::before{
  counter-increment:st;content:counter(st);
  position:absolute;left:0;top:0;width:2.4rem;height:2.4rem;
  background:var(--green-deep);color:#fff;border-radius:50%;
  font-family:'Big Shoulders',sans-serif;font-weight:700;font-size:1.3rem;
  display:flex;align-items:center;justify-content:center;
}
.price-tag{font-family:'Big Shoulders',sans-serif;font-weight:800;font-size:2rem;color:var(--green-deep)}

/* ── Team grid ── */
.person{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:1.2rem;text-align:center}
.person .nm{font-family:'Big Shoulders',sans-serif;font-weight:700;text-transform:uppercase;font-size:1.2rem;color:var(--navy)}
.person .rl{color:var(--gray);font-size:.95rem}

/* ── Forms (Netlify) ── */
form.cg label{display:block;font-weight:600;margin:1rem 0 .3rem}
form.cg input,form.cg select,form.cg textarea{
  width:100%;padding:.7rem .8rem;border:1px solid var(--gray-soft);
  border-radius:5px;font:inherit;background:#fff;
}
form.cg textarea{min-height:7rem}
form.cg input:focus,form.cg select:focus,form.cg textarea:focus{outline:3px solid var(--gold);outline-offset:1px;border-color:var(--navy)}
form.cg button{margin-top:1.4rem}
.hp{display:none}

/* ── Photo slideshow ── */
.slideshow{position:relative;max-width:880px;margin:1.8rem auto 0;border-radius:10px;overflow:hidden;box-shadow:0 12px 28px rgba(29,38,54,.18);background:var(--navy-ink)}
.slides{display:flex;transition:transform .5s ease}
.slide{min-width:100%;margin:0}
.slide img{width:100%;height:clamp(260px,52vw,520px);object-fit:cover;display:block}
.slide img.fit-contain{object-fit:contain}
.slide-btn{
  position:absolute;top:50%;transform:translateY(-50%);
  width:2.9rem;height:2.9rem;border:none;border-radius:50%;
  background:rgba(29,38,54,.55);color:#fff;font-size:1.7rem;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
}
.slide-btn:hover{background:rgba(29,38,54,.82)}
.slide-btn:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.slide-btn.prev{left:.8rem}
.slide-btn.next{right:.8rem}
.dots{display:flex;gap:.55rem;justify-content:center;position:absolute;bottom:.95rem;left:0;right:0}
.dot{width:.72rem;height:.72rem;border-radius:50%;border:none;background:rgba(255,255,255,.5);cursor:pointer;padding:0}
.dot.on{background:#fff}
.dot:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.slides{transition:none}}

/* ── Builder note (visible placeholder for missing content) ── */
.builder-note{
  background:#fff8ea;border:2px dashed var(--gold);border-radius:6px;
  padding:1rem 1.2rem;font-size:.98rem;color:#6b5322;
}

/* ── Footer ── */
footer.site{background:var(--navy-ink);color:#b9c2d2;padding:3rem 0 2rem;margin-top:3rem}
footer.site .grid3{align-items:start}
footer.site h3{color:#fff;font-size:1.05rem;letter-spacing:.1em;margin-bottom:.6rem}
footer.site a{color:#dfe5ef;text-decoration:none}
footer.site a:hover{text-decoration:underline}
footer.site img{height:116px;width:auto;margin-bottom:.8rem;background:#fff;padding:.55rem .7rem;border-radius:10px}
footer.site ul{list-style:none}
footer.site li{padding:.18rem 0}
.copyline{border-top:1px solid #3a475e;margin-top:2rem;padding-top:1.2rem;font-size:.85rem;text-align:center;color:#8b96a9}
