/*
Theme Name: Hirey Communication Academy
Theme URI: https://farhanhirey.com
Author: Farhan Hirey
Author URI: https://farhanhirey.com
Description: Premium cinematic Vinh-style theme for Hirey Communication Academy. Includes Landing, Checkout and Portal (drip-feed + device lock). Fully customizable from Appearance → Customize.
Version: 1.0.0
License: GPL v2 or later
Text Domain: hirey-academy
*/

/* =========================================================
   DESIGN TOKENS
   ========================================================= */
:root{
  --black:#000000;
  --bg:#0a0a0a;
  --bg-2:#111111;
  --card:#141414;
  --line:rgba(255,196,0,.18);
  --line-soft:rgba(255,255,255,.08);
  --yellow:#ffc400;
  --yellow-2:#ffb000;
  --white:#ffffff;
  --muted:#b8b8b8;
  --muted-2:#7a7a7a;
  --radius:14px;
  --radius-lg:22px;
  --shadow:0 30px 60px -20px rgba(255,196,0,.25);
  --maxw:1200px;
  --grad-yellow:linear-gradient(135deg,#ffc400 0%, #ffb000 60%, #f59e0b 100%);
  --grad-dark:radial-gradient(1200px 600px at 70% -10%, rgba(255,196,0,.18), transparent 60%), linear-gradient(180deg,#000 0%, #050505 100%);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  background:var(--bg);
  color:var(--white);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:var(--yellow);text-decoration:none}
a:hover{opacity:.85}

h1,h2,h3,h4{font-family:'Anton','Inter',sans-serif;font-weight:800;letter-spacing:.5px;line-height:1.05;margin:0 0 .6em}
h1{font-size:clamp(2.2rem, 5vw, 4.4rem); text-transform:uppercase}
h2{font-size:clamp(1.8rem, 3.5vw, 3rem); text-transform:uppercase}
h3{font-size:1.3rem; text-transform:uppercase}
p{margin:0 0 1em;color:var(--muted)}

.container{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.section{padding:90px 0;position:relative}
.eyebrow{display:inline-block;color:var(--yellow);font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;font-weight:700;margin-bottom:14px}

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  backdrop-filter:blur(14px);
  background:rgba(0,0,0,.55);
  border-bottom:1px solid var(--line-soft);
}
.site-header .inner{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;max-width:var(--maxw);margin:0 auto}
.logo{display:flex;align-items:center;gap:12px;color:var(--white);font-weight:800;letter-spacing:.05em}
.logo img{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid var(--yellow)}
.logo span small{display:block;font-size:.65rem;color:var(--yellow);letter-spacing:.3em;font-weight:600}
.nav{display:flex;gap:26px;align-items:center}
.nav a{color:#ddd;font-size:.92rem;font-weight:500}
.nav a:hover{color:var(--yellow)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 26px;border-radius:999px;font-weight:800;letter-spacing:.05em;
  text-transform:uppercase;font-size:.85rem;cursor:pointer;border:none;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.btn-primary{background:var(--grad-yellow);color:#0a0a0a;box-shadow:var(--shadow)}
.btn-primary:hover{transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--white);border:1px solid var(--line)}
.btn-ghost:hover{background:rgba(255,196,0,.08)}
.btn-lg{padding:18px 36px;font-size:.95rem}
.btn-block{width:100%}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;padding:160px 0 90px;
  background:var(--grad-dark);
  overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(800px 400px at 80% 20%, rgba(255,196,0,.15), transparent 60%);
  pointer-events:none;
}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;position:relative;z-index:1}
.hero h1 span{color:var(--yellow); display:block}
.hero p.lead{font-size:1.15rem;color:#cfcfcf;max-width:560px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.hero-stats{display:flex;gap:30px;margin-top:36px;flex-wrap:wrap}
.hero-stats div b{font-family:'Anton',sans-serif;color:var(--yellow);font-size:1.8rem;display:block}
.hero-stats div small{color:var(--muted-2);letter-spacing:.2em;text-transform:uppercase;font-size:.7rem}
.hero-video{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  aspect-ratio:16/9;background:#000;
}
.hero-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* =========================================================
   TRUST / TESTIMONIALS
   ========================================================= */
.trust{
  position:relative;
  background:#050505;
}
.trust::before{
  content:"";position:absolute;inset:0;
  background-image:url('assets/img/stage-bg.jpg');
  background-size:cover;background-position:center;
  opacity:.18;
  filter:grayscale(.2) contrast(1.1);
}
.trust::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.85), rgba(0,0,0,.95));
}
.trust > .container{position:relative;z-index:1}
.trust h2 span{color:var(--yellow)}
.t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:50px}
.t-card{
  background:linear-gradient(180deg, rgba(20,20,20,.9), rgba(10,10,10,.9));
  border:1px solid var(--line-soft);
  border-radius:var(--radius);
  padding:28px;position:relative;
  transition:transform .25s ease, border-color .25s ease;
}
.t-card:hover{transform:translateY(-4px); border-color:var(--line)}
.t-card .quote{font-size:2.4rem;color:var(--yellow);line-height:1;margin-bottom:8px;font-family:Georgia,serif}
.t-card p{color:#dcdcdc;font-size:.98rem}
.t-card .who{display:flex;align-items:center;gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line-soft)}
.t-avatar{width:42px;height:42px;border-radius:50%;background:var(--grad-yellow);color:#000;display:grid;place-items:center;font-weight:800}
.t-card .who b{color:#fff;display:block;font-size:.92rem}
.t-card .who small{color:var(--muted-2);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}

.video-row{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:30px}
.v-frame{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:#000}
.v-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.v-label{position:absolute;top:12px;left:12px;background:rgba(0,0,0,.7);color:var(--yellow);padding:6px 12px;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;z-index:1}

/* =========================================================
   CURRICULUM
   ========================================================= */
.curriculum{background:#000;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.c-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:50px}
.c-card{
  position:relative;border-radius:var(--radius);overflow:hidden;
  min-height:420px;display:flex;flex-direction:column;justify-content:flex-end;
  padding:26px;color:#fff;border:1px solid var(--line-soft);
  transition:transform .3s ease;
  isolation:isolate;
}
.c-card:hover{transform:translateY(-6px)}
.c-card .bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;filter:contrast(1.05)}
.c-card::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.6) 50%, rgba(0,0,0,.95) 100%);
}
.c-week{color:var(--yellow);font-weight:800;letter-spacing:.3em;font-size:.72rem;text-transform:uppercase;margin-bottom:8px}
.c-card h3{font-size:1.6rem;margin:0 0 10px}
.c-card p{color:#d6d6d6;font-size:.9rem;margin:0}

/* =========================================================
   MENTOR
   ========================================================= */
.mentor{background:var(--grad-dark)}
.m-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center}
.m-photo{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;
  border:1px solid var(--line); box-shadow:var(--shadow);
}
.m-photo img{width:100%;display:block;aspect-ratio:3/4;object-fit:cover}
.m-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%, rgba(0,0,0,.8))}
.m-photo .badge{position:absolute;left:20px;bottom:20px;z-index:1}
.m-photo .badge b{display:block;color:#fff;font-family:'Anton',sans-serif;font-size:1.6rem}
.m-photo .badge small{color:var(--yellow);letter-spacing:.3em;text-transform:uppercase;font-size:.7rem}

/* =========================================================
   FAQ
   ========================================================= */
.faq{background:#050505}
.faq-list{margin-top:40px;display:flex;flex-direction:column;gap:14px}
.faq-item{border:1px solid var(--line-soft);border-radius:var(--radius);background:#0d0d0d;overflow:hidden;transition:border-color .25s}
.faq-item[open]{border-color:var(--line)}
.faq-item summary{
  list-style:none;cursor:pointer;padding:22px 26px;font-weight:600;color:#fff;
  display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:1.02rem;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";color:var(--yellow);font-size:1.6rem;font-weight:300;transition:transform .25s}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-body{padding:0 26px 24px;color:var(--muted);white-space:pre-line}

/* =========================================================
   GUARANTEE
   ========================================================= */
.guarantee{
  background:linear-gradient(135deg,#0a0a0a 0%, #1a1200 100%);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.g-box{display:grid;grid-template-columns:auto 1fr auto;gap:30px;align-items:center;padding:30px;border-radius:var(--radius-lg);background:rgba(0,0,0,.4);border:1px solid var(--line)}
.g-seal{width:90px;height:90px;border-radius:50%;background:var(--grad-yellow);display:grid;place-items:center;color:#000;font-family:'Anton',sans-serif;font-size:1.4rem;text-align:center;line-height:1;flex-shrink:0}

/* =========================================================
   FINAL CTA
   ========================================================= */
.final-cta{background:#000;text-align:center;padding:120px 0}
.final-cta h2{font-size:clamp(2rem,5vw,3.6rem)}
.final-cta h2 span{color:var(--yellow)}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{background:#000;border-top:1px solid var(--line-soft);padding:50px 0 30px;color:var(--muted-2);font-size:.85rem;text-align:center}
.site-footer a{color:var(--yellow)}

/* =========================================================
   STICKY MOBILE CTA
   ========================================================= */
.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  padding:12px 16px;background:rgba(0,0,0,.92);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);
  display:none;
}
.sticky-cta .btn{width:100%}

/* =========================================================
   CHECKOUT
   ========================================================= */
.checkout-wrap{padding:140px 0 80px;background:var(--grad-dark);min-height:100vh}
.checkout-card{
  max-width:760px;margin:0 auto;background:#0d0d0d;border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:40px;box-shadow:var(--shadow);
}
.pay-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:30px 0}
.pay-card{
  border:1px solid var(--line-soft);border-radius:var(--radius);padding:20px;
  background:#111;display:flex;flex-direction:column;gap:6px;transition:border-color .2s, transform .2s;
}
.pay-card:hover{border-color:var(--line);transform:translateY(-3px)}
.pay-card .pname{color:var(--yellow);font-weight:800;letter-spacing:.15em;text-transform:uppercase;font-size:.78rem}
.pay-card .pcode{font-family:'Courier New',monospace;font-size:1.1rem;color:#fff;font-weight:700;word-break:break-all}
.pay-card .powner{color:var(--muted-2);font-size:.78rem}

.steps{display:flex;flex-direction:column;gap:14px;margin:24px 0;counter-reset:step}
.step{display:flex;gap:14px;align-items:flex-start}
.step .n{width:32px;height:32px;border-radius:50%;background:var(--grad-yellow);color:#000;font-weight:800;display:grid;place-items:center;flex-shrink:0}
.step p{margin:4px 0;color:#ddd}

/* =========================================================
   PORTAL
   ========================================================= */
.portal-wrap{min-height:100vh;background:#000;color:#fff}
.portal-top{
  position:sticky;top:0;z-index:30;background:rgba(0,0,0,.9);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line-soft);
}
.portal-top .inner{max-width:1280px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.progress{flex:1;max-width:420px}
.progress-bar{height:6px;background:#1a1a1a;border-radius:999px;overflow:hidden}
.progress-bar i{display:block;height:100%;background:var(--grad-yellow);width:0%}
.progress small{display:block;color:var(--muted-2);font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;margin-bottom:6px}

.portal-body{display:grid;grid-template-columns:280px 1fr;gap:30px;max-width:1280px;margin:0 auto;padding:30px 20px}
.week-list{display:flex;flex-direction:column;gap:10px}
.week-btn{
  display:flex;justify-content:space-between;align-items:center;
  padding:18px 20px;border-radius:var(--radius);background:#0d0d0d;
  border:1px solid var(--line-soft);color:#fff;font-weight:600;cursor:pointer;
  text-align:left;font-family:inherit;font-size:.95rem;
  transition:all .2s;
}
.week-btn:hover:not(:disabled){border-color:var(--line)}
.week-btn.active{background:linear-gradient(135deg,#1a1300,#0a0a0a);border-color:var(--yellow);color:var(--yellow)}
.week-btn:disabled{opacity:.55;cursor:not-allowed}
.week-btn small{display:block;color:var(--muted-2);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;margin-top:4px;font-weight:500}
.week-btn .ico{font-size:1.1rem}

.lesson-area{background:#0a0a0a;border:1px solid var(--line-soft);border-radius:var(--radius-lg);padding:28px}
.lesson-area h2{font-size:1.8rem;margin-bottom:6px}
.lesson-area .week-tag{color:var(--yellow);letter-spacing:.3em;font-size:.7rem;text-transform:uppercase;font-weight:700}
.video-frame{position:relative;aspect-ratio:16/9;background:#000;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line-soft);margin-top:20px}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lesson-locked{padding:60px 30px;text-align:center;background:#0a0a0a;border-radius:var(--radius);border:1px dashed var(--line);margin-top:20px}
.lesson-locked .lock{font-size:3rem;margin-bottom:10px}
.lesson-locked p{color:var(--muted)}
.lesson-locked b{color:var(--yellow)}

.disclaimer{margin-top:30px;padding:18px;border-left:3px solid var(--yellow);background:#0d0d0d;color:var(--muted);border-radius:6px;font-size:.9rem}

/* Login overlay */
.login-overlay{
  position:fixed;inset:0;z-index:100;background:radial-gradient(800px 400px at 50% 20%, rgba(255,196,0,.12), transparent 60%), #000;
  display:grid;place-items:center;padding:20px;
}
.login-card{
  width:100%;max-width:440px;background:#0a0a0a;border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:40px;box-shadow:var(--shadow);text-align:center;
}
.login-card .logo-c{width:80px;height:80px;border-radius:50%;border:2px solid var(--yellow);margin:0 auto 20px;object-fit:cover}
.login-card h2{font-size:1.6rem;margin-bottom:8px}
.login-card p{color:var(--muted);margin-bottom:24px}
.login-input{
  width:100%;padding:16px 18px;background:#000;border:1px solid var(--line-soft);
  color:#fff;border-radius:10px;font-size:1rem;letter-spacing:.2em;text-align:center;
  font-family:'Courier New',monospace;
}
.login-input:focus{outline:none;border-color:var(--yellow)}
.login-error{color:#ff5b5b;font-size:.88rem;margin-top:14px;min-height:20px}

.expiry-screen{min-height:100vh;display:grid;place-items:center;padding:40px 20px;background:#000;text-align:center}
.expiry-screen .box{max-width:520px;background:#0d0d0d;border:1px solid var(--line);border-radius:var(--radius-lg);padding:50px}
.expiry-screen h2{color:var(--yellow)}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr;gap:40px}
  .t-grid{grid-template-columns:1fr;gap:16px}
  .video-row{grid-template-columns:1fr}
  .c-grid{grid-template-columns:repeat(2,1fr)}
  .m-grid{grid-template-columns:1fr;gap:30px}
  .pay-grid{grid-template-columns:1fr}
  .nav{display:none}
  .portal-body{grid-template-columns:1fr;padding:20px}
  .week-list{flex-direction:row;overflow-x:auto;padding-bottom:8px}
  .week-btn{min-width:180px;flex-direction:column;align-items:flex-start}
  .g-box{grid-template-columns:1fr;text-align:center}
  .g-seal{margin:0 auto}
  .sticky-cta{display:block}
  body{padding-bottom:80px}
  .section{padding:60px 0}
  .hero{padding:130px 0 60px}
}
@media (max-width: 560px){
  .c-grid{grid-template-columns:1fr}
  .checkout-card{padding:24px}
  .lesson-area{padding:18px}
}
