:root{
  --atrium:#F5F6F2;
  --navy:#232C38;
  --teal:#2E8A8A;
  --panel:#FDFEFC;
  --deep:#27303C;
  --coral:#D96A50;
  --sage:#8FA58C;
  --citrine:#E2B94E;
  --hair:#DFE3DD;
  --white:#ffffff;
  --deep-soft:#33404E;
}

*{margin:0;padding:0;box-sizing:border-box;}

body{
  background-color:var(--atrium);
  color:var(--navy);
  font-size:16px;
  font-family:Georgia,"Times New Roman",serif;
  line-height:1.7;
  overflow-x:hidden;
}

.wrap{max-width:1240px;margin:0 auto;padding:0 24px 0;}

p{margin:0 0 1em;}

a{color:var(--teal);}
a:hover{color:var(--coral);}

/* scroll reveal notes kept empty; js drives visibility via .rv */
.reveal{transform:none;}
.reveal.visible{transform:none;}

/* ==================== TRACK RAIL HEADER ==================== */
.trackrail{
  display:flex;
  align-items:center;
  gap:18px;
  background-color:var(--deep);
  color:var(--white);
  padding:14px 24px;
  margin:-0 0 0;
  border-bottom:4px solid var(--teal);
  position:relative;
  z-index:5;
  flex-wrap:wrap;
}
.brand{
  color:var(--white);
  text-decoration:none;
  font-family:"Trebuchet MS",Verdana,sans-serif;
  font-weight:700;
  letter-spacing:2px;
  font-size:20px;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.brand .compass{color:var(--citrine);font-size:22px;}
.brand:hover{color:var(--white);}
.stations{display:flex;align-items:flex-end;justify-content:flex-end;flex:1;gap:4px;}
.station{
  position:relative;
  color:#cfd6dc;
  text-decoration:none;
  font-family:"Trebuchet MS",Verdana,sans-serif;
  font-size:14px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  padding:8px 14px 12px;
}
.station .tick::after{
  content:"";
  display:block;
  width:8px;height:8px;
  background-color:#6b7884;
  border-radius:50%;
  margin:2px auto 0;
}
.station.is-active .tick::after{background-color:var(--teal);}
.station.is-active{color:var(--white);}
.station.is-active::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:-10px;
  width:14px;height:14px;
  background-color:var(--teal);
  border:3px solid var(--deep);
  border-radius:50%;
  transform:translateX(-50%) rotate(45deg);
}
.slider-handle{
  position:absolute;
  left:46%;
  top:0;
  width:16px;height:16px;
  background-color:var(--teal);
  border-radius:50%;
  border:4px solid var(--deep);
  display:none;
}

/* buttons */
.ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;}.btn{
  display:inline-block;
  font-family:"Trebuchet MS",Verdana,sans-serif;
  font-size:15px;
  font-weight:700;
  padding:13px 22px;
  text-decoration:none;
  border:2px solid transparent;
  border-radius:2px;
  letter-spacing:.5px;
}
.btn-fill{background-color:var(--teal);color:var(--white);}
.btn-fill:hover{background-color:var(--navy);color:var(--white);}
.btn-line{background-color:var(--white);color:var(--coral);border-color:var(--coral);}
.btn-line:hover{background-color:var(--coral);color:var(--white);}

/* ==================== HERO MARBLE DIAL ==================== */
.hero{
  display:flex;
  gap:40px;
  align-items:center;
  padding:70px 24px 74px;
  max-width:1240px;
  margin:0 auto;
}
.hero-txt{flex:1.2 1 55%;}
.hero-txt h1{
  font-family:"Trebuchet MS",Verdana,sans-serif;
  font-size:52px;
  line-height:1.08;
  color:var(--navy);
  font-weight:800;
  margin-bottom:22px;
  letter-spacing:-1px;
}
.hero-txt h1 .teal{color:var(--teal);}
.lede{font-size:18px;color:#3a4652;margin-bottom:14px;}
.lede strong{color:var(--navy);}

.dial-zone{flex:1 1 45%;display:flex;justify-content:center;}
.dial{
  position:relative;
  width:360px;height:360px;
  border-radius:50%;
  background:radial-gradient(circle at 50% 40%,#ffffff 0%,#f1f3ee 100%);
  border:10px solid var(--panel);
  box-shadow:0 0 0 2px var(--hair) inset;
}
.dial-tick{position:absolute;top:6px;left:50%;width:3px;height:14px;background-color:var(--navy);transform-origin:50% 174px;}
.dial-tick.t1{transform:rotate(0deg) ;}
.dial-tick.t2{top:6px;transform:rotate(120deg);}
.dial-tick.t3{transform:rotate(150deg);}
.dial-tick.t4{transform:rotate(180deg);}
.dial-tick.t5{transform:rotate(210deg);}
.dial-tick.t6{transform:rotate(300deg);}
.flagcor,.flagcit,.flagsage{position:absolute;width:14px;height:8px;border-radius:2px;}
.flagcor{background-color:var(--coral);top:44px;right:56px;transform:rotate(30deg);}
.flagcit{background-color:var(--citrine);bottom:86px;left:40px;transform:rotate(-18deg);}
.flagsage{background-color:var(--sage);top:118px;left:70px;transform:rotate(60deg);}
.needle{
  position:absolute;
  top:88px;left:50%;
  width:6px;height:158px;
  background-color:var(--teal);
  border-radius:6px 6px 2px 2px;
  transform:translateX(-50%) rotate(40deg);
  transform-origin:50% 92px;
  box-shadow:0 0 0 2px #EEF2EF inset;
}
.needle::before{
  content:"";
  position:absolute;
  left:-9px;bottom:-8px;
  width:24px;height:24px;
  background-color:var(--navy);
  border-radius:50%;
  border:5px solid var(--panel);
}
.dialcore{
  position:absolute;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  width:112px;height:112px;
  border-radius:50%;
  background-color:var(--white);
  border:3px solid var(--navy);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.corelbl{font-family:Verdana,sans-serif;font-size:10px;letter-spacing:2px;color:var(--deep-soft);text-transform:uppercase;}
.coreval{font-family:Verdana,sans-serif;font-weight:800;color:var(--teal);font-size:15px;letter-spacing:1.5px;}

/* ==================== ABOUT ==================== */
.about{
  background-color:var(--deep);
  color:var(--white);
  display:flex;
  gap:46px;
  padding:64px 24px;
  border-top:6px solid var(--teal);
  border-bottom:6px solid var(--teal);
}
.about-block{flex:1;}
.about-block h2{
  font-family:Verdana,sans-serif;
  font-size:26px;
  color:var(--white);
  margin-bottom:14px;
  border-left:6px solid var(--teal);
  padding-left:14px;
}
.about-block p{color:#dfe4e9;}
.prose-list{list-style:none;}
.prose-list li{
  position:relative;
  padding-left:26px;
  color:#dfe4e9;
  margin-bottom:10px;
}
.prose-list li::before{
  content:"";
  position:absolute;
  left:0;top:9px;
  width:12px;height:12px;
  background-color:var(--teal);
  border-radius:2px;
  transform:rotate(45deg);
}

/* ==================== STRIP ==================== */
.strip{
  background-color:var(--teal);
  color:var(--white);
  text-align:center;
  padding:34px 24px;
  font-size:20px;
  font-style:italic;
  max-width:none;
}
.strip p{margin:0;}
.strip .flag{display:inline-block;font-size:30px;margin-bottom:6px;}

/* ==================== HOW / SPINE ==================== */
.how{padding:66px 24px 70px;max-width:1040px;margin:0 auto;}
.how-head{text-align:center;max-width:640px;margin:0 auto 40px;}
.how-head h2{font-family:Verdana,sans-serif;font-size:32px;color:var(--navy);margin-bottom:10px;}
.how-head p{color:#3a4652;font-size:17px;}

.spine-list{position:relative;}
.spine-list::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;bottom:0;
  width:4px;
  background-color:var(--navy);
  transform:translateX(-50%);
}
.spine-item{
  position:relative;
  width:50%;
  margin-bottom:40px;
}
.spine-left{left:0;padding-right:54px;text-align:right;}
.spine-right{left:50%;padding-left:54px;}
.bead{
  position:absolute;
  top:6px;
  width:30px;height:30px;
  border-radius:50%;
  border:4px solid var(--atrium);
  box-shadow:0 0 0 3px var(--navy);
  color:var(--white);
  font-family:Verdana,sans-serif;
  font-size:10px;
  font-weight:700;
  line-height:22px;
  text-align:center;
}
.spine-left .bead{right:-15px;}
.spine-right .bead{left:-15px;}
.bead-teal{background-color:var(--teal);}
.bead-coral{background-color:var(--coral);}
.bead-sage{background-color:var(--sage);}

.notch{
  background-color:var(--panel);
  border:1px solid var(--hair);
  border-radius:8px;
  padding:20px 22px;
  position:relative;
}
.notch::after{
  content:"";
  position:absolute;
  top:-1px;
  width:24px;height:24px;
  background-color:var(--atrium);
  clip-path:polygon(0 0,100% 0,100% 100%);
}
.spine-left .notch{border-right:5px solid var(--teal);}
.spine-left .notch::after{right:-1px;}
.spine-right .notch{border-left:5px solid var(--coral);}
.spine-right .notch::after{left:-1px;transform:scaleX(-1);}
.notch h3{font-family:Verdana,sans-serif;font-size:19px;color:var(--navy);margin-bottom:8px;}
.notch p{color:#3a4652;font-size:16px;margin:0;}

/* ==================== WHY SWATCH ==================== */
.why{padding:66px 24px 72px;background-color:var(--panel);border-top:1px solid var(--hair);}
.why-intro{max-width:680px;margin-bottom:40px;}
.why-intro h2{font-family:Verdana,sans-serif;font-size:32px;color:var(--navy);}
.why-intro p{font-size:17px;color:#3a4652;}
.why-grid{display:flex;gap:26px;flex-wrap:wrap;}
.swatch{
  flex:1 1 260px;
  padding:34px 26px;
  position:relative;
  border-radius:8px;
  color:var(--white);
}
.swatch h3{font-family:Verdana,sans-serif;font-size:21px;margin-bottom:10px;}
.swatch-note{
  display:inline-block;
  font-family:Verdana,sans-serif;
  font-weight:800;
  font-size:13px;
  letter-spacing:1px;
  padding:2px 10px;
  border-radius:20px;
  margin-bottom:12px;
}
.swatch-navy{background-color:var(--deep);}
.swatch-navy .swatch-note{background-color:var(--citrine);color:var(--navy);}
.swatch-navy p{color:#d6dce2;}
.swatch-teal{background-color:var(--teal);}
.swatch-teal .swatch-note{background-color:var(--white);color:var(--teal);}
.swatch-teal p{color:#e9f4f2;}
.swatch-coral{background-color:var(--coral);}
.swatch-coral .swatch-note{background-color:var(--white);color:var(--coral);}
.swatch-coral p{color:#fcede9;}

/* ==================== FINAL CTA ==================== */
.final-cta{
  text-align:center;
  padding:60px 24px;
  background-color:var(--navy);
  color:var(--white);
}
.final-cta h2{font-family:Verdana,sans-serif;font-size:28px;margin-bottom:8px;}
.final-cta p{color:#c8d0d8;margin-bottom:20px;}

/* ==================== LEGAL LINE ==================== */
.legal-line{
  max-width:920px;
  margin:0 auto;
  padding:46px 24px 60px;
  text-align:center;
  color:#3a4652;
}
.legal-line p{margin:0;font-size:16px;}

/* ==================== NOTEBOOK FOOTER ==================== */
.notebook{
  position:relative;
  background-color:var(--panel);
  border-top:3px solid var(--navy);
  margin-top:0;
}
.notebook .spine{
  position:absolute;
  left:0;top:0;bottom:0;
  width:10px;
  background-color:var(--navy);
}
.notebook .spine::before{
  content:"";
  position:absolute;
  left:4px;top:0;bottom:0;
  border-left:2px dashed var(--sage);
}
.sheetpage{
  position:relative;
  z-index:1;
  padding:46px 30px 20px;
  margin-left:10px;
  overflow-x:hidden;
}
.bandclip{
  position:absolute;
  right:-12px;bottom:84px;
  width:70px;height:60px;
  background-color:var(--teal);
  border:3px solid var(--navy);
  border-radius:12px 6px;
}
.sheetcols{display:flex;gap:40px;padding-right:60px;}
.sheet-col{flex:1;}
.brandline{font-family:Verdana,sans-serif;font-weight:800;font-size:22px;color:var(--navy);letter-spacing:2px;margin-bottom:8px;}
.mission{color:#3a4652;}
.sheet-find .flow{display:block;font-family:Verdana,sans-serif;color:var(--teal);font-weight:700;text-decoration:none;font-size:16px;margin-bottom:6px;}
.sheet-find address{font-style:normal;color:#3a4652;margin-top:10px;}
.sheetlinks{
  display:flex;
  flex-wrap:wrap;
  gap:8px 26px;
  padding:20px 0 14px;
  margin-top:30px;
  border-top:1px solid var(--hair);
  border-bottom:1px solid var(--hair);
}
.sheetlinks a{
  font-family:Verdana,sans-serif;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:1px;
  color:var(--deep-soft);
  text-decoration:none;
}
.sheetlinks a:hover{color:var(--teal);}
.sheetcopy{text-align:center;font-size:13px;color:var(--deep-soft);padding-top:14px;padding-bottom:18px;}
.notebook::after{
  content:"";
  display:block;
  height:16px;
  background-color:var(--atrium);
  clip-path:polygon(0 100%,2% 40%,4% 100%,6% 30%,8% 100%,10% 45%,13% 100%,15% 20%,18% 100%,21% 55%,23% 100%,26% 35%,29% 100%,32% 60%,35% 100%,38% 25%,41% 100%,44% 65%,47% 100%,50% 40%,53% 100%,56% 55%,59% 100%,62% 30%,65% 100%,68% 50%,71% 100%,74% 35%,77% 100%,80% 60%,83% 100%,86% 25%,89% 100%,92% 45%,95% 100%,98% 30%,100% 100%);
}

/* ==================== CONTACT PAGE ==================== */
.pagehead{padding:46px 24px 10px;}
.pagehead h1{font-family:Verdana,sans-serif;font-size:38px;color:var(--navy);}
.pagehead p{font-size:17px;color:#3a4652;max-width:720px;}
.contactwrap{display:flex;gap:36px;max-width:1240px;margin:0 auto;padding:30px 24px 70px;align-items:flex-start;}
.formpanel{flex:1 1 56%;background-color:var(--panel);border:1px solid var(--hair);padding:30px;}
.formpanel h2{font-family:Verdana,sans-serif;font-size:24px;color:var(--navy);margin-bottom:4px;}
.formrow{margin-bottom:16px;}
.formrow label{display:block;font-family:Verdana,sans-serif;font-size:13px;color:var(--deep-soft);margin-bottom:5px;letter-spacing:.5px;}
.formrow input,.formrow textarea{
  width:100%;
  padding:11px 12px;
  border:2px solid var(--hair);
  border-radius:4px;
  font-family:Georgia,serif;
  font-size:16px;
  color:var(--navy);
  background-color:var(--white);
}
.formrow input:focus,.formrow textarea:focus{outline:none;border-color:var(--teal);}
.formpanel .btn{margin-top:6px;}
.formnote{font-size:13px;color:var(--deep-soft);margin-top:12px;}

.sideleg{flex:1 1 44%;}
.info-card{background-color:var(--deep);color:var(--white);padding:26px;border-left:8px solid var(--teal);margin-bottom:22px;}
.info-card h3{font-family:Verdana,sans-serif;color:var(--white);font-size:19px;margin-bottom:8px;}
.info-card .flow{display:block;color:#d6e7e5;text-decoration:none;font-family:Verdana,sans-serif;margin-bottom:4px;}
.info-card address{font-style:normal;color:#dfe4e9;line-height:1.8;}
.hoursdl{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #3a4652;font-size:15px;}
.hoursdl dt{color:#d6e7e5;}
.hoursdl dd{margin:0;color:var(--white);font-weight:700;}
.faq{background-color:var(--panel);border:1px solid var(--hair);padding:24px;}
.faq h3{font-family:Verdana,sans-serif;color:var(--navy);font-size:20px;margin-bottom:6px;}
details{margin:14px 0;}
summary{cursor:pointer;font-family:Verdana,sans-serif;font-weight:700;color:var(--teal);list-style:none;}
summary::before{content:"+ ";color:var(--coral);font-weight:800;}
details[open] summary::before{content:"\2013 ";}
.faq-body{color:#3a4652;padding-top:8px;}

/* ==================== SERVICES PAGE ==================== */
.services-hero{background-color:var(--panel);border-bottom:1px solid var(--hair);}
.services-hero .pagehead h1{font-size:42px;}
.svcintro{max-width:920px;}
.services-process{padding:60px 24px;}
.services-process h2,.services-det h2{font-family:Verdana,sans-serif;font-size:30px;color:var(--navy);text-align:center;margin-bottom:6px;}
.processstep-copy{max-width:820px;margin:6px auto 34px;text-align:center;color:#3a4652;}
.steps{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;}
.stepchip{flex:0 0 170px;background-color:var(--panel);border-top:5px solid var(--teal);padding:18px 16px;text-align:center;}
.stepchip:nth-child(2){border-top-color:var(--coral);}
.stepchip:nth-child(3){border-top-color:var(--citrine);}
.stepchip:nth-child(4){border-top-color:var(--sage);}
.stepchip:nth-child(5){border-top-color:var(--teal);}
.step-num{font-family:Verdana,sans-serif;color:var(--coral);font-weight:800;font-size:26px;}
.step-tit{font-family:Verdana,sans-serif;font-weight:700;color:var(--navy);margin-top:4px;}
.step-desc{font-size:13px;color:var(--deep-soft);margin-top:6px;}

.services-det{max-width:1000px;margin:0 auto;padding:10px 24px 30px;}
.svc-list .spine-item{margin-bottom:34px;}
.svc-list{position:relative;}
.svc-list::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:4px;background-color:var(--navy);transform:translateX(-50%);}
.svc-list .notch p{font-size:15px;margin-bottom:8px;}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.chip{background-color:#e7efe5;color:var(--deep-soft);font-family:Verdana,sans-serif;font-size:11px;padding:3px 9px;border-radius:12px;}

/* ==================== RESPONSIVE ==================== */
.navtoggle{display:none;background:none;border:2px solid var(--teal);border-radius:4px;margin-left:auto;padding:8px;cursor:pointer;flex-direction:column;gap:4px;}
.navtoggle .lg{width:20px;height:3px;background-color:var(--white);display:block;}

@media (max-width:900px){
  .hero{flex-direction:column;padding:50px 24px;}
  .hero-txt h1{font-size:38px;}
  .dial-zone{order:-1;}
  .dial{width:270px;height:270px;}
  .dial .dial-tick{top:4px;transform-origin:50% 126px;}
  .needle{top:62px;height:120px;width:5px;transform-origin:50% 66px;}
  .about{flex-direction:column;}
  .spine-item{width:100%;left:0 !important;padding-left:40px !important;padding-right:0 !important;text-align:left !important;}
  .spine-item .bead{left:10px !important;right:auto !important;}
  .spine-list::before{left:24px;}
  .notch::after{left:auto;right:auto;}
  .sheetcols{flex-direction:column;}
  .contactwrap{flex-direction:column;}
  .station{padding:8px 8px 10px;font-size:12px;}
}

@media (max-width:620px){
  .stations{display:none;flex-direction:column;width:100%;align-items:stretch;order:5;}
  .trackrail.stations-open .stations{display:flex;padding-top:10px;}
  .navtoggle{display:flex;}
  .hero-txt h1{font-size:32px;}
  .why-grid{flex-direction:column;}
  .sheetcopy{text-align:left;}
}

/* ===== additional theme blocks ===== */
.services-hero.hero{background-color:var(--panel);padding-top:52px;padding-bottom:54px;}
.services-title h1{font-size:42px;line-height:1.12;color:var(--navy);}
.services-title h1 .teal{color:var(--teal);}
.dial-sm{width:260px;height:260px;}

/* trusted band with counters */
.trusted{
  background-color:var(--atrium);
  border-top:1px solid var(--hair);
  padding:64px 24px 70px;
}
.trusted-cols{
  max-width:1100px;
  margin:0 auto;
  display:flex;
  gap:46px;
  align-items:flex-start;
}
.trusted-txt{flex:1 1 60%;}
.trusted-txt h2{font-family:Verdana,sans-serif;font-size:29px;color:var(--navy);margin-bottom:12px;}
.trusted-txt p{color:#3a4652;font-size:17px;margin-bottom:1em;}
.trusted-data{flex:1 1 40%;}
.stat{
  background-color:var(--panel);
  border-left:8px solid var(--teal);
  padding:22px 20px;
  margin-bottom:16px;
  box-shadow:0 0 0 1px #E8EBE4;
}
.stat:nth-child(2){border-left-color:var(--coral);}
.stat:nth-child(3){border-left-color:var(--sage);}
.statnum{
  display:block;
  font-family:Verdana,sans-serif;
  font-weight:800;
  font-size:34px;
  color:var(--teal);
  line-height:1;
  margin-bottom:6px;
}
.stat:nth-child(2) .statnum{color:var(--coral);}
.stat:nth-child(3) .statnum{color:var(--navy);}
.statcap{display:block;font-size:14px;color:#3a4652;line-height:1.5;}

/* scroll reveal (js adds) */
.js-anim .rv{visibility:hidden;transform:translateY(14px);}
.js-anim .rv.onscreen{visibility:visible;transform:none;animation:rvfade .7s cubic-bezier(.2,.7,.3,1);}
@keyframes rvfade{from{transform:translateY(14px);}to{transform:none;}}

@media (max-width:700px){
  .trusted-cols{flex-direction:column;}
}

@media (max-width:900px){
  .dial-sm{width:200px;height:200px;}
}

.info-card .flow{word-break:break-word;}
.services-det .spine-list{margin-top:12px;}
.notebook{overflow-x:hidden;}
