/* ==========================================================================
   RISANA BUSINESS ENTERPRISE
   Global stylesheet. Every value below maps to an Elementor global setting.
   1. Design tokens
   2. Base
   3. Layout helpers
   4. Buttons
   5. Header
   6. Hero
   7. Curved dividers
   8. Sections and components
   9. Forms
   10. Footer
   11. Responsive
   ========================================================================== */

/* 1. DESIGN TOKENS ------------------------------------------------------- */
:root{
  /* Colour  -> Elementor Global Colours */
  --brand:        #147BA6;   /* Primary   - deep logo blue */
  --brand-dark:   #0F5F80;   /* Secondary - deeper blue    */
  --brand-bright: #189CD8;   /* Logo blue, accents only    */
  --brand-tint:   #E8F4FB;   /* Pale blue wash            */
  --header-bg:    #EDF5FB;   /* Header bars + mobile menu */
  --header-bg2:   #DFEBF6;   /* Nested menu panels        */
  --green:        #189C54;   /* Accent    - logo green    */
  --orange:       #F09C30;   /* Accent    - logo orange   */
  --ink:          #23282C;   /* Dark background / headings*/
  --ink-soft:     #333A3F;
  --text:         #52585D;   /* Body text                 */
  --muted:        #7E858A;   /* Secondary text            */
  --line:         #E3E8EB;   /* Borders                   */
  --bg:           #FFFFFF;
  --bg-alt:       #F4F7F9;

  /* Type -> Elementor Global Fonts */
  --font-head: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-body: Arial, "Helvetica Neue", Helvetica, sans-serif;

  /* Spacing rhythm */
  --container: 1200px;
  --gutter: 24px;
  --pad-x: 44px;          /* gutter + 20 */
  --section-y: 170px;
  --section-y-sm: 126px;
  --radius: 0px;          /* square corners throughout */
  --btn-h: 44px;
}

/* 2. BASE ---------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:clamp(15px,1.02vw,16px);
  line-height:1.72;
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--brand);text-decoration:none;}
a:hover{color:var(--brand-dark);}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px;}

h1,h2,h3,h4,h5{
  font-family:var(--font-head);
  color:var(--ink);
  margin:0 0 18px;
  line-height:1.16;
  letter-spacing:-0.015em;
  font-weight:700;
}
h1{font-size:clamp(30px,4.4vw,50px);}
h2{font-size:clamp(23px,3.1vw,35px);}
h3{font-size:clamp(18px,1.9vw,23px);}
h4{font-size:clamp(16px,1.4vw,18px);line-height:1.32;}
h5{font-size:clamp(13px,1.05vw,15px);}
h2.h-sm{font-size:clamp(21px,2.5vw,29px);}
p{margin:0 0 18px;}
p:last-child{margin-bottom:0;}
ul{margin:0 0 18px;padding-left:20px;}
li{margin-bottom:8px;}

.eyebrow{
  min-width:0;
  font-family:var(--font-head);
  font-size:13px;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--brand);
  display:flex;
  align-items:center;
  gap:14px;
  margin:0 0 16px;
}
.eyebrow::before{content:"";width:30px;height:2px;background:var(--orange);flex:none;}
.on-brand .eyebrow,.on-dark .eyebrow{color:#fff;}
.on-brand .eyebrow::before,.on-dark .eyebrow::before{background:var(--orange);}
.lead{font-size:clamp(16px,1.25vw,17.5px);}

/* 3. LAYOUT -------------------------------------------------------------- */
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--pad-x);}
.section{padding:var(--section-y) 0;}
.section--tight{padding:var(--section-y-sm) 0;}
.section--alt{background:var(--bg-alt);}
.grid{display:flex;flex-wrap:wrap;margin:0 -16px;}
.col{padding:0 16px;width:100%;}
.col-2{width:50%;}
.col-3{width:33.3333%;}
.col-4{width:25%;}
.col-5{width:41.6667%;}
.col-7{width:58.3333%;}
.stack>*+*{margin-top:32px;}

.on-brand{background:var(--brand);color:rgba(255,255,255,.86);}
.on-brand h1,.on-brand h2,.on-brand h3,.on-brand h4{color:#fff;}
.on-dark{background:var(--ink);color:rgba(255,255,255,.78);}
/* same blue as the What We Do band and the wave crests */
.band--deep{background:var(--brand);}
.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4{color:#fff;}

/* 4. BUTTONS ------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  height:var(--btn-h);padding:0 22px;
  font-family:var(--font-head);font-size:12.5px;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;
  border-radius:var(--radius);border:1.5px solid var(--brand);
  background:var(--brand);color:#fff;cursor:pointer;
  transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.btn:hover{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff;}
.btn--ghost{background:transparent;color:var(--brand);}
.btn--ghost:hover{background:var(--brand);color:#fff;}
.btn--light{background:#fff;border-color:#fff;color:var(--brand);}
.btn--light:hover{background:var(--green);border-color:var(--green);color:#fff;}
.btn--outline-light{background:transparent;border-color:rgba(255,255,255,.6);color:#fff;}
.btn--outline-light:hover{background:#fff;border-color:#fff;color:var(--brand);}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;}

.textlink{
  font-family:var(--font-head);font-size:11.5px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:7px;white-space:nowrap;
}
.textlink svg{width:11px;height:11px;flex:none;stroke-width:3;}

/* 5. HEADER -------------------------------------------------------------- */
/* Row 1 (utility): logo + office details.  Row 2 (sticky): mark + menu + CTA.
   Both rows white. Fixed heights so nothing can spill from one row into the
   other. In Elementor this is two containers inside the Theme Builder header. */
header{background:var(--header-bg);}
html,body{overflow-x:clip;}

.topbar{background:var(--header-bg);border-bottom:1px solid rgba(20,123,166,.14);}
.topbar .container{display:flex;align-items:center;justify-content:space-between;gap:32px;min-height:132px;}
.brandmark{display:flex;align-items:center;flex:none;}
.brandmark img{display:block;height:104px;width:auto;max-height:104px;}
.topbar-info{display:flex;align-items:center;flex:none;}
.topbar-info .item{padding:0 22px;border-left:1px solid var(--line);line-height:1.4;}
.topbar-info .item:last-child{padding-right:0;}
.topbar-info .label{display:block;font-family:var(--font-head);font-size:10px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;}
.topbar-info .value{color:var(--ink);font-family:var(--font-head);font-weight:600;font-size:13.5px;white-space:nowrap;}
.topbar-info a.value:hover{color:var(--brand);}

.navbar{background:var(--header-bg);border-bottom:1px solid rgba(20,123,166,.14);
  position:sticky;top:0;z-index:60;box-shadow:0 1px 0 rgba(20,123,166,.05);
  transition:box-shadow .25s ease,background .25s ease;}
/* once the page scrolls, the bar stays but tightens up */
.navbar.is-stuck{box-shadow:0 4px 18px rgba(20,123,166,.13);background:rgba(237,245,251,.96);
  backdrop-filter:blur(8px);}
.navbar .container,.nav a,.nav-cta .btn,.nav-phone,.nav-mail,.nav-toggle{
  transition:min-height .25s ease,padding .25s ease,height .25s ease,font-size .25s ease;}
.navbar.is-stuck .container{min-height:46px;}
.navbar.is-stuck .nav a{padding-top:12px;padding-bottom:12px;font-size:13px;}
.navbar.is-stuck .nav-cta .btn{height:34px;font-size:11.5px;padding:0 18px;}
.navbar .container{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:60px;}
.nav-left{display:flex;align-items:center;min-width:0;}
.nav{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0;}
.nav li{margin:0;}
.nav a{
  display:block;padding:19px 14px;
  font-family:var(--font-head);font-size:13.5px;font-weight:600;
  letter-spacing:.02em;color:var(--ink);
  border-bottom:3px solid transparent;
}
.nav a:hover{color:var(--brand);}
.nav a.is-active{color:var(--brand);border-bottom-color:var(--orange);}
.nav-cta{display:flex;align-items:center;gap:16px;flex:none;}
.nav-phone{display:none;align-items:center;gap:8px;font-family:var(--font-head);
  font-weight:700;font-size:14px;color:var(--ink);white-space:nowrap;}
.nav-phone svg{width:15px;height:15px;fill:var(--brand);flex:none;}
.nav-phone:hover{color:var(--brand);}
.nav-mail{display:none;align-items:center;gap:8px;font-family:var(--font-head);
  font-weight:600;font-size:13.5px;color:var(--ink);white-space:nowrap;min-width:0;}
.nav-mail svg{width:15px;height:15px;fill:var(--brand);flex:none;}
.nav-mail span{overflow:hidden;text-overflow:ellipsis;}
.nav-mail:hover{color:var(--brand);}
.nav-toggle{display:none;background:none;border:0;padding:0;cursor:pointer;
  width:40px;height:40px;flex:none;}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);margin:5px auto;
  transition:transform .2s ease,opacity .2s ease;}


/* MOBILE DRAWER ---------------------------------------------------------- */
.mnav{position:fixed;inset:0;z-index:200;visibility:hidden;pointer-events:none;}
.mnav.is-open{visibility:visible;pointer-events:auto;}
.mnav-scrim{position:absolute;inset:0;background:rgba(18,22,25,.55);
  backdrop-filter:blur(3px);opacity:0;transition:opacity .3s ease;}
.mnav.is-open .mnav-scrim{opacity:1;}
.mnav-panel{
  position:absolute;top:0;right:0;bottom:0;width:min(88vw,370px);
  background:var(--header-bg);display:flex;flex-direction:column;
  box-shadow:-18px 0 46px rgba(18,22,25,.26);
  transform:translateX(102%);transition:transform .34s cubic-bezier(.22,.7,.25,1);
}
.mnav.is-open .mnav-panel{transform:translateX(0);}
body.mnav-lock{position:fixed;width:100%;overflow:hidden;}

.mnav-head{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:16px 20px;border-bottom:1px solid rgba(20,123,166,.16);flex:none;}
.mnav-head img{height:50px;width:auto;display:block;}
.mnav-close{width:40px;height:40px;flex:none;border:0;background:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}
.mnav-close svg{width:15px;height:15px;fill:var(--ink);}
.mnav-close:active{background:var(--header-bg2);}

.mnav-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:6px 0;}
.mnav-item{
  display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;
  padding:13px 20px;background:none;border:0;border-bottom:1px solid rgba(20,123,166,.14);
  font-family:var(--font-head);font-size:14px;font-weight:600;color:var(--ink);
  text-align:left;cursor:pointer;text-decoration:none;
}
.mnav-item svg{width:14px;height:14px;fill:var(--muted);flex:none;transition:transform .25s ease;}
.mnav-item:not(.mnav-parent) svg{transform:rotate(-90deg);}
.mnav-item.is-active{color:var(--brand);box-shadow:inset 3px 0 0 var(--orange);}
.mnav-item:active{background:var(--header-bg2);}

.mnav-group{border-bottom:1px solid rgba(20,123,166,.14);}
.mnav-group .mnav-item{border-bottom:0;}
.mnav-group.is-open .mnav-parent{color:var(--brand);}
.mnav-group.is-open .mnav-parent svg{transform:rotate(180deg);fill:var(--brand);}
.mnav-sub{display:none;padding:2px 0 12px;background:var(--header-bg2);}
.mnav-group.is-open .mnav-sub{display:block;}
.mnav-sub a{
  display:block;padding:10px 20px 10px 34px;position:relative;
  font-size:13px;color:var(--text);text-decoration:none;
}
.mnav-sub a::before{content:"";position:absolute;left:21px;top:16px;
  width:5px;height:5px;background:var(--green);}
.mnav-sub a.is-active{color:var(--brand);font-weight:600;}
.mnav-sub a:active{background:#D2E4F2;}

.mnav-foot{flex:none;padding:18px 20px 22px;border-top:1px solid rgba(20,123,166,.16);}
.mnav-foot .btn{width:100%;height:42px;font-size:11.5px;margin-bottom:14px;}
.mnav-contact{display:flex;align-items:center;gap:10px;padding:6px 0;
  font-family:var(--font-head);font-weight:600;font-size:13px;color:var(--ink);
  text-decoration:none;word-break:break-all;}
.mnav-contact svg{width:15px;height:15px;fill:var(--brand);flex:none;}
.mnav-addr{margin:10px 0 0;font-size:12.5px;line-height:1.6;color:var(--muted);}

@media (min-width:981px){
  .mnav{display:none;}
}


/* QUOTE MODAL ------------------------------------------------------------ */
.qm{position:fixed;inset:0;z-index:300;visibility:hidden;pointer-events:none;}
.qm.is-open{visibility:visible;pointer-events:auto;}
.qm-scrim{position:absolute;inset:0;background:rgba(15,20,24,.62);
  backdrop-filter:blur(4px);opacity:0;transition:opacity .28s ease;}
.qm.is-open .qm-scrim{opacity:1;}
.qm-dialog{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-46%) scale(.97);
  width:min(94vw,620px);max-height:92vh;overflow:auto;-webkit-overflow-scrolling:touch;
  background:#fff;box-shadow:0 26px 70px rgba(15,20,24,.4);
  opacity:0;transition:opacity .28s ease, transform .28s cubic-bezier(.22,.7,.25,1);
}
.qm.is-open .qm-dialog{opacity:1;transform:translate(-50%,-50%) scale(1);}
body.qm-lock{position:fixed;width:100%;overflow:hidden;}

.qm-close{
  position:absolute;top:14px;right:14px;z-index:3;width:38px;height:38px;
  border:0;background:rgba(255,255,255,.92);cursor:pointer;padding:0;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 10px rgba(15,20,24,.22);transition:background .2s ease;
}
.qm-close svg{width:14px;height:14px;fill:var(--ink);}
.qm-close:hover{background:var(--orange);}

.qm-media{position:relative;height:168px;overflow:hidden;background:var(--ink);}
.qm-media img{width:100%;height:100%;object-fit:cover;}
.qm-media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(15,20,24,.9) 0%,rgba(15,20,24,.6) 45%,rgba(15,20,24,.18) 100%);}
.qm-head{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:0 26px 20px;}
.qm-kicker{
  display:block;font-family:var(--font-head);font-size:10.5px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:var(--orange);margin-bottom:7px;
}
.qm-head h3{color:#fff;margin:0;font-size:clamp(19px,2.2vw,24px);letter-spacing:-0.01em;}

.qm-body{padding:24px 26px 26px;}
.qm-body ::placeholder{color:var(--muted);opacity:1;}
.qm-body select:invalid{color:var(--muted);}
.qm-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;}
.qm-grid .field{margin-bottom:0;}
.qm-grid .field--full{grid-column:1 / -1;}
.qm-body label span{color:var(--brand);}
.qm-body textarea{min-height:104px;}
.qm-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:20px;}
.qm-actions .btn{min-width:170px;}
.qm-alt{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-head);
  font-weight:600;font-size:13.5px;color:var(--ink);}
.qm-alt svg{width:15px;height:15px;fill:var(--brand);}
.qm-alt:hover{color:var(--brand);}
.qm-note{margin:14px 0 0;font-size:12.5px;color:var(--muted);}

@media (max-width:640px){
  /* full-height sheet that rises from the bottom */
  .qm-dialog{
    top:auto;bottom:0;left:0;transform:translateY(100%);
    width:100%;max-height:94vh;
  }
  .qm.is-open .qm-dialog{transform:translateY(0);}
  .qm-media{height:118px;}
  .qm-head{padding:0 20px 14px;}
  .qm-body{padding:18px 20px 22px;}
  .qm-grid{grid-template-columns:1fr;gap:10px;}
  /* the placeholder carries the label, so the visible heading goes */
  .qm-body label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;
    overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
  .qm-body input,.qm-body select,.qm-body textarea{
    padding:11px 13px;font-size:16px;line-height:1.3;}
  .qm-body textarea{min-height:84px;}
  .qm-note{font-size:12px;margin-top:12px;}
  .qm-actions{gap:12px;}
  .qm-actions .btn{width:100%;min-width:0;height:44px;}
  .qm-alt{width:100%;justify-content:center;padding:6px 0;}
}

/* 6. HERO ---------------------------------------------------------------- */
.hero{position:relative;background:var(--ink);overflow:hidden;}
.hero-media{position:absolute;inset:0;}
.hero-media img{width:100%;height:100%;object-fit:cover;}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(14,16,17,.92) 0%,rgba(14,16,17,.78) 42%,rgba(14,16,17,.15) 78%,rgba(14,16,17,.05) 100%);
}
.hero-inner{position:relative;padding:150px 0 185px;max-width:600px;}
.hero h1{color:#fff;font-size:clamp(26px,3.5vw,42px);letter-spacing:-0.02em;}
.hero p{color:rgba(255,255,255,.8);font-size:clamp(15px,1.15vw,16.5px);max-width:500px;}
.hero .eyebrow{color:rgba(255,255,255,.85);margin-bottom:14px;white-space:nowrap;
  font-size:clamp(8px,2.4vw,10.5px);letter-spacing:clamp(.09em,.5vw,.19em);}
.hero .eyebrow::before{background:var(--orange);width:clamp(14px,4vw,22px);}

.pagehead{position:relative;background:var(--ink);overflow:hidden;}
.pagehead-media{position:absolute;inset:0;}
.pagehead-media img{width:100%;height:100%;object-fit:cover;}
.pagehead-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,16,17,.9),rgba(14,16,17,.55));}
.pagehead-inner{position:relative;padding:110px 0 130px;max-width:720px;}
.pagehead h1{color:#fff;font-size:clamp(24px,3vw,38px);margin-bottom:12px;}
.pagehead p{color:rgba(255,255,255,.8);margin:0;max-width:600px;}
.crumbs{font-size:13px;color:rgba(255,255,255,.6);margin-bottom:18px;font-family:var(--font-head);}
.crumbs a{color:rgba(255,255,255,.85);}
.crumbs span{margin:0 8px;opacity:.5;}

/* 7. CURVED DIVIDERS ----------------------------------------------------- */
/* The curve is drawn in the band's own colour and bleeds over the section
   above and below, so no white strip appears between them.
   In Elementor this is the built-in Shape Divider (Curve, top and bottom). */
.wave{position:relative;}
.wave>.wave-top>svg,.wave>.wave-bottom>svg{position:absolute;left:0;width:100%;height:56px;display:block;z-index:1;}
.wave>.wave-top>svg{top:0;transform:translateY(-99.5%);}
.wave>.wave-bottom>svg{bottom:0;transform:translateY(99.5%);}
.wave-inner{position:relative;z-index:3;}

/* 8. COMPONENTS ---------------------------------------------------------- */
.band{position:relative;padding:96px 0 104px;}
.band .container{position:relative;z-index:3;}

/* Service card: photograph above, solid caption block below with a kicker,
   title and arrow. Maps to an Elementor container: image widget + inner
   container with two headings and an icon button. */
.svc-card{
  display:flex;flex-direction:column;height:100%;overflow:hidden;
  background:var(--brand-dark);text-decoration:none;
  transition:transform .35s ease, box-shadow .35s ease;
}
.svc-card .thumb{display:block;aspect-ratio:5/4;overflow:hidden;}
.svc-card .thumb img{width:100%;height:100%;object-fit:cover;
  transition:transform .6s cubic-bezier(.2,.6,.2,1);}
.svc-card .body{
  display:flex;align-items:center;gap:14px;
  padding:18px 18px;min-height:92px;flex:1;
  /* subtle raised face: light along the top edge, deeper toward the bottom */
  background:linear-gradient(178deg,#17708F 0%,#0F5F80 44%,#0A4761 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), inset 0 -2px 0 rgba(4,32,45,.4);
  transition:background .3s ease;
}
.svc-card .text{display:block;min-width:0;}
.svc-card .kicker{
  display:block;font-family:var(--font-head);font-size:10.5px;font-weight:700;
  letter-spacing:.17em;text-transform:uppercase;color:var(--orange);margin-bottom:5px;
}
.svc-card .title{
  display:block;font-family:var(--font-head);font-weight:700;
  font-size:clamp(16px,1.35vw,19px);line-height:1.22;letter-spacing:-0.01em;color:#fff;
}
.svc-card .go{
  margin-left:auto;flex:none;width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(178deg,#F5A845 0%,#F09C30 50%,#DD8615 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.34), 0 2px 5px rgba(4,32,45,.35);
  transition:background .3s ease,transform .3s ease;
}
.svc-card .go svg{width:15px;height:15px;stroke:var(--ink);stroke-width:2.6;}
.svc-card:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(18,22,25,.26);}
.svc-card:hover .thumb img{transform:scale(1.06);}
.svc-card:hover .body{background:linear-gradient(178deg,#1B7E9F 0%,#136C8E 44%,#0C5271 100%);}
.svc-card:hover .go{background:linear-gradient(178deg,#FBB65C 0%,#F5A63E 50%,#E5911D 100%);transform:translateX(2px);}
.card-grid{display:flex;flex-wrap:wrap;margin:0 -10px;}
.card-grid>.col{padding:0 10px;margin-bottom:20px;display:flex;}

.media-block{position:relative;}
.media-block img{width:100%;}
.media-frame{border-left:0;}

.feature{display:flex;gap:16px;margin-bottom:34px;}
.feature .mark{
  flex:none;width:44px;height:44px;background:var(--brand-tint);
  display:flex;align-items:center;justify-content:center;
}
.feature .mark svg{width:20px;height:20px;fill:var(--brand);}
.feature h4{font-size:17px;margin-bottom:6px;}
.feature p{font-size:15px;color:var(--muted);margin:0;}
.on-brand .feature .mark{background:rgba(255,255,255,.14);}
.on-brand .feature .mark svg{fill:#fff;}
.on-brand .feature p{color:rgba(255,255,255,.8);}

.checklist{list-style:none;padding:0;margin:0;}
.checklist li{position:relative;padding-left:28px;margin-bottom:11px;}
.checklist li::before{
  content:"";position:absolute;left:0;top:9px;
  width:9px;height:9px;background:var(--green);
}
.on-brand .checklist li::before{background:#fff;}
.checklist--2{column-count:2;column-gap:40px;}

.valuecard{border-top:3px solid var(--orange);background:#fff;padding:28px 26px;height:100%;}
.valuecard h4{margin-bottom:8px;}
.valuecard p{font-size:15px;color:var(--muted);margin:0;}

.sidebar{background:var(--bg-alt);padding:30px 28px;border-top:3px solid var(--orange);}
.sidebar h4{margin-bottom:14px;}
.sidebar ul{list-style:none;padding:0;margin:0 0 24px;}
.sidebar ul li{border-bottom:1px solid var(--line);margin:0;}
.sidebar ul li a{display:block;padding:12px 0;color:var(--ink);font-family:var(--font-head);font-weight:600;font-size:15px;}
.sidebar ul li a:hover,.sidebar ul li a.is-active{color:var(--brand);}
.is-sticky{position:sticky;top:96px;}

.alt-row{display:flex;flex-wrap:wrap;align-items:center;margin:0 -24px 120px;}
.alt-row:last-child{margin-bottom:0;}
.alt-row>div{padding:0 24px;width:50%;}
.alt-row--flip .alt-media{order:2;}

.contact-line{display:flex;gap:16px;margin-bottom:26px;}
.contact-line .mark{flex:none;width:42px;height:42px;background:var(--brand);display:flex;align-items:center;justify-content:center;}
.contact-line .mark svg{width:18px;height:18px;fill:#fff;}
.contact-line .label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-family:var(--font-head);}
.contact-line .value{font-family:var(--font-head);font-weight:600;color:var(--ink);font-size:16px;}

.cta-strip{position:relative;overflow:hidden;background:var(--ink);}
.cta-strip .bg{position:absolute;inset:0;}
.cta-strip .bg img{width:100%;height:100%;object-fit:cover;}
.cta-strip .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,123,166,.96) 0%,rgba(20,123,166,.9) 46%,rgba(35,40,44,.6) 100%);}
.cta-strip .container{position:relative;z-index:3;padding-top:110px;padding-bottom:110px;}
.cta-strip h2{color:#fff;margin-bottom:10px;}
.cta-strip p{color:rgba(255,255,255,.85);margin:0;}
.cta-flex{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:30px;}

/* 9. FORMS --------------------------------------------------------------- */
.formcard{background:#fff;border:1px solid var(--line);padding:34px 32px;box-shadow:0 18px 40px rgba(23,25,26,.07);}
.formcard h3{font-size:21px;margin-bottom:6px;}
.formcard .note{font-size:14px;color:var(--muted);margin-bottom:22px;}
.field{margin-bottom:16px;}
.field label{display:block;font-family:var(--font-head);font-size:13px;font-weight:600;color:var(--ink);margin-bottom:7px;}
.field input,.field select,.field textarea{
  width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:var(--radius);
  font-family:var(--font-body);font-size:15px;color:var(--ink);background:#fff;
}
.field textarea{min-height:120px;resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);outline:none;}
.formcard .btn{width:100%;}
.form-foot{font-size:13px;color:var(--muted);margin-top:14px;}

/* honeypot: off-screen, never seen or tabbed to by a person */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

.form-status{margin:14px 0 0;font-size:13.5px;line-height:1.55;padding:0;display:none;}
.form-status.is-busy,.form-status.is-ok,.form-status.is-error{
  display:block;padding:11px 14px;border-left:3px solid;}
.form-status.is-busy{background:var(--brand-tint);border-color:var(--brand);color:var(--brand-dark);}
.form-status.is-ok{background:#E8F6EE;border-color:var(--green);color:#12703C;font-weight:600;}
.form-status.is-error{background:#FDF2E4;border-color:var(--orange);color:#8A5308;}

/* 10. FOOTER ------------------------------------------------------------- */
.footer{background:var(--ink);color:rgba(255,255,255,.62);font-size:14.5px;}
.footer .container{padding-top:72px;padding-bottom:44px;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:44px;}
.footer h5{color:#fff;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:18px;}
.footer a{color:rgba(255,255,255,.62);}
.footer a:hover{color:#fff;}
.footer ul{list-style:none;padding:0;margin:0;}
.footer ul li{margin-bottom:9px;}
.footer .brandmark{padding:0 0 18px;}
.footer .brandmark img{height:96px;}
.footer .fine{font-size:14px;line-height:1.7;margin:0 0 14px;}
.f-contact{list-style:none;padding:0;margin:0;}
.f-contact li{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px;line-height:1.55;}
.f-contact svg{width:15px;height:15px;fill:var(--orange);flex:none;margin-top:3px;}
.footerbar{border-top:1px solid rgba(255,255,255,.1);}
.footerbar .container{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;
  padding-top:20px;padding-bottom:20px;font-size:12.5px;color:rgba(255,255,255,.45);}

/* 11. RESPONSIVE --------------------------------------------------------- */
@media (max-width:1280px){
  .footer-grid{gap:34px;}
}
@media (max-width:1180px){
  .topbar-info .item:nth-child(3){display:none;}
  .nav a{padding:19px 10px;font-size:12.5px;}
  .topbar-info .item{padding:0 16px;}
  .topbar .container{min-height:116px;}
  .brandmark img{height:92px;max-height:92px;}
  .footer-grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:28px;}
}
@media (max-width:1024px){
  :root{--section-y:130px;--section-y-sm:100px;}
  .band{padding:86px 0 92px;}
  .topbar-info .item:nth-child(1){display:none;}
  .nav a{padding:19px 9px;font-size:12px;}
}
@media (max-width:980px){
  :root{--pad-x:26px;--section-y:100px;--section-y-sm:80px;}
  /* header: logo + burger on top, phone + quote on a second row */
  .topbar .container{min-height:0;padding-top:12px;padding-bottom:12px;justify-content:center;}
  .brandmark{margin:0 auto;}
  .topbar-info{display:none;}
  .brandmark img{height:88px;max-height:88px;}
  .nav-toggle{display:block;}
  .navbar .container{flex-wrap:wrap;min-height:0;padding-top:8px;padding-bottom:8px;gap:10px;}
  .navbar.is-stuck .container{min-height:0;padding-top:5px;padding-bottom:5px;}
  .navbar.is-stuck .nav-phone,.navbar.is-stuck .nav-mail{width:30px;height:28px;}
  .navbar.is-stuck .nav-cta .btn{height:28px;font-size:10px;padding:0 11px;}
  .navbar.is-stuck .nav-toggle{width:34px;height:34px;}
  .navbar.is-stuck .nav-toggle span{margin:4px auto;}
  .nav-left{flex:1 1 auto;}
  .nav{display:none;}
  .nav-cta{gap:10px;width:100%;justify-content:flex-start;flex:1 1 100%;}
  .nav-phone,.nav-mail{display:inline-flex;flex:none;width:34px;height:32px;
    justify-content:center;border:1px solid rgba(20,123,166,.22);background:#fff;}
  .nav-phone span,.nav-mail span{display:none;}
  .nav-phone svg,.nav-mail svg{width:15px;height:15px;}
  .nav-cta .btn{margin-left:auto;flex:none;white-space:nowrap;}
  .btn{height:36px;padding:0 15px;font-size:11px;letter-spacing:.04em;gap:7px;}
  .nav-cta .btn{height:32px;padding:0 12px;font-size:10.5px;white-space:nowrap;flex:none;}
  /* layout */
  .col-2,.col-3,.col-4,.col-5,.col-7{width:100%;}
  .grid>.col:not(:last-child){margin-bottom:44px;}
  /* stacked feature lists: the column gap and the item gap were doubling up */
  .grid>.col.col-feature{margin-bottom:0!important;}
  .feature{margin-bottom:26px;gap:14px;}
  .feature .mark{width:40px;height:40px;}
  .feature .mark svg{width:18px;height:18px;}
  .feature h4{font-size:16.5px;margin-bottom:4px;}
  .feature p{font-size:14.5px;line-height:1.6;}
  .grid>.col.col-feature:last-child .feature{margin-bottom:0;}
  .card-grid>.col{width:100%;margin-bottom:20px;}
  .card-grid>.col:not(:last-child){margin-bottom:20px;}
  .alt-row>div{width:100%;}
  .alt-row{margin-bottom:80px;}
  .alt-row .alt-media{margin-bottom:26px;order:0;}
  .alt-row--flip .alt-media{order:0;}
  .band{padding:74px 0 80px;}
  .hero-inner{padding:163px 0 120px;max-width:none;}
  .hero-media::after{background:linear-gradient(180deg,rgba(20,24,27,.86),rgba(20,24,27,.82));}
  .pagehead-inner{padding:74px 0 88px;}
  .pagehead-media::after{background:rgba(20,24,27,.8);}
  .is-sticky{position:static;}
  .checklist--2{column-count:1;}
  .wave>.wave-top>svg,.wave>.wave-bottom>svg{height:42px;}
  .col[style]{padding-left:16px!important;padding-right:16px!important;}
  .grid{margin-left:-16px;margin-right:-16px;}
  .col{padding-left:16px;padding-right:16px;}
  /* bands with a photograph: image first, flush to the top, no top wave */
  .band--media{padding-top:0!important;}
  .band--media>.wave-top{display:none;}
  .band--media .grid{margin-top:0;margin-left:0;margin-right:0;}
  .band--media .grid{flex-direction:column-reverse;}
  .band--media .grid>.col{margin-bottom:0!important;}
  .band--media .alt-media,.band--media .col-5{padding-left:0!important;padding-right:0!important;}
  .band--media .col-5 img{width:100%;}
  .band--media .col-7{margin-top:34px!important;padding-left:var(--pad-x)!important;padding-right:var(--pad-x)!important;}
  .band--media .container{padding-left:0;padding-right:0;}
  .btn-row{margin-top:22px;}
  .cta-strip .container{padding-top:80px;padding-bottom:80px;}
  .cta-flex{gap:22px;}
  /* footer: app-style stacked layout */
  .footer .container{padding-top:52px;padding-bottom:32px;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:0;}
  .f-brand{grid-column:1 / -1;text-align:center;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.1);}
  .footer .brandmark{justify-content:center;padding-bottom:14px;}
  .f-brand .fine{max-width:420px;margin:0 auto 6px;}
  .f-links{padding:26px 18px 26px 0;}
  .f-company{padding:26px 0 26px 18px;}
  .f-contactcol{grid-column:1 / -1;border-top:1px solid rgba(255,255,255,.1);padding-top:24px;}
  .f-contact li{padding:11px 0;margin:0;border-bottom:1px solid rgba(255,255,255,.07);min-height:48px;align-items:center;}
  .f-contact li:last-child{border-bottom:0;}
  .footerbar .container{justify-content:center;text-align:center;gap:4px;flex-direction:column;}
}
@media (max-width:760px){
  :root{--section-y:84px;--section-y-sm:68px;}
  .band{padding:64px 0 70px;}
  .alt-row{margin-bottom:64px;}
  .cta-flex{display:block;}
  .cta-flex .btn-row{margin-top:22px;}
}
@media (max-width:640px){
  .svc-card .thumb{aspect-ratio:16/10;}
  .svc-card .body{padding:16px 18px;min-height:84px;}
  .brandmark img{height:76px;max-height:76px;}
  .nav-phone{font-size:13px;}
  .footer .brandmark img{height:84px;}
  .btn{width:auto;}
  .btn-row .btn{flex:1 1 auto;min-width:0;}
  .formcard{padding:26px 20px;}
  .sidebar{padding:26px 20px;}
  .hero-inner{padding:129px 0 94px;}
  .wave>.wave-top>svg,.wave>.wave-bottom>svg{height:32px;}
}
@media (max-width:420px){
  .nav-cta{gap:8px;}
  .nav-cta .btn{padding:0 10px;font-size:10px;}
}
@media (max-width:400px){
  .f-links{padding-right:10px;}
  .f-company{padding-left:10px;}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  html{scroll-behavior:auto;}
}
