*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#101a31;background:#fff}a{color:inherit}.header{height:108px;padding:0 4.5%;display:flex;align-items:center;gap:34px;background:#fff;position:relative;z-index:10}.logo{width:310px;flex:0 0 auto}.logo img{width:100%;display:block}.header nav{display:flex;gap:34px;margin-left:auto;align-self:stretch;align-items:center}.header nav a{text-decoration:none;font-size:16px;padding:42px 0 19px}.header nav .active{color:#096bd6;border-bottom:3px solid #096bd6}.call{background:#0879e8;color:#fff;text-decoration:none;border-radius:6px;font-weight:700;padding:18px 23px;display:inline-block}.header-call{background:#0756ae;white-space:nowrap}.menu{display:none;border:0;background:none;font-size:28px}.hero{height:647px;position:relative;overflow:hidden}.hero>img{width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,12,28,.84),rgba(0,15,32,.56) 31%,rgba(0,0,0,.05) 60%,transparent)}.hero-content{position:absolute;left:4.8%;top:132px;color:#fff;width:490px}.eyebrow{font-size:14px;font-weight:700;letter-spacing:3.4px}.hero h1{font-size:58px;line-height:.98;margin:17px 0}.intro{font-size:19px;line-height:1.45}.buttons{display:flex;gap:18px;margin-top:26px}.outline{color:#fff;border:2px solid rgba(255,255,255,.8);border-radius:6px;text-decoration:none;font-weight:700;padding:16px 22px}.quick-services{display:grid;grid-template-columns:repeat(5,1fr);padding:35px 4.8%;box-shadow:0 8px 30px rgba(20,50,80,.06)}.quick-services>a{display:flex;gap:16px;text-decoration:none;padding:8px 26px;border-right:1px solid #dbe2ea}.quick-services>a:first-child{padding-left:0}.quick-services>a:last-child{border:0}.quick-services strong{font-size:38px;color:#075ab7}.quick-services b,.quick-services small{display:block}.quick-services b{font-size:17px;margin-bottom:7px}.quick-services small{line-height:1.4;color:#4c5870}.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:76px 7.5%}.section-label{color:#0879e8;font-size:13px;letter-spacing:4px;font-weight:800}.section-label.light{color:#8ec8ff}.split h2,.section-head h2,.areas h2,.contact h2{font-size:44px;line-height:1.05;margin:10px 0 18px;color:#070b12}.rule{width:86px;height:4px;background:#0879e8}.lead{font-size:20px}.split p{line-height:1.55}.text-link{color:#0967c8;font-weight:700;text-decoration:none}.section{padding:80px 7.5%}.service-detail{background:#f6f8fb}.section-head{max-width:760px;margin-bottom:38px}.section-head p:last-child{font-size:18px;line-height:1.5}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.cards article{background:#fff;border:1px solid #e1e6ec;border-radius:10px;padding:30px;box-shadow:0 8px 24px rgba(24,51,82,.05)}.cards .icon{font-size:36px;color:#075ab7}.cards h3{font-size:21px}.cards p{line-height:1.5;color:#4b566b;min-height:70px}.cards a{color:#0867c9;text-decoration:none;font-weight:700}.areas{background:#082e5e;color:#fff;padding:65px 7.5%;display:flex;justify-content:space-between;align-items:center;gap:60px}.areas h2,.contact h2{color:#fff}.areas>div{max-width:750px}.areas p{font-size:18px;line-height:1.5}.white-button{background:#fff;color:#073b76;text-decoration:none;font-weight:800;padding:17px 22px;border-radius:6px;white-space:nowrap}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.steps span{font-size:15px;color:#0879e8;font-weight:800}.steps h3{font-size:22px}.steps p{line-height:1.5;color:#4c5870}.faq{background:#f7f9fc}.faq-list{max-width:900px}.faq details{background:#fff;border-bottom:1px solid #dfe5ec;padding:20px 24px}.faq summary{font-weight:700;font-size:18px;cursor:pointer}.faq details p{line-height:1.55;color:#4c5870}.contact{background:#071d38;color:#fff;padding:75px 7.5%;display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.contact-copy p{line-height:1.5;font-size:18px}.contact-phone{font-size:28px;font-weight:800;color:#fff;text-decoration:none}.contact form{background:#fff;color:#111b31;padding:30px;border-radius:10px}.contact label{display:block;font-size:13px;font-weight:700;margin-bottom:16px}.contact input,.contact select,.contact textarea{display:block;width:100%;margin-top:7px;border:1px solid #cfd8e2;border-radius:5px;padding:13px;font:inherit}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact button{border:0;background:#0879e8;color:#fff;font-weight:800;padding:16px 22px;border-radius:6px;font-size:16px;cursor:pointer}#form-note{color:#34425a;font-size:13px;margin-bottom:0}footer{padding:42px 7.5%;display:grid;grid-template-columns:250px 1fr auto;align-items:center;gap:35px}footer img{width:240px}footer a{font-weight:800;color:#0756ae;text-decoration:none}.copyright{grid-column:1/-1;border-top:1px solid #e1e6ec;padding-top:20px;color:#697488;font-size:13px}@media(max-width:1050px){.header nav{display:none;position:absolute;top:108px;left:0;right:0;background:#fff;padding:20px 6%;height:auto;box-shadow:0 12px 20px rgba(0,0,0,.1)}.header nav.open{display:flex;flex-direction:column;align-items:flex-start;gap:0}.header nav a{padding:13px 0}.menu{display:block;margin-left:auto}.header-call{display:none}.quick-services{grid-template-columns:1fr 1fr}.quick-services>a{border:0;padding:18px}.cards{grid-template-columns:1fr 1fr}}@media(max-width:700px){.header{height:88px;padding:0 5%}.logo{width:225px}.header nav{top:88px}.hero{height:680px}.hero>img{object-position:60% center}.hero-content{left:6%;right:6%;top:70px;width:auto}.hero h1{font-size:43px}.intro{font-size:17px}.buttons{flex-direction:column;align-items:flex-start}.quick-services,.cards,.steps,.split,.contact{grid-template-columns:1fr}.quick-services>a{padding:18px 0}.split,.section,.contact{padding:55px 6%}.areas{padding:55px 6%;display:block}.white-button{display:inline-block;margin-top:15px}.two{grid-template-columns:1fr}footer{grid-template-columns:1fr}footer .copyright{grid-column:1}.split h2,.section-head h2,.areas h2,.contact h2{font-size:35px}}
.page-hero{background:#082e5e;color:#fff;padding:78px 7.5%}.page-hero h1{font-size:52px;margin:10px 0 15px}.page-hero>p{max-width:780px;font-size:19px;line-height:1.5}.inner{display:grid;grid-template-columns:1.5fr .5fr;gap:70px}.inner h2{font-size:38px}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:14px 35px;padding-left:20px;font-size:18px;line-height:1.5}.inner aside{background:#f4f7fa;padding:30px;border-radius:8px;height:max-content}.inner aside p{line-height:1.5}.note{font-size:13px;color:#46536a}@media(max-width:700px){.page-hero{padding:55px 6%}.page-hero h1{font-size:38px}.inner{grid-template-columns:1fr}.feature-list{grid-template-columns:1fr}}

/* V2: show substantially more of the approved hero photograph */
.hero{
  height:auto;
  min-height:620px;
  aspect-ratio:1536/1024;
  max-height:760px;
  background:#07182c;
}
.hero>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
}
@media(max-width:700px){
  .hero{aspect-ratio:auto;min-height:680px;}
  .hero>img{object-fit:cover;object-position:62% center;}
}

.page-copy{background:#fff}.copy-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:start}.copy-grid h2{font-size:40px;line-height:1.1;margin:10px 0 20px}.copy-grid p{font-size:18px;line-height:1.65;color:#3d4960}.info-box{background:#f3f6f9;border-left:4px solid #0879e8;padding:28px 32px}.info-box h3{font-size:22px;margin-top:0}.info-box ul{padding-left:20px;line-height:1.9}.band{background:#0a376d;color:#fff;padding:52px 7.5%;display:grid;grid-template-columns:1fr auto;gap:25px 50px;align-items:center}.band h2{font-size:32px;margin:0}.band p{margin:0;font-size:17px}.band a{grid-column:2;grid-row:1/3;background:#fff;color:#074a92;padding:16px 20px;border-radius:6px;text-decoration:none;font-weight:800}.contact-points{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.contact-points>div{border:1px solid #dde4eb;padding:24px;border-radius:8px}.contact-points b{font-size:18px}.contact-points p{color:#566177;line-height:1.5}@media(max-width:700px){.copy-grid,.band,.contact-points{grid-template-columns:1fr}.band a{grid-column:1;grid-row:auto;width:max-content}.copy-grid h2{font-size:33px}}

/* V3 HERO — large opening screen, full width, visibly zoomed out */
.hero{
  position:relative;
  width:100%;
  height:clamp(650px,78vh,820px);
  min-height:650px;
  max-height:none;
  aspect-ratio:auto;
  overflow:hidden;
  background:#07182c;
}
.hero:before{
  content:"";
  position:absolute;
  inset:-4%;
  background:url("hero-approved.jpg") center center/cover no-repeat;
  filter:blur(14px);
  transform:scale(1.06);
  opacity:.72;
}
.hero>img{
  position:absolute;
  width:92%;
  height:92%;
  left:4%;
  top:4%;
  object-fit:contain;
  object-position:center center;
  z-index:1;
}
.hero-shade{
  z-index:2;
  background:linear-gradient(90deg,rgba(0,13,29,.88) 0%,rgba(0,17,36,.62) 31%,rgba(0,0,0,.10) 58%,rgba(0,0,0,.02) 100%);
}
.hero-content{z-index:3;top:50%;transform:translateY(-50%)}

/* Interior page visual system */
.page-hero{
  min-height:390px;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:70px 7.5%;
  background:
    radial-gradient(circle at 82% 20%,rgba(32,132,236,.42),transparent 25%),
    linear-gradient(115deg,#061c37 0%,#083a73 60%,#075db7 100%);
}
.page-hero:after{
  content:"";
  position:absolute;
  width:430px;height:430px;border:1px solid rgba(255,255,255,.10);
  border-radius:50%;right:-100px;top:-155px;
  box-shadow:0 0 0 70px rgba(255,255,255,.035),0 0 0 140px rgba(255,255,255,.025);
}
.page-hero>*{position:relative;z-index:1}
.page-hero h1{font-size:clamp(44px,5vw,68px);max-width:850px}
.page-hero>p:not(.section-label){font-size:20px;max-width:760px}

.page-copy{padding-top:88px;padding-bottom:88px}
.copy-grid{gap:90px}
.copy-grid>div:first-child{max-width:760px}
.copy-grid h2{font-size:46px}
.info-box{
  border:0;border-radius:14px;padding:34px;
  background:linear-gradient(145deg,#f8fafc,#eef4f9);
  box-shadow:0 18px 45px rgba(11,45,79,.10);
}
.info-box h3{color:#073d78}
.info-box li{margin:4px 0}

.visual-feature{
  padding:78px 7.5%;
  background:#f5f8fb;
}
.visual-feature .feature-heading{max-width:760px;margin-bottom:38px}
.visual-feature .feature-heading h2{font-size:42px;margin:8px 0 12px}
.feature-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.feature-tile{
  min-height:230px;padding:30px;border-radius:14px;background:#fff;
  box-shadow:0 12px 32px rgba(17,47,77,.08);
  border:1px solid #e4eaf0;
  display:flex;flex-direction:column;justify-content:flex-end;
}
.feature-tile .tile-icon{
  width:54px;height:54px;border-radius:50%;display:grid;place-items:center;
  background:#eaf4ff;color:#0868c9;font-size:25px;margin-bottom:auto
}
.feature-tile h3{font-size:22px;margin:22px 0 8px}
.feature-tile p{color:#536076;line-height:1.5;margin:0}

.trust-strip{
  display:grid;grid-template-columns:repeat(3,1fr);
  background:#fff;border-top:1px solid #e1e7ee;border-bottom:1px solid #e1e7ee;
  padding:0 7.5%;
}
.trust-strip div{padding:30px;text-align:center;border-right:1px solid #e1e7ee}
.trust-strip div:last-child{border-right:0}
.trust-strip b{display:block;font-size:23px;color:#073d78}
.trust-strip span{font-size:14px;color:#657187}

.band{
  padding-top:65px;padding-bottom:65px;
  background:linear-gradient(110deg,#062a55,#0759ac);
}
.band h2{font-size:38px}

@media(max-width:800px){
 .hero{height:700px;min-height:700px}
 .hero>img{width:100%;height:100%;left:0;top:0;object-fit:cover;object-position:62% center}
 .page-hero{min-height:330px}
 .feature-tiles,.trust-strip{grid-template-columns:1fr}
 .trust-strip div{border-right:0;border-bottom:1px solid #e1e7ee}
 .copy-grid h2{font-size:36px}
}

/* ===========================
   V4 — HERO + READABILITY
   =========================== */

/* HERO:
   Keep it dominant, but zoom the photograph farther OUT.
   The full image sits at 82% inside a large hero, centered.
   The surrounding area uses the same photo softly enlarged so there are no empty bars. */
.hero{
  height:clamp(690px,82vh,860px) !important;
  min-height:690px !important;
  width:100%;
  position:relative;
  overflow:hidden;
  background:#07182c;
}
.hero:before{
  content:"";
  position:absolute;
  inset:-7%;
  background:url("hero-approved.jpg") center center/cover no-repeat;
  filter:blur(18px) brightness(.76);
  transform:scale(1.05);
  opacity:1;
}
.hero>img{
  position:absolute !important;
  z-index:1;
  width:82% !important;
  height:82% !important;
  left:9% !important;
  top:9% !important;
  object-fit:contain !important;
  object-position:center center !important;
}
.hero-shade{
  z-index:2;
  background:linear-gradient(90deg,
    rgba(0,12,27,.92) 0%,
    rgba(0,15,32,.72) 27%,
    rgba(0,0,0,.16) 53%,
    rgba(0,0,0,.03) 100%) !important;
}
.hero-content{
  z-index:3;
  top:50% !important;
  transform:translateY(-50%) !important;
  max-width:520px;
}

/* INTERIOR PAGES:
   Reduce visual density and make information scannable. */
.page-hero{
  min-height:315px !important;
  padding-top:58px !important;
  padding-bottom:58px !important;
}
.page-hero h1{
  font-size:clamp(40px,4.5vw,58px) !important;
  margin-bottom:12px !important;
}
.page-hero>p:not(.section-label){
  max-width:680px !important;
  font-size:18px !important;
  line-height:1.55 !important;
}

.visual-feature{
  padding:62px 7.5% !important;
}
.visual-feature .feature-heading{
  max-width:680px !important;
  margin-bottom:30px !important;
}
.visual-feature .feature-heading h2{
  font-size:36px !important;
  line-height:1.15;
}
.feature-tiles{
  gap:18px !important;
}
.feature-tile{
  min-height:205px !important;
  padding:26px !important;
}
.feature-tile h3{
  font-size:20px !important;
  margin:18px 0 7px !important;
}
.feature-tile p{
  font-size:15px;
  line-height:1.55 !important;
}

.trust-strip{
  padding:0 9% !important;
}
.trust-strip div{
  padding:22px 25px !important;
}
.trust-strip b{
  font-size:20px !important;
}

.page-copy{
  padding-top:65px !important;
  padding-bottom:65px !important;
}
.copy-grid{
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.65fr) !important;
  gap:65px !important;
}
.copy-grid h2{
  font-size:36px !important;
  line-height:1.18 !important;
  max-width:650px;
}
.copy-grid p{
  font-size:16.5px !important;
  line-height:1.7 !important;
  max-width:690px;
}
.info-box{
  padding:28px !important;
  box-shadow:0 10px 28px rgba(11,45,79,.07) !important;
}
.info-box h3{
  font-size:20px !important;
  margin-bottom:14px !important;
}
.info-box ul{
  margin:0;
  padding-left:0 !important;
  list-style:none;
  line-height:1.5 !important;
}
.info-box li{
  position:relative;
  padding:10px 0 10px 26px;
  border-bottom:1px solid #dfe7ee;
  margin:0 !important;
}
.info-box li:last-child{border-bottom:0}
.info-box li:before{
  content:"✓";
  position:absolute;
  left:0;
  color:#0879e8;
  font-weight:800;
}

.inner{
  gap:55px !important;
}
.inner h2{
  font-size:34px !important;
}
.feature-list{
  font-size:16px !important;
  gap:10px 30px !important;
}
.inner aside{
  padding:26px !important;
}

.band{
  padding:48px 7.5% !important;
  gap:15px 40px !important;
}
.band h2{
  font-size:30px !important;
}
.band p{
  font-size:16px !important;
  line-height:1.5;
}

.faq-list{
  max-width:850px !important;
}
.faq details{
  margin-bottom:10px;
  border:1px solid #e1e7ed !important;
  border-radius:8px;
  padding:18px 22px !important;
}
.faq summary{
  font-size:17px !important;
}
.faq details p{
  font-size:15.5px;
  max-width:720px;
}

/* More breathing room between major content types */
.page-copy + .band,
.visual-feature + .trust-strip{
  margin-top:0;
}

/* Mobile keeps the hero dramatic while preventing unreadable tiny imagery. */
@media(max-width:800px){
  .hero{
    height:720px !important;
    min-height:720px !important;
  }
  .hero>img{
    width:100% !important;
    height:100% !important;
    left:0 !important;
    top:0 !important;
    object-fit:cover !important;
    object-position:62% center !important;
  }
  .copy-grid{
    grid-template-columns:1fr !important;
    gap:34px !important;
  }
  .page-copy,.visual-feature{
    padding-top:48px !important;
    padding-bottom:48px !important;
  }
}

/* V5 — approved design reference is the homepage hero source of truth */
.hero.approved-hero{
  position:relative !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:auto !important;
  background:#07182c !important;
  overflow:hidden !important;
}
.hero.approved-hero:before{display:none !important}
.hero.approved-hero>img{
  position:relative !important;
  display:block !important;
  width:100% !important;
  height:auto !important;
  left:auto !important;
  top:auto !important;
  object-fit:unset !important;
  object-position:unset !important;
  z-index:1 !important;
}
.hero-hotspot{
  position:absolute;
  z-index:5;
  display:block;
}
.hero-phone-hotspot{left:5.3%;top:74%;width:15.5%;height:10%}
.hero-quote-hotspot{left:22%;top:74%;width:14%;height:10%}

/* Interior photography */
.photo-story{
  display:grid;
  grid-template-columns:1.12fr .88fr;
  min-height:410px;
  background:#fff;
  border-bottom:1px solid #e3e8ee;
}
.photo-story-image{
  min-height:410px;
  overflow:hidden;
  background:#e9eef3;
}
.photo-story-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}
.photo-story-copy{
  padding:58px 10% 58px 9%;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.photo-story-copy h2{
  font-size:36px;
  line-height:1.12;
  margin:9px 0 15px;
  color:#0a162b;
}
.photo-story-copy p:not(.section-label){
  font-size:17px;
  line-height:1.65;
  color:#536076;
  max-width:520px;
}
.photo-story-copy a{
  color:#0870d8;
  font-weight:800;
  text-decoration:none;
  margin-top:8px;
}

/* Give content blocks clearer visual separation */
.visual-feature{background:#f5f8fb !important}
.page-copy{background:#fff !important}
.info-box{background:#f4f8fc !important}
.band{border-top:0}

/* Keep the approved hero large on normal desktop screens */
@media(min-width:900px){
  .hero.approved-hero>img{min-height:610px;object-fit:cover !important;object-position:center !important}
}
@media(max-width:800px){
  .hero.approved-hero>img{
    min-height:560px;
    object-fit:cover !important;
    object-position:center !important;
  }
  .photo-story{grid-template-columns:1fr}
  .photo-story-image{min-height:280px}
  .photo-story-copy{padding:42px 6%}
  .photo-story-copy h2{font-size:30px}
}

/* USABLE V1 — original logo and approved homepage hero remain untouched */
.context-wrap{padding:72px 7.5%;background:#fff}.context-heading{max-width:720px;margin:0 auto 45px;text-align:center}.context-heading h2{font-size:38px;margin:8px 0}
.context-row{max-width:1120px;margin:0 auto 34px;display:grid;grid-template-columns:1fr 1fr;min-height:330px;border:1px solid #e1e7ed;border-radius:12px;overflow:hidden;background:#f8fafc}
.context-row.reverse .context-image{order:2}.context-row.reverse .context-copy{order:1}
.context-image{min-height:330px;background:#e8edf2}.context-image img{width:100%;height:100%;object-fit:cover;display:block}
.context-copy{padding:42px;display:flex;flex-direction:column;justify-content:center}.context-copy h3{font-size:27px;margin:0 0 12px}.context-copy p{font-size:16.5px;line-height:1.65;color:#536076;margin:0 0 20px}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.pills span{font-size:12px;font-weight:700;color:#174c80;background:#e7f2fd;padding:8px 10px;border-radius:20px}
.context-copy a{color:#0871d7;text-decoration:none;font-weight:800}
.service-directory{background:#f5f8fb}.directory-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:1050px}
.directory-grid a{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid #dfe6ed;border-radius:8px;padding:24px;text-decoration:none;transition:.15s}
.directory-grid a:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(20,50,80,.08)}.directory-grid b{font-size:19px}.directory-grid span{color:#5a667a;line-height:1.45}
.sticky-contact{display:none}
@media(max-width:800px){.context-wrap{padding:48px 6%}.context-row,.context-row.reverse{grid-template-columns:1fr}.context-row.reverse .context-image,.context-row.reverse .context-copy{order:initial}.context-image{min-height:230px}.context-copy{padding:28px}.directory-grid{grid-template-columns:1fr}.sticky-contact{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:50;box-shadow:0 -4px 18px rgba(0,0,0,.15)}.sticky-contact a{background:#075bb5;color:#fff;text-align:center;text-decoration:none;font-weight:800;padding:16px}.sticky-contact a:last-child{background:#087de8}}

/* USABLE V2 — service pages now follow the visual mockup structure.
   Original logo asset and approved homepage hero remain unchanged. */
.mock-page-hero{display:grid;grid-template-columns:1.05fr .95fr;min-height:440px;background:linear-gradient(100deg,#fff 0%,#f6f7f8 65%,#edf0f2 100%);border-bottom:1px solid #dfe4e9}
.mock-hero-copy{padding:58px 8% 54px 12%;display:flex;flex-direction:column;justify-content:center}.crumb{font-size:12px;color:#5c6878;margin-bottom:24px}.mock-hero-copy h1{font-size:48px;line-height:1.05;color:#091b35;margin:0 0 10px}.mock-hero-copy h3{font-size:20px;color:#172944;margin:0 0 14px}.mock-hero-copy p{font-size:17px;line-height:1.6;color:#48566b;max-width:620px}.quote-gold{align-self:flex-start;background:#e5a521;color:#08172c;text-decoration:none;font-weight:800;padding:15px 22px;border-radius:5px;margin-top:10px}
.mock-hero-photo{min-height:440px;overflow:hidden}.mock-hero-photo img{width:100%;height:100%;object-fit:cover;display:block}
.mock-icon-strip{display:grid;grid-template-columns:repeat(3,1fr);max-width:1120px;margin:0 auto;padding:25px 5%;border-bottom:1px solid #e3e7eb}.mock-icon-strip div{text-align:center;border-right:1px solid #e1e5e9}.mock-icon-strip div:last-child{border:0}.mock-icon-strip b,.mock-icon-strip span{display:block}.mock-icon-strip b{font-size:19px;color:#0b2e58}.mock-icon-strip span{font-size:13px;color:#687487;margin-top:4px}
.mock-service{display:grid;grid-template-columns:1fr 1fr;max-width:1120px;margin:50px auto;background:#f6f7f8;border:1px solid #e2e5e8}.mock-service.reverse .mock-service-copy{order:2}.mock-service.reverse .mock-service-photo{order:1}
.mock-service-copy{padding:38px 42px}.mock-service-copy h2{font-size:29px;color:#0b2341;margin:0 0 18px}.mock-service-copy ul{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:11px}.mock-service-copy li{position:relative;padding-left:27px;color:#3e4b5d}.mock-service-copy li:before{content:"✓";position:absolute;left:0;top:-2px;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;background:#e5a521;color:white;font-size:12px;font-weight:900}.mock-service-copy a{color:#0867c9;text-decoration:none;font-weight:800}.mock-service-photo{min-height:310px}.mock-service-photo img{width:100%;height:100%;object-fit:cover;display:block}
.mock-bottom{background:#082e58;color:#fff;padding:42px 8%;display:flex;align-items:center;justify-content:space-between;gap:35px}.mock-bottom h2{font-size:28px;margin:0 0 8px}.mock-bottom p{margin:0;color:#d7e3ee}.mock-bottom>a{background:#e5a521;color:#07162a;text-decoration:none;font-weight:800;padding:15px 22px;border-radius:4px;white-space:nowrap}
@media(max-width:800px){.mock-page-hero,.mock-service{grid-template-columns:1fr}.mock-hero-copy{padding:42px 6%}.mock-hero-copy h1{font-size:38px}.mock-hero-photo{min-height:280px}.mock-icon-strip{grid-template-columns:1fr}.mock-icon-strip div{border-right:0;border-bottom:1px solid #e1e5e9;padding:12px}.mock-service{margin:28px 6%}.mock-service.reverse .mock-service-copy,.mock-service.reverse .mock-service-photo{order:initial}.mock-service-copy{padding:28px}.mock-service-photo{min-height:240px}.mock-bottom{align-items:flex-start;flex-direction:column}}

/* NAVIGABLE V3 — concise, visual service pages; no duplicated trust/feature blocks */
.svc-hero{display:grid;grid-template-columns:1fr 1fr;min-height:460px;background:#f5f7f9}
.svc-hero-copy{padding:65px 9% 60px 14%;display:flex;flex-direction:column;justify-content:center}.svc-hero-copy .crumb{font-size:12px;color:#6b7584;margin-bottom:24px}.svc-hero-copy h1{font-size:50px;line-height:1.05;margin:0 0 16px;color:#081c37}.svc-hero-copy p{font-size:18px;line-height:1.6;color:#4c596c;max-width:580px}.svc-hero-copy .call{align-self:flex-start;margin-top:10px}
.svc-hero-img{min-height:460px}.svc-hero-img img{width:100%;height:100%;object-fit:cover;display:block}
.svc-row{max-width:1120px;margin:65px auto;display:grid;grid-template-columns:1fr 1fr;align-items:stretch;background:#fff;border:1px solid #e1e6eb;border-radius:10px;overflow:hidden}.svc-row.reverse .svc-photo{order:2}.svc-row.reverse .svc-copy{order:1}.svc-photo{min-height:330px}.svc-photo img{width:100%;height:100%;object-fit:cover;display:block}.svc-copy{padding:42px;display:flex;flex-direction:column;justify-content:center}.svc-copy h2{font-size:31px;margin:5px 0 18px}.svc-copy ul{list-style:none;padding:0;margin:0;display:grid;gap:13px}.svc-copy li{padding-left:28px;position:relative;color:#455267}.svc-copy li:before{content:"✓";position:absolute;left:0;color:#0876df;font-weight:900}
.svc-end{background:#082e5d;color:#fff;padding:48px 8%;display:flex;justify-content:space-between;align-items:center;gap:40px}.svc-end h2{font-size:30px;margin:0 0 8px}.svc-end p{margin:0;color:#d7e1ec}.svc-end>div:last-child{display:flex;align-items:center;gap:22px}.svc-end a{color:#fff;font-weight:800;text-decoration:none}.svc-end .end-btn{background:#0879e8;padding:15px 20px;border-radius:5px}
.simple-top{background:#082e5d;color:#fff;padding:65px 8%}.simple-top h1{font-size:50px;margin:8px 0 12px}.simple-top>p:last-child{font-size:18px;max-width:650px;line-height:1.55}
.nav-grid{max-width:1180px;margin:60px auto;padding:0 25px;display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.nav-card{display:grid;grid-template-columns:210px 1fr;text-decoration:none;color:#0d1c32;border:1px solid #dfe5eb;border-radius:10px;overflow:hidden;background:#fff}.nav-card img{width:100%;height:100%;min-height:190px;object-fit:cover}.nav-card div{padding:26px}.nav-card h2{font-size:22px;margin:0 0 8px}.nav-card p{color:#5a6678;line-height:1.5}.nav-card span{color:#0870d7;font-weight:800}
@media(max-width:800px){.svc-hero,.svc-row,.nav-grid{grid-template-columns:1fr}.svc-hero-copy{padding:42px 6%}.svc-hero-copy h1{font-size:39px}.svc-hero-img{min-height:280px}.svc-row{margin:32px 6%}.svc-row.reverse .svc-photo,.svc-row.reverse .svc-copy{order:initial}.svc-photo{min-height:230px}.svc-copy{padding:28px}.svc-end{flex-direction:column;align-items:flex-start}.svc-end>div:last-child{flex-direction:column;align-items:flex-start}.nav-card{grid-template-columns:1fr}.nav-card img{height:210px}.simple-top h1{font-size:40px}}

/* V4 unique service photography */
.svc-hero-img,.svc-photo,.nav-card{background:#e9eef3}
.svc-hero-img img,.svc-photo img{object-position:center center}
.nav-card img{object-position:center center}

/* V7 Service Area */
.area-hero{background:linear-gradient(110deg,#062b58,#075bad);color:#fff;padding:72px 8%}
.area-hero>div{max-width:780px}.area-hero h1{font-size:54px;margin:8px 0 15px}.area-hero p:not(.section-label){font-size:19px;line-height:1.65;max-width:760px}.area-hero .call{display:inline-block;margin-top:12px}
.map-section{max-width:1180px;margin:0 auto;padding:72px 25px;display:grid;grid-template-columns:.78fr 1.22fr;gap:55px;align-items:center}
.map-copy h2{font-size:38px;line-height:1.15;margin:8px 0 16px}.map-copy>p:not(.section-label){font-size:16.5px;line-height:1.7;color:#536076}
.map-card{background:#f4f7f9;border:1px solid #dfe6ec;border-radius:14px;padding:14px;box-shadow:0 14px 34px rgba(12,42,72,.10)}.map-card img{width:100%;display:block;border-radius:8px}
.area-points{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:25px}.area-points div{background:#f4f7fa;border-radius:7px;padding:14px}.area-points b,.area-points span{display:block}.area-points b{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#0874da}.area-points span{font-weight:700;margin-top:4px}
.area-cities{background:#f5f8fb;padding:65px 8%}.area-cities .section-head{max-width:700px}.city-grid{max-width:1000px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:30px}.city-grid span{background:#fff;border:1px solid #dfe6ed;border-radius:7px;padding:15px 17px;font-weight:700;color:#23364f}
@media(max-width:800px){.area-hero{padding:52px 6%}.area-hero h1{font-size:41px}.map-section{grid-template-columns:1fr;padding:48px 6%;gap:30px}.area-points{grid-template-columns:1fr 1fr}.city-grid{grid-template-columns:1fr 1fr}.area-cities{padding:48px 6%}}

/* V8 real road-map service area */
.real-map-card{padding:0!important;overflow:hidden;position:relative}
#service-map{width:100%;height:560px;background:#e8edf1}
.map-key{position:absolute;z-index:500;left:14px;bottom:14px;background:rgba(255,255,255,.94);padding:9px 12px;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.16);font-size:12px;font-weight:700;color:#314158}
.map-key span{display:inline-block;width:18px;height:10px;margin-right:7px;vertical-align:-1px;background:rgba(8,121,232,.18);border:2px solid #0879e8}
.leaflet-tooltip{font-family:Arial,sans-serif;font-weight:700;font-size:12px;color:#1c2e43;border:0;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.18)}
@media(max-width:800px){#service-map{height:430px}}

/* V9 — clean, familiar service-area map */
.familiar-map-section{padding:62px 6% 72px;background:#f7f8fa}
.familiar-map-heading{max-width:1220px;margin:0 auto 26px;display:grid;grid-template-columns:1fr .8fr;gap:55px;align-items:end}
.familiar-map-heading h2{font-size:36px;line-height:1.15;margin:7px 0 0;color:#12243b}
.familiar-map-heading>p{font-size:16px;line-height:1.6;color:#5b6675;margin:0}
.familiar-map-shell{position:relative;max-width:1220px;margin:0 auto;background:#fff;border:1px solid #d8dde3;border-radius:14px;overflow:hidden;box-shadow:0 8px 26px rgba(22,39,58,.10)}
.familiar-map-shell #service-map{height:620px;width:100%;background:#e9edf1}
.service-map-badge{position:absolute;z-index:600;left:18px;bottom:18px;background:rgba(255,255,255,.96);border:1px solid rgba(0,0,0,.08);box-shadow:0 2px 9px rgba(0,0,0,.13);border-radius:8px;padding:10px 13px;font-size:13px;font-weight:700;color:#26384d}
.service-map-badge span{display:inline-block;width:18px;height:11px;background:rgba(35,136,232,.14);border:2px solid #1677d2;border-radius:2px;margin-right:7px;vertical-align:-1px}
.familiar-map-shell .leaflet-control-zoom{border:0!important;box-shadow:0 2px 8px rgba(0,0,0,.18)!important}
.familiar-map-shell .leaflet-control-zoom a{border:0!important;color:#26384d!important}
.familiar-map-shell .leaflet-control-attribution{font-size:10px!important;background:rgba(255,255,255,.82)!important}
@media(max-width:800px){.familiar-map-section{padding:45px 4%}.familiar-map-heading{grid-template-columns:1fr;gap:12px;padding:0 2%}.familiar-map-heading h2{font-size:30px}.familiar-map-shell #service-map{height:480px}.service-map-badge{left:10px;bottom:22px;font-size:11px}}

/* V10 self-contained familiar map — no external map tiles or API */
.static-map-shell{background:#f4f6f2!important}
.static-map-shell img{display:block;width:100%;height:auto}

/* V11 approved restoration photos + approved service-area map */
.static-map-shell img{
  width:100%;
  height:auto;
  object-fit:contain;
  display:block;
}

/* V12 Restoration image updates */
.restoration-page .svc-hero-img,
.restoration-page .svc-row .svc-photo{
  background:#f4f6f8;
  display:flex;
  align-items:center;
  justify-content:center;
}
.restoration-page .svc-hero-img img,
.restoration-page .svc-row .svc-photo img{
  width:75%;
  height:75%;
  object-fit:contain;
  object-position:center;
}
/* Water-loss image can use the available space naturally. */
.restoration-page .svc-row.reverse .svc-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* V14 homepage service photos mirror the Services page */
.home-service-photo{
  width:100%;
  height:170px;
  object-fit:cover;
  display:block;
  border-radius:8px 8px 0 0;
}

/* V15: homepage lower service cards now mirror Services-page photography */
.home-service-cards .home-photo-card{
  padding:0;
  overflow:hidden;
}
.home-photo-card>img{
  width:100%;
  height:210px;
  object-fit:cover;
  display:block;
}
.home-photo-card-copy{
  padding:24px 28px 28px;
}
.home-photo-card-copy h3{
  margin:0 0 12px;
}
.home-photo-card-copy p{
  min-height:58px;
  margin-bottom:18px;
}
@media(max-width:700px){
  .home-photo-card>img{height:220px}
}

/* V17 Service & Troubleshooting cleanup */
.home-photo-card>img.service-calls-home-photo{object-position:center 42%;object-fit:cover;}
/* V18: show the damaged receptacle clearly in the homepage Service & Troubleshooting card */
.home-photo-card>img.service-calls-home-photo{
  object-fit:cover;
  object-position:center 72%;
}

/* V19 FAQ redesign */
.faq-page{background:#fff}
.faq-hero{
  background:linear-gradient(135deg,#eef4fb 0%,#f8fbff 58%,#fff 100%);
  border-bottom:1px solid #dce5ef;
}
.faq-hero-inner{
  max-width:1180px;margin:0 auto;padding:76px 32px 70px;
}
.faq-hero h1{
  font-size:clamp(42px,5vw,68px);line-height:1.02;margin:8px 0 18px;color:#0d203d;
}
.faq-hero p:not(.section-label){
  max-width:760px;font-size:20px;line-height:1.6;color:#52627a;
}
.faq-hero-actions,.faq-cta-actions{
  display:flex;gap:14px;flex-wrap:wrap;margin-top:28px;
}
.faq-intro{max-width:1240px;margin:0 auto;padding:70px 32px 80px}
.faq-intro>.section-head{max-width:760px;margin-bottom:34px}
.faq-category-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;
}
.faq-category{
  background:#f7f9fc;border:1px solid #dce4ed;border-radius:18px;
  padding:28px;align-self:start;
}
.faq-category-head{
  display:flex;gap:16px;align-items:flex-start;margin-bottom:18px;
}
.faq-category-head h2{margin:0 0 6px;color:#10213d;font-size:25px}
.faq-category-head p{margin:0;color:#637188;line-height:1.45}
.faq-icon{
  flex:0 0 48px;width:48px;height:48px;border-radius:12px;
  background:#0c67c9;color:#fff;display:flex;align-items:center;
  justify-content:center;font-size:24px;font-weight:800;
}
.faq-category details{
  background:#fff;border:1px solid #dce4ed;border-radius:11px;
  margin-top:10px;overflow:hidden;
}
.faq-category summary{
  cursor:pointer;list-style:none;padding:17px 48px 17px 18px;
  font-weight:750;color:#152641;position:relative;line-height:1.35;
}
.faq-category summary::-webkit-details-marker{display:none}
.faq-category summary:after{
  content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);
  color:#086bd5;font-size:25px;font-weight:500;
}
.faq-category details[open] summary:after{content:"−"}
.faq-category details[open] summary{border-bottom:1px solid #e4eaf0}
.faq-answer{padding:16px 18px 18px;color:#55647a;line-height:1.6}
.faq-answer p{margin:0 0 8px}
.faq-answer p:last-child{margin-bottom:0}
.faq-answer a{color:#086bd5;font-weight:700;text-decoration:none}
.faq-cta{
  max-width:1176px;margin:0 auto 80px;padding:38px 42px;border-radius:20px;
  background:#10233f;color:#fff;display:flex;align-items:center;
  justify-content:space-between;gap:36px;
}
.faq-cta h2{font-size:34px;margin:5px 0 8px;color:#fff}
.faq-cta>div>p:not(.section-label){color:#d9e2ed;margin:0}
.faq-cta .section-label{color:#70b4ff}
.faq-license{margin-top:18px!important;font-size:14px}
.faq-license span{padding:0 7px;color:#7890ad}
.faq-cta .btn.secondary{border-color:#fff;color:#fff}
.license-sep{padding:0 5px}
@media(max-width:820px){
  .faq-category-grid{grid-template-columns:1fr}
  .faq-hero-inner,.faq-intro{padding-left:20px;padding-right:20px}
  .faq-cta{margin:0 20px 55px;padding:30px 24px;display:block}
}

/* V22 EV charger photo updates */
.ev-planning-text{
  display:block !important;
  max-width:980px;
  margin-left:auto;
  margin-right:auto;
}
.ev-planning-text .svc-copy{
  width:100%;
  max-width:none;
  padding:42px 48px;
  background:#f4f7fb;
  border:1px solid #dce5ef;
  border-radius:18px;
}
@media(max-width:700px){
  .ev-planning-text .svc-copy{padding:28px 22px;}
}

/* V26 Commercial Service & Troubleshooting text-only section */
.commercial-troubleshooting-text{
  display:block !important;
  max-width:980px;
  margin-left:auto;
  margin-right:auto;
}
.commercial-troubleshooting-text .svc-copy{
  width:100%;
  max-width:none;
  padding:42px 48px;
  background:#f4f7fb;
  border:1px solid #dce5ef;
  border-radius:18px;
}
@media(max-width:700px){
  .commercial-troubleshooting-text .svc-copy{padding:28px 22px;}
}

/* V27 Panels & Rewires */
.panel-work-text{display:block!important;max-width:980px;margin-left:auto;margin-right:auto}
.panel-work-text .svc-copy{width:100%;max-width:none;padding:42px 48px;background:#f4f7fb;border:1px solid #dce5ef;border-radius:18px}
@media(max-width:700px){.panel-work-text .svc-copy{padding:28px 22px}}

/* Reviews homepage preview */
.reviews-preview{background:#f5f8fc;padding:76px 28px;border-top:1px solid #e1e7ef}
.reviews-inner{max-width:1180px;margin:0 auto;text-align:center}
.reviews-inner h2{font-size:clamp(34px,4vw,48px);margin:7px 0 12px;color:#10213d}
.reviews-intro{max-width:680px;margin:0 auto 34px;color:#647187;font-size:18px;line-height:1.55}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:left}
.review-card{background:#fff;border:1px solid #dfe6ee;border-radius:16px;padding:27px 26px;box-shadow:0 7px 22px rgba(20,43,72,.06)}
.review-stars{color:#f0aa18;font-size:22px;letter-spacing:2px;margin-bottom:15px}
.review-card>p{color:#46566c;line-height:1.65;margin:0 0 22px}
.review-source{border-top:1px solid #e6ebf1;padding-top:16px;display:flex;flex-direction:column;gap:3px;color:#132642}
.review-source span{font-size:13px;color:#778397}
.review-action{margin-top:30px;display:flex;align-items:center;flex-direction:column;gap:9px}
.review-button{display:inline-block;background:#086bd5;color:#fff;text-decoration:none;font-weight:750;padding:14px 25px;border-radius:8px}
.review-button:hover{background:#075db7}
.review-action small{color:#7b8798}
@media(max-width:800px){.review-grid{grid-template-columns:1fr}.reviews-preview{padding:58px 20px}}

/* Footer original Clackamas Electric logo */
footer img{
  object-fit:contain !important;
  object-position:center !important;
  background:#fff;
}

/* SEO preview: accessible heading without altering approved hero */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
