/*
Theme Name: Aurora Theme
Description: Catalog-only WordPress theme rebuilt from auroragenerators.com Figma design.
Version: 1.1.0
Text Domain: aurora
*/

/* ---------- design tokens ---------- */
:root{
  --c-navy:#0e2a4a;
  --c-navy-deep:#082138;
  --c-navy-line:#1c4170;
  --c-green:#2cb24e;
  --c-green-hover:#249740;
  --c-orange:#e98a3d;
  --c-text:#111827;
  --c-muted:#6b7280;
  --c-border:#e5e7eb;
  --c-bg:#ffffff;
  --c-bg-soft:#f6f7f9;
  --shadow-card:0 4px 14px rgba(15,23,42,.08);
  --r-sm:6px;
  --r:10px;
  --container:1280px;
  --ff-body: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --ff-head: "Montserrat", "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* SVG safety — never let icons grow to viewport size */
svg{max-width:100%; height:auto}
.trust-card__icon, .icon-link .ic{display:inline-flex; align-items:center; justify-content:center}
.trust-card__icon svg, .icon-link .ic{flex:none}

/* ---------- reset & base ---------- */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--ff-body); color:var(--c-text); line-height:1.5; background:var(--c-bg); -webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.site-title,.cat-tile__title,.hero__title,.product__title,.gen-card__title,.btn-quote,.btn-primary,.btn-ghost,.aurora-btn,.primary-nav__list a,.cat-tile__cta{font-family:var(--ff-head); font-weight:700}
.hero__title,.cat-tile__title{font-weight:800}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block; height:auto}
.container{max-width:var(--container); margin:0 auto; padding:0 20px}
.screen-reader-text{position:absolute!important; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden}
.skip-link{position:absolute; top:-100px; left:0; background:#000; color:#fff; padding:10px 14px; z-index:9999}
.skip-link:focus{top:0}

/* ---------- header ---------- */
.site-header{position:sticky; top:0; z-index:50; background:#fff; border-bottom:1px solid var(--c-border)}
.top-bar{background:#f4f4f5; color:#1f2937; font-size:13px}
.top-bar__inner{display:flex; align-items:center; justify-content:center; gap:12px; height:36px}
.top-bar__tagline{font-weight:500; letter-spacing:.02em}

.header-main{padding:14px 0}
.header-main__inner{display:flex; align-items:center; gap:24px}
.site-branding{flex:0 0 auto}
.site-branding .site-title{display:inline-block; font-size:28px; font-weight:800; letter-spacing:.04em; color:var(--c-navy)}
.site-branding .site-title__sub{font-size:11px; font-weight:600; letter-spacing:.3em; color:var(--c-muted); text-transform:uppercase; display:block; margin-top:-2px}

.header-search{flex:1 1 auto; max-width:720px}
.header-search form{display:flex; align-items:stretch; border:1.5px solid var(--c-navy); border-radius:var(--r-sm); overflow:hidden}
.header-search input[type=search]{flex:1; border:0; outline:none; padding:12px 16px; font:inherit; background:transparent}
.header-search button{border:0; background:var(--c-navy); color:#fff; padding:0 22px; font-weight:600; cursor:pointer; font-size:14px; letter-spacing:.02em}
.header-search button:hover{background:var(--c-navy-deep)}

.header-cta{flex:0 0 auto; display:flex; align-items:center; gap:16px}
.header-cta .btn-quote{background:var(--c-green); color:#fff; font-weight:700; padding:10px 18px; border-radius:var(--r-sm); font-size:14px; transition:background .15s}
.header-cta .btn-quote:hover{background:var(--c-green-hover)}
.header-cta .icon-link{display:flex; flex-direction:column; align-items:center; font-size:12px; color:var(--c-text); line-height:1.2}
.header-cta .icon-link .ic{width:24px; height:24px; margin-bottom:4px; color:var(--c-navy)}

/* ---------- masthead nav ---------- */
.masthead{background:var(--c-navy); color:#fff}
.masthead__inner{display:flex; align-items:center}
.primary-nav__list{list-style:none; margin:0; padding:0; display:flex; gap:0}
.primary-nav__list a{display:block; padding:18px 22px; color:#fff; font-weight:600; font-size:14px; letter-spacing:.02em; transition:background .15s}
.primary-nav__list a:hover{background:var(--c-navy-deep)}
.primary-nav__list .has-children > a::after{content:" ▾"; font-size:10px; opacity:.7}

.nav-toggle{display:none; background:transparent; border:0; color:#fff; padding:14px; cursor:pointer}
.nav-toggle__bar{display:block; width:22px; height:2px; background:#fff; margin:4px 0}

/* ---------- hero ---------- */
.hero{position:relative; min-height:520px; background:#0b1d33 center/cover no-repeat; color:#fff; display:flex; align-items:center}
.hero::before{content:""; position:absolute; inset:0; background:linear-gradient(110deg, rgba(8,33,56,.85) 0%, rgba(8,33,56,.55) 50%, rgba(8,33,56,.15) 100%); pointer-events:none}
.hero__inner{position:relative; padding:90px 20px}
.hero__eyebrow{font-size:14px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; opacity:.9; margin:0 0 12px}
.hero__title{font-size:54px; line-height:1.05; font-weight:800; letter-spacing:-.02em; margin:0 0 14px}
.hero__subtitle{font-size:20px; max-width:640px; margin:0 0 28px; opacity:.95}
.hero__cta{display:flex; gap:14px; flex-wrap:wrap}
.btn-primary{background:var(--c-green); color:#fff; padding:14px 26px; border-radius:var(--r-sm); font-weight:700; font-size:15px; letter-spacing:.02em; transition:background .15s}
.btn-primary:hover{background:var(--c-green-hover)}
.btn-ghost{background:transparent; color:#fff; padding:14px 26px; border-radius:var(--r-sm); font-weight:700; font-size:15px; border:1.5px solid rgba(255,255,255,.6)}
.btn-ghost:hover{background:rgba(255,255,255,.1)}

/* ---------- section utility ---------- */
.section{padding:60px 0}
.section--dark{background:var(--c-navy); color:#fff}
.section--soft{background:var(--c-bg-soft)}
.section__lead{max-width:980px; margin:0 auto 36px; text-align:center}
.section__lead h2{font-size:30px; font-weight:800; margin:0 0 16px; line-height:1.2}
.section__lead p{font-size:17px; line-height:1.55; color:var(--c-muted); margin:0}
.section--dark .section__lead p{color:rgba(255,255,255,.85)}

/* ---------- category grid ---------- */
.cat-grid{display:grid; grid-template-columns:repeat(2, 1fr); gap:22px}
.cat-tile{position:relative; display:flex; flex-direction:column; border-radius:var(--r); overflow:hidden; min-height:360px; background:#0e2a4a; box-shadow:var(--shadow-card); transition:transform .2s}
.cat-tile:hover{transform:translateY(-3px)}
.cat-tile__media{position:absolute; inset:0}
.cat-tile__media img{width:100%; height:100%; object-fit:cover}
.cat-tile__placeholder{width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:90px; opacity:.4; color:#fff; background:var(--c-navy)}
.cat-tile__body{position:relative; margin-top:auto; padding:22px 22px 26px; background:linear-gradient(to top, rgba(8,33,56,.92) 0%, rgba(8,33,56,.78) 60%, rgba(8,33,56,0) 100%); color:#fff}
.cat-tile__title{font-size:24px; font-weight:800; margin:0 0 6px; line-height:1.2}
.cat-tile__desc{font-size:14px; opacity:.92; margin:0 0 14px; line-height:1.4}
.cat-tile__cta{display:inline-block; background:var(--c-green); color:#fff; padding:10px 18px; border-radius:var(--r-sm); font-weight:700; font-size:13px; letter-spacing:.04em; text-transform:uppercase}
.cat-tile__cta:hover{background:var(--c-green-hover)}

/* ---------- trust cards ---------- */
.trust-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; margin-top:36px}
.trust-card{background:#fff; color:var(--c-text); padding:36px 24px 30px; border-radius:var(--r); text-align:center; box-shadow:var(--shadow-card)}
.section--dark .trust-card{background:rgba(255,255,255,.05); color:#fff; border:1px solid rgba(255,255,255,.1)}
.trust-card__icon{width:54px; height:54px; margin:0 auto 18px; color:var(--c-green); display:flex; align-items:center; justify-content:center}
.trust-card__icon svg{width:100%; height:100%}
.section--dark .trust-card__icon{color:#7ed992}
.trust-card h3{font-size:20px; margin:0 0 10px; font-weight:700}
.trust-card p{margin:0; color:var(--c-muted); font-size:15px; line-height:1.5}
.section--dark .trust-card p{color:rgba(255,255,255,.85)}

/* ---------- footer ---------- */
.site-footer{background:var(--c-navy); color:#cfd8e3; padding:60px 0 0; font-size:14px}
.site-footer__top{display:grid; grid-template-columns:repeat(4, 1fr); gap:32px; padding-bottom:40px}
.footer-col h4{color:#fff; margin:0 0 16px; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.12em}
.footer-menu, .footer-list{list-style:none; margin:0; padding:0}
.footer-menu li, .footer-list li{margin:0 0 10px}
.footer-menu a, .footer-list a{color:#cfd8e3; transition:color .15s}
.footer-menu a:hover, .footer-list a:hover{color:#fff}
.footer-contact{margin:0 0 8px; color:#cfd8e3}
.footer-contact strong{color:#fff; display:block; font-size:15px; font-weight:600}
.site-footer__bottom{background:var(--c-navy-deep); color:#9ab0c8; padding:18px 0; font-size:13px}
.site-footer__bottom .container{display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap}
.site-footer__bottom a{color:#9ab0c8}
.site-footer__bottom a:hover{color:#fff}

/* ---------- generator card (catalog/archive) ---------- */
.gen-card{display:block; background:#fff; border:1px solid var(--c-border); border-radius:var(--r); overflow:hidden; transition:box-shadow .15s, transform .15s; color:var(--c-text)}
.gen-card:hover{box-shadow:var(--shadow-card); transform:translateY(-2px)}
.gen-card__media{aspect-ratio:4/3; background:#f3f4f6; overflow:hidden}
.gen-card__media img{width:100%; height:100%; object-fit:cover}
.gen-card__placeholder{display:flex; align-items:center; justify-content:center; height:100%; font-size:54px; color:#cbd5e1}
.gen-card__body{padding:16px 18px 20px}
.gen-card__title{font-size:17px; font-weight:700; margin:0 0 8px; line-height:1.3}
.gen-card__specs{list-style:none; margin:0 0 10px; padding:0; display:flex; gap:14px; color:var(--c-muted); font-size:13px}
.gen-card__specs li strong{color:var(--c-text)}
.gen-card__price{font-size:18px; font-weight:800; color:var(--c-navy); margin:0 0 12px}
.gen-card__cta{display:inline-block; color:var(--c-green); font-weight:700; font-size:13px; letter-spacing:.04em; text-transform:uppercase}

/* archive grid */
.archive-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:22px; padding:30px 0}

/* ---------- single product ---------- */
.product{padding:40px 0 80px}
.breadcrumbs{font-size:13px; color:var(--c-muted); margin:0 0 22px}
.breadcrumbs a{color:var(--c-muted)}
.breadcrumbs a:hover{color:var(--c-navy)}
.product__layout{display:grid; grid-template-columns:1fr 1fr; gap:40px}
.product__image{width:100%; border-radius:var(--r); border:1px solid var(--c-border)}
.product__placeholder{width:100%; aspect-ratio:1; background:#f3f4f6; display:flex; align-items:center; justify-content:center; font-size:96px; color:#cbd5e1; border-radius:var(--r)}
.product__title{font-size:34px; font-weight:800; margin:0 0 14px; line-height:1.15}
.product__lead{color:var(--c-muted); margin:0 0 20px; font-size:16px}
.product__price{font-size:30px; font-weight:800; color:var(--c-navy); margin:0 0 24px}
.product__actions{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:28px}
.product__specs{width:100%; border-collapse:collapse; font-size:14px}
.product__specs th, .product__specs td{padding:10px 12px; border-bottom:1px solid var(--c-border); text-align:left}
.product__specs th{font-weight:600; color:var(--c-muted); width:38%}
.product__features{margin-top:50px}
.product__features ul{padding-left:20px; line-height:1.7}
.product__description{margin-top:50px; line-height:1.7}
.product__description img{margin:14px 0; border-radius:var(--r-sm)}
.product__description h2{font-size:22px; margin:0 0 14px}
.product__description h3{font-size:18px; margin:18px 0 10px}
.product__quote{margin-top:60px; background:var(--c-bg-soft); padding:36px; border-radius:var(--r)}

/* utility */
.aurora-btn{display:inline-block; padding:12px 22px; border-radius:var(--r-sm); font-weight:700; transition:background .15s, color .15s}
.aurora-btn--primary{background:var(--c-green); color:#fff}
.aurora-btn--primary:hover{background:var(--c-green-hover)}
.aurora-btn--ghost{background:#fff; color:var(--c-navy); border:1.5px solid var(--c-navy)}
.aurora-btn--ghost:hover{background:var(--c-navy); color:#fff}
.aurora-btn--link{color:var(--c-navy); padding:12px 0; text-decoration:underline}

/* ---------- archive (category) page ---------- */
.archive-hero{position:relative; min-height:380px; color:#fff; background:#0b1d33 center/cover no-repeat; display:flex; align-items:center}
.archive-hero::before{content:""; position:absolute; inset:0; background:linear-gradient(110deg, rgba(8,33,56,.85) 0%, rgba(8,33,56,.55) 55%, rgba(8,33,56,.15) 100%)}
.archive-hero__inner{position:relative; padding:60px 20px}
.archive-hero__title{font-family:var(--ff-head); font-size:44px; font-weight:800; margin:0 0 12px; line-height:1.1}
.archive-hero__subtitle{font-size:18px; line-height:1.4; margin:0 0 22px; max-width:760px; opacity:.95}

.archive-lead{padding:30px 0 0}
.archive-lead p{max-width:1100px; margin:0 auto; font-size:16px; line-height:1.65; color:#1f2937}

.archive-layout{padding:30px 0 70px}
.archive-layout__inner{display:grid; grid-template-columns:260px 1fr; gap:36px}
.archive-sidebar{position:sticky; top:120px; align-self:start}
.widget{background:#fff; border:1px solid var(--c-border); border-radius:var(--r); padding:18px 18px 14px; margin-bottom:18px}
.widget__title{font-family:var(--ff-head); font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--c-navy); margin:0 0 14px}
.filter-list{list-style:none; margin:0; padding:0}
.filter-list li{margin:0 0 6px}
.filter-list a{display:flex; align-items:center; gap:10px; padding:6px 0; color:var(--c-text); font-size:14px; transition:color .15s}
.filter-list a:hover{color:var(--c-navy)}
.filter-list__box{width:14px; height:14px; border:1.5px solid var(--c-border); border-radius:3px; flex:none; display:inline-block; transition:all .15s}
.filter-list li.is-active .filter-list__box{background:var(--c-green); border-color:var(--c-green); position:relative}
.filter-list li.is-active .filter-list__box::after{content:""; position:absolute; left:3px; top:0; width:5px; height:9px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg)}
.filter-list__label{flex:1}
.filter-list__count{color:var(--c-muted); font-size:13px}
.widget__clear{margin:12px 0 0; font-size:13px}
.widget__clear a{color:var(--c-green); text-decoration:underline}

.archive-main{min-width:0}
.archive-toolbar{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:0 0 18px; border-bottom:1px solid var(--c-border); margin-bottom:22px; flex-wrap:wrap}
.archive-sort{display:flex; align-items:center; gap:8px; font-size:14px; color:var(--c-muted)}
.archive-sort select{padding:7px 28px 7px 10px; border:1px solid var(--c-border); border-radius:var(--r-sm); background:#fff; font:inherit; cursor:pointer}
.archive-count{margin:0; font-size:14px; color:var(--c-muted)}
.archive-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; padding:0}
.archive-empty{padding:30px; background:var(--c-bg-soft); border-radius:var(--r); color:var(--c-muted)}
.archive-info{margin-top:40px; padding:30px 32px; background:#fff; border:1px solid var(--c-border); border-radius:var(--r); line-height:1.7; color:var(--c-text)}
.archive-info h2{font-family:var(--ff-head); font-size:22px; color:var(--c-navy); margin:0 0 14px}
.archive-info h3{font-family:var(--ff-head); font-size:17px; margin:20px 0 10px}
.archive-info p{margin:0 0 14px}

@media (max-width:980px){
  .archive-layout__inner{grid-template-columns:1fr; gap:24px}
  .archive-sidebar{position:static}
  .archive-grid{grid-template-columns:repeat(2, 1fr)}
  .archive-hero__title{font-size:32px}
}
@media (max-width:560px){
  .archive-grid{grid-template-columns:1fr}
}

/* ---------- generic content page (About Us, etc.) ---------- */
.container--narrow{max-width:920px}
.page-breadcrumb{background:#f6f7f9; border-bottom:1px solid var(--c-border); font-size:13px; color:var(--c-muted)}
.page-breadcrumb .container{padding-top:14px; padding-bottom:14px; display:flex; gap:10px; align-items:center}
.page-breadcrumb a{color:var(--c-muted)}
.page-breadcrumb a:hover{color:var(--c-navy)}
.page-breadcrumb span:not(.sep){color:var(--c-text)}

.page-hero{position:relative; margin:30px 0 0; color:#fff; background:#0b1d33 center/cover no-repeat; border-radius:var(--r); overflow:hidden}
.page-hero::before{content:""; position:absolute; inset:0; background:linear-gradient(110deg, rgba(8,33,56,.88) 0%, rgba(8,33,56,.6) 60%, rgba(8,33,56,.2) 100%)}
.page-hero__inner{position:relative; padding:60px 40px 50px; max-width:1140px; margin:0 auto}
.page-hero__title{font-size:42px; font-weight:800; margin:0 0 18px; line-height:1.1}
.page-hero__lead{font-size:16px; line-height:1.6; margin:0 0 24px; max-width:880px; opacity:.95}

.page-content{padding:50px 0 80px}
.page-content__lead{font-size:18px; line-height:1.7; color:var(--c-text); margin:0 0 30px}
.page-content h2{font-family:var(--ff-head); font-size:26px; font-weight:700; margin:36px 0 14px; color:var(--c-navy); line-height:1.25}
.page-content h3{font-family:var(--ff-head); font-size:18px; font-weight:700; margin:24px 0 10px; color:var(--c-text)}
.page-content p{font-size:16px; line-height:1.75; margin:0 0 16px; color:#1f2937}
.page-content__list{padding-left:22px; margin:0 0 16px; line-height:1.85; color:#1f2937}
.page-content__list li{margin:0 0 10px}
.page-content__list strong{color:var(--c-navy)}
.page-content__cta{display:flex; gap:14px; flex-wrap:wrap; margin-top:34px}

@media (max-width:780px){
  .page-hero__title{font-size:30px}
  .page-hero__inner{padding:40px 22px}
  .page-content h2{font-size:22px}
}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .hero__title{font-size:38px}
  .header-search{display:none}
  .cat-grid{grid-template-columns:1fr}
  .trust-grid{grid-template-columns:1fr}
  .site-footer__top{grid-template-columns:1fr 1fr}
  .product__layout{grid-template-columns:1fr}
  .header-cta .icon-link{display:none}
  .nav-toggle{display:block}
  .primary-nav{display:none; width:100%; background:var(--c-navy-deep)}
  .primary-nav.is-open{display:block}
  .primary-nav__list{flex-direction:column}
  .masthead__inner{flex-direction:column; align-items:stretch}
}
@media (max-width:600px){
  .site-footer__top{grid-template-columns:1fr}
  .hero__title{font-size:32px}
  .section__lead h2{font-size:24px}
  .header-main__inner{gap:12px}
}
