/*
Theme Name: CCTV Surabaya (Landing)
Text Domain: cctv-surabaya
Version: 1.0.0
*/

:root{
  --cctv-bg:#070a13;
  --cctv-bg2:#050816;
  --cctv-surface:rgba(10,16,34,.72);
  --cctv-card:rgba(12,20,46,.62);
  --cctv-text:#e9f4ff;
  --cctv-muted:rgba(233,244,255,.70);
  --cctv-primary:#18f6ff;
  --cctv-primary2:#7c3aed;
  --cctv-accent:#ffb703;
  --cctv-border:rgba(24,246,255,.18);
  --cctv-shadow:0 20px 60px rgba(0,0,0,.45);
  --cctv-radius:18px;
  --cctv-radius-sm:14px;
  --cctv-max:1180px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
  color:var(--cctv-text);
  background:
    radial-gradient(900px 520px at 20% -10%, rgba(24,246,255,.18), transparent 55%),
    radial-gradient(820px 520px at 85% 10%, rgba(124,58,237,.18), transparent 55%),
    radial-gradient(900px 620px at 50% 110%, rgba(255,183,3,.10), transparent 60%),
    linear-gradient(180deg, var(--cctv-bg), var(--cctv-bg2));
  line-height:1.6;
  overflow-x:hidden;
}

a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}

.cctv-container{max-width:var(--cctv-max);margin:0 auto;padding:0 18px}

.cctv-topbar{
  position:sticky;top:0;z-index:50;
  background:rgba(7,10,19,.66);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--cctv-border);
}
.cctv-nav{
  display:flex;align-items:center;justify-content:space-between;
  gap:14px;padding:14px 0;
}
.cctv-brand{display:flex;align-items:center;gap:10px;min-width:210px}
.cctv-logo{
  width:42px;height:42px;border-radius:14px;
  background:linear-gradient(135deg, rgba(24,246,255,.95), rgba(124,58,237,.8));
  box-shadow:0 10px 26px rgba(24,246,255,.10);
  display:grid;place-items:center;
}
.cctv-logo svg{width:22px;height:22px}
.cctv-brand-title{font-weight:800;letter-spacing:.2px;line-height:1.15}
.cctv-brand-sub{font-size:12px;color:var(--cctv-muted);line-height:1.1}

.cctv-menu{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.cctv-menu ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cctv-menu li{margin:0;padding:0}
.cctv-menu a{
  display:inline-flex;
  padding:8px 10px;border-radius:12px;
  color:rgba(233,244,255,.88);
  font-weight:700;
}
.cctv-menu a:hover{background:rgba(24,246,255,.08);color:#fff}
.cctv-menu-wa{display:none}

.cctv-actions{display:flex;align-items:center;gap:10px}

.cctv-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:10px 14px;border-radius:14px;
  border:1px solid var(--cctv-border);
  background:rgba(24,246,255,.06);
  color:rgba(233,244,255,.94);
  font-weight:800;letter-spacing:.3px;
}
.cctv-btn-primary{
  background:linear-gradient(135deg, rgba(24,246,255,.95), rgba(124,58,237,.88));
  border-color:rgba(255,255,255,.10);
  color:#07101f;
  box-shadow:0 18px 40px rgba(24,246,255,.12);
}
.cctv-btn-primary:hover{filter:brightness(1.04)}
.cctv-btn-ghost:hover{background:rgba(24,246,255,.10)}

.cctv-toggle{
  display:none;
  width:46px;height:46px;border-radius:14px;
  border:1px solid var(--cctv-border);
  background:rgba(24,246,255,.06);
  color:rgba(233,244,255,.9);
}
.cctv-toggle span{
  display:block;width:20px;height:2px;background:rgba(233,244,255,.9);
  margin:0 auto;position:relative;
}
.cctv-toggle span::before,.cctv-toggle span::after{
  content:"";position:absolute;left:0;width:20px;height:2px;background:rgba(233,244,255,.9);
}
.cctv-toggle span::before{top:-7px}
.cctv-toggle span::after{top:7px}
.cctv-toggle.is-active span{background:transparent}
.cctv-toggle.is-active span::before{top:0;transform:rotate(45deg)}
.cctv-toggle.is-active span::after{top:0;transform:rotate(-45deg)}

.cctv-hero{padding:58px 0 24px}
.cctv-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;align-items:stretch}
.cctv-card{
  border:1px solid rgba(24,246,255,.14);
  background:linear-gradient(180deg, rgba(12,20,46,.70), rgba(10,16,34,.58));
  border-radius:var(--cctv-radius);
  box-shadow:var(--cctv-shadow);
  overflow:hidden;
}
.cctv-hero-copy{padding:28px 28px 24px}
.cctv-pill{
  display:inline-flex;align-items:center;gap:10px;
  padding:7px 12px;border-radius:999px;
  border:1px solid rgba(24,246,255,.22);
  background:rgba(24,246,255,.08);
  color:rgba(233,244,255,.92);
  font-weight:800;font-size:12px;letter-spacing:.6px;
}
.cctv-hero-title{margin:14px 0 10px;font-size:44px;line-height:1.08;letter-spacing:-.6px}
.cctv-hero-title span{color:var(--cctv-primary)}
.cctv-hero-sub{margin:0;color:var(--cctv-muted);max-width:62ch}
.cctv-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.cctv-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}
.cctv-stat{
  border:1px solid rgba(24,246,255,.12);
  background:rgba(7,10,19,.35);
  border-radius:16px;
  padding:12px 12px 11px;
}
.cctv-stat strong{display:block;font-size:14px}
.cctv-stat span{display:block;font-size:12px;color:var(--cctv-muted);margin-top:4px}

.cctv-hero-panel{
  position:relative;
  min-height:360px;
  background:
    radial-gradient(680px 420px at 50% 0%, rgba(24,246,255,.22), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
}
.cctv-hero-panel::before{
  content:"";
  position:absolute;inset:0;
  background:
    repeating-linear-gradient(
      180deg,
      rgba(24,246,255,.00) 0px,
      rgba(24,246,255,.00) 10px,
      rgba(24,246,255,.05) 11px
    );
  opacity:.6;
  pointer-events:none;
}
.cctv-hero-panel-inner{position:absolute;inset:0;padding:18px;display:flex;flex-direction:column;justify-content:space-between;gap:12px}
.cctv-panel-box{
  border:1px solid rgba(24,246,255,.16);
  background:rgba(7,10,19,.55);
  border-radius:16px;
  padding:14px;
}
.cctv-panel-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cctv-panel-title{font-weight:850;letter-spacing:.4px}
.cctv-badge{
  padding:6px 10px;border-radius:999px;
  border:1px solid rgba(255,183,3,.26);
  background:rgba(255,183,3,.10);
  color:rgba(233,244,255,.92);
  font-weight:800;font-size:12px;
}
.cctv-panel-list{margin-top:12px;display:grid;gap:8px}
.cctv-panel-item{display:flex;gap:10px;align-items:center;color:rgba(233,244,255,.82);font-size:13px}
.cctv-dot{width:10px;height:10px;border-radius:50%;background:var(--cctv-primary);box-shadow:0 0 14px rgba(24,246,255,.35)}

.cctv-section{padding:26px 0}
.cctv-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
.cctv-head h2{margin:0;font-size:22px;letter-spacing:-.2px}
.cctv-head p{margin:6px 0 0;color:var(--cctv-muted);font-size:13px;max-width:76ch}

.cctv-gallery .cctv-head{margin-bottom:14px}
.cctv-marquee{
  border:1px solid rgba(24,246,255,.14);
  background:rgba(7,10,19,.35);
  border-radius:var(--cctv-radius);
  overflow:hidden;
  box-shadow:0 18px 46px rgba(0,0,0,.35);
}
.cctv-marquee + .cctv-marquee{margin-top:12px}
.cctv-marquee-track{
  display:flex;
  align-items:center;
  gap:14px;
  width:max-content;
  padding:14px;
  animation:cctv-marquee 42s linear infinite;
}
.cctv-marquee-reverse .cctv-marquee-track{animation-direction:reverse}
.cctv-marquee:hover .cctv-marquee-track{animation-play-state:paused}

.cctv-frame{
  flex:0 0 auto;
  width:240px;
  aspect-ratio:16/10;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(24,246,255,.18);
  background:linear-gradient(180deg, rgba(12,20,46,.75), rgba(10,16,34,.60));
  box-shadow:0 12px 30px rgba(0,0,0,.35);
  position:relative;
  transform:translateZ(0);
}
.cctv-frame::before{
  content:"";
  position:absolute;inset:0;
  background:repeating-linear-gradient(
    180deg,
    rgba(24,246,255,.00) 0px,
    rgba(24,246,255,.00) 10px,
    rgba(24,246,255,.05) 11px
  );
  opacity:.55;
  pointer-events:none;
}
.cctv-frame::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(120deg, rgba(24,246,255,.14), transparent 55%);
  opacity:.55;
  pointer-events:none;
}
.cctv-frame img{
  width:100%;height:100%;
  object-fit:cover;
  opacity:.92;
  filter:saturate(1.12) contrast(1.06);
  transition:transform .45s ease, opacity .25s ease;
}
.cctv-frame:hover img{transform:scale(1.06);opacity:1}

@keyframes cctv-marquee{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}

.cctv-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.cctv-col-4{grid-column:span 4}
.cctv-col-6{grid-column:span 6}
.cctv-col-8{grid-column:span 8}
.cctv-col-12{grid-column:span 12}

.cctv-card-body{padding:16px}
.cctv-card-title{margin:0;font-size:16px}
.cctv-card-desc{margin:8px 0 0;color:var(--cctv-muted);font-size:13px}
.cctv-icon{
  width:44px;height:44px;border-radius:16px;
  border:1px solid rgba(24,246,255,.18);
  background:rgba(24,246,255,.06);
  display:grid;place-items:center;
  box-shadow:0 14px 34px rgba(24,246,255,.08);
}
.cctv-icon svg{width:22px;height:22px}
.cctv-row{display:flex;gap:12px}

.cctv-pack{
  border:1px solid rgba(24,246,255,.16);
  background:linear-gradient(180deg, rgba(12,20,46,.72), rgba(10,16,34,.60));
  border-radius:var(--cctv-radius);
  padding:18px;
  position:relative;
  overflow:hidden;
}
.cctv-pack.featured{border-color:rgba(24,246,255,.34);box-shadow:0 22px 54px rgba(24,246,255,.10)}
.cctv-pack-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cctv-pack-name{font-weight:900;letter-spacing:.3px}
.cctv-pack-price{margin-top:10px;font-size:26px;font-weight:900}
.cctv-pack-price small{font-size:12px;color:var(--cctv-muted);font-weight:800}
.cctv-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.cctv-list li{display:flex;gap:10px;align-items:flex-start;color:rgba(233,244,255,.84);font-size:13px}
.cctv-list li::before{content:"";width:10px;height:10px;border-radius:50%;background:rgba(24,246,255,.86);box-shadow:0 0 14px rgba(24,246,255,.28);margin-top:4px;flex:0 0 auto}
.cctv-pack .cctv-btn{width:100%;margin-top:16px}

.cctv-cta{
  border:1px solid rgba(24,246,255,.20);
  background:linear-gradient(135deg, rgba(12,20,46,.75), rgba(24,246,255,.06));
  border-radius:var(--cctv-radius);
  box-shadow:var(--cctv-shadow);
  padding:18px;
}
.cctv-cta-grid{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.cctv-cta h3{margin:0;font-size:20px}
.cctv-cta p{margin:8px 0 0;color:var(--cctv-muted);max-width:70ch}
.cctv-cta-actions{display:flex;gap:10px;flex-wrap:wrap}

.cctv-footer{
  border-top:1px solid rgba(24,246,255,.14);
  background:rgba(7,10,19,.65);
  margin-top:40px;
  padding:34px 0 18px;
}
.cctv-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:26px;align-items:flex-start}
.cctv-footer h4{margin:0 0 12px;font-size:14px;letter-spacing:.6px}
.cctv-footer p,.cctv-footer a,.cctv-footer li{color:rgba(233,244,255,.72);font-size:13px}
.cctv-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.cctv-footer a:hover{color:#fff}
.cctv-footnote{margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.06);color:rgba(233,244,255,.60);font-size:12px;text-align:center}

@media (max-width: 960px){
  .cctv-toggle{display:inline-flex;align-items:center;justify-content:center}
  .cctv-menu{display:none;width:100%}
  .cctv-menu.is-open{display:flex}
  .cctv-menu ul{width:100%;flex-direction:column;align-items:flex-start}
  .cctv-menu a{width:100%}
  .cctv-wa-desktop{display:none !important}
  .cctv-menu-wa{display:block;width:100%}
  .cctv-menu-wa .cctv-btn{width:100%}
  .cctv-nav{flex-wrap:wrap}
  .cctv-hero-grid{grid-template-columns:1fr}
  .cctv-stats{grid-template-columns:1fr}
  .cctv-grid{grid-template-columns:1fr}
  .cctv-col-4,.cctv-col-6,.cctv-col-8,.cctv-col-12{grid-column:1/-1}
  .cctv-footer-grid{grid-template-columns:1fr}
  .cctv-marquee{overflow-x:auto;scroll-snap-type:x mandatory}
  .cctv-marquee-track{animation:none}
  .cctv-frame{width:min(78vw, 360px);scroll-snap-align:start}
}

@media (prefers-reduced-motion: reduce){
  .cctv-marquee-track{animation:none}
  .cctv-frame img{transition:none}
}
