/* ============================================================
   CAPITOL CIGAR & TOBACCO — BASE STYLES
   Builds on css/tokens.css (load tokens first).
   House rules: square corners, Parchment is the white,
   nothing moves faster than --tempo-ui, one Syncopate
   moment per screen.
   ============================================================ */

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;
  background:var(--bg);color:var(--fg);
  font-family:var(--font-body);font-weight:300;
  font-size:1.0625rem;line-height:1.65;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-decoration:none;transition:color var(--tempo-ui) var(--settle)}
a:hover{color:var(--parchment)}
a:focus-visible,button:focus-visible{outline:3px solid var(--parchment);outline-offset:3px}
::selection{background:var(--ember);color:var(--maduro)}

/* ---- Type ---- */
h1,h2,h3{margin:0;line-height:1.2;text-wrap:balance}
h1,h2{font-family:var(--font-display);font-weight:400;text-transform:uppercase}
h1{font-size:clamp(1.6rem,4.6vw,2.9rem);letter-spacing:var(--track-display);color:var(--parchment)}
h2{font-size:clamp(1rem,2.2vw,1.35rem);letter-spacing:var(--track-label);color:var(--ember)}
h3{font-family:var(--font-body);font-weight:600;font-size:1.15rem;color:var(--parchment)}
p{margin:0;max-width:var(--measure)}
.eyebrow{font-family:var(--font-display);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--connecticut);margin:0}
.muted{color:var(--muted)}
.small{font-size:.9rem}

/* ---- Layout ---- */
.container{max-width:1080px;margin:0 auto;padding-inline:clamp(18px,4vw,40px)}
main section{padding-block:clamp(44px,8vh,96px)}
.stack{display:flex;flex-direction:column;gap:22px}
.stack-lg{display:flex;flex-direction:column;gap:clamp(28px,5vh,48px)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(20px,3vw,36px)}
.cols>*{min-width:0}
hr.rule{border:0;border-top:1px solid var(--line);margin:0}

/* ---- Header ---- */
.site-header{border-bottom:1px solid var(--line);background:var(--maduro)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:14px;color:var(--parchment)}
.brand img{width:52px;height:52px}
.brand .brand-name{font-family:var(--font-display);font-size:.82rem;letter-spacing:.22em;text-transform:uppercase;line-height:1.5}
.site-nav{display:flex;flex-wrap:wrap;gap:clamp(14px,2.5vw,30px);align-items:center}
.site-nav a{font-family:var(--font-body);font-weight:500;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--connecticut)}
.site-nav a:hover{color:var(--parchment)}
.site-nav a.active{color:var(--ember)}

/* ---- Hero ---- */
.hero{padding-block:clamp(56px,11vh,120px)}
.hero .stack{gap:26px}
.hero p.lede{font-size:clamp(1.1rem,2vw,1.3rem);max-width:52ch}

/* ---- Photo placeholders (until the archive goes in) ---- */
.photo{
  background:color-mix(in srgb,var(--habano) 26%,var(--maduro));
  border:1px dashed color-mix(in srgb,var(--habano) 70%,transparent);
  color:var(--connecticut);
  display:grid;place-items:center;text-align:center;
  padding:18px;font-size:.82rem;letter-spacing:.06em;line-height:1.6;
  min-height:260px;
}
.photo--wide{min-height:340px}

/* ---- Buttons & the band ---- */
.btn{
  appearance:none;cursor:pointer;display:inline-block;text-align:center;
  min-width:180px;padding:15px 28px;border-radius:var(--radius);
  font-family:var(--font-body);font-size:.9rem;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;color:#fff;
  transition:background-color var(--tempo-ui) var(--settle),color var(--tempo-ui) var(--settle);
}
.btn-primary{background:var(--brick);border:1px solid var(--brick)}
.btn-primary:hover{background:#A94842;border-color:#A94842;color:#fff}
.btn-ghost{background:transparent;border:1px solid var(--parchment);color:var(--parchment)}
.btn-ghost:hover{background:color-mix(in srgb,var(--parchment) 14%,transparent);color:var(--parchment)}
.band{
  background:var(--ember);
  padding-block:clamp(34px,6vh,56px);
}
.band .container{display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:space-between}
.band .band-line{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.16em;color:var(--maduro);font-size:clamp(.95rem,2vw,1.25rem);margin:0}

/* ---- Footer ---- */
.site-footer{border-top:1px solid var(--line);padding-block:clamp(36px,6vh,60px);color:var(--connecticut);font-size:.9rem}
.site-footer .container{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
.site-footer .foot-label{font-family:var(--font-display);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ember);margin-bottom:10px}
.site-footer a{color:var(--connecticut)}
.site-footer a:hover{color:var(--parchment)}
.copyright{margin-top:34px;color:var(--habano);font-size:.8rem;text-align:center}

/* ============================================================
   AGE GATE (js/age-gate.js builds the markup)
   ============================================================ */
html.cct-age-lock{overflow:hidden !important;background:var(--maduro) !important}
html.cct-age-lock body>*:not(.cct-age-gate){visibility:hidden !important}

.cct-age-gate{
  position:fixed;inset:0;z-index:2147483647;
  display:flex;flex-direction:column;
  background:var(--maduro);
  font-family:var(--font-body);
  opacity:1;
  transition:opacity var(--tempo) var(--settle);
}
.cct-age-gate[data-closing="1"]{opacity:0}
.cct-age-gate__panel{
  flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:clamp(28px,6vh,64px) 24px clamp(24px,5vh,48px);overflow-y:auto;
}
.cct-age-gate__crest{width:clamp(96px,15vh,168px);height:auto;display:block;margin:0 auto clamp(20px,4vh,40px)}
.cct-age-gate__title{
  margin:0 0 clamp(20px,4vh,40px);color:var(--ember);
  font-family:var(--font-display);font-weight:400;text-transform:uppercase;
  letter-spacing:.16em;line-height:1.1;font-size:clamp(1.5rem,5.2vw,3.75rem);
}
.cct-age-gate__body{max-width:34ch;margin:0 auto clamp(20px,4vh,38px);color:var(--parchment);font-weight:300;font-size:clamp(1rem,2.1vw,1.375rem);line-height:1.6}
.cct-age-gate__prompt{max-width:26ch;margin:0 auto;color:var(--parchment);font-weight:600;font-size:clamp(1.125rem,2.6vw,1.75rem);line-height:1.35}
.cct-age-gate__actions{
  flex:0 0 auto;background:var(--ember);
  display:flex;flex-wrap:wrap;gap:clamp(12px,2vw,24px);
  align-items:center;justify-content:center;padding:clamp(22px,4.5vh,44px) 24px;
}
.cct-age-gate__note{max-width:40ch;margin:clamp(16px,3vh,28px) auto 0;color:var(--connecticut);font-weight:300;font-size:clamp(.875rem,1.6vw,1rem);line-height:1.6}
.cct-age-gate .btn:active{transform:translateY(1px)}
@media (max-width:560px){
  .cct-age-gate__actions{flex-direction:column}
  .cct-age-gate .btn{width:100%;max-width:320px}
}
@media (prefers-reduced-motion:reduce){
  .cct-age-gate{transition:opacity 1ms linear}
}

/* ============================================================
   HEADER v2 + PHOTO HERO — ported from Patrick's Elementor
   landing design (Nov 2026): deco-pattern header band, crest,
   pipe-separated nav, socials right; full-bleed duotone hero.
   These rules intentionally override the earlier header block.
   ============================================================ */
.site-header{
  background:
    url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="72" height="72" viewBox="0 0 72 72"><g fill="none" stroke="%23775546" stroke-opacity=".16"><path d="M0 72 A36 36 0 0 1 72 72"/><path d="M9 72 A27 27 0 0 1 63 72"/><path d="M18 72 A18 18 0 0 1 54 72"/><path d="M27 72 A9 9 0 0 1 45 72"/><path d="M-36 36 A36 36 0 0 1 36 36" /><path d="M36 36 A36 36 0 0 1 108 36"/><path d="M-27 36 A27 27 0 0 1 27 36"/><path d="M45 36 A27 27 0 0 1 99 36"/><path d="M-18 36 A18 18 0 0 1 18 36"/><path d="M54 36 A18 18 0 0 1 90 36"/><path d="M-9 36 A9 9 0 0 1 9 36"/><path d="M63 36 A9 9 0 0 1 81 36"/><path d="M0 0 A36 36 0 0 1 72 0" transform="translate(0,0)"/></g></svg>') repeat,
    #221c1a;
  border-bottom:1px solid var(--line);
}
.site-header .container{padding-block:20px}
.brand .brand-name{display:none}
.brand img{width:64px;height:64px}
.site-nav{gap:0}
.site-nav a{padding-inline:clamp(8px,1.4vw,16px)}
.site-nav a:not(:first-child)::before{
  content:"|";color:color-mix(in srgb,var(--habano) 70%,transparent);
  padding-right:clamp(16px,2.8vw,32px);font-weight:300;
}
.socials{display:flex;gap:18px;align-items:center}
.socials a{color:var(--ember);display:block;line-height:0}
.socials a:hover{color:var(--parchment)}
.socials svg{width:20px;height:20px;fill:currentColor}

/* ---- Full-bleed duotone hero ---- */
.hero-photo{
  position:relative;
  min-height:min(88vh,860px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:clamp(40px,8vh,80px) 24px;
  background:
    linear-gradient(color-mix(in srgb,var(--brick) 58%,rgba(32,16,10,.72)),color-mix(in srgb,var(--brick) 46%,rgba(26,13,8,.80))),
    url('/assets/hero.jpg') center/cover no-repeat,
    var(--maduro);
}
.hero-photo .kicker{
  font-family:var(--font-display);font-weight:400;text-transform:uppercase;
  letter-spacing:.42em;color:var(--parchment);
  font-size:clamp(.85rem,1.9vw,1.5rem);margin:0 0 10px;
}
.hero-photo .title{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;color:var(--ember);line-height:1.05;
  font-size:clamp(1.9rem,7.2vw,5.2rem);margin:0;text-wrap:balance;
}
.hero-quick{display:flex;flex-wrap:wrap;gap:0;justify-content:center;margin-top:clamp(26px,5vh,48px)}
.hero-quick a{
  font-family:var(--font-body);font-weight:500;font-size:.85rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--parchment);
  padding-inline:clamp(12px,2vw,22px);
}
.hero-quick a:hover{color:var(--ember)}
.hero-quick a:not(:first-child)::before{
  content:"|";color:color-mix(in srgb,var(--parchment) 45%,transparent);
  padding-right:clamp(24px,4vw,44px);font-weight:300;
}
.explore{
  position:absolute;left:0;right:0;bottom:clamp(18px,4vh,36px);
  display:flex;flex-direction:column;align-items:center;gap:8px;
  color:var(--parchment);text-align:center;
}
.explore a{
  color:var(--parchment);font-family:var(--font-display);font-size:.72rem;
  letter-spacing:.3em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px;
}
.explore a:hover{color:var(--ember)}
.explore .arrow{font-size:1.1rem;line-height:1;animation:cct-drift 2.6s var(--settle) infinite}
@keyframes cct-drift{0%,100%{transform:translateY(0);opacity:.75}50%{transform:translateY(7px);opacity:1}}
@media (prefers-reduced-motion:reduce){.explore .arrow{animation:none}}
@media (max-width:760px){
  .site-header .container{justify-content:center}
  .socials{display:none}
}
