/* ============================================
   GECN Shared Styles (styles.css)
   Common CSS for all pages.
   Page-specific CSS stays inline.
   ============================================ */

/* ===== RESET + BASE ===== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Montserrat',sans-serif;background:#F6F1E9;color:#000;overflow-x:hidden}
:root{--royal:#1F3C88;--cream:#F6F1E9;--yellow:#FFD400;--black:#000;--white:#fff;--green:#1a7a3c}
::selection{background:var(--yellow);color:var(--black)}
[data-auth]{display:none}
img{max-width:100%;display:block}
.font-anton{font-family:'Anton',sans-serif;letter-spacing:0.02em}
.font-mont{font-family:'Montserrat',sans-serif}

/* ===== BUTTONS ===== */
.b-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:'Anton',sans-serif;text-transform:uppercase;letter-spacing:0.05em;text-decoration:none;border:4px solid var(--black);box-shadow:8px 8px 0px 0px var(--black);cursor:pointer;transition:all 0.12s;padding:16px 40px;font-size:22px}
.b-btn:hover{transform:translate(4px,4px);box-shadow:2px 2px 0px 0px var(--black)}
.b-btn:active{transform:translate(6px,6px);box-shadow:0 0 0 0 var(--black)}
.b-btn-yellow{background:var(--yellow);color:var(--black)}
.b-btn-white{background:var(--white);color:var(--black)}
.b-btn-dark{background:var(--royal);color:var(--yellow)}
.b-btn-full{display:block;width:100%;text-align:center}
.badge{display:inline-block;padding:8px 28px;border:4px solid var(--black);box-shadow:6px 6px 0px 0px rgba(0,0,0,0.4);font-family:'Anton',sans-serif;text-transform:uppercase;letter-spacing:0.08em;font-size:14px}

/* ===== NAV ===== */
.nav{background:var(--royal);border-bottom:5px solid var(--black);position:sticky;top:0;z-index:1000}
.nav-inner{max-width:1400px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:80px}
.nav-logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.nav-logo-img{width:52px;height:52px;object-fit:contain;filter:drop-shadow(2px 2px 0px rgba(0,0,0,0.6));transition:transform 0.3s}
.nav-logo:hover .nav-logo-img{transform:rotate(-10deg) scale(1.15)}
.nav-logo-sub{display:none}
.nav-links{display:flex;align-items:center;gap:16px;list-style:none}
.nav-links a{font-family:'Montserrat',sans-serif;font-weight:700;color:var(--white);text-transform:uppercase;font-size:13px;letter-spacing:1.5px;text-decoration:none;padding:8px 0;border-bottom:3px solid transparent;transition:all 0.2s}
.nav-links a:hover,.nav-links a.active{color:var(--yellow);border-bottom-color:var(--yellow)}
.nav-cta{background:var(--yellow);color:var(--black);border:3px solid var(--black);padding:10px 24px;font-family:'Anton',sans-serif;text-transform:uppercase;letter-spacing:1.5px;font-size:15px;box-shadow:5px 5px 0px 0px var(--black);cursor:pointer;text-decoration:none;transition:all 0.15s;transform:rotate(-1deg)}
.nav-cta:hover{transform:rotate(0deg) translate(2px,2px);box-shadow:2px 2px 0px 0px var(--black)}
.mobile-toggle{display:none;background:var(--yellow);border:3px solid var(--black);padding:8px 12px;box-shadow:4px 4px 0px 0px var(--black);cursor:pointer;font-size:24px;line-height:1}
.mobile-nav{display:none;background:var(--white);border:4px solid var(--black);box-shadow:10px 10px 0px 0px var(--black);padding:24px;margin:8px 24px 24px}
.mobile-nav.open{display:block}
.mobile-nav a{display:block;font-family:'Montserrat',sans-serif;font-weight:700;color:var(--black);text-transform:uppercase;font-size:16px;letter-spacing:1.5px;text-decoration:none;padding:12px 0;border-bottom:3px solid var(--cream)}
.mobile-nav a:hover{color:var(--royal)}
.mobile-nav .mobile-cta{display:block;text-align:center;background:var(--yellow);color:var(--black);border:3px solid var(--black);padding:12px 24px;font-family:'Anton',sans-serif;text-transform:uppercase;letter-spacing:1.5px;box-shadow:5px 5px 0px 0px var(--black);margin-top:16px}
@media(max-width:1024px){.nav-links,.nav-cta-wrap{display:none!important}.mobile-toggle{display:block}}
@media(min-width:1025px){.mobile-nav{display:none!important}.nav-logo-sub{display:block}}

/* ===== TORN PAPER ===== */
.torn-wrapper{position:relative;filter:drop-shadow(0px 10px 15px rgba(0,0,0,0.25));z-index:2;margin-bottom:16px}
.torn-section{position:relative;z-index:10}
.tear-svg{display:block;width:100%;height:40px;position:absolute;left:0;filter:url(#paper-roughness);pointer-events:none}
.tear-top{top:-39px;z-index:20;transform:scaleY(1)}
.tear-bottom{bottom:-39px;z-index:20;transform:scaleY(-1)}
.torn-spacer{padding-top:56px}

/* ===== HERO ===== */
.hero{background:var(--royal);padding:80px 24px 60px;position:relative;overflow:hidden;text-align:center}
.hero::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,212,0,0.04) 2px,transparent 2px);background-size:20px 20px;pointer-events:none}
.hero-inner{max-width:900px;margin:0 auto;position:relative;z-index:2}

/* ===== SECTIONS ===== */
.section-cream{background:var(--cream);padding:64px 24px}
.section-white{background:var(--white);padding:64px 24px}
.section-royal{background:var(--royal);padding:64px 24px;position:relative;overflow:hidden}
.section-royal::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,212,0,0.05) 2px,transparent 2px);background-size:20px 20px;pointer-events:none}
.section-black{background:var(--black);padding:64px 24px;position:relative;overflow:hidden}
.section-black::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,212,0,0.04) 2px,transparent 2px);background-size:18px 18px;pointer-events:none}
.max-w{max-width:900px;margin:0 auto;position:relative;z-index:2}
.section-title{font-family:'Anton',sans-serif;font-size:clamp(32px,5vw,54px);text-transform:uppercase;line-height:1;margin-bottom:10px}
.section-divider{width:64px;height:5px;background:var(--yellow);margin-bottom:28px;border:2px solid var(--black)}
.body-copy{font-size:17px;line-height:1.85;max-width:720px;margin-bottom:20px}

/* ===== FOOTER ===== */
.footer{background:var(--black);padding:56px 24px;position:relative}
.footer-inner{max-width:1400px;margin:0 auto}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px;margin-bottom:36px}
.footer-heading{font-family:'Anton',sans-serif;color:var(--yellow);text-transform:uppercase;letter-spacing:2px;font-size:14px;margin-bottom:12px}
.footer a{display:block;color:var(--cream);font-family:'Montserrat',sans-serif;font-size:14px;text-decoration:none;padding:4px 0;opacity:0.8;transition:all 0.2s}
.footer a:hover{opacity:1;color:var(--yellow);transform:translateX(4px)}
.footer-bottom{border-top:3px solid var(--royal);padding-top:24px;text-align:center;color:var(--cream);font-family:'Montserrat',sans-serif;font-size:12px;opacity:0.6}

/* ===== ANIMATIONS ===== */
@keyframes fadeInUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
.fade-in{animation:fadeInUp 0.7s ease forwards}
.fd1{animation-delay:0.1s;opacity:0}
.fd2{animation-delay:0.25s;opacity:0}
.fd3{animation-delay:0.4s;opacity:0}
.fd4{animation-delay:0.55s;opacity:0}
.reveal{opacity:0;transform:translateY(30px);transition:opacity 0.5s ease,transform 0.5s ease}
.reveal.in-view{opacity:1;transform:translateY(0)}

/* ===== RESPONSIVE ===== */
@media(max-width:600px){.b-btn{font-size:17px;padding:14px 28px}}

/* ===== REVOLUTION POPUP (learn + evening-class) ===== */
.rev-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.75);z-index:9999;align-items:center;justify-content:center;padding:24px}
.rev-overlay.open{display:flex}
.rev-popup{background:var(--cream);border:6px solid var(--yellow);box-shadow:16px 16px 0 var(--black);max-width:480px;width:100%;padding:40px 32px;position:relative;text-align:center;transform:rotate(-0.5deg);animation:popIn 0.3s ease}
@keyframes popIn{from{opacity:0;transform:scale(0.9) rotate(-0.5deg)}to{opacity:1;transform:scale(1) rotate(-0.5deg)}}
.rev-popup-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:24px;cursor:pointer;color:#999;line-height:1}
.rev-popup-close:hover{color:var(--black)}
.rev-popup h3{font-family:'Anton',sans-serif;font-size:28px;text-transform:uppercase;color:var(--royal);margin-bottom:12px;line-height:1.1}
.rev-popup p{font-size:14px;line-height:1.7;color:#444;margin-bottom:20px}
.rev-popup .rev-value{display:inline-block;font-family:'Anton',sans-serif;font-size:13px;background:var(--white);border:3px solid var(--black);padding:6px 16px;margin-bottom:20px;text-transform:uppercase;letter-spacing:1px}

/* ===== PROMO BANNER (index.html) ===== */
.promo-banner{background:var(--black);color:var(--white);display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 48px 12px 20px;font-family:'Montserrat',sans-serif;font-size:14px;font-weight:700;letter-spacing:0.5px;position:relative;text-align:center;flex-wrap:wrap;animation:bannerFlash 2.5s ease-in-out infinite}
@keyframes bannerFlash{0%,45%{background:var(--black);color:var(--white)}50%,95%{background:var(--yellow);color:var(--black)}100%{background:var(--black);color:var(--white)}}
.promo-banner span{color:inherit;font-weight:900}
.promo-banner a{color:inherit;text-decoration:none;font-family:'Anton',sans-serif;font-size:14px;text-transform:uppercase;letter-spacing:2px;border:2px solid currentColor;padding:5px 16px;transition:all 0.15s}
.promo-banner a:hover{background:var(--royal);color:var(--white);border-color:var(--royal)}
.promo-close{position:absolute;right:16px;top:50%;transform:translateY(-50%);background:none;border:none;color:#888;font-size:20px;cursor:pointer;padding:4px 8px;line-height:1}
.promo-close:hover{color:var(--white)}
