/* Skip link for accessibility */
.skip-link{
  position:absolute;
  top:-100px;
  left:50%;
  transform:translateX(-50%);
  background:var(--ph-red);
  color:#fff;
  padding:.75rem 1.5rem;
  border-radius:0 0 8px 8px;
  z-index:100;
  text-decoration:none;
  font-weight:600;
  transition:top .2s;
}
.skip-link:focus{
  top:0;
  outline:3px solid #fff;
  outline-offset:2px;
}

/* Focus visible for better accessibility */
:focus-visible{
  outline:3px solid var(--ph-red2);
  outline-offset:2px;
}

:root{
  --ph-black:#000000;
  --ph-red:#b30000;
  --ph-red2:#ff1a1a;
  --ph-white:#ffffff;
  --ph-muted:#e0e0e0;
  --ph-card:#0b0b0b;
  --ph-border:#232323;
}

/* Override Bootstrap text-muted for better readability on dark backgrounds */
.text-muted{color:#fff!important}

/* Sidebar text should be white */
.sticky-card .text-muted,
.sticky-card p,
.sticky-card .small,
.card-dark .text-muted,
.card-dark p{color:#fff!important}

/* Constrain image heights on desktop */
@media (min-width: 992px){
  .image-frame img{
    max-height:280px;
    width:100%;
    object-fit:cover;
  }
  .image-frame--tall img{
    max-height:400px;
  }
  .image-frame--short img{
    max-height:180px;
  }
  .image-frame--contain img{
    max-height:220px;
    object-fit:contain;
    background:#0b0b0b;
  }
}

/* Gallon image should be shorter */
.image-frame--gallon img{
  max-height:200px;
  width:100%;
  object-fit:cover;
}

*{box-sizing:border-box}
html,body{
  height:100%;
  margin:0;
  padding:0;
  overflow-x:hidden;
}
body{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  background:var(--ph-black);
  color:var(--ph-white);
  min-width:320px;
}

.site-header,
.announcement-bar{
  width:100%;
  margin:0;
}

a{color:#fff}
a:hover{color:var(--ph-red2)}

.site-header{
  background:linear-gradient(180deg, rgba(179,0,0,.85), rgba(0,0,0,.6));
  border-bottom:1px solid rgba(255,255,255,.06);
  position:sticky; top:0; z-index:50;
  backdrop-filter: blur(8px);
}

.nav-divider{width:1px;height:26px;background:rgba(255,255,255,.18);display:inline-block}

.navbar-brand .brand-title{
  font-family:Oswald,Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;
  letter-spacing:.08em;
  font-weight:600;
  display:block;
  line-height:1.05;
}
.navbar-brand .brand-subtitle{
  display:block;
  font-size:.78rem;
  color:rgba(255,255,255,.72);
  margin-top:.1rem;
}

/* Mobile header fixes */
@media (max-width: 575px){
  .brand-logo{
    width:40px;height:40px;
  }
  .navbar-brand .brand-title{
    font-size:.95rem;
  }
  .navbar-brand .brand-subtitle{
    font-size:.65rem;
    max-width:180px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .navbar-brand{
    max-width:calc(100% - 50px);
  }
}
.brand-mark{
  width:38px;height:38px;border-radius:10px;
  background:rgba(0,0,0,.5);
  display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.15);
}
.brand-logo{
  width:56px;height:56px;
  border-radius:12px;
  object-fit:contain;
}
.footer-logo{
  width:90px;height:90px;
  border-radius:14px;
  object-fit:contain;
}

.hero{
  position:relative;
  overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.hero-bg{
  position:absolute; inset:0;
  background:
    radial-gradient(1200px 600px at 20% 10%, rgba(255,26,26,.18), transparent 60%),
    radial-gradient(900px 500px at 70% 30%, rgba(179,0,0,.18), transparent 55%),
    linear-gradient(180deg, rgba(0,0,0,.2), rgba(0,0,0,1));
  filter:saturate(1.1);
}
.hero-badge{
  display:inline-flex; align-items:center;
  gap:.5rem;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.4);
  padding:.5rem .75rem;
  border-radius:999px;
  font-size:.9rem;
  color:rgba(255,255,255,.88);
}
.hero-title{
  font-family:Oswald,Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;
  letter-spacing:.04em;
  margin-top:1rem;
  text-transform:uppercase;
}
.hero-lead{color:rgba(255,255,255,.84)}
.trust-strip{
  display:flex; flex-wrap:wrap;
  gap:.75rem;
}
.trust-item{
  display:flex; gap:.5rem; align-items:center;
  padding:.5rem .7rem;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  color:rgba(255,255,255,.82);
  font-size:.95rem;
}
.hero-card{
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.hero-card__top{
  padding:1.25rem 1.25rem 1rem;
  background:linear-gradient(180deg, rgba(179,0,0,.55), rgba(0,0,0,.1));
}
.hero-card__label{
  font-size:.9rem; color:rgba(255,255,255,.85);
}
.hero-card__title{
  font-family:Oswald,Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;
  font-size:1.8rem;
  letter-spacing:.06em;
  margin-top:.2rem;
}
.hero-card__sub{color:rgba(255,255,255,.82)}
.hero-card__body{padding:1.25rem}

.icon-list{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}
.icon-list li{display:flex;gap:.6rem;align-items:flex-start}
.icon-list i{color:var(--ph-red2);margin-top:.15rem}

.section{background:var(--ph-black)}
.section-dark{background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,1))}
.feature-card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  padding:1.25rem;
  height:100%;
}
.feature-icon{
  width:44px;height:44px;border-radius:14px;
  display:grid;place-items:center;
  background:rgba(179,0,0,.25);
  border:1px solid rgba(255,255,255,.10);
  margin-bottom:.8rem;
}

.callout{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-left:4px solid var(--ph-red2);
  border-radius:16px;
  padding:1rem;
}

.image-frame{
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.03);
}
.image-frame img{width:100%;height:auto;display:block}
.image-frame__caption{
  padding:.75rem 1rem;
  font-size:.85rem;
  color:rgba(255,255,255,.62);
}

.page-hero{
  background:linear-gradient(180deg, rgba(179,0,0,.55), rgba(0,0,0,1));
  border-bottom:1px solid rgba(255,255,255,.06);
}
.kicker{
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.8rem;
  color:rgba(255,255,255,.78);
}

.card-dark{
  background:rgba(255,255,255,.04)!important;
  border:1px solid rgba(255,255,255,.08)!important;
  color:#fff;
  border-radius:18px;
}
.menu-cta{
  background:rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.10);
  padding:1rem;
  border-radius:18px;
}
.menu-block{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  padding:1.25rem;
}
.menu-step{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.08)}
.menu-list{margin:0;padding-left:1.2rem;color:rgba(255,255,255,.86)}
.pill{
  display:flex;justify-content:space-between;align-items:center;
  padding:.8rem 1rem;
  border-radius:14px;
  background:rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.10);
}
.tag-grid{display:flex;flex-wrap:wrap;gap:.5rem}
.tag{
  padding:.35rem .6rem;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  font-size:.9rem;
}
.drink-card{
  padding:1rem;
  border-radius:16px;
  background:rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.10);
  height:100%;
}
.sticky-card{
  position:sticky; top:92px;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  z-index:10;
}
.sticky-card__header{
  padding:1.1rem 1.1rem .9rem;
  background:linear-gradient(180deg, rgba(179,0,0,.45), rgba(0,0,0,.2));
}
.sticky-card__body{padding:1.1rem}
.price-line{
  display:flex;justify-content:space-between;align-items:center;
  padding:.55rem 0;
  color:rgba(255,255,255,.86);
}
.event-list{display:grid;gap:.75rem}
.event-item{
  display:flex;align-items:center;gap:1rem;
  text-decoration:none;
  border-radius:16px;
  padding:.9rem 1rem;
  background:rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.10);
}
.event-item:hover{border-color:rgba(255,26,26,.6);box-shadow:0 10px 30px rgba(0,0,0,.45)}
.event-date{
  width:64px;min-width:64px;
  border-radius:14px;
  background:rgba(179,0,0,.22);
  border:1px solid rgba(255,255,255,.10);
  text-align:center;
  padding:.55rem .25rem;
}
.event-day{font-size:.75rem;letter-spacing:.12em;color:rgba(255,255,255,.75)}
.event-num{font-family:Oswald;font-size:1.6rem}
.event-title{font-weight:800}
.event-meta{font-size:.92rem;color:rgba(255,255,255,.68)}
.event-cta{margin-left:auto;color:rgba(255,255,255,.75)}

.site-footer{
  border-top:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,1));
}
.footer-title{
  font-family:Oswald;
  letter-spacing:.1em;
}
.footer-heading{
  font-weight:800;
  color:rgba(255,255,255,.9);
}
.footer-link{color:rgba(255,255,255,.82);text-decoration:none}
.footer-link:hover{color:var(--ph-red2)}
.footer-list{display:grid;gap:.5rem}
.disclaimer-box{
  background:rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  padding:1rem;
  color:rgba(255,255,255,.84);
}
.map-embed iframe{
  width:100%;
  height:220px;
  border:0;
  border-radius:16px;
  filter:grayscale(.2) contrast(1.1);
}

.cookie-bar{
  position:fixed; left:0; right:0; bottom:0;
  background:rgba(0,0,0,.92);
  border-top:1px solid rgba(255,255,255,.12);
  z-index:60;
}
.cookie-link{color:rgba(255,255,255,.85)}
.cookie-link:hover{color:var(--ph-red2)}

.age-gate{
  position:fixed; inset:0;
  display:none;
  z-index:80;
}
.age-gate.is-open{display:block}
.age-gate__backdrop{
  position:absolute; inset:0;
  background:rgba(0,0,0,.72);
  backdrop-filter: blur(4px);
}
.age-gate__panel{
  position:relative;
  width:min(680px, 92vw);
  margin:10vh auto 0;
  background:linear-gradient(180deg, rgba(179,0,0,.45), rgba(0,0,0,.92));
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  padding:1.25rem;
  box-shadow:0 30px 90px rgba(0,0,0,.65);
}

.announcement-bar{
  background:linear-gradient(90deg, rgba(179,0,0,.9), rgba(255,26,26,.85));
  padding:.75rem 0;
  text-align:center;
  font-weight:600;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.announcement-bar p{
  color:#fff;
  font-size:.95rem;
}

.btn-danger{
  background:var(--ph-red)!important;
  border-color:var(--ph-red)!important;
}
.btn-danger:hover{
  background:var(--ph-red2)!important;
  border-color:var(--ph-red2)!important;
}
.btn-outline-light:hover{color:#000!important;background:#fff!important}

@media (max-width: 576px){
  .sticky-card{position:static}
  .hero-title{font-size:2.2rem}
}
