
:root{
  --pp-navy:#071b39;
  --pp-navy2:#001127;
  --pp-red:#d71920;
  --pp-red2:#b90f18;
  --pp-blue:#1b66d2;
  --pp-white:#fff;
  --pp-ink:#07152d;
  --pp-muted:#6b7280;
  --pp-paper:#f5f2ec;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.pp-home{
  margin:0;
  color:var(--pp-ink);
  background:var(--pp-paper);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.pp-anchor-section{scroll-margin-top:84px}
.pp-topbar{
  position:sticky;
  top:0;
  z-index:1050;
  min-height:86px;
  background:linear-gradient(90deg,#061832,#09244b 55%,#061832);
  box-shadow:0 14px 30px rgba(0,0,0,.28);
}
.pp-logo{
  display:inline-flex;
  align-items:center;
  gap:12px;
  color:#fff;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.055em;
  font-weight:900;
  line-height:.92;
}
.pp-logo-mark{
  display:inline-grid;
  place-items:center;
  width:56px;
  height:48px;
  border:3px solid #fff;
  border-radius:10px;
  color:#fff;
  background:linear-gradient(135deg,var(--pp-red),#8a0e18);
  box-shadow:0 0 0 3px rgba(255,255,255,.08) inset;
  font-size:1.35rem;
  font-style:italic;
}
.pp-logo-text{font-size:1.05rem;max-width:150px}
.pp-logo-text span{color:#ff2731;display:block;letter-spacing:.22em}
.pp-navlink{
  color:#fff!important;
  font-weight:900;
  text-transform:uppercase;
  font-size:.86rem;
  letter-spacing:.04em;
  border:0;
  background:transparent;
  position:relative;
}
.pp-navlink.active::after,.pp-navlink:hover::after{
  content:"";
  position:absolute;
  left:.5rem;
  right:.5rem;
  bottom:.15rem;
  height:3px;
  background:var(--pp-red);
}
.btn-pp-red{
  background:linear-gradient(180deg,#e21f29,#c8101a);
  color:#fff!important;
  border:0;
  border-radius:0;
  text-transform:uppercase;
  letter-spacing:.045em;
  font-weight:900;
  padding:.85rem 1.4rem;
  box-shadow:0 8px 18px rgba(215,25,32,.28);
}
.btn-pp-red:hover{filter:brightness(.95);transform:translateY(-1px)}
.btn-pp-dark{
  background:#061832;
  border:1px solid rgba(255,255,255,.55);
  color:#fff!important;
  border-radius:0;
  text-transform:uppercase;
  letter-spacing:.045em;
  font-weight:900;
  padding:.85rem 1.4rem;
}
.pp-image-exact-home .pp-visual-stage{
  position:relative;
  overflow:hidden;
  background:#061832;
  min-height:calc(100vw * 0.625);
  max-height:890px;
}
.pp-master-art{
  display:block;
  width:100%;
  height:auto;
  min-height:560px;
  object-fit:cover;
  object-position:top center;
}
.pp-hotspots::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(1,12,29,.05),rgba(1,12,29,.04)),
    radial-gradient(circle at 77% 41%,rgba(255,255,255,.05),transparent 18%);
  pointer-events:none;
}
.pp-mobile-hero-copy{
  display:none;
  position:absolute;
  left:6vw;
  bottom:8vw;
  max-width:520px;
  color:#fff;
  z-index:2;
}
.pp-stars-red{color:var(--pp-red);letter-spacing:.4em;font-weight:900}
.pp-mobile-hero-copy h1{
  text-transform:uppercase;
  font-weight:1000;
  letter-spacing:.02em;
  line-height:.92;
  text-shadow:0 2px 14px rgba(0,0,0,.65);
}
.pp-mobile-hero-copy h1 span{display:block}
.pp-book-live{
  position:relative;
  padding:64px 0 72px;
  background:
    radial-gradient(circle at 92% 8%,rgba(215,25,32,.12),transparent 28%),
    linear-gradient(90deg,rgba(215,25,32,.96) 0 34%,rgba(255,255,255,.92) 34% 100%),
    var(--pp-paper);
}
.pp-book-live::before{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:270px;
  height:270px;
  background:radial-gradient(circle,rgba(0,0,0,.24) 0 34%,transparent 36%);
  opacity:.18;
}
.pp-book-intro{color:#fff;position:relative;z-index:1}
.pp-section-title,.pp-card-title{
  font-weight:1000;
  text-transform:uppercase;
  color:var(--pp-navy);
  letter-spacing:.03em;
}
.pp-book-intro .pp-section-title{color:#fff}
.pp-red-line{width:70px;height:4px;background:var(--pp-red);margin:12px 0 24px}
.pp-book-note{display:flex;gap:16px;align-items:flex-start;margin:20px 0}
.pp-note-icon{
  min-width:46px;height:46px;border-radius:50%;
  display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.6);
  background:rgba(5,21,45,.35);
  color:#fff;font-weight:900;
}
.pp-note-title{font-weight:1000;text-transform:uppercase}
.pp-reservation-card{
  background:rgba(255,255,255,.96);
  border-radius:10px;
  padding:34px;
  box-shadow:0 24px 55px rgba(2,15,35,.22);
  border:1px solid rgba(7,27,57,.08);
}
.pp-pill{
  background:#eef2f8;
  color:#0b2348;
  border-radius:999px;
  padding:.45rem .75rem;
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
}
.pp-book-grid{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(240px,.7fr);
  gap:28px;
  border-top:1px solid #d9dee8;
  padding-top:22px;
}
.pp-step{
  color:var(--pp-red);
  font-weight:1000;
  text-transform:uppercase;
  margin-bottom:14px;
}
.slot-list{display:grid;gap:10px;max-height:360px;overflow:auto;padding-right:4px}
.slot-btn,.slot-list button{
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
  border:1px solid #d4d8e1;
  background:#fff;
  color:#071b39;
  padding:12px 14px;
  font-weight:850;
  border-radius:8px;
}
.slot-btn:hover,.slot-list button:hover,.slot-btn.active,.slot-list button.active{
  border-color:var(--pp-red);
  background:var(--pp-red);
  color:#fff;
}
.pp-selected{border-radius:8px}
.pp-book-form{
  margin-top:28px;
  border-top:1px solid #e5e7eb;
  padding-top:26px;
}
.pp-book-form .form-control,.pp-contact-modal .form-control{
  border-radius:8px;
  min-height:48px;
}
.pp-about-band{
  background:
    linear-gradient(90deg,rgba(5,20,43,.98),rgba(5,20,43,.9) 50%,rgba(182,15,24,.96) 50%,rgba(120,9,18,.96)),
    var(--pp-navy);
  color:#fff;
  padding:72px 0;
}
.pp-about-card,.pp-quote-card{
  padding:34px;
  border-radius:8px;
  min-height:280px;
}
.pp-about-card{
  background:linear-gradient(120deg,rgba(0,0,0,.18),rgba(255,255,255,.04));
  border:1px solid rgba(255,255,255,.08);
}
.pp-quote-card{
  background:linear-gradient(135deg,rgba(215,25,32,.92),rgba(6,24,50,.38));
}
.pp-quote-mark{font-size:5rem;line-height:.6;font-weight:1000;color:#fff}
.pp-tagline{
  padding:38px 16px;
  background:#fafafa;
  color:#071b39;
  text-align:center;
  font-size:clamp(1.9rem,5vw,4rem);
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.pp-tagline::before,.pp-tagline::after{content:"★";color:#071b39;margin:0 .6em}
.pp-footer{
  padding:50px 0 28px;
  background:linear-gradient(90deg,#061832,#08254d 55%,#061832);
  color:#fff;
}
.pp-footer a{color:#fff;text-decoration:none;opacity:.85}
.pp-footer a:hover{opacity:1;color:#fff}
.pp-footer-title{text-transform:uppercase;font-weight:1000;letter-spacing:.05em}
.pp-contact-modal{border:0;border-radius:16px;overflow:hidden}
.pp-contact-modal .modal-header{
  background:linear-gradient(90deg,#071b39,#0b2f63);
  color:#fff;
}
.fw-black{font-weight:1000}
@media (max-width: 991px){
  .pp-topbar{min-height:72px}
  .pp-image-exact-home .pp-visual-stage{min-height:640px}
  .pp-master-art{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:58% top;
    filter:brightness(.72);
  }
  .pp-mobile-hero-copy{display:block}
  .pp-book-live{
    background:linear-gradient(180deg,#b90f18 0 36%,#f5f2ec 36% 100%);
    padding-top:48px;
  }
  .pp-book-grid{grid-template-columns:1fr}
  .pp-reservation-card{padding:24px}
  .pp-about-band{background:linear-gradient(180deg,#061832,#8b101a)}
}
@media (max-width: 575px){
  .pp-logo-mark{width:48px;height:42px;font-size:1rem}
  .pp-logo-text{font-size:.84rem;max-width:120px}
  .pp-image-exact-home .pp-visual-stage{min-height:560px}
  .pp-mobile-hero-copy{left:22px;right:22px;bottom:44px}
  .pp-mobile-hero-copy h1{font-size:2.55rem}
  .pp-reservation-card{margin-left:-4px;margin-right:-4px}
}
