/*
Theme Name: CastleTV — Premium IPTV Streaming
Theme URI: https://castletv.net
Author: CastleTV
Author URI: https://castletv.net
Description: CastleTV — Your Gateway to 30,000+ Live Channels, 150,000+ Movies & Series, and Every Live Sport in Stunning 4K HD. Stream on Any Device, Anywhere in the World.
Version: 4.1.0
Requires at least: 5.8
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: castletv
Tags: iptv, streaming, entertainment, sports, custom-colors, custom-logo, full-width-template, responsive-layout
*/
:root {
  --brand:        #5B21FA;
  --brand-dark:   #4514D8;
  --brand-soft:   #EDE8FF;
  --red:          #EF4444;
  --gold:         #F59E0B;
  --green:        #10B981;
  --bg:           #FFFFFF;
  --bg-2:         #F8F9FF;
  --bg-3:         #EDE8FF;
  --surface:      #FFFFFF;
  --border:       #E5E7F0;
  --border-md:    #CDD0E8;
  --text:         #0F0A24;
  --text-2:       #4B4B72;
  --text-3:       #9494B8;
  --grad:         linear-gradient(135deg,#5B21FA 0%,#9B59F5 100%);
  --grad-r:       linear-gradient(135deg,#9B59F5 0%,#5B21FA 100%);
  --grad-hero:    linear-gradient(155deg,#EDE8FF 0%,#F8F9FF 50%,#FEE2E2 100%);
  --font-d:       'Plus Jakarta Sans',sans-serif;
  --font-b:       'Inter',sans-serif;
  --r-s: .5rem; --r-m: .875rem; --r-l: 1.25rem; --r-xl: 2rem; --r-f: 9999px;
  --sh-s: 0 1px 4px rgba(0,0,0,.06);
  --sh-m: 0 4px 20px rgba(0,0,0,.09);
  --sh-l: 0 12px 44px rgba(0,0,0,.13);
  --sh-b: 0 4px 20px rgba(91,33,250,.18);
  --ease: all .22s cubic-bezier(.4,0,.2,1);
  --py: 5rem;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font-b);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.65;overflow-x:hidden}
h1,h2,h3,h4,h5,h6{font-family:var(--font-d);line-height:1.15;color:var(--text)}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
button{cursor:pointer;font-family:var(--font-b);background:none;border:none}
ul,ol{list-style:none}

/* LAYOUT */
.wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 1.5rem}
.sec{padding:var(--py) 0;position:relative}
.sec-alt{background:var(--bg-2)}
.sec-tint{background:var(--bg-3)}
.hi{color:var(--brand)}
.ha{color:var(--red)}

/* SECTION HEAD */
.sec-head{text-align:center;max-width:660px;margin:0 auto 3.5rem}
.sec-tag{
  display:inline-flex;align-items:center;gap:.4rem;
  background:var(--brand-soft);color:var(--brand);
  border:1px solid rgba(91,33,250,.18);
  padding:.3rem .9rem;border-radius:var(--r-f);
  font-size:.73rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  margin-bottom:1.1rem
}
.sec-head h2{font-size:clamp(1.8rem,4vw,2.75rem);font-weight:800;letter-spacing:-.025em;margin-bottom:.875rem}
.sec-head p{color:var(--text-2);font-size:1.02rem;line-height:1.72}

/* REVEAL */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .55s ease,transform .55s ease}
.reveal.in{opacity:1;transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}
.d4{transition-delay:.32s}.d5{transition-delay:.40s}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-b);font-weight:700;font-size:.88rem;border-radius:var(--r-f);transition:var(--ease);cursor:pointer;text-decoration:none;white-space:nowrap}
.btn-brand{background:var(--grad);color:#fff;padding:.8rem 1.8rem;box-shadow:0 4px 18px rgba(91,33,250,.32)}
.btn-brand:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(91,33,250,.44)}
.btn-ghost{background:transparent;color:var(--text-2);padding:.8rem 1.6rem;border:1.5px solid var(--border-md)}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}
.btn-wa{background:var(--grad);color:#fff;padding:.8rem 1.8rem;box-shadow:0 4px 18px rgba(91,33,250,.32)}
.btn-wa:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(91,33,250,.44)}
.btn-sm{padding:.45rem 1.1rem;font-size:.82rem}

/* ══ HEADER ══════════════════════════════════════════ */
#site-header{
  position:fixed;top:0;left:0;right:0;z-index:999;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid var(--border);
  transition:var(--ease)
}
#site-header.stuck{background:rgba(255,255,255,.97);box-shadow:var(--sh-s)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:66px;gap:2rem}
.site-logo{display:inline-flex;align-items:center;gap:.625rem;flex-shrink:0}
.logo-icon{width:38px;height:38px;background:var(--grad);border-radius:10px;display:grid;place-items:center;box-shadow:0 4px 14px rgba(91,33,250,.3)}
.logo-icon svg{color:#fff}
.logo-text{display:flex;flex-direction:column;line-height:1}
.logo-name{font-family:var(--font-d);font-size:1.2rem;font-weight:800;color:var(--text);letter-spacing:-.02em}
.logo-name em{font-style:normal;color:var(--brand)}
.logo-sub{font-size:.6rem;color:var(--text-3);font-weight:600;letter-spacing:.07em;text-transform:uppercase;margin-top:2px}
.nav-links{display:flex;align-items:center;gap:.15rem;flex:1;justify-content:center}
.nav-links a,.nav-links .menu a{font-size:.875rem;font-weight:500;color:var(--text-2);padding:.45rem .75rem;border-radius:var(--r-s);transition:var(--ease)}
.nav-links a:hover,.nav-links .menu a:hover{color:var(--brand);background:var(--brand-soft)}
.nav-links ul{display:flex;gap:.15rem}
.nav-links li{list-style:none}
.nav-ctas{display:flex;align-items:center;gap:.75rem;flex-shrink:0}
.nav-btn-plain{font-size:.82rem;font-weight:600;color:var(--text-2);padding:.45rem 1.1rem;border:1.5px solid var(--border-md);border-radius:var(--r-f);transition:var(--ease)}
.nav-btn-plain:hover{border-color:var(--brand);color:var(--brand)}
.nav-btn-cta{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:700;color:#fff;background:var(--grad);padding:.45rem 1.2rem;border-radius:var(--r-f);box-shadow:0 3px 12px rgba(91,33,250,.3);transition:var(--ease)}
.nav-btn-cta:hover{transform:translateY(-1px);box-shadow:0 5px 18px rgba(91,33,250,.42)}
.burger{display:none;flex-direction:column;gap:5px;padding:8px;cursor:pointer}
.burger span{width:22px;height:2px;background:var(--text);border-radius:2px;display:block;transition:var(--ease)}
.burger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.mob-menu{display:none;flex-direction:column;background:#fff;border-top:1px solid var(--border);padding:1rem 1.5rem 1.5rem;gap:.25rem}
.mob-menu.open{display:flex}
.mob-menu a,.mob-menu .menu a{display:block;font-size:.94rem;font-weight:500;color:var(--text-2);padding:.65rem 0;border-bottom:1px solid var(--border);transition:color .2s}
.mob-menu a:hover{color:var(--brand)}
.mob-menu ul{list-style:none;width:100%}
.mob-menu li{list-style:none}
.mob-ctas{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}

/* ══ HERO ════════════════════════════════════════════ */
#hero{
  min-height:100vh;display:flex;align-items:center;
  padding-top:66px;background:var(--grad-hero);
  position:relative;overflow:hidden
}
.hero-orb-1,.hero-orb-2{position:absolute;border-radius:50%;pointer-events:none}
.hero-orb-1{width:600px;height:600px;background:radial-gradient(circle,rgba(91,33,250,.08) 0%,transparent 70%);top:-200px;right:-150px}
.hero-orb-2{width:400px;height:400px;background:radial-gradient(circle,rgba(239,68,68,.06) 0%,transparent 70%);bottom:-100px;left:-100px}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:3rem;padding:4.5rem 0;position:relative;z-index:1}
/* LEFT */
.hero-copy{}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;
  background:#fff;color:var(--brand);
  border:1px solid rgba(91,33,250,.2);
  padding:.35rem 1rem;border-radius:var(--r-f);
  font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  margin-bottom:1.6rem;box-shadow:var(--sh-s)
}
.blink{width:7px;height:7px;border-radius:50%;background:var(--red);animation:blink 1.8s ease-in-out infinite;flex-shrink:0}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
.hero-h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:800;letter-spacing:-.035em;line-height:1.07;margin-bottom:1.4rem}
.hero-sub{font-size:1.04rem;color:var(--text-2);line-height:1.74;margin-bottom:1.75rem;max-width:500px}
.hero-perks{display:flex;flex-direction:column;gap:.55rem;margin-bottom:2rem}
.hero-perks li{display:flex;align-items:center;gap:.625rem;font-size:.875rem;color:var(--text-2);font-weight:500}
.hero-perks li::before{content:'';flex-shrink:0;width:20px;height:20px;border-radius:50%;background:var(--grad);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E"),var(--grad);background-size:12px 12px,cover;background-repeat:no-repeat;background-position:center}
.hero-numbers{display:flex;align-items:center;background:#fff;border:1px solid var(--border);border-radius:var(--r-l);overflow:hidden;margin-bottom:2rem;box-shadow:var(--sh-s)}
.hero-num{flex:1;text-align:center;padding:.875rem .5rem}
.hero-num .n{display:block;font-family:var(--font-d);font-size:1.5rem;font-weight:800;color:var(--brand);letter-spacing:-.02em}
.hero-num .l{display:block;font-size:.66rem;color:var(--text-3);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-top:.2rem}
.hero-div{width:1px;background:var(--border);align-self:stretch;flex-shrink:0}
.hero-actions{display:flex;align-items:center;gap:.875rem;flex-wrap:wrap;margin-bottom:1.5rem}
.hero-trust{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}
.trust-item{display:flex;align-items:center;gap:.35rem;font-size:.76rem;color:var(--text-3);font-weight:500}
.trust-item svg{color:var(--brand)}

/* RIGHT — poster grid */
.hero-visual{position:relative}
.poster-grid{
  display:grid;
  grid-template-columns:1fr 1fr .72fr;
  grid-template-rows:215px 165px;
  gap:.75rem;
  padding-bottom:1.5rem
}
/* grid assignments */
.pg-wide{grid-column:1/3;grid-row:1/2}
.pg-tall{grid-column:3/4;grid-row:1/3}
.pg-sm-a{grid-column:1/2;grid-row:2/3}
.pg-sm-b{grid-column:2/3;grid-row:2/3}

.pcard{
  position:relative;border-radius:var(--r-l);overflow:hidden;
  background:var(--border);box-shadow:var(--sh-m);
  width:100%;height:100%;
  transition:transform .35s ease,box-shadow .35s ease
}
.pcard:hover{transform:translateY(-4px);box-shadow:var(--sh-l)}
.pcard img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
.pcard:hover img{transform:scale(1.05)}
.pcard-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.78) 0%,rgba(0,0,0,.1) 48%,transparent 100%)}
.pcard-info{position:absolute;bottom:0;left:0;right:0;padding:.7rem .875rem;z-index:2}
.pcard-title{font-family:var(--font-d);font-size:.875rem;font-weight:700;color:#fff;margin-bottom:.15rem;text-shadow:0 1px 4px rgba(0,0,0,.5);line-height:1.2}
.pcard-meta{font-size:.66rem;color:rgba(255,255,255,.75);font-weight:500}
.pcard-badge{position:absolute;top:.6rem;left:.6rem;font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:.22rem .55rem;border-radius:var(--r-f);z-index:2}
.badge-live{background:rgba(239,68,68,.92);color:#fff;display:flex;align-items:center;gap:.3rem}
.live-dot{width:6px;height:6px;border-radius:50%;background:#fff;animation:blink 1.2s ease-in-out infinite}
.badge-hot{background:rgba(245,158,11,.92);color:#fff}
.badge-new{background:var(--grad);color:#fff}
.badge-top{background:rgba(16,185,129,.92);color:#fff}
.pcard-qual{position:absolute;top:.6rem;right:.6rem;background:rgba(0,0,0,.55);backdrop-filter:blur(3px);color:#fff;font-size:.58rem;font-weight:800;padding:.15rem .4rem;border-radius:3px;letter-spacing:.04em;z-index:2}
/* price-pill removed — replaced by hero-price-strip below grid */
.hero-fade{position:absolute;bottom:0;left:0;right:0;height:70px;background:linear-gradient(to bottom,transparent,var(--bg));pointer-events:none;z-index:2}

/* ══ MOVIES CAROUSEL ═════════════════════════════════ */
#movies{background:var(--bg-2);padding:var(--py) 0;overflow:hidden}
.carousel-wrap{position:relative;overflow:hidden;margin-top:2.5rem}
.fade-l,.fade-r{position:absolute;top:0;bottom:0;width:90px;z-index:2;pointer-events:none}
.fade-l{left:0;background:linear-gradient(to right,var(--bg-2),transparent)}
.fade-r{right:0;background:linear-gradient(to left,var(--bg-2),transparent)}
.car-row{display:flex;gap:.75rem;width:max-content;margin-bottom:.75rem}
.car-row-1{animation:run-l 50s linear infinite}
.car-row-2{animation:run-r 55s linear infinite}
@keyframes run-l{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes run-r{0%{transform:translateX(-50%)}100%{transform:translateX(0)}}
.car-row:hover,.car-row-1:hover,.car-row-2:hover{animation-play-state:paused}
.mcard{position:relative;width:116px;height:174px;border-radius:var(--r-m);overflow:hidden;flex-shrink:0;background:var(--border);box-shadow:var(--sh-s);cursor:pointer}
.mcard img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.mcard:hover img{transform:scale(1.07)}
.mcard-hover{position:absolute;inset:0;background:rgba(91,33,250,.55);display:grid;place-items:center;opacity:0;transition:opacity .25s}
.mcard:hover .mcard-hover{opacity:1}
.mcard-label{position:absolute;bottom:0;left:0;right:0;padding:.5rem;background:linear-gradient(to top,rgba(0,0,0,.78),transparent);font-size:.65rem;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ══ FEATURES ════════════════════════════════════════ */
#features{background:var(--bg)}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.feat-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--r-l);padding:1.75rem;transition:var(--ease);position:relative;overflow:hidden}
.feat-card:hover{transform:translateY(-5px);box-shadow:var(--sh-b);border-color:rgba(91,33,250,.25)}
.feat-icon{width:50px;height:50px;border-radius:var(--r-m);display:grid;place-items:center;margin-bottom:1.2rem}
.feat-icon svg{color:#fff}
.feat-card h3{font-size:1rem;font-weight:700;margin-bottom:.5rem}
.feat-card p{font-size:.875rem;color:var(--text-2);line-height:1.65}

/* ══ CHANNELS ════════════════════════════════════════ */
#channels{background:var(--bg-2)}
.ch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:.875rem;margin-top:2.5rem}
.ch-item{background:#fff;border:1.5px solid var(--border);border-radius:var(--r-m);padding:1.1rem .875rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;transition:var(--ease)}
.ch-item:hover{border-color:var(--brand);box-shadow:var(--sh-b);transform:translateY(-3px)}
.ch-item img{width:64px;height:38px;object-fit:contain}
.ch-item span{font-size:.66rem;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;text-align:center}

/* ══ PRICING ═════════════════════════════════════════ */
#pricing{background:var(--bg-3)}
.plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;align-items:end}
.plan-wrap{position:relative;padding-top:2.5rem}
.plan-popular-tag{position:absolute;top:0;left:50%;transform:translateX(-50%);background:var(--grad);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.28rem .9rem;border-radius:var(--r-f) var(--r-f) 0 0;white-space:nowrap}
.plan-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--r-l);padding:2rem 1.6rem;transition:var(--ease)}
.plan-card.featured{border-color:var(--brand);box-shadow:0 0 0 3px rgba(91,33,250,.1),var(--sh-m);transform:scale(1.04)}
.plan-card:hover{box-shadow:var(--sh-b);border-color:var(--brand)}
.plan-name{font-weight:700;font-size:1rem;margin-bottom:.2rem}
.plan-duration{font-size:.76rem;color:var(--text-3);margin-bottom:1.1rem}
.plan-price{font-family:var(--font-d);font-size:2.6rem;font-weight:800;color:var(--brand);letter-spacing:-.04em;line-height:1;margin-bottom:1.5rem}
.plan-price span{font-size:.88rem;font-weight:500;color:var(--text-3)}
.plan-perks{display:flex;flex-direction:column;gap:.55rem;margin-bottom:1.5rem}
.plan-perks li{display:flex;align-items:flex-start;gap:.55rem;font-size:.82rem;color:var(--text-2);line-height:1.5}
.plan-perks li::before{content:'✓';flex-shrink:0;width:17px;height:17px;background:var(--brand-soft);color:var(--brand);border-radius:50%;font-size:.6rem;font-weight:800;display:grid;place-items:center;margin-top:1px}
.plan-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.86rem;font-weight:700;padding:.825rem 1rem;border-radius:var(--r-f);text-decoration:none;margin-bottom:.625rem;transition:var(--ease)}
.plan-btn-main{background:var(--grad);color:#fff;box-shadow:0 4px 16px rgba(91,33,250,.28)}
.plan-btn-main:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(91,33,250,.38)}
.plan-btn-plain{background:transparent;color:var(--text-2);border:1.5px solid var(--border)}
.plan-btn-plain:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}
.plan-wa{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  font-size:.82rem;font-weight:700;
  color:#fff;
  background:#25D366;
  padding:.7rem 1rem;
  border-radius:var(--r-f);
  text-decoration:none;
  transition:var(--ease);
  box-shadow:0 3px 12px rgba(37,211,102,.3)
}
.plan-wa:hover{
  background:#1ebe5c;
  transform:translateY(-1px);
  box-shadow:0 5px 18px rgba(37,211,102,.45)
}
.plan-wa svg{filter:brightness(0) invert(1)}

/* ══ REVIEWS ══════════════════════════════════════════ */
#reviews{background:var(--bg)}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.review-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--r-l);padding:1.75rem;transition:var(--ease)}
.review-card:hover{transform:translateY(-3px);box-shadow:var(--sh-b);border-color:rgba(91,33,250,.2)}
.review-quote{font-size:2.75rem;line-height:1;color:var(--brand);opacity:.25;font-family:Georgia,serif;margin-bottom:.5rem}
.review-stars{display:flex;gap:.15rem;margin-bottom:.875rem}
.review-stars span{color:var(--gold);font-size:.9rem}
.review-body{font-size:.875rem;color:var(--text-2);line-height:1.72;margin-bottom:1.25rem}
.review-footer{display:flex;align-items:center;gap:.75rem}
.review-avatar{width:38px;height:38px;border-radius:50%;background:var(--grad);color:#fff;font-family:var(--font-d);font-size:.85rem;font-weight:700;display:grid;place-items:center;flex-shrink:0}
.review-name{font-size:.84rem;font-weight:700;display:flex;align-items:center;gap:.35rem}
.review-check{font-size:.66rem;color:var(--green);font-weight:600}
.review-loc{font-size:.74rem;color:var(--text-3);margin-top:.1rem}
.rating-strip{display:inline-flex;align-items:center;gap:.625rem;background:#fff;border:1.5px solid var(--border);border-radius:var(--r-f);padding:.55rem 1.4rem;font-size:.875rem;color:var(--text-2);font-weight:600;margin-bottom:2.5rem;box-shadow:var(--sh-s)}
.rating-strip .stars{color:var(--gold)}
.rating-strip strong{color:var(--text)}

/* ══ FAQ ══════════════════════════════════════════════ */
#faq{background:var(--bg-2)}
.faq-list{max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:.625rem}
.faq-item{background:#fff;border:1.5px solid var(--border);border-radius:var(--r-l);overflow:hidden;transition:border-color .25s}
.faq-item.open{border-color:var(--brand)}
.faq-trigger{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1.2rem 1.4rem;background:none;border:none;cursor:pointer;color:var(--text);font-size:.92rem;font-weight:600;text-align:left;gap:1rem;font-family:var(--font-b)}
.faq-arrow{flex-shrink:0;width:18px;height:18px;color:var(--text-3);transition:transform .3s ease}
.faq-item.open .faq-arrow{transform:rotate(180deg);color:var(--brand)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-answer.open{max-height:280px}
.faq-answer p{padding:.25rem 1.4rem 1.4rem;font-size:.875rem;color:var(--text-2);line-height:1.72}

/* ══ CTA BAND ════════════════════════════════════════ */
#trial-cta{background:var(--bg);padding:var(--py) 0}
.cta-band{background:var(--grad);border-radius:var(--r-xl);padding:3.5rem 3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;position:relative;overflow:hidden}
.cta-band::before,.cta-band::after{content:'';position:absolute;border-radius:50%;background:rgba(255,255,255,.06);pointer-events:none}
.cta-band::before{width:280px;height:280px;right:-70px;top:-70px}
.cta-band::after{width:180px;height:180px;right:100px;bottom:-90px}
.cta-copy h2{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;color:#fff;margin-bottom:.5rem;letter-spacing:-.02em}
.cta-copy p{font-size:.95rem;color:rgba(255,255,255,.82);line-height:1.6}
.btn-cta-white{display:inline-flex;align-items:center;gap:.5rem;background:#fff;color:var(--brand);font-weight:700;font-size:.9rem;padding:.875rem 2rem;border-radius:var(--r-f);white-space:nowrap;box-shadow:0 4px 16px rgba(0,0,0,.15);transition:var(--ease);position:relative;z-index:2;flex-shrink:0}
.btn-cta-white:hover{transform:translateY(-2px);box-shadow:0 8px 26px rgba(0,0,0,.22)}

/* ══ FOOTER ══════════════════════════════════════════ */
#site-footer{background:var(--text);padding-top:4rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.08)}
.footer-brand p{font-size:.875rem;color:rgba(255,255,255,.5);line-height:1.72;margin-bottom:1.5rem;max-width:290px}
.footer-logo .logo-name{color:#fff}
.footer-logo .logo-name em{color:#a78bfa}
.footer-logo .logo-sub{color:rgba(255,255,255,.35)}
.socials{display:flex;gap:.5rem;flex-wrap:wrap}
.soc-btn{width:34px;height:34px;border-radius:var(--r-s);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.55);display:grid;place-items:center;transition:var(--ease)}
.soc-btn:hover{background:var(--brand);border-color:var(--brand);color:#fff}
.footer-col h4{font-size:.78rem;font-weight:700;color:#fff;letter-spacing:.07em;text-transform:uppercase;margin-bottom:1.2rem}
.footer-col ul{display:flex;flex-direction:column;gap:.55rem}
.footer-col li{list-style:none}
.footer-col a{font-size:.875rem;color:rgba(255,255,255,.48);transition:color .2s}
.footer-col a:hover{color:#fff}
.contact-row{display:flex;align-items:flex-start;gap:.625rem;font-size:.875rem;color:rgba(255,255,255,.48);margin-bottom:.75rem}
.contact-row svg{color:#a78bfa;flex-shrink:0;margin-top:2px}
.contact-row a{color:rgba(255,255,255,.48);transition:color .2s}
.contact-row a:hover{color:#fff}
.support-box{margin-top:1rem;background:rgba(91,33,250,.12);border:1px solid rgba(91,33,250,.2);border-radius:.75rem;padding:.875rem}
.support-box p:first-child{font-size:.7rem;color:#a78bfa;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2rem}
.support-box p:last-child{font-size:.78rem;color:rgba(255,255,255,.38)}
.footer-bottom{padding:1.5rem 0;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.footer-bottom p{font-size:.78rem;color:rgba(255,255,255,.28)}
.legal-links{display:flex;gap:1.5rem}
.legal-links a{font-size:.78rem;color:rgba(255,255,255,.28);transition:color .2s}
.legal-links a:hover{color:rgba(255,255,255,.65)}

/* ══ RESPONSIVE ══════════════════════════════════════ */
@media(max-width:1024px){
  .plan-grid{grid-template-columns:repeat(2,1fr)}
  .plan-card.featured{transform:none}
  .feat-grid{grid-template-columns:repeat(2,1fr)}
  .poster-grid{grid-template-columns:1fr 1fr;grid-template-rows:195px 195px}
  .pg-wide{grid-column:1/2;grid-row:1/2}
  .pg-tall{grid-column:2/3;grid-row:1/3}
  .pg-sm-a{grid-column:1/2;grid-row:2/3}
  .pg-sm-b{display:none}
}
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .hero-visual{display:none}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem}
  .review-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  .nav-links,.nav-ctas{display:none}
  .burger{display:flex}
  .feat-grid{grid-template-columns:1fr}
  .plan-grid{grid-template-columns:1fr}
  .review-grid{grid-template-columns:1fr}
  .cta-band{flex-direction:column;text-align:center}
  .footer-grid{grid-template-columns:1fr;gap:1.5rem}
  :root{--py:3.5rem}
}
@media(max-width:480px){
  .hero-numbers{flex-direction:column;gap:.5rem}
  .hero-div{width:60%;height:1px;align-self:auto}
  .ch-grid{grid-template-columns:repeat(3,1fr)}
}
@media(prefers-reduced-motion:reduce){
  .car-row-1,.car-row-2{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
}

/* ── HERO WIDE CARD (landscape match photo) specific fixes ── */
.pg-wide {
  /* Landscape match photo needs a taller cell so the action shows */
  min-height: 215px;
}
.pg-wide img {
  /* Show the upper portion of the 16:9 image where the action is */
  object-position: center 25% !important;
}
/* Softer bottom gradient on wide card — photo is already dark enough at edges */
.pg-wide .pcard-overlay {
  background: linear-gradient(
    to top,
    rgba(0,0,0,.72) 0%,
    rgba(0,0,0,.08) 40%,
    transparent 100%
  );
}

/* Portrait poster cards — always show top (faces/titles) */
.pg-tall img,
.pg-sm-a img,
.pg-sm-b img {
  object-position: center top !important;
}

/* Ensure poster cards never have broken-image gap */
.pcard img {
  background: var(--border);
}

/* ── DOCUMENT / BROWSER TITLE UPDATE ── */
/* Adds brand suffix to <title> via CSS content — handled in PHP */

/* ── SITE-WIDE TITLE TAG improvement ── */
/* (Handled in functions.php castletv_seo_head) */

/* ════════════════════════════════════════════════════
   HERO POSTER GRID — v4.1 clean layout
   Price strip sits BELOW the grid, never overlapping
════════════════════════════════════════════════════ */

/* Grid — no bottom padding needed for a floating pill */
.poster-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 0.70fr;
  grid-template-rows: 215px 165px;
  gap: 0.75rem;
  /* no padding-bottom — price strip is outside the grid */
}

/* Grid slot assignments */
.pg-wide { grid-column: 1 / 3; grid-row: 1 / 2; }
.pg-tall { grid-column: 3 / 4; grid-row: 1 / 3; }
.pg-sm-a { grid-column: 1 / 2; grid-row: 2 / 3; }
.pg-sm-b { grid-column: 2 / 3; grid-row: 2 / 3; }

/* Every card fills its cell completely */
.pcard {
  position: relative;
  border-radius: var(--r-l);
  overflow: hidden;
  background: var(--border);
  box-shadow: var(--sh-m);
  width: 100%;
  height: 100%;
  transition: transform .35s ease, box-shadow .35s ease;
}
.pcard:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-l);
}
.pcard img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .45s ease;
  background: var(--border); /* placeholder colour while loading */
}
.pcard:hover img { transform: scale(1.05); }

/* Portrait posters — always show top (title/face area) */
.pg-tall img,
.pg-sm-a img,
.pg-sm-b img {
  object-position: center top !important;
}

/* Wide sports card — 1456x819 match photo, show penalty area action at top-centre */
.pg-wide img {
  object-position: center 20% !important;
}

/* Gradient overlay — bottom-heavy so text is readable */
.pcard-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,.78) 0%,
    rgba(0,0,0,.08) 48%,
    transparent 100%
  );
  pointer-events: none;
}

/* Badge top-left */
.pcard-badge {
  position: absolute;
  top: 0.6rem;
  left: 0.6rem;
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: .22rem .55rem;
  border-radius: var(--r-f);
  z-index: 2;
}
.badge-live  { background: rgba(239,68,68,.92); color: #fff; display: flex; align-items: center; gap: .3rem; }
.live-dot    { width: 6px; height: 6px; border-radius: 50%; background: #fff; animation: blink 1.2s ease-in-out infinite; }
.badge-hot   { background: rgba(245,158,11,.92); color: #fff; }
.badge-new   { background: var(--grad); color: #fff; }
.badge-top   { background: rgba(16,185,129,.92); color: #fff; }

/* Quality pip top-right */
.pcard-qual {
  position: absolute;
  top: 0.6rem;
  right: 0.6rem;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(3px);
  color: #fff;
  font-size: .58rem;
  font-weight: 800;
  padding: .15rem .4rem;
  border-radius: 3px;
  letter-spacing: .04em;
  z-index: 2;
}

/* Info bar fixed at bottom */
.pcard-info {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 0.7rem 0.875rem;
  z-index: 2;
}
.pcard-title {
  font-family: var(--font-d);
  font-size: .875rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: .15rem;
  text-shadow: 0 1px 4px rgba(0,0,0,.5);
  line-height: 1.2;
}
.pcard-meta {
  font-size: .66rem;
  color: rgba(255,255,255,.78);
  font-weight: 500;
}

/* ── PRICE STRIP — below grid, never overlapping ── */
.hero-price-strip {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.875rem;
  background: #fff;
  border: 1.5px solid var(--border);
  border-radius: var(--r-l);
  padding: 0.875rem 1.25rem;
  box-shadow: 0 4px 16px rgba(91,33,250,.1);
  flex-wrap: wrap;
}
.hero-price-label {
  font-size: .8rem;
  color: var(--text-3);
  font-weight: 500;
}
.hero-price-amount {
  font-family: var(--font-d);
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--brand);
  letter-spacing: -.03em;
  line-height: 1;
}
.hero-price-per {
  font-size: .8rem;
  color: var(--text-3);
  margin-right: auto; /* push CTA link to the right */
}
.hero-price-cta {
  font-size: .82rem;
  font-weight: 700;
  color: var(--brand);
  text-decoration: none;
  padding: .4rem .875rem;
  border: 1.5px solid var(--brand);
  border-radius: var(--r-f);
  transition: var(--ease);
  white-space: nowrap;
}
.hero-price-cta:hover {
  background: var(--brand);
  color: #fff;
}

/* ── Responsive overrides ── */
@media (max-width: 1024px) {
  .poster-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 195px 195px;
  }
  .pg-wide { grid-column: 1 / 2; grid-row: 1 / 2; }
  .pg-tall { grid-column: 2 / 3; grid-row: 1 / 3; }
  .pg-sm-a { grid-column: 1 / 2; grid-row: 2 / 3; }
  .pg-sm-b { display: none; }
}
@media (max-width: 900px) {
  .hero-visual { display: none; }
}

/* Remove duplicate old poster grid rules if present */
