:root{
  --paper:#F1EFE8;
  --ink:#2C2E2C;
  --patina:#74BC9E;
  --charcoal:#3E4442;
  --deck:#E9E2D2;
  --torch:#C87038;
  --night:#23272A;
  --steel:#8A918C;
  --line:#CFCABC;
}

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

html{scroll-behavior:smooth;}

body{
  font-family:"Segoe UI","Helvetica Neue",Arial,sans-serif;
  background:#F1EFE8;
  color:#2C2E2C;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
a.ghost{color:#2C2E2C;}

h1,h2,h3,h4{line-height:1.15;font-weight:800;letter-spacing:-0.01em;}

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

/* ================= RIDGE LINE NAV (.ridgeline) ================= */
.ridgeline{position:sticky;top:0;z-index:60;background:#F1EFE8;box-shadow:0 1px 0 #CFCABC;}
.navbar{max-width:1180px;margin:0 auto;padding:14px 24px 10px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.brand-mark{display:flex;align-items:center;gap:11px;}
.ridge-glyph{width:42px;height:26px;flex:none;}
.ridge-glyph svg{width:100%;height:100%;display:block;}
.brand-plate{background:#74BC9E;color:#23272A;font-weight:800;font-size:1.16rem;letter-spacing:0.02em;padding:4px 13px;border-radius:5px;line-height:1.2;}
.brand-plate small{display:block;font-weight:600;font-size:0.6rem;letter-spacing:0.26em;text-transform:uppercase;color:#23272A;}
.nav-links{display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:wrap;}
.nav-tab{display:inline-block;padding:9px 18px 13px;font-weight:700;font-size:0.92rem;color:#2C2E2C;background:#E9E2D2;
  border-radius:7px 7px 0 0;
  -webkit-clip-path:polygon(4% 0,96% 0,100% 100%,50% 88%,0 100%);
  clip-path:polygon(4% 0,96% 0,100% 100%,50% 88%,0 100%);
}
.nav-tab.even{background:#3E4442;color:#F1EFE8;}
.nav-tab:hover{background:#74BC9E;color:#23272A;}
.nav-cta{display:inline-block;margin-left:8px;padding:9px 17px;font-weight:800;font-size:0.9rem;color:#23272A;background:#74BC9E;border:2px solid #23272A;border-radius:6px;}
.nav-cta:hover{background:#23272A;color:#74BC9E;}
.ridge-line{position:relative;height:8px;max-width:1180px;margin:0 auto;padding:0 24px;}
.ridge-line .r{display:block;height:2px;background:#3E4442;}
.ridge-line .chalk{position:absolute;bottom:0;left:24px;right:24px;height:1px;background:#23272A;}
.ridge-line .peak-dot{position:absolute;top:0;right:46%;width:9px;height:9px;border-radius:50%;background:#74BC9E;}
.nav-toggle{display:none;}
.mobile-drawer{display:none;}

/* ================= TWO-SLOPE HERO ================= */
.twoslope{background:#F1EFE8;}
.aerial{background:#3E4442;overflow:hidden;}
.aerial-in{height:360px;max-width:1180px;margin:0 auto;position:relative;}
.ae-hold{position:relative;width:100%;height:100%;overflow:visible;}

.ae-sweep{position:absolute;border-radius:50%;background:#38403d;}
.ae-sweep.a{width:64%;height:52%;left:-8%;top:-14%;transform:rotate(-6deg);}
.ae-sweep.b{width:62%;height:52%;right:-9%;top:-6%;transform:rotate(7deg);}
.ae-sweep.c{width:56%;height:44%;left:10%;top:-20%;background:#313735;transform:rotate(4deg);}
.ae-sweep.d{width:50%;height:40%;right:8%;top:-16%;background:#313735;transform:rotate(-5deg);}

.course-line{position:absolute;left:0;right:0;z-index:2;}
.course-line .cn{display:block;height:0;border-top:2px dotted #4B534E;}
.c-course{position:absolute;left:0;right:0;z-index:1;height:22px;}
.c-course.o{background:#38403d;}
.c-course.co{background:#313735;}

.ridge-axis{position:absolute;left:4%;right:4%;top:46%;height:6px;border-top:4px solid #23272A;z-index:3;}
.ridge-axis .pk{position:absolute;left:50%;top:-11px;transform:translateX(-50%);color:#74BC9E;font-size:1.1rem;}
.peaksvg{position:absolute;top:0;left:0;}
.flash-valley{position:absolute;bottom:26px;left:30%;width:36%;height:13px;background:#74BC9E;z-index:4;transform:rotate(-5deg);border:1px solid #23272A;}
.chalk-zone{position:absolute;top:12%;left:12%;width:200px;height:120px;border:3px dashed #74BC9E;transform:rotate(3deg);z-index:5;background:#74BC9E;}
.chalk-zone i{position:absolute;inset:6px;border:1px dashed #23272A;}
.chalk-zone b{position:absolute;bottom:2px;left:0;right:0;text-align:center;font-size:0.66rem;letter-spacing:0.2em;color:#23272A;text-transform:uppercase;}
.nailer-ico{position:absolute;right:6%;top:10%;color:#74BC9E;font-size:2.4rem;z-index:5;text-align:center;}
.nailer-ico small{display:block;font-size:0.6rem;letter-spacing:0.2em;color:#74BC9E;}

.jobsheet{background:#E9E2D2;position:relative;}
.jobsheet-in{max-width:1180px;margin:0 auto;padding:28px 24px 52px;}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:0.76rem;font-weight:800;letter-spacing:0.26em;text-transform:uppercase;color:#3E4442;}
.eyebrow .tag{width:10px;height:10px;background:#74BC9E;display:inline-block;transform:rotate(45deg);}
.jobsheet h1{font-size:clamp(1.9rem,4.6vw,3.2rem);color:#2C2E2C;margin:10px 0 6px;}
.jobsheet h1 .mark{color:#74BC9E;}
.jobsheet .lead{max-width:840px;font-size:1.07rem;color:#3E4442;}
.cta-row{display:flex;gap:15px;margin-top:22px;flex-wrap:wrap;align-items:flex-start;}
.btn{display:inline-block;padding:13px 22px;font-weight:800;font-size:0.97rem;border-radius:6px;}
.btn.patina{background:#74BC9E;color:#23272A;border:2px solid #74BC9E;}
.btn.patina:hover{background:#23272A;border-color:#23272A;color:#74BC9E;}
.btn.ink{background:transparent;color:#2C2E2C;border:2px solid #2C2E2C;}
.btn.ink:hover{background:#2C2E2C;color:#F1EFE8;}
.sweep-row{margin-top:24px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.sweep-mag{font-size:1.3rem;color:#2C2E2C;}
.sweep-row p{color:#4A514C;max-width:540px;font-size:0.92rem;}
.claim-stack{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap;}
.claim-card{background:#3E4442;color:#F1EFE8;border-left:5px solid #74BC9E;padding:8px 16px;font-size:0.82rem;font-weight:700;letter-spacing:0.04em;}

/* generic section */
.section{padding:70px 0;background:#F1EFE8;}
.section.deck{background:#E9E2D2;}
.sec-head{max-width:820px;margin:0 auto 40px;text-align:center;}
.sec-head .kicker{display:inline-block;font-size:0.74rem;letter-spacing:0.3em;text-transform:uppercase;color:#74BC9E;font-weight:800;border-bottom:3px solid #C87038;padding-bottom:4px;}
.sec-head h2{font-size:clamp(1.7rem,3.4vw,2.6rem);color:#2C2E2C;margin-top:10px;}
.sec-head p{color:#3E4442;margin-top:12px;font-size:1.03rem;}

/* ---- notched nail row plates (retained: sharp, cheap, era-free) ---- */
.notch-plate{max-width:1180px;margin:0 auto;}

/* ================= SHINGLE COURSE ROWS ================= */
.coursed{padding:74px 0 40px;background:#F1EFE8;}
.course-plate{max-width:1180px;margin:0 auto;}
.course{
  position:relative;width:94%;margin-bottom:72px;
  background:#E9E2D2;border-radius:3px 3px 14px 14px;
  padding:34px 40px 34px 60px;
  border:1px solid #CFCABC;
}
.course:nth-child(2n+2){margin-left:6%;}
.course:nth-child(odd){margin-right:0;}
.course::before{
  content:"";position:absolute;left:0;right:0;top:-26px;height:27px;
  background-repeat:repeat-x;background-size:44px 27px;
  background-image:linear-gradient(135deg,#E9E2D2 0 42%,#F1EFE8 42% 50%,#E9E2D2 50% 100%);
}
.course::after{
  content:"";position:absolute;right:26px;bottom:16px;width:9px;height:9px;background:#74BC9E;border-radius:50%;
}
.course.np-a::after{left:26px;border-right:none;border-left:none;background:transparent;
  width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;
}
.course .course-ix{display:inline-block;margin-bottom:6px;color:#C87038;font-size:0.78rem;font-weight:800;letter-spacing:0.2em;text-transform:uppercase;}
.course h3{font-size:1.42rem;color:#2C2E2C;}
.course p{color:#3E4442;margin-top:9px;max-width:880px;}
.course .more{display:inline-block;margin-top:14px;font-weight:800;color:#2C2E2C;border-bottom:2px solid #74BC9E;padding-bottom:2px;}
.course .more:hover{color:#74BC9E;}

/* stats band (plain figures, in a row) */
.statsband{background:#74BC9E;}
.stats-in{max-width:1180px;margin:0 auto;padding:30px 24px;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;text-align:left;}
.stat b{display:block;font-size:1.9rem;color:#23272A;font-weight:900;letter-spacing:-0.02em;}
.stat span{display:block;color:#23272A;font-weight:600;font-size:0.96rem;}

/* ================= NAIL RAIL ================= */
.nailrail{background:#23272A;padding:78px 0;}
.nailrail .sec-head h2{color:#F1EFE8;}
.nailrail .sec-head p{color:#AEB7B1;}
.nailgrid{max-width:1180px;margin:0 auto;padding:0 24px;}
.railbar{position:relative;height:6px;background:#74BC9E;margin:0 8px 40px;border-radius:3px;}
.stages{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
.stage{text-align:center;position:relative;padding-top:34px;}
.stage .tnail{position:absolute;top:-13px;left:50%;transform:translateX(-50%);width:18px;height:18px;background:#74BC9E;clip-path:polygon(50% 0,100% 100%,0 100%);}
.stage h4{color:#F1EFE8;font-size:1.02rem;text-transform:uppercase;letter-spacing:0.14em;}
.stage p{color:#9AA39E;font-size:0.89rem;margin-top:8px;max-width:210px;margin-left:auto;margin-right:auto;}
.stage::before{content:"";position:absolute;top:-13px;left:0;right:0;height:3px;background:#74BC9E;}

/* ================= SCROLL REVEAL ================= */
/* everything is visible by default; only when JS adds .rv to
   <html> do elements hide and wait for .is-visible. The .no-js
   guard guarantees a safe fallback if scripts are disabled. */
.reveal{will-change:transform,opacity;}
.rv .reveal{opacity:0;transform:translateY(14px);transition:opacity 0.5s ease,transform 0.5s ease;}
.rv .reveal.is-visible{opacity:1;transform:none;}
html.no-js .reveal{opacity:1;transform:none;}

/* ================= BOOKING ACCENT STRIP ================= */
.bookingband{background:#F1EFE8;padding:54px 0;}
.bb-in{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:62% 38%;border-radius:14px;overflow:hidden;border:2px solid #CFCABC;}
.bb-prompt{background:#74BC9E;padding:40px 38px;color:#23272A;}
.bb-prompt .pk-k{font-size:0.7rem;letter-spacing:0.26em;text-transform:uppercase;font-weight:800;color:#23272A;}
.bb-prompt h2{font-size:clamp(1.5rem,3vw,2.1rem);margin-top:10px;border-left:6px solid #23272A;padding-left:16px;}
.bb-prompt p{margin-top:12px;max-width:520px;font-weight:600;}
.bb-prompt .btn.ink{border-color:#23272A;color:#23272A;background:transparent;margin-top:20px;}
.bb-prompt .btn.ink:hover{background:#23272A;color:#74BC9E;}
.bb-facts{background:#3E4442;padding:40px 30px;color:#F1EFE8;}
.bb-facts h3{color:#74BC9E;font-size:0.72rem;letter-spacing:0.22em;text-transform:uppercase;margin-bottom:18px;}
.bb-facts .fact{display:block;margin-bottom:20px;}
.bb-facts .fact b{display:block;font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;color:#74BC9E;margin-bottom:5px;}
.bb-facts .fact a,.bb-facts .fact span{color:#E9E2D2;font-weight:700;}

/* ================= GABLE TRIANGLE FOOTER ================= */
.gabletri{background:#23272A;}
.gable-top{background:#23272A;max-width:1180px;margin:0 auto;position:relative;height:40px;}
.gable-tri{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:340px;}
.gable-apex{position:absolute;top:0;left:50%;transform:translateX(-50%);width:10px;height:10px;background:#74BC9E;border-radius:3px;}
.ft-grid{max-width:1180px;margin:0 auto;padding:18px 24px 40px;display:grid;grid-template-columns:60% 40%;gap:36px;border-top:2px solid #35403B;}
.ft-cover .logo-ft{color:#F1EFE8;font-size:1.4rem;font-weight:800;display:inline-block;}
.ft-cover .logo-ft .mk{color:#74BC9E;}
.ft-cover p{color:#A8B1AB;margin-top:8px;max-width:460px;}
.ft-cover .ft-addr,.ft-cover .ft-mail,.ft-cover .ft-phone{display:block;color:#E9E2D2;margin-top:6px;font-weight:600;}
.ft-cover a:hover{color:#74BC9E;}
.ft-links{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-content:start;}
.ft-group h5{color:#74BC9E;font-size:0.7rem;letter-spacing:0.22em;text-transform:uppercase;margin-bottom:12px;}
.ft-group a{display:block;color:#E9E2D2;padding:4px 0;font-weight:600;}
.ft-group a:hover{color:#74BC9E;}
.copyright{max-width:1180px;margin:0 auto;padding:4px 24px 22px;text-align:center;color:#8A918C;font-size:0.82rem;border-top:1px solid #35403B;}

/* general purpose content pad for services/contact reuse */
.content-pad{padding:56px 0;background:#F1EFE8;}

@media(max-width:960px){
  .stats-in{grid-template-columns:repeat(2,1fr);}
  .stages{grid-template-columns:repeat(3,1fr);gap:30px 12px;}
  .course{width:100%;margin-left:0 !important;}
  .course:nth-child(odd){margin-top:26px;}
  .bb-in{grid-template-columns:1fr;}
  .ft-grid{grid-template-columns:1fr;}
}
@media (max-width:820px){
  .nav-toggle{display:inline-flex;margin-left:auto;background:#74BC9E;color:#23272A;border:2px solid #23272A;padding:10px 15px;border-radius:6px;font-weight:800;cursor:pointer;font-size:1.15rem;line-height:1;}
  .nav-links{display:none;}
  .mobile-drawer.open{display:block;width:100%;margin-top:6px;}
  .drawer-link{display:block;padding:11px 16px;font-weight:700;color:#2C2E2C;background:#E9E2D2;border-radius:6px;border:1px solid #CFCABC;margin-bottom:6px;}
  .drawer-link:hover{background:#74BC9E;color:#23272A;}
  .brand-mark{order:1;}
  .nav-cta-drawer{display:block;}
  .aerial-in{height:250px;}
}
