:root{
  --navy:#20334E;
  --navy-deep:#15233A;
  --orange:#F36523;
  --orange-deep:#D8500F;
  --cream:#FAF7F2;
  --stone:#E8E1D6;
  --ink:#24282D;
  --ink-soft:#5A6069;
  --white:#FFFFFF;
  --line: rgba(27,42,65,0.14);
  --radius: 3px;
}
:root:not([data-theme="light"]){ color-scheme: light; }
:root[data-theme="dark"]{ color-scheme: dark; }
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --cream:#FAF7F2; --ink:#24282D; }
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background: var(--cream); color: var(--ink);
  font-family:'Inter',system-ui,-apple-system,Segoe UI,sans-serif;
  font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
h1,h2,h3{font-family:'Archivo',system-ui,sans-serif; font-weight:800; letter-spacing:-0.01em; color:var(--navy);}

header{position:sticky; top:0; z-index:50; background:var(--navy); border-bottom:3px solid var(--orange);}
header .wrap{display:flex; align-items:center; justify-content:space-between; padding-top:12px; padding-bottom:12px; gap:20px;}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{height:64px; width:auto;}
nav{display:flex; align-items:center; gap:28px;}
nav a{color:#EDEFF3; font-weight:600; font-size:14.5px; padding:6px 2px; border-bottom:2px solid transparent; transition:border-color .15s ease, color .15s ease;}
nav a:hover, nav a[aria-current="page"]{border-color:var(--orange); color:#fff;}
.header-phone{display:flex; align-items:center; gap:8px; color:var(--orange); font-weight:700; font-size:15px; white-space:nowrap;}
.menu-btn{display:none; background:none; border:0; color:#fff; font-size:26px; cursor:pointer;}
@media (max-width: 860px){
  nav{position:fixed; inset:64px 0 0 0; background:var(--navy-deep); flex-direction:column; align-items:flex-start; padding:24px 28px; transform:translateX(100%); transition:transform .25s ease; gap:6px; height:auto;}
  nav.open{transform:translateX(0);}
  nav a{width:100%; padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.08); border-radius:0;}
  .header-phone{display:none;}
  .menu-btn{display:block;}
}

.hero{position:relative; min-height:86vh; display:flex; align-items:flex-end;
  background-image: linear-gradient(180deg, rgba(16,27,44,0.20) 0%, rgba(16,27,44,0.55) 62%, rgba(16,27,44,0.92) 100%), url('assets/hero.jpg');
  background-size:cover; background-position:center 30%;}
.hero-inner{padding: 64px 0 68px; color:#fff; max-width:720px;}
.hero-eyebrow{color:var(--orange); font-weight:700; font-size:14.5px; margin-bottom:14px;}
.hero h1{color:#fff; font-size:clamp(2.1rem, 5vw, 3.6rem); line-height:1.06; margin-bottom:20px;}
.hero p{font-size:18px; color:#EDEFF3; max-width:560px; margin-bottom:30px;}
@media (max-width:700px){
  .hero{min-height:480px; align-items:flex-start; padding-top:28px;}
  .hero-inner{padding:20px 0 32px;}
  .hero-eyebrow{margin-bottom:10px;}
  .hero h1{font-size:1.9rem; margin-bottom:14px;}
  .hero p{font-size:16px; margin-bottom:22px;}
}
.cta-row{display:flex; gap:16px; flex-wrap:wrap;}
.btn{display:inline-block; padding:15px 28px; font-weight:700; font-size:15px; border-radius:var(--radius); transition:transform .12s ease, background .15s ease; border:2px solid transparent;}
.btn-primary{background:var(--orange); color:#fff;}
.btn-primary:hover{background:var(--orange-deep); transform:translateY(-1px);}
.btn-outline{border-color:rgba(255,255,255,0.6); color:#fff;}
.btn-outline:hover{border-color:#fff; background:rgba(255,255,255,0.08);}

/* Page header banner (non-home pages) */
.page-header{background:var(--navy); padding:64px 0 48px; border-bottom:3px solid var(--orange);}
.page-header .section-tag{color:var(--orange); font-weight:700; font-size:14px; margin-bottom:10px;}
.page-header h1{color:#fff; font-size:clamp(1.9rem,4vw,2.8rem); margin-bottom:12px;}
.page-header p{color:#C6CCD6; font-size:16.5px; max-width:620px;}

section{padding:88px 0;}
.section-tag{color:var(--orange); font-weight:700; font-size:14px; margin-bottom:10px;}
.section-head{max-width:620px; margin-bottom:48px;}
.section-head h2{font-size:clamp(1.7rem,3.4vw,2.4rem); margin-bottom:14px;}
.section-head p{color:var(--ink-soft); font-size:16.5px;}

.services{background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.service-list{border-top:1px solid var(--line);}
.service-row{display:grid; grid-template-columns: 90px 1fr 1.4fr; gap:28px; padding:30px 0; border-bottom:1px solid var(--line); align-items:baseline;}
.service-num{font-family:'Archivo',sans-serif; font-weight:800; color:var(--stone); font-size:15px; letter-spacing:.04em;}
.service-row h3{font-size:21px; color:var(--navy);}
.service-row p{color:var(--ink-soft); font-size:15.5px;}
@media (max-width:700px){ .service-row{grid-template-columns:1fr; gap:8px; padding:22px 0;} .service-num{display:none;} }

/* Service detail cards (services.html) */
.service-detail{padding:44px 0; border-bottom:1px solid var(--line);}
.service-detail:first-of-type{padding-top:0;}
.service-detail:last-of-type{border-bottom:0;}
.service-detail h2{font-size:1.6rem; margin-bottom:12px;}
.service-detail p{color:var(--ink-soft); font-size:16px; max-width:760px; margin-bottom:10px;}
.service-detail ul{color:var(--ink-soft); font-size:15.5px; margin:14px 0 0 20px;}
.service-detail li{margin-bottom:6px;}
.service-detail .link{color:var(--orange); font-weight:600; text-decoration:underline;}

.showcase{background:var(--cream);}
.showcase-grid{display:grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap:32px; align-items:start;}
.showcase-card{background:#fff; border:1px solid var(--line); padding:14px; border-radius:var(--radius);}
.showcase-card img{border-radius:2px;}
.showcase-cap{padding:18px 6px 6px;}
.showcase-cap h3{font-size:18px; color:var(--navy); margin-bottom:6px;}
.showcase-cap p{font-size:14.5px; color:var(--ink-soft);}

.process{background:var(--navy); color:#fff;}
.process .section-tag{color:var(--orange);}
.process .section-head h2{color:#fff;}
.process .section-head p{color:#C6CCD6;}
.process-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:30px;}
.process-photo{aspect-ratio: 4/3; overflow:hidden; border-radius:var(--radius); margin-bottom:18px; border:1px solid rgba(255,255,255,0.15);}
.process-photo img{width:100%; height:100%; object-fit:cover;}
.process-step{display:flex; align-items:center; gap:12px; margin-bottom:8px;}
.process-step-num{font-family:'Archivo',sans-serif; font-weight:800; color:var(--orange); font-size:14px;}
.process-card h3{color:#fff; font-size:18px;}
.process-card p{color:#B7BECA; font-size:14.5px;}
@media (max-width:820px){ .process-grid{grid-template-columns:1fr; gap:40px;} }

.about-grid{display:grid; grid-template-columns: 0.85fr 1.15fr; gap:56px; align-items:center;}
.about-photo img{border-radius:var(--radius); border:1px solid var(--line);}
.about-body h2{font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:18px;}
.about-body p{color:var(--ink-soft); margin-bottom:16px; font-size:16px;}
.about-facts{display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:26px; border-top:1px solid var(--line); padding-top:24px;}
.about-facts div strong{display:block; color:var(--navy); font-family:'Archivo',sans-serif; font-size:15px;}
.about-facts div span{color:var(--ink-soft); font-size:14px;}
@media (max-width:820px){ .about-grid{grid-template-columns:1fr;} }

.contact{background: var(--orange); color:#fff;}
.contact-top{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:28px; margin-bottom:40px;}
.contact h2{color:#fff; font-size:clamp(1.6rem,3.4vw,2.3rem); max-width:520px;}
.contact p{color:rgba(255,255,255,0.92); margin-top:10px; max-width:480px;}
.contact-actions{display:flex; flex-direction:column; align-items:flex-start; gap:14px;}
.contact .btn-primary{background:var(--navy);}
.contact .btn-primary:hover{background:var(--navy-deep);}
.phone-big{font-family:'Archivo',sans-serif; font-weight:800; font-size:26px; color:#fff;}
.contact-form-panel{background:#fff; border-radius:6px; overflow:hidden; box-shadow:0 12px 32px rgba(16,27,44,0.18);}
.bigin-frame{width:100%; height:900px; border:0; display:block; background:#EDF1F4;}
@media (max-width:700px){ .bigin-frame{height:1150px;} }

.contact-info-strip{display:flex; gap:32px; flex-wrap:wrap; margin-top:24px; padding-top:24px; border-top:1px solid rgba(255,255,255,0.3);}
.contact-info-strip div strong{display:block; font-size:14px; color:rgba(255,255,255,0.8); margin-bottom:4px;}

/* ---------- Thank-you / success page ---------- */
.success-hero{
  background: linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
  padding:100px 0 90px; text-align:center;
}
.success-icon{
  width:72px; height:72px; border-radius:50%; background:var(--orange);
  display:flex; align-items:center; justify-content:center; margin:0 auto 28px;
}
.success-icon svg{width:34px; height:34px;}
.success-hero h1{color:#fff; font-size:clamp(1.9rem,4vw,2.6rem); margin-bottom:16px;}
.success-hero p{color:#C6CCD6; font-size:17px; max-width:520px; margin:0 auto 36px;}
.success-hero .cta-row{justify-content:center;}
.success-next{max-width:640px; margin:0 auto; text-align:left;}
.success-next h2{font-size:1.3rem; margin-bottom:18px;}
.success-next ol{color:var(--ink-soft); font-size:16px; padding-left:22px;}
.success-next li{margin-bottom:12px;}
.contact-info-strip div a{font-weight:700; font-size:16px; color:#fff;}

footer{background:var(--navy-deep); color:#8D95A3; padding:40px 0;}
.footer-inner{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:18px;}
.footer-inner img{height:30px; opacity:.9;}
footer p{font-size:13.5px;}
footer .foot-links{display:flex; gap:22px; flex-wrap:wrap;}
footer .foot-links a{font-size:13.5px; color:#B7BECA;}
footer .foot-links a:hover{color:#fff;}

@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{transition:none !important;} }

/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed; inset:0; z-index:200; background:rgba(16,20,26,0.94);
  display:none; align-items:center; justify-content:center; padding:24px;
}
.lightbox.open{display:flex;}
.lightbox-img{max-width:min(1100px, 92vw); max-height:78vh; object-fit:contain; border-radius:4px; box-shadow:0 20px 60px rgba(0,0,0,0.5);}
.lightbox-cap{position:absolute; bottom:32px; left:0; right:0; text-align:center; color:#fff; font-size:15px; font-weight:600;}
.lightbox-close{position:absolute; top:20px; right:24px; background:none; border:0; color:#fff; font-size:38px; line-height:1; cursor:pointer; padding:6px 12px;}
.lightbox-arrow{position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,0.12); border:0; color:#fff; font-size:34px; width:52px; height:64px; cursor:pointer; border-radius:4px;}
.lightbox-arrow:hover{background:rgba(255,255,255,0.24);}
.lightbox-prev{left:16px;}
.lightbox-next{right:16px;}
@media (max-width:700px){
  .lightbox-arrow{width:42px; height:52px; font-size:26px;}
  .lightbox-close{top:12px; right:12px; font-size:32px;}
}
