/*
Theme Name: Hawk Lighting
Theme URI: https://www.hawklights.com
Author: Hawk Lighting / ODITS
Author URI: https://odits.co
Description: Custom one-page WordPress theme for Hawk Lighting, Karachi - LED lighting solutions. FULLY EDITABLE from Appearance > Customize: every image (logo, hero, 18 products, 8 gallery) and key text (headlines, MD message, contact details) changes from the WordPress backend with the Media Library - no code. Built-in AJAX enquiry form emails your address via wp_mail(). Responsive (Bootstrap 5), jQuery animations, product filter, featured carousel, gallery lightbox.
Version: 1.1.0
Requires at least: 5.8
Tested up to: 6.7
Requires PHP: 7.4
License: Proprietary - for Hawk Lighting use
Text Domain: hawk-lighting
Tags: one-page, business, lighting
*/

/* =========================================================
   HAWK LIGHTING — style.css
   Palette from company profile:
   Hawk Blue  #0067B4 | Deep Navy #08182B | Signal Orange #F58220
   Mist       #F2F6FA | Ink       #16202C
   ========================================================= */

:root{
  --hawk-blue:   #0067B4;
  --hawk-blue-2: #0A7DD1;
  --deep:        #08182B;
  --deep-2:      #0D2036;
  --orange:      #F58220;
  --ink:         #16202C;
  --mute:        #5A6B7E;
  --mist:        #F2F6FA;
  --line:        #E1E9F1;
  --glow:        0 0 24px rgba(10,125,209,.45), 0 0 64px rgba(10,125,209,.22);
  --radius:      18px;
  --font-display:'Sora', system-ui, sans-serif;
  --font-body:   'Inter', system-ui, sans-serif;
}

html{ scroll-behavior:smooth; }
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:#fff;
  overflow-x:hidden;
  line-height:1.65;
}
h1,h2,h3,h4,h5,h6{ font-family:var(--font-display); font-weight:700; color:var(--ink); }
a{ text-decoration:none; }
img{ max-width:100%; }
::selection{ background:var(--hawk-blue); color:#fff; }

/* ---------- shared section bits ---------- */
.section{ padding:96px 0; }
.section.alt{ background:var(--mist); }
.section-title{ font-size:clamp(1.7rem,3.2vw,2.6rem); letter-spacing:-.02em; margin-bottom:1rem; }
.section-lead{ color:var(--mute); max-width:620px; margin:0 auto; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--font-display);
  font-size:.74rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--hawk-blue); margin-bottom:.9rem;
}
.eyebrow::before{ content:""; width:22px; height:3px; background:var(--orange); border-radius:2px; }
.eyebrow.centered::after{ content:""; width:22px; height:3px; background:var(--orange); border-radius:2px; }
.eyebrow.light{ color:#8FC6EE; }

/* ---------- buttons ---------- */
.btn-glow{
  background:linear-gradient(120deg,var(--hawk-blue),var(--hawk-blue-2));
  color:#fff; font-weight:600; border:none; border-radius:999px;
  padding:.65rem 1.5rem;
  box-shadow:0 6px 18px rgba(0,103,180,.35);
  transition:transform .25s ease, box-shadow .25s ease;
}
.btn-glow:hover, .btn-glow:focus{
  color:#fff; transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(0,103,180,.5), 0 0 30px rgba(10,125,209,.35);
}
.btn-ghost{ border-radius:999px; border-width:1.5px; font-weight:600; }

/* ---------- navbar ---------- */
.hawk-nav{
  padding:.9rem 0;
  background:transparent;
  transition:background .35s ease, box-shadow .35s ease, padding .35s ease;
}
.hawk-nav .brand-logo{ height:44px; width:auto; transition:height .3s ease; filter:drop-shadow(0 1px 8px rgba(255,255,255,.85)); }
.hawk-nav .nav-link{
  font-family:var(--font-display); font-weight:600; font-size:.86rem;
  color:#fff; margin:0 .35rem; position:relative; letter-spacing:.02em;
}
.hawk-nav .nav-link::after{
  content:""; position:absolute; left:50%; bottom:2px; width:0; height:2px;
  background:var(--orange); border-radius:2px; transform:translateX(-50%);
  transition:width .3s ease;
}
.hawk-nav .nav-link:hover::after, .hawk-nav .nav-link.active::after{ width:60%; }
.hawk-nav .navbar-toggler{ border-color:rgba(255,255,255,.5); }
.hawk-nav .navbar-toggler-icon{ background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,.9%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }

.hawk-nav.scrolled{
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);
  box-shadow:0 6px 24px rgba(8,24,43,.1);
  padding:.45rem 0;
}
.hawk-nav.scrolled .brand-logo{ height:36px; filter:none; }
.hawk-nav.scrolled .nav-link{ color:var(--ink); }
.hawk-nav.scrolled .navbar-toggler{ border-color:rgba(8,24,43,.3); }
.hawk-nav.scrolled .navbar-toggler-icon{ background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2822,32,44,.9%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }

@media (max-width: 991.98px){
  .hawk-nav .navbar-collapse{
    background:rgba(8,24,43,.97); margin-top:.75rem; border-radius:14px; padding:1rem 1.25rem;
  }
  .hawk-nav.scrolled .navbar-collapse .nav-link{ color:#fff; }
  .hawk-nav .nav-item{ margin:.15rem 0; }
}

/* ---------- hero ---------- */
.hero{
  position:relative; min-height:100vh; padding:140px 0 90px;
  background:var(--deep); color:#fff; overflow:hidden;
}
.hero-bg{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  transform:scale(1.06);
  animation:heroDrift 22s ease-in-out infinite alternate;
}
@keyframes heroDrift{ from{ transform:scale(1.06) translateX(0); } to{ transform:scale(1.12) translateX(-1.5%); } }
.hero-veil{
  position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(6,17,31,.94) 22%, rgba(6,20,38,.78) 52%, rgba(6,25,48,.45) 100%);
}
/* signature: cone of light sweeping onto the headline */
.hero-beam{
  position:absolute; top:-30%; left:8%;
  width:900px; height:900px; pointer-events:none;
  background:radial-gradient(closest-side, rgba(120,190,250,.28), rgba(120,190,250,.08) 45%, transparent 70%);
  filter:blur(6px);
  animation:beamPulse 7s ease-in-out infinite;
}
@keyframes beamPulse{ 0%,100%{ opacity:.75; } 50%{ opacity:1; } }

.hero-eyebrow{
  display:inline-block; font-family:var(--font-display);
  font-size:.72rem; font-weight:600; letter-spacing:.22em;
  color:#9FD1F5; border:1px solid rgba(159,209,245,.35);
  padding:.4rem .9rem; border-radius:999px; margin-bottom:1.4rem;
  background:rgba(10,125,209,.12);
}
.hero-title{
  font-size:clamp(2.6rem,6vw,4.6rem); font-weight:800; color:#fff;
  line-height:1.06; letter-spacing:-.03em; margin-bottom:1rem;
}
.hero-title .lit{
  color:#fff;
  text-shadow:0 0 18px rgba(140,205,255,.9), 0 0 60px rgba(10,125,209,.6);
}
.lumen-line{
  width:0; height:3px; margin:1.2rem 0 1.4rem;
  background:linear-gradient(90deg, var(--orange), rgba(245,130,32,0));
  border-radius:3px;
  box-shadow:0 0 14px rgba(245,130,32,.7);
  animation:lumen 1.4s .5s cubic-bezier(.22,.75,.3,1) forwards;
}
@keyframes lumen{ to{ width:min(340px,60%); } }
.hero-sub{ font-size:1.06rem; color:#C6D8E9; max-width:560px; margin-bottom:1.8rem; }
.hero-badges{ margin:2.2rem 0 0; gap:1.6rem; }
.hero-badges li{ font-size:.88rem; color:#AEC7DD; display:flex; align-items:center; gap:.5rem; }
.hero-badges i{ color:var(--orange); font-size:1.05rem; }

.scroll-hint{
  position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
  color:#9FD1F5; font-size:1.4rem; opacity:.85;
  animation:hint 2s ease-in-out infinite;
}
.scroll-hint:hover{ color:#fff; }
@keyframes hint{ 0%,100%{ transform:translate(-50%,0);} 50%{ transform:translate(-50%,8px);} }

/* ---------- clients marquee ---------- */
.clients{ background:var(--deep-2); padding:1.15rem 0; border-top:1px solid rgba(255,255,255,.06); }
.marquee{ overflow:hidden; position:relative;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.marquee-track{ display:flex; width:max-content; gap:0; will-change:transform; }
.marquee-track span{
  font-family:var(--font-display); font-weight:600; font-size:.85rem;
  letter-spacing:.08em; color:#7E97AE; white-space:nowrap;
  padding:.25rem 1.6rem; position:relative;
}
.marquee-track span::after{
  content:"✦"; position:absolute; right:-8px; color:var(--orange); opacity:.55; font-size:.7rem; top:50%; transform:translateY(-50%);
}

/* ---------- about ---------- */
.about p{ color:var(--mute); }
.vmv-card{
  background:var(--mist); border:1px solid var(--line); border-radius:14px;
  padding:1rem 1rem .8rem; height:100%;
  transition:transform .3s ease, box-shadow .3s ease;
}
.vmv-card:hover{ transform:translateY(-4px); box-shadow:0 12px 26px rgba(8,24,43,.08); }
.vmv-card i{ color:var(--hawk-blue); font-size:1.3rem; }
.vmv-card h6{ margin:.4rem 0 .2rem; font-size:.9rem; }
.vmv-card p{ font-size:.8rem; margin:0; color:var(--mute); }

.md-quote{
  background:linear-gradient(135deg,var(--deep),#0E2A4A);
  color:#D7E6F4; border-radius:var(--radius); padding:2.2rem 2.2rem 1.8rem;
  position:relative; overflow:hidden; margin-bottom:1.4rem;
}
.md-quote::after{
  content:""; position:absolute; right:-90px; top:-90px; width:260px; height:260px;
  background:radial-gradient(closest-side, rgba(10,125,209,.5), transparent 70%);
}
.md-quote-mark i{ font-size:2.2rem; color:var(--orange); }
.md-quote blockquote{ font-size:.97rem; line-height:1.75; margin:0 0 1.2rem; }
.md-quote figcaption strong{ display:block; color:#fff; font-family:var(--font-display); }
.md-quote figcaption span{ font-size:.82rem; color:#8FB4D4; }

.counter-box{
  background:#fff; border:1px solid var(--line); border-radius:14px;
  text-align:center; padding:1rem .5rem;
  box-shadow:0 6px 18px rgba(8,24,43,.05);
}
.counter-box .counter, .counter-box em{
  font-family:var(--font-display); font-weight:800; font-style:normal;
  font-size:1.5rem; color:var(--hawk-blue);
}
.counter-box em{ font-size:.95rem; color:var(--orange); }
.counter-box small{ display:block; color:var(--mute); font-size:.74rem; margin-top:.1rem; }

/* ---------- product grid ---------- */
.filter-btn{
  border:1.5px solid var(--line); background:#fff; color:var(--mute);
  font-family:var(--font-display); font-weight:600; font-size:.82rem;
  border-radius:999px; padding:.5rem 1.2rem;
  transition:all .25s ease;
}
.filter-btn:hover{ border-color:var(--hawk-blue); color:var(--hawk-blue); }
.filter-btn.active{
  background:var(--hawk-blue); border-color:var(--hawk-blue); color:#fff;
  box-shadow:0 6px 16px rgba(0,103,180,.3);
}

.p-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; height:100%;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.p-card:hover{
  transform:translateY(-6px);
  border-color:rgba(10,125,209,.45);
  box-shadow:0 18px 40px rgba(8,24,43,.12), 0 0 0 4px rgba(10,125,209,.06);
}
.p-card-img{
  background:radial-gradient(120% 100% at 50% 0%, #FDFEFF 0%, #EDF4FA 100%);
  aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
  padding:14px; position:relative; overflow:hidden;
}
.p-card-img::after{ /* light sweep on hover */
  content:""; position:absolute; top:0; left:-80%; width:50%; height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.75), transparent);
  transform:skewX(-18deg); transition:left .6s ease;
}
.p-card:hover .p-card-img::after{ left:130%; }
.p-card-img img{ max-height:100%; object-fit:contain; transition:transform .45s ease; }
.p-card:hover .p-card-img img{ transform:scale(1.06); }
.p-card-body{ padding:1.1rem 1.2rem 1.2rem; }
.p-card-body h5{ font-size:1.02rem; margin-bottom:.15rem; }
.p-card-body .watt{
  font-family:var(--font-display); font-size:.74rem; font-weight:600;
  color:var(--orange); letter-spacing:.05em;
}
.p-card-body ul{ list-style:none; margin:.6rem 0 0; padding:0; }
.p-card-body li{
  font-size:.8rem; color:var(--mute); padding-left:1rem; position:relative; margin-bottom:.15rem;
}
.p-card-body li::before{ content:"›"; position:absolute; left:0; color:var(--hawk-blue); font-weight:700; }
.product-item{ transition:opacity .3s ease; }

/* ---------- featured carousel (dark) ---------- */
.featured{
  background:
    radial-gradient(60% 60% at 85% 10%, rgba(10,125,209,.22), transparent 70%),
    linear-gradient(160deg, var(--deep) 0%, #0B2340 100%);
  position:relative; overflow:hidden;
}
.glow-orb{
  position:absolute; width:420px; height:420px; left:-160px; bottom:-160px;
  background:radial-gradient(closest-side, rgba(245,130,32,.28), transparent 70%);
  filter:blur(8px); pointer-events:none;
}
.car-btn{
  width:46px; height:46px; border-radius:50%;
  border:1.5px solid rgba(255,255,255,.3); background:rgba(255,255,255,.06);
  color:#fff; font-size:1.05rem;
  transition:all .25s ease;
}
.car-btn:hover{ background:var(--hawk-blue); border-color:var(--hawk-blue); box-shadow:var(--glow); }
.carousel-wrap{ overflow:hidden; }
.car-track{ display:flex; transition:transform .55s cubic-bezier(.33,.8,.35,1); }
.car-slide{ flex:0 0 100%; padding:0 6px; }
@media (min-width:768px){ .car-slide{ flex-basis:50%; } }
@media (min-width:1200px){ .car-slide{ flex-basis:33.3333%; } }

.feat-card{
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius); overflow:hidden; height:100%;
  backdrop-filter:blur(4px);
  transition:transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.feat-card:hover{ transform:translateY(-6px); border-color:rgba(140,205,255,.55); box-shadow:var(--glow); }
.feat-img{ background:#fff; aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; padding:12px; }
.feat-img img{ max-height:100%; object-fit:contain; }
.feat-body{ padding:1.3rem 1.4rem 1.4rem; color:#C6D8E9; }
.feat-body h4{ color:#fff; font-size:1.15rem; }
.feat-body p{ font-size:.85rem; }
.spec-mini{ width:100%; font-size:.78rem; }
.spec-mini td{ padding:.3rem 0; border-top:1px dashed rgba(255,255,255,.15); color:#9FBBD4; }
.spec-mini td:last-child{ text-align:right; color:#fff; font-weight:600; }

.car-dots{ display:flex; justify-content:center; gap:.5rem; margin-top:1.6rem; }
.car-dots button{
  width:9px; height:9px; border-radius:50%; border:none;
  background:rgba(255,255,255,.28); padding:0;
  transition:all .3s ease;
}
.car-dots button.active{ width:26px; border-radius:6px; background:var(--orange); box-shadow:0 0 12px rgba(245,130,32,.7); }

/* ---------- applications ---------- */
.app-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.8rem 1.6rem; height:100%; position:relative; overflow:hidden;
  transition:transform .35s ease, box-shadow .35s ease;
}
.app-card::before{
  content:""; position:absolute; top:0; left:0; width:100%; height:4px;
  background:linear-gradient(90deg,var(--hawk-blue),var(--orange));
  transform:scaleX(0); transform-origin:left; transition:transform .4s ease;
}
.app-card:hover{ transform:translateY(-6px); box-shadow:0 18px 38px rgba(8,24,43,.1); }
.app-card:hover::before{ transform:scaleX(1); }
.app-card i{ font-size:1.9rem; color:var(--hawk-blue); }
.app-card h5{ margin:.7rem 0 .4rem; font-size:1.05rem; }
.app-card p{ font-size:.86rem; color:var(--mute); margin:0; }

/* ---------- why ---------- */
.why p{ color:var(--mute); }
.why-card{
  background:var(--mist); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.5rem 1.4rem; height:100%;
  transition:transform .35s ease, box-shadow .35s ease, background .35s ease;
}
.why-card:hover{ transform:translateY(-5px); background:#fff; box-shadow:0 16px 34px rgba(8,24,43,.09); }
.why-ico{
  width:48px; height:48px; border-radius:12px; display:inline-flex;
  align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--hawk-blue),var(--hawk-blue-2));
  color:#fff; font-size:1.2rem;
  box-shadow:0 8px 18px rgba(0,103,180,.35);
}
.why-card h5{ font-size:1rem; margin:.9rem 0 .35rem; }
.why-card p{ font-size:.83rem; color:var(--mute); margin:0; }

.quality-strip{
  margin-top:1.6rem; background:var(--deep); color:#C6D8E9;
  border-radius:var(--radius); padding:1.5rem 1.6rem;
}
.quality-strip h6{ color:#fff; font-size:.95rem; display:flex; gap:.5rem; align-items:center; }
.quality-strip h6 i{ color:var(--orange); }
.quality-strip ul{ margin:.8rem 0 0; padding-left:1.1rem; }
.quality-strip li{ font-size:.83rem; margin-bottom:.3rem; }

/* ---------- gallery ---------- */
.g-item{
  display:block; position:relative; border-radius:var(--radius); overflow:hidden;
  aspect-ratio:4/3;
}
.g-item img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.g-item span{
  position:absolute; left:0; right:0; bottom:0; padding:2rem 1rem .8rem;
  color:#fff; font-family:var(--font-display); font-weight:600; font-size:.82rem;
  background:linear-gradient(transparent, rgba(6,17,31,.85));
  opacity:0; transform:translateY(8px);
  transition:opacity .35s ease, transform .35s ease;
}
.g-item::after{
  content:"\F62C"; font-family:"bootstrap-icons";
  position:absolute; top:12px; right:12px; width:34px; height:34px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.9); color:var(--hawk-blue); border-radius:50%;
  opacity:0; transform:scale(.6); transition:all .35s ease;
}
.g-item:hover img{ transform:scale(1.07); }
.g-item:hover span{ opacity:1; transform:translateY(0); }
.g-item:hover::after{ opacity:1; transform:scale(1); }

/* lightbox */
.lightbox{
  position:fixed; inset:0; z-index:1080; background:rgba(6,17,31,.92);
  display:none; align-items:center; justify-content:center; padding:2rem;
}
.lightbox.open{ display:flex; }
.lightbox figure{ max-width:min(1000px,92vw); margin:0; text-align:center; }
.lightbox img{ max-width:100%; max-height:80vh; border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.6); }
.lightbox figcaption{ color:#C6D8E9; margin-top:.8rem; font-family:var(--font-display); font-size:.9rem; }
.lb-close{
  position:absolute; top:22px; right:26px; width:44px; height:44px; border-radius:50%;
  border:none; background:rgba(255,255,255,.12); color:#fff; font-size:1.1rem;
}
.lb-close:hover{ background:var(--orange); }

/* ---------- CTA band ---------- */
.cta-band{
  background:linear-gradient(100deg, var(--hawk-blue) 0%, #0B4E86 60%, var(--deep) 100%);
  color:#fff; padding:3rem 0; position:relative; overflow:hidden;
}
.cta-band::after{
  content:""; position:absolute; right:-60px; top:-120px; width:340px; height:340px;
  background:radial-gradient(closest-side, rgba(245,130,32,.4), transparent 70%);
}
.cta-band h3{ color:#fff; font-size:clamp(1.2rem,2.4vw,1.7rem); margin:0; }

/* ---------- contact ---------- */
.contact p{ color:var(--mute); }
.contact-list li{ display:flex; gap:1rem; margin-bottom:1.15rem; }
.contact-list i{
  flex:0 0 44px; width:44px; height:44px; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  background:var(--mist); color:var(--hawk-blue); font-size:1.15rem;
  border:1px solid var(--line);
}
.contact-list strong{ display:block; font-family:var(--font-display); font-size:.88rem; }
.contact-list span, .contact-list a{ font-size:.86rem; color:var(--mute); }
.contact-list a:hover{ color:var(--hawk-blue); }

.quote-form{
  background:var(--mist); border:1px solid var(--line);
  border-radius:var(--radius); padding:2rem;
}
.quote-form .form-label{ font-family:var(--font-display); font-weight:600; font-size:.8rem; }
.quote-form .form-control, .quote-form .form-select{
  border-color:var(--line); border-radius:10px; padding:.65rem .9rem; font-size:.9rem;
}
.quote-form .form-control:focus, .quote-form .form-select:focus{
  border-color:var(--hawk-blue); box-shadow:0 0 0 .2rem rgba(0,103,180,.14);
}
.form-note{ font-size:.84rem; color:var(--hawk-blue); font-weight:600; }
.form-note.err{ color:#C43D2B; }

/* ---------- footer ---------- */
.footer{ background:var(--deep); color:#8FA9C2; padding:4rem 0 1.5rem; }
.footer h6{ color:#fff; font-size:.9rem; letter-spacing:.06em; text-transform:uppercase; margin-bottom:1rem; }
.footer a{ color:#8FA9C2; font-size:.87rem; transition:color .2s; }
.footer a:hover{ color:#fff; }
.footer p{ font-size:.87rem; }
.footer li{ margin-bottom:.45rem; }
.footer-logo{ background:#fff; display:inline-block; border-radius:12px; padding:.55rem .9rem; }
.footer-logo img{ height:38px; }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  margin-top:2.6rem; padding-top:1.3rem; font-size:.76rem; color:#63809C;
}

/* ---------- back to top ---------- */
.to-top{
  position:fixed; right:22px; bottom:22px; z-index:1050;
  width:46px; height:46px; border-radius:50%; border:none;
  background:var(--hawk-blue); color:#fff; font-size:1.1rem;
  box-shadow:0 10px 24px rgba(0,103,180,.4);
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:all .35s ease;
}
.to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }
.to-top:hover{ background:var(--orange); }

/* ---------- reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }

/* ---------- accessibility / motion ---------- */
:focus-visible{ outline:3px solid var(--orange); outline-offset:2px; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none !important; transition:none !important; }
  .reveal{ opacity:1; transform:none; }
  .lumen-line{ width:min(340px,60%); }
}

/* ---------- small screens ---------- */
@media (max-width:575.98px){
  .section{ padding:68px 0; }
  .hero{ padding-top:120px; }
  .hero-badges{ gap:.8rem 1.2rem; }
  .quote-form{ padding:1.4rem; }
}

/* ---------- WP theme extras ---------- */
/* honeypot field: hidden from humans, visible to bots */
.hp-field{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
/* custom logo support */
.hawk-nav .custom-logo{ height:44px; width:auto; transition:height .3s ease; }
.hawk-nav.scrolled .custom-logo{ height:36px; }
/* WP admin bar offset for fixed navbar */
body.admin-bar .hawk-nav{ top:32px; }
@media (max-width:782px){ body.admin-bar .hawk-nav{ top:46px; } }
/* basic inner-page content styling */
.page-content{ padding:140px 0 80px; }
.page-content h1{ margin-bottom:1.2rem; }
