/*
Theme Name: FLASH Log 2026
Description: Standalone custom theme for flash-log.com, built by TechBoiL. Does not extend or depend on any other installed theme.
Author: TechBoiL
Version: 1.0
*/

:root{
  --navy:#25237A;
  --navy-deep:#1A1857;
  --mustard:#FFDB58;
  --off-white:#FAF9F5;
  --off-black:#1A1A1D;
  --line:#E6E3D8;
  --radius:4px;
  --wrap:1180px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'IBM Plex Sans',sans-serif;
  color:var(--off-black);
  background:var(--off-white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  padding-top:76px;
}
h1,h2,h3,.brand{font-family:'Space Grotesk',sans-serif;letter-spacing:-0.02em;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px;}
section{padding:96px 0;}
@media (max-width:768px){section{padding:64px 0;}}

/* ---------- NAV ---------- */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:10px 0;
  background:var(--navy-deep);
  box-shadow:0 1px 0 rgba(0,0,0,.1);
  transition:background-color .35s cubic-bezier(.4,0,.2,1), box-shadow .35s cubic-bezier(.4,0,.2,1);
}
header.solid, header.inner{background:var(--off-white);box-shadow:0 2px 20px rgba(20,19,64,.1);}
header .wrap{display:flex;align-items:center;justify-content:space-between;}
.brand{display:flex;align-items:center;gap:10px;font-size:1.3rem;font-weight:700;color:#fff;}
.brand img{height:44px;width:auto;display:block;filter:brightness(0) invert(1);transition:filter .35s cubic-bezier(.4,0,.2,1);}
header.solid .brand img, header.inner .brand img{filter:none;}
nav.links{display:flex;align-items:center;gap:36px;}
nav.links a{color:#fff;font-size:.94rem;font-weight:500;opacity:.85;transition:opacity .2s, color .35s cubic-bezier(.4,0,.2,1);}
nav.links a:hover, nav.links a.current{opacity:1;}
header.solid nav.links a, header.inner nav.links a{color:var(--navy-deep);}
.cta-pill{
  background:var(--mustard);color:var(--navy-deep)!important;
  padding:11px 24px;border-radius:100px;font-weight:600;font-size:.9rem;
  transition:transform .18s cubic-bezier(.16,1,.3,1), background-color .2s;
  opacity:1!important;
}
.cta-pill:active{transform:scale(.97);}
.cta-pill:hover{transform:translateY(-1px);}
.burger{
  display:none;background:none;border:0;color:#fff;font-size:1.7rem;line-height:1;cursor:pointer;
  position:relative;z-index:200;transition:color .35s cubic-bezier(.4,0,.2,1);
}
header.solid .burger, header.inner .burger{color:var(--navy);}
nav.links.open ~ .burger{color:#fff;}
@media (max-width:860px){
  nav.links{position:fixed;top:0;right:-100%;height:100vh;width:70%;min-width:220px;background:var(--navy-deep);flex-direction:column;justify-content:center;gap:28px;transition:right .3s cubic-bezier(.4,0,.2,1);z-index:150;}
  nav.links a, header.solid nav.links a, header.inner nav.links a{color:#fff;}
  nav.links.open{right:0;}
  .burger{display:block;}
}

/* ---------- PAGE HERO (inner pages) ---------- */
.page-hero{background:var(--navy-deep);padding:70px 0 56px;}
.page-hero .eyebrow{color:var(--mustard);font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;}
.page-hero h1{color:#fff;font-size:2.3rem;line-height:1.15;max-width:18ch;}
.page-hero p{color:#D8D7EC;max-width:52ch;margin-top:14px;font-size:1.02rem;}

/* ---------- HERO (home) ---------- */
#hero{
  position:relative;min-height:calc(100vh - 76px);display:flex;align-items:stretch;
  background:var(--navy-deep);padding:0;overflow:hidden;
}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;width:100%;}
.hero-copy{
  display:flex;flex-direction:column;justify-content:center;
  padding:56px 56px 90px 32px;position:relative;z-index:2;
}
.hero-copy .eyebrow{color:var(--mustard);font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:18px;}
.hero-copy h1{color:#fff;font-size:3.1rem;line-height:1.12;max-width:19ch;font-weight:700;margin-bottom:22px;}
.hero-copy p{color:#D8D7EC;font-size:1.08rem;max-width:42ch;margin-bottom:34px;}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;}
.btn-primary{background:var(--mustard);color:var(--navy-deep);padding:15px 30px;border-radius:100px;font-weight:600;font-size:.98rem;display:inline-block;transition:transform .18s cubic-bezier(.16,1,.3,1);}
.btn-primary:hover{transform:translateY(-2px);}
.btn-primary:active{transform:scale(.97);}
.btn-ghost{border:1.5px solid rgba(255,255,255,.35);color:#fff;padding:14px 28px;border-radius:100px;font-weight:600;font-size:.98rem;transition:border-color .2s,background .2s;}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.06);}
.hero-photo{position:relative;}
.hero-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.hero-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg, var(--navy-deep) 0%, rgba(26,24,87,.15) 30%, rgba(26,24,87,0) 55%);}
.hero-stats{
  position:absolute;bottom:0;left:0;right:0;z-index:2;
  border-top:1px solid rgba(255,255,255,.14);
  background:rgba(20,19,64,.55);backdrop-filter:blur(6px);
}
.hero-stats .wrap{display:flex;gap:64px;padding:26px 32px;}
.stat b{display:block;color:var(--mustard);font-family:'Space Grotesk',sans-serif;font-size:1.6rem;font-weight:700;}
.stat span{color:#C9C8E4;font-size:.82rem;}
@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-photo{min-height:280px;}
  .hero-copy{padding:64px 24px 40px;}
  .hero-copy h1{font-size:2.2rem;max-width:none;}
  .hero-stats .wrap{gap:32px;flex-wrap:wrap;padding:18px 24px;}
}

/* ---------- HERITAGE (editorial split) ---------- */
#heritage .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center;}
.heritage-media{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);}
.heritage-media img{filter:sepia(.15) contrast(1.02);}
.heritage-media .cap{position:absolute;bottom:0;left:0;right:0;background:var(--navy);color:var(--mustard);font-size:.78rem;font-weight:600;padding:9px 14px;letter-spacing:.03em;}
.heritage-copy .eyebrow{color:var(--navy);font-weight:600;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;}
.heritage-copy h2{font-size:2.1rem;line-height:1.18;margin-bottom:20px;max-width:14ch;color:var(--off-black);}
.heritage-copy p{max-width:56ch;color:#48484f;margin-bottom:16px;font-size:1.02rem;}
.heritage-copy p strong{color:var(--navy);}
@media (max-width:860px){#heritage .wrap{grid-template-columns:1fr;gap:36px;}}

/* ---------- SERVICES (bento variance) ---------- */
.services-section{background:#F2F0E7;}
.section-head{max-width:640px;margin-bottom:52px;}
.section-head .eyebrow{color:var(--navy);font-weight:600;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;}
.section-head h2{font-size:2.1rem;line-height:1.2;color:var(--off-black);}
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:18px;}
.tile{
  border-radius:var(--radius);padding:30px;position:relative;overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-end;
  transition:transform .28s cubic-bezier(.16,1,.3,1);
}
.tile:hover{transform:translateY(-4px);}
.tile h3{font-size:1.28rem;margin-bottom:8px;position:relative;z-index:2;}
.tile p{font-size:.92rem;position:relative;z-index:2;max-width:32ch;}
.tile.large{grid-column:span 2;grid-row:span 2;background:var(--navy);color:#fff;}
.tile.large p{color:#C9C8E4;}
.tile.large .tag{color:var(--mustard);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;position:relative;z-index:2;}
.tile.med{grid-column:span 2;grid-row:span 1;background:#fff;border:1px solid var(--line);color:var(--off-black);}
.tile.small{grid-column:span 1;grid-row:span 1;background:#fff;border:1px solid var(--line);color:var(--off-black);}
.tile.small p, .tile.med p{color:#5a5a63;}
.tile-icon{width:38px;height:38px;border-radius:100px;background:var(--mustard);display:flex;align-items:center;justify-content:center;margin-bottom:auto;position:relative;z-index:2;}
.tile.large .tile-icon{background:rgba(255,219,88,.16);}
.tile.large .tile-icon svg{stroke:var(--mustard);}
.tile-icon svg{width:18px;height:18px;stroke:var(--navy-deep);stroke-width:2;fill:none;}
.tile-link{position:absolute;inset:0;z-index:3;}
@media (max-width:900px){
  .bento{grid-template-columns:repeat(2,1fr);grid-auto-rows:auto;}
  .tile.large{grid-column:span 2;grid-row:span 1;min-height:220px;}
  .tile.med{grid-column:span 2;}
  .tile.small{grid-column:span 1;min-height:170px;}
}
@media (max-width:560px){
  .bento{grid-template-columns:1fr;}
  .tile.large,.tile.med,.tile.small{grid-column:span 1;}
}

/* ---------- SERVICE DETAIL PAGE ---------- */
.service-detail .wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:start;}
.service-detail .tile-icon{width:52px;height:52px;margin-bottom:22px;}
.service-detail .tile-icon svg{width:24px;height:24px;}
.service-detail h2{font-size:1.9rem;margin-bottom:16px;max-width:16ch;}
.service-detail p.lead{font-size:1.05rem;color:#48484f;max-width:52ch;margin-bottom:8px;}
.service-list{list-style:none;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:8px;}
.service-list li{padding:16px 18px;border-bottom:1px solid var(--line);font-size:.98rem;display:flex;align-items:center;gap:12px;}
.service-list li:last-child{border-bottom:none;}
.service-list li::before{content:'';width:8px;height:8px;border-radius:100px;background:var(--mustard);flex-shrink:0;}
@media (max-width:860px){.service-detail .wrap{grid-template-columns:1fr;gap:32px;}}

/* ---------- GROUP (asymmetric, not 3 equal cards) ---------- */
#group .group-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;}
.group-main{background:var(--navy);border-radius:var(--radius);padding:44px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;min-height:340px;position:relative;}
.group-main .tag{color:var(--mustard);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px;}
.group-main h3{font-size:1.6rem;margin-bottom:10px;}
.group-main p{color:#C9C8E4;max-width:40ch;margin-bottom:20px;}
.group-side{display:flex;flex-direction:column;gap:20px;}
.group-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;flex:1;display:flex;flex-direction:column;justify-content:center;}
.group-card .tag{color:var(--navy);font-size:.76rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;}
.group-card h3{font-size:1.15rem;margin-bottom:8px;color:var(--off-black);}
.group-card p{font-size:.9rem;color:#5a5a63;margin-bottom:14px;}
.link-arrow{font-weight:600;font-size:.88rem;color:var(--navy);}
.group-main .link-arrow{color:var(--mustard);}
@media (max-width:860px){#group .group-grid{grid-template-columns:1fr;}}

/* ---------- CONTACT ---------- */
#contact{background:var(--mustard);}
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center;}
.contact-copy .eyebrow{color:var(--navy-deep);font-weight:600;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;}
.contact-copy h2{font-size:2rem;color:var(--navy-deep);max-width:16ch;margin-bottom:14px;}
.contact-copy p{color:#4a3f10;max-width:42ch;margin-bottom:26px;}
.contact-copy .btn-primary{background:var(--navy-deep);color:#fff;}
.contact-side{display:flex;flex-direction:column;gap:16px;}
.contact-item{background:rgba(255,255,255,.35);border-radius:var(--radius);padding:20px 24px;display:flex;flex-direction:column;gap:4px;transition:background-color .2s, transform .12s cubic-bezier(.16,1,.3,1);}
a.contact-item:hover{background:rgba(255,255,255,.55);}
a.contact-item:active{transform:scale(.97);}
.contact-label{font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#5c4d10;}
.contact-value{font-family:'Space Grotesk',sans-serif;font-size:1.15rem;font-weight:600;color:var(--navy-deep);}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr;}}

/* ---------- CONTACT PAGE (map) ---------- */
.contact-page-section .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.contact-page-section .contact-item{background:#fff;border:1px solid var(--line);}
.contact-page-section .contact-label{color:var(--navy);}
.contact-page-section .contact-value{color:var(--off-black);}
.map-frame{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);min-height:340px;}
.map-frame iframe{width:100%;height:100%;min-height:340px;border:0;display:block;}
@media (max-width:860px){.contact-page-section .wrap{grid-template-columns:1fr;}}

/* ---------- FOOTER ---------- */
footer{background:var(--navy-deep);color:#C9C8E4;padding-top:72px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.12);}
.foot-brand .brand{color:#fff;margin-bottom:14px;}
.foot-brand p{max-width:34ch;font-size:.92rem;color:#A8A7C9;}
footer h4{color:#fff;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;margin-bottom:18px;}
footer ul{list-style:none;display:flex;flex-direction:column;gap:11px;}
footer ul a{font-size:.92rem;color:#C9C8E4;transition:color .2s;}
footer ul a:hover{color:var(--mustard);}
.foot-bottom{display:flex;justify-content:space-between;padding:22px 0;font-size:.82rem;color:#8988B0;flex-wrap:wrap;gap:10px;}
.foot-bottom a{color:var(--mustard);font-weight:600;}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.foot-grid{grid-template-columns:1fr;}}

/* ---------- SCROLL REVEAL ---------- */
.reveal{
  opacity:0;transform:translateY(28px);
  transition:opacity .6s cubic-bezier(.16,.84,.44,1), transform .6s cubic-bezier(.16,.84,.44,1);
}
.reveal.in{opacity:1;transform:translateY(0);}
.stagger .reveal:nth-child(1){transition-delay:0s;}
.stagger .reveal:nth-child(2){transition-delay:.08s;}
.stagger .reveal:nth-child(3){transition-delay:.16s;}
.stagger .reveal:nth-child(4){transition-delay:.24s;}
.stagger .reveal:nth-child(5){transition-delay:.32s;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important;transition:none!important;}
}
