/* ==================================================
   PitchLocal Core Layout (Single Source of Truth)
   ================================================== */

:root{
  --plMax: 1200px;
  --plPad: 28px;

  --shadow: 0 16px 50px rgba(15,23,42,.10);

  --surfaceLight: #ffffff;
  --surfaceDark: #0b1220;

  --textLight: #0f172a;
  --textDark:  #e5e7eb;

  --mutedLight: rgba(15,23,42,.70);
  --mutedDark:  rgba(226,232,240,.72);

  --borderLight: rgba(148,163,184,.22);
  --borderDark:  rgba(148,163,184,.16);

  --accentA: rgba(15,41,66,.55);
  --accentB: rgba(180,131,46,.55);
}

/* ===== PitchLocal Global Typography ===== */
html, body{
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.6;
}

body{
  font-weight: 400;
  letter-spacing: 0;
}

h1, h2, h3, h4, h5, h6{
  margin: 0;
  line-height: 1.2;
  letter-spacing: -0.02em;
  font-weight: 600;
}

h1{
  font-size: clamp(22px, 3vw, 28px);
  font-weight: 650;
}

h2{
  font-size: clamp(18px, 2.2vw, 22px);
  font-weight: 600;
}

h3{
  font-size: clamp(16px, 1.8vw, 18px);
  font-weight: 600;
}

h4{
  font-size: 15px;
  font-weight: 600;
}

p{
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
}

.small{
  font-size: 12px;
  line-height: 1.55;
}

label{
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
}

input,
textarea,
select,
button{
  font: inherit;
}

.btn{
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
}

.pill,
.miniPill{
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0;
}

.miniPill{
  font-size:11px;
  opacity:.85;
}

.statLabel,
.summaryLabel,
.rulesTitle,
.previewEyebrow,
.slideEyebrow,
.pitchKicker,
.stepHeaderMini{
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.statValue{
  font-size: clamp(20px, 2.4vw, 26px);
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.statHint,
.summarySub,
.rulesText,
.previewTopSub,
.fileNote{
  font-size: 12px;
  line-height: 1.65;
}

.plFooterTitle{
  font-size: 15px;
  font-weight: 600;
}

.plFooterText,
.plFooterLink{
  font-size: 13px;
  line-height: 1.65;
}

/* ==================================================
   Base
   ================================================== */

*{ box-sizing:border-box; }

html, body{ height:100%; }

html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

body{
  margin:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--textLight);
  background:
    radial-gradient(900px 420px at 20% 0%, rgba(15,41,66,.16), transparent 60%),
    radial-gradient(900px 420px at 90% 12%, rgba(180,131,46,.12), transparent 55%),
    linear-gradient(180deg, rgba(241,245,255,.35), rgba(255,255,255,0));
}

html[data-theme="dark"] body{
  color:var(--textDark);
  background:
    radial-gradient(900px 420px at 20% 0%, rgba(15,41,66,.22), transparent 60%),
    radial-gradient(900px 420px at 90% 12%, rgba(180,131,46,.18), transparent 55%),
    #050a14;
}

img{
  max-width:100%;
  height:auto;
}

a{
  color:inherit;
  text-decoration:none;
}

button,
input,
select,
textarea{
  font:inherit;
}

.small{ font-size:12px; opacity:.82; }
.muted{ opacity:.72; }

/* ==================================================
   Container
   ================================================== */

.wrap{
  max-width:var(--plMax);
  margin:0 auto;
  padding-left:var(--plPad);
  padding-right:var(--plPad);
  overflow:visible;
}

@media (min-width:1600px){
  .wrap{ max-width:1350px; }
}

@media (max-width:720px){
  :root{ --plPad:16px; }
}

/* ==================================================
   Premium Surfaces
   ================================================== */

.plGlass{
  background:rgba(255,255,255,.74);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid var(--borderLight);
}

html[data-theme="dark"] .plGlass{
  background:rgba(11,18,32,.72);
  border:1px solid var(--borderDark);
}

.plGlowBorder{
  position:relative;
}

.plGlowBorder::before{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(135deg, var(--accentA), var(--accentB));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
  opacity:.55;
}

/* ==================================================
   Buttons
   ================================================== */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 14px;
  min-height:42px;
  border-radius:12px;
  font-weight:700;
  font-size:13px;
  text-decoration:none;
  cursor:pointer;
  border:1px solid rgba(148,163,184,.28);
  background:transparent;
  color:inherit;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, opacity .15s ease;
}

.btn:hover{ transform:translateY(-1px); }
.btn:active{ transform:translateY(0); }

.btn.primary{
  border:none;
  background:linear-gradient(135deg, rgba(15,41,66,.95), rgba(180,131,46,.95));
  color:#fff;
  box-shadow:0 14px 30px rgba(180,131,46,.20);
}

.btn.ghost{
  background:rgba(148,163,184,.08);
}

html[data-theme="dark"] .btn.ghost{
  background:rgba(148,163,184,.10);
}

/* ==================================================
   Alerts / badges
   ================================================== */

.banner{
  margin-top:12px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(148,163,184,.22);
  background:rgba(148,163,184,.08);
}

.banner.ok{
  background:rgba(34,197,94,.10);
  border-color:rgba(34,197,94,.25);
}

.banner.err{
  background:rgba(239,68,68,.10);
  border-color:rgba(239,68,68,.25);
}

.banner.warn{
  background:rgba(245,158,11,.10);
  border-color:rgba(245,158,11,.25);
}

.green{ color:#16a34a; font-weight:700; }
.amber{ color:#f59e0b; font-weight:700; }

.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  border:1px solid rgba(148,163,184,.20);
  white-space:nowrap;
}

.badge.pub{ background:rgba(34,197,94,.12); }
.badge.draft{ background:rgba(245,158,11,.12); }
.badge.admin{ background:rgba(180,131,46,.12); }

/* ==================================================
   Image Direction System — brand photo grading
   ================================================== */

.plPhotoTreatment{
  position:relative;
}

.plPhotoTreatment::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(120% 90% at 85% 0%, rgba(180,131,46,.16), transparent 55%),
    linear-gradient(180deg, rgba(15,41,66,.10) 0%, rgba(15,23,42,.20) 45%, rgba(15,23,42,.82) 100%);
  pointer-events:none;
}

html[data-theme="dark"] .plPhotoTreatment::before{
  background:
    radial-gradient(120% 90% at 85% 0%, rgba(180,131,46,.20), transparent 55%),
    linear-gradient(180deg, rgba(5,10,20,.20) 0%, rgba(5,10,20,.40) 45%, rgba(5,10,20,.90) 100%);
}

/* ==================================================
   Utility
   ================================================== */

.hidden{ display:none !important; }
.center{ text-align:center; }
.right{ text-align:right; }
.mt8{ margin-top:8px; }
.mt12{ margin-top:12px; }
.mt16{ margin-top:16px; }
.mt20{ margin-top:20px; }
.mt24{ margin-top:24px; }

/* ===== PitchLocal footer/mobile final fix ===== */

html,
body{
  min-height:100%;
  height:auto;
}

body{
  background-repeat:no-repeat;
  background-size:cover;
  background-attachment:scroll;
}

.wrap{
  min-height:0 !important;
  height:auto !important;
  display:block !important;
}

.plSiteFooter{
  margin-top:28px !important;
  padding-bottom:10px !important;
}

.plSiteFooterBottom{
  margin-top:14px !important;
}

@media(max-width:768px){
  .plSiteFooter{
    margin-top:28px !important;
    padding-bottom:8px !important;
  }

  .plSiteFooterBottom{
    margin-top:14px !important;
    padding-top:12px !important;
  }

  .floatingCTA{
    bottom:18px !important;
  }
}

@media(max-width:1024px){
  .plHeaderNav,
  .plHeaderActions{
    display:none !important;
  }

  .plHeaderMenuBox{
    display:block !important;
  }
}

@media(max-width:1024px){
  .plHeader .plHeaderInner{
    display:none !important;
  }

  .plHeader .plHeaderMobileBar{
    display:flex !important;
  }
}