/* ==========================================================================
   Cuts-N-Stuff — service detail pages
   Desktop mirrors the 1440 Figma frame exactly; below 1200px the two-column
   detail block stacks. Tokens come from the Elementor kit when it is loaded,
   with fallbacks here so the plugin also renders standalone.
   ========================================================================== */

.cns-service-page{
  --cns-cream:#FFF8E9;
  --cns-gold:#F8D67A;
  --cns-plum:#660033;
  --cns-crimson:#940028;
  --cns-body:#4D4D4D;
  --cns-rule:#ECECEC;
  --cns-dot:#7A0B33;
}
.cns-svc-crumb,.cns-svc-detail,.cns-svc-related{
  --cns-grad:linear-gradient(90deg,#C90012 15%,#660033 100%);
  --cns-serif:"Noto Serif",Georgia,serif;
  --cns-sans:"Helvetica Now Display","Helvetica Neue",Arial,sans-serif;
  --cns-shell:126px;
}

.cns-svc-crumb *,.cns-svc-detail *,.cns-svc-related *{box-sizing:border-box;}
/* Theme reset. The :where() keeps the element list at zero specificity, so each
   selector weighs exactly one class — enough to beat the theme's element rules,
   and a tie with the layout rules below, which win on source order. */
.cns-svc-crumb :where(p,ul,li,h1,h2,h3,figure),
.cns-svc-detail :where(p,ul,li,h1,h2,h3,figure),
.cns-svc-related :where(p,ul,li,h1,h2,h3,figure){margin:0;padding:0;}

/* The ↗ that finishes every button in this design. */
.cns-svc-arrow{display:inline-block;font-family:var(--cns-sans);font-style:normal;font-weight:400;
  line-height:1;transform:translateY(1px);}
.cns-svc-arrow::before{content:"\2192";}

/* --------------------------------------------------------------------------
   1 · Breadcrumb bar                                          Figma y 101–221
   -------------------------------------------------------------------------- */
.cns-svc-crumb{width:100%;border-bottom:1px dotted var(--cns-dot);
  background:var(--cns-cream) url(../img/texture-cream.png) center top/1440px auto repeat;}
.cns-svc-crumb-inner{position:relative;display:flex;align-items:center;justify-content:space-between;
  width:1440px;max-width:100%;height:120px;margin:0 auto;padding:0 var(--cns-shell);}

.cns-svc-trail{font-family:var(--cns-sans);font-size:16px;line-height:1.5;color:#000;}
.cns-svc-trail a{color:#000;text-decoration:none;}
.cns-svc-trail a:hover{color:var(--cns-plum);text-decoration:underline;text-underline-offset:4px;}
.cns-svc-trail-sep{margin:0 5px;color:#8A8A8A;}
.cns-svc-trail-current{color:var(--cns-plum);font-weight:700;}

.cns-svc-back{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0 19px 0 25px;
  border-radius:999px;background:#fff;color:#787878;font-family:var(--cns-sans);font-size:15px;
  font-weight:700;text-decoration:none;white-space:nowrap;transition:color .18s ease,background .18s ease;}
.cns-svc-back .cns-svc-arrow{font-size:23px;width:26px;text-align:center;color:#1A1A1A;}
.cns-svc-back:hover{background:#fff;color:var(--cns-plum);}
.cns-svc-back:hover .cns-svc-arrow{color:var(--cns-plum);}

/* --------------------------------------------------------------------------
   2 · Gallery + copy                                          Figma y 221–820
   -------------------------------------------------------------------------- */
.cns-svc-detail{width:100%;background:#fff;border-bottom:1px dotted var(--cns-dot);}
/* The copy column sits in normal flow (padding-left places it at the frame's
   763px) so a service with an extra note block grows the band instead of
   overflowing it; the photo and strip are fixed-size, so they stay absolute. */
.cns-svc-detail-inner{position:relative;width:1440px;max-width:100%;min-height:599px;margin:0 auto;
  padding:50px 122px 47px 763px;}

/* Thumbnail strip — 57px squares on a 64px pitch, matching the frame. */
.cns-svc-thumbs{position:absolute;left:94px;top:312px;z-index:2;display:flex;flex-direction:column;gap:7px;}
/* Two classes deep: Hello Elementor's reset styles [type="button"],button with
   a border and 8px/16px padding, which ties a single class. */
.cns-svc-detail .cns-svc-thumb{-webkit-appearance:none;appearance:none;
  width:57px;height:57px;padding:0;border:0;border-radius:10px;overflow:hidden;
  background:none;color:inherit;font:inherit;cursor:pointer;display:block;line-height:0;
  transition:box-shadow .18s ease,opacity .18s ease;opacity:.85;}
.cns-svc-detail .cns-svc-thumb img{width:100%;height:100%;object-fit:cover;display:block;border-radius:10px;}
.cns-svc-detail .cns-svc-thumb:hover{opacity:1;}
.cns-svc-detail .cns-svc-thumb.is-active{opacity:1;box-shadow:0 0 0 2px var(--cns-plum);}
.cns-svc-detail .cns-svc-thumb:focus-visible{outline:2px solid var(--cns-plum);outline-offset:3px;}

.cns-svc-stage{position:absolute;left:173px;top:38px;width:538px;height:523px;margin:0;
  border-radius:22px;overflow:hidden;background:#F2F2F0;}
.cns-svc-stage img{width:100%;height:100%;object-fit:cover;display:block;}

.cns-svc-copy{width:555px;}

.cns-svc-title{font-family:var(--cns-serif);font-weight:400;font-size:48px;line-height:47px;
  letter-spacing:-.04em;color:var(--cns-plum);}
.cns-svc-title-rest{color:var(--cns-plum);}
/* Gradient text needs a little breathing room inside its own box, or italic
   overhangs get clipped by background-clip:text. */
.cns-svc-title-accent{background:var(--cns-grad);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
  padding:.25em .1em .25em 0;margin:-.25em -.1em -.25em 0;
  -webkit-box-decoration-break:clone;box-decoration-break:clone;}
.cns-svc-title-accent.is-italic{font-style:italic;}

.cns-svc-loc{margin-top:8px;padding-left:21px;position:relative;font-family:var(--cns-sans);
  font-style:italic;font-size:20px;letter-spacing:-.03em;line-height:1.4;color:#828282;}
.cns-svc-loc::before{content:"";position:absolute;left:0;top:.34em;width:15px;height:17px;
  background:currentColor;
  -webkit-mask:url(../img/pin.svg) center/contain no-repeat;
  mask:url(../img/pin.svg) center/contain no-repeat;}

.cns-svc-intro{margin-top:7px;font-family:var(--cns-sans);font-size:16px;line-height:20px;color:#000;}
.cns-svc-intro+.cns-svc-intro{margin-top:16px;}

.cns-svc-rule{border:0;border-top:1px solid var(--cns-rule);margin:0;height:0;}
.cns-svc-intro:last-of-type+.cns-svc-rule,.cns-svc-intro+.cns-svc-rule{margin-top:21px;}
.cns-svc-list+.cns-svc-rule,.cns-svc-note+.cns-svc-rule,.cns-svc-price+.cns-svc-rule{margin-top:17px;}

.cns-svc-subhead{margin-top:11px;font-family:var(--cns-serif);font-weight:400;font-size:28px;
  line-height:1.04;letter-spacing:-.03em;color:var(--cns-plum);}

.cns-svc-list{margin-top:8px;padding-left:10px;list-style:none;}
.cns-svc-list li{position:relative;padding-left:14px;font-family:var(--cns-sans);font-size:16px;
  line-height:20px;color:#000;}
.cns-svc-list li+li{margin-top:0;}
.cns-svc-list li::before{content:"\2022";position:absolute;left:0;color:#000;}

.cns-svc-note{margin-top:8px;font-family:var(--cns-sans);font-size:16px;line-height:20px;color:#000;}
.cns-svc-note+.cns-svc-note{margin-top:16px;}

.cns-svc-price{margin-top:14px;font-family:var(--cns-sans);font-size:16px;line-height:1.2;color:#000;}
.cns-svc-price em{font-style:italic;font-weight:400;}
.cns-svc-price strong{font-weight:700;}

.cns-svc-cta{display:inline-flex;align-items:center;justify-content:center;gap:14px;margin-top:23px;
  min-height:44px;padding:0 20px;border:0;border-radius:999px;background:var(--cns-grad);
  color:var(--cns-gold);font-family:var(--cns-sans);font-size:16px;font-weight:700;line-height:1.2;
  text-decoration:none;display:flex;width:max-content;transition:filter .18s ease;}
.cns-svc-cta .cns-svc-arrow{font-size:22px;}
.cns-svc-cta:hover{filter:brightness(1.12);color:var(--cns-gold);}

/* --------------------------------------------------------------------------
   3 · You Might Also Like                                    Figma y 820–1637
   -------------------------------------------------------------------------- */
.cns-svc-related{width:100%;
  background:var(--cns-cream) url(../img/texture-cream.png) center -700px/1440px auto repeat;}
.cns-svc-related-inner{position:relative;width:1440px;max-width:100%;margin:0 auto;padding:63px 0 69px;}

.cns-svc-eyebrow{display:inline-block;margin-left:var(--cns-shell);padding:5px 22px;border-radius:999px;
  background:var(--cns-gold);color:var(--cns-plum);font-family:var(--cns-sans);font-size:14px;
  font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1.5;}

.cns-svc-related-title{margin:16px 0 0 var(--cns-shell);font-family:var(--cns-serif);font-weight:400;
  font-size:48px;line-height:47px;letter-spacing:-.03em;color:#000;}
.cns-svc-related-accent{font-style:italic;background:var(--cns-grad);
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
  padding:.25em .1em .25em 0;margin:-.25em -.1em -.25em 0;
  -webkit-box-decoration-break:clone;box-decoration-break:clone;}

.cns-svc-related-sub{margin:11px 0 0 var(--cns-shell);font-family:var(--cns-sans);font-size:24px;
  line-height:1.2;letter-spacing:-.01em;color:#000;}

.cns-svc-browse{position:absolute;right:var(--cns-shell);top:114px;display:inline-flex;align-items:center;
  justify-content:center;gap:12px;min-height:44px;padding:0 19px;border-radius:999px;
  background:var(--cns-grad);color:var(--cns-gold);font-family:var(--cns-sans);font-size:15px;
  font-weight:700;text-decoration:none;white-space:nowrap;transition:filter .18s ease;}
.cns-svc-browse .cns-svc-arrow{font-size:21px;}
.cns-svc-browse:hover{filter:brightness(1.12);color:var(--cns-gold);}

/* Horizontal rail: the design shows three of the eight cards with a progress
   bar underneath, so the row scrolls rather than wrapping. */
.cns-svc-track{display:flex;gap:43px;margin-top:44px;padding:0 var(--cns-shell);overflow-x:auto;
  scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;
  scroll-padding-left:var(--cns-shell);}
.cns-svc-track::-webkit-scrollbar{display:none;}

.cns-svc-card{position:relative;flex:0 0 367px;width:367px;height:454px;border-radius:22px;
  overflow:hidden;display:block;scroll-snap-align:start;text-decoration:none;background:#EDE7DC;}
.cns-svc-card-img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .35s ease;}
.cns-svc-card:hover .cns-svc-card-img{transform:scale(1.04);}

.cns-svc-card-label{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);
  display:inline-flex;align-items:center;gap:14px;max-width:calc(100% - 30px);min-height:55px;
  padding:0 8px 0 20px;border-radius:999px;background:#FFFEEE;color:var(--cns-plum);
  font-family:var(--cns-serif);font-size:24px;letter-spacing:-.03em;line-height:1.2;white-space:nowrap;}
.cns-svc-card-label>span{min-width:0;overflow:hidden;text-overflow:ellipsis;}
.cns-svc-arrow-circle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:39px;height:39px;border-radius:50%;background:var(--cns-plum);color:#FFF8E9;font-size:20px;}
.cns-svc-arrow-circle::before{content:"\2192";line-height:1;}

/* Progress bar mirroring how far along the rail you are. */
.cns-svc-scrollbar{position:relative;height:10px;margin:43px var(--cns-shell) 0;}
.cns-svc-scrollbar::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;
  background:var(--cns-plum);opacity:.55;}
.cns-svc-scrollbar-thumb{position:absolute;left:0;top:0;height:10px;width:30%;border-radius:5px;
  background:var(--cns-plum);transition:transform .12s linear;}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width:1439px){
  .cns-svc-crumb-inner,.cns-svc-detail-inner,.cns-svc-related-inner{width:100%;}
  .cns-svc-detail-inner{min-height:0;padding:38px var(--cns-shell);}
  .cns-svc-thumbs,.cns-svc-stage{position:static;}
  .cns-svc-detail-inner{display:grid;grid-template-columns:57px minmax(0,538px) minmax(0,555px);
    grid-template-rows:auto 1fr;grid-template-areas:"thumbs stage copy" ". . copy";
    column-gap:22px;align-items:start;}
  /* In the frame the strip is bottom-aligned with the big photo. The copy spans
     a second, flexible row so the first row is only as tall as the photo —
     otherwise a long description drags the strip far below it. */
  .cns-svc-thumbs{grid-area:thumbs;align-self:end;}
  .cns-svc-stage{grid-area:stage;width:100%;height:auto;aspect-ratio:538/523;}
  .cns-svc-copy{grid-area:copy;width:100%;}
}

@media (max-width:1200px){
  .cns-svc-detail-inner{display:flex;flex-direction:column;gap:22px;padding:44px 32px 48px;}
  .cns-svc-stage,.cns-svc-copy{width:100%;max-width:640px;}
  .cns-svc-copy{padding-top:0;}
  /* align-self:end from the 1439 grid would push the row right here. */
  .cns-svc-thumbs{flex-direction:row;align-self:start;order:2;}
  .cns-svc-stage{order:1;}
  .cns-svc-copy{order:3;}
  .cns-svc-cta{width:100%;justify-content:center;text-align:center;}

  .cns-svc-related-inner{padding:48px 0 56px;}
  .cns-svc-browse{position:static;display:flex;width:max-content;margin:20px 0 0 32px;}
  .cns-svc-eyebrow,.cns-svc-related-title,.cns-svc-related-sub{margin-left:32px;}
  .cns-svc-track{padding:0 32px;scroll-padding-left:32px;}
  .cns-svc-scrollbar{margin-left:32px;margin-right:32px;}
  .cns-svc-crumb-inner{padding:0 32px;}
}

@media (max-width:1024px){
  .cns-svc-title{font-size:38px;line-height:38px;}
  .cns-svc-related-title{font-size:38px;line-height:38px;}
  .cns-svc-subhead{font-size:24px;}
  .cns-svc-related-sub{font-size:20px;}
  .cns-svc-loc{font-size:18px;}
  .cns-svc-card{flex:0 0 300px;width:300px;height:380px;}
  .cns-svc-card-label{font-size:20px;min-height:48px;}
  .cns-svc-arrow-circle{width:34px;height:34px;font-size:17px;}
}

@media (max-width:767px){
  .cns-svc-crumb-inner{height:auto;padding:16px;flex-direction:column;align-items:center;gap:12px;}
  .cns-svc-trail{font-size:15px;text-align:center;}
  .cns-svc-back{min-height:40px;font-size:14px;}

  .cns-svc-detail-inner{padding:32px 16px 36px;gap:18px;}
  /* Headings and the location line centre on phones; body copy and the list
     stay left-aligned so they remain readable. */
  .cns-svc-title,.cns-svc-loc{text-align:center;}
  .cns-svc-loc{padding-left:0;}
  .cns-svc-loc::before{position:static;display:inline-block;margin-right:6px;vertical-align:-2px;}
  .cns-svc-title{font-size:32px;line-height:33px;}
  .cns-svc-subhead{font-size:22px;}
  .cns-svc-intro,.cns-svc-note{font-size:15px;}
  .cns-svc-list li{font-size:15px;line-height:1.45;}
  .cns-svc-cta{min-height:52px;padding:10px 20px;white-space:normal;font-size:15px;}
  .cns-svc-thumbs{flex-wrap:wrap;justify-content:center;width:100%;}

  .cns-svc-related-inner{padding:40px 0 48px;text-align:center;}
  .cns-svc-eyebrow,.cns-svc-related-title,.cns-svc-related-sub{margin-left:16px;margin-right:16px;}
  .cns-svc-related-title{font-size:30px;line-height:31px;}
  .cns-svc-related-sub{font-size:17px;}
  .cns-svc-browse{margin:20px auto 0;white-space:normal;text-align:center;}
  .cns-svc-track{padding:0 16px;scroll-padding-left:16px;gap:20px;text-align:left;}
  .cns-svc-card{flex:0 0 260px;width:260px;height:330px;}
  .cns-svc-card-label{font-size:18px;min-height:44px;padding-left:16px;gap:10px;}
  .cns-svc-arrow-circle{width:30px;height:30px;font-size:15px;}
  .cns-svc-scrollbar{margin-left:16px;margin-right:16px;}
}

/* ==========================================================================
   404 screen — Figma 385:4989
   ========================================================================== */
.cns-404-page{--cns-cream:#FFF8E9;--cns-gold:#F8D67A;--cns-plum:#660033;
  --cns-grad:linear-gradient(90deg,#C90012 15%,#660033 100%);
  --cns-serif:"Noto Serif",Georgia,serif;
  --cns-sans:"Helvetica Now Display","Helvetica Neue",Arial,sans-serif;}
.cns-404-main{width:100%;background:var(--cns-cream);}
.cns-404-inner{width:1440px;max-width:100%;min-height:600px;margin:0 auto;
  padding:96px 24px 110px;text-align:center;}
.cns-404-code{margin:0;font-family:var(--cns-serif);font-weight:400;font-size:86px;
  line-height:1;letter-spacing:-.04em;background:var(--cns-grad);
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;}
.cns-404-h1{margin:14px 0 0;font-family:var(--cns-serif);font-weight:400;font-size:44px;
  line-height:52px;letter-spacing:-.03em;color:#000;}
.cns-404-h1 span{display:block;}
.cns-404-body{max-width:560px;margin:22px auto 0;font-family:var(--cns-sans);
  font-size:15px;line-height:22px;color:#1A1A1A;}
.cns-404-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin:30px 0 0;}
.cns-404-home,.cns-404-call{display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;padding:0 22px;border-radius:999px;font-family:var(--cns-sans);
  font-size:14px;font-weight:700;text-decoration:none;transition:filter .18s ease,background .18s ease;}
.cns-404-home{background:#E6E6E6;color:#1A1A1A;}
.cns-404-home:hover{background:#DADADA;color:#1A1A1A;}
.cns-404-call{background:var(--cns-grad);color:var(--cns-gold);}
.cns-404-call:hover{filter:brightness(1.12);color:var(--cns-gold);}
@media(max-width:767px){
  .cns-404-inner{padding:56px 16px 64px;min-height:0;}
  .cns-404-code{font-size:60px;}
  .cns-404-h1{font-size:30px;line-height:36px;}
  .cns-404-actions{flex-direction:column;}
}

/* ==========================================================================
   Blog index — Figma 385:3126
   ========================================================================== */
#cns-bl-inner{width:1440px;max-width:100%;margin:0 auto;padding:33px 126px 60px 129px;}
.cns-bl-empty{font-family:var(--cns-sans,sans-serif);font-size:16px;color:#4D4D4D;}
.cns-bl-label{margin:0;font-family:"Noto Serif",Georgia,serif;font-style:italic;font-weight:400;
  font-size:30px;line-height:35px;letter-spacing:-.03em;color:#000;}
.cns-bl-label-sm{font-size:22px;line-height:24px;font-style:normal;}

#cns-bl-top{display:flex;gap:48px;margin-top:26px;align-items:flex-start;}
#cns-bl-side{display:flex;flex-direction:column;gap:38px;flex:0 0 458px;width:458px;}
.cns-bl-feature{flex:1 1 auto;min-width:0;}

.cns-bl-card{min-width:0;}
.cns-bl-thumb{display:block;border-radius:14px;overflow:hidden;background:#D9D9D9;}
.cns-bl-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.cns-bl-thumb-ph{display:block;width:100%;height:100%;}
.cns-bl-feature .cns-bl-thumb{height:489px;}
.cns-bl-side-card .cns-bl-thumb{height:210px;}
.cns-bl-grid-card .cns-bl-thumb{height:185px;}

.cns-bl-title{margin:22px 0 0;font-family:"Noto Serif",Georgia,serif;font-weight:400;
  letter-spacing:-.02em;color:#000;}
.cns-bl-title a{color:inherit;text-decoration:none;}
.cns-bl-title a:hover{text-decoration:underline;text-underline-offset:4px;}
.cns-bl-feature .cns-bl-title{font-size:26px;line-height:33px;}
.cns-bl-side-card .cns-bl-title{font-size:20px;line-height:25px;}
.cns-bl-grid-card .cns-bl-title{font-size:18px;line-height:25px;}
.cns-bl-by{margin:8px 0 0;font-family:var(--cns-sans,sans-serif);font-size:12px;
  line-height:15px;color:#6E6E6E;}
.cns-bl-excerpt{margin:12px 0 0;font-family:var(--cns-sans,sans-serif);font-size:14px;
  line-height:20px;color:#1A1A1A;}
.cns-bl-date{margin:12px 0 0;font-family:var(--cns-sans,sans-serif);font-size:12px;
  line-height:15px;color:#6E6E6E;}

.cns-bl-rule{border:0;border-top:1px solid #DCDCDC;margin:46px 0 0;}
#cns-bl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:56px 22px;margin-top:34px;}

@media(max-width:1200px){
  #cns-bl-inner{padding:32px 32px 48px;}
  #cns-bl-top{flex-direction:column;gap:38px;}
  #cns-bl-side{flex:0 0 auto;width:100%;flex-direction:row;}
  #cns-bl-side .cns-bl-card{flex:1 1 0;min-width:0;}
  .cns-bl-feature .cns-bl-thumb{height:380px;}
  #cns-bl-grid{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:767px){
  #cns-bl-inner{padding:28px 16px 40px;}
  #cns-bl-side{flex-direction:column;}
  .cns-bl-feature .cns-bl-thumb{height:220px;}
  .cns-bl-side-card .cns-bl-thumb,.cns-bl-grid-card .cns-bl-thumb{height:180px;}
  #cns-bl-grid{grid-template-columns:1fr;gap:34px;}
  .cns-bl-feature .cns-bl-title{font-size:22px;line-height:28px;}
}

/* Contact form status */
#cns-c-status.is-error{color:#B00020;}

/* ---------------------------------------------------------------
 * Price menu
 *
 * Every rule is scoped under .cns-menu and states its colours outright: the
 * theme's own button styling is loaded after this file and would otherwise
 * centre the labels and repaint them in its link colour.
 * ------------------------------------------------------------ */

.cns-menu{margin-top:14px;font-family:var(--cns-sans);}
.cns-menu *{box-sizing:border-box;}
/* The summary and total bars are display:flex below, which outranks the UA's
   [hidden]{display:none} — so say it here, or they show before anything is picked. */
.cns-menu [hidden]{display:none !important;}
.cns-menu-step+.cns-menu-step{margin-top:20px;}

/* Until the script runs the whole menu is one long price list, so the numbered
   step headings would promise an interaction that is not there yet. */
.cns-menu:not(.is-live) .cns-menu-num{display:none;}

.cns-menu .cns-menu-step-h{display:flex;align-items:center;gap:9px;margin:0 0 10px;padding:0;
  font-family:var(--cns-serif);font-weight:400;font-size:22px;line-height:1.15;
  letter-spacing:-.02em;color:var(--cns-plum);text-align:left;}
.cns-menu .cns-menu-num{flex:0 0 auto;width:24px;height:24px;border-radius:50%;
  background:var(--cns-plum);color:var(--cns-cream);font-family:var(--cns-sans);font-size:13px;
  font-weight:700;line-height:24px;text-align:center;}
.cns-menu-step.is-collapsed .cns-menu-num{background:var(--cns-gold);color:var(--cns-plum);}

.cns-menu .cns-menu-group-h{margin:13px 0 7px;padding:0;font-family:var(--cns-sans);font-size:12px;
  font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9A8A90;text-align:left;}
.cns-menu-body>.cns-menu-group-h:first-child{margin-top:0;}

.cns-menu .cns-menu-opts{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;}

.cns-menu .cns-menu-opt{display:flex;flex-direction:row;align-items:center;justify-content:space-between;
  gap:14px;width:100%;min-height:0;margin:0;padding:12px 16px;border:1px solid var(--cns-rule);
  border-radius:10px;background:#fff;background-image:none;box-shadow:none;text-align:left;
  text-transform:none;letter-spacing:normal;font-family:var(--cns-sans);font-size:16px;
  font-weight:400;line-height:20px;color:#1A1A1A;cursor:pointer;
  transition:border-color .15s,background-color .15s,color .15s;}
.cns-menu .cns-menu-opt:hover{border-color:var(--cns-plum);background:var(--cns-cream);color:#1A1A1A;}
.cns-menu .cns-menu-opt:focus-visible{outline:2px solid var(--cns-plum);outline-offset:2px;}
.cns-menu .cns-menu-opt.is-on{border-color:var(--cns-plum);background:var(--cns-plum);color:var(--cns-cream);}
.cns-menu .cns-menu-opt.is-quote{cursor:default;background:#FBF9F6;border-style:dashed;color:#7A7078;}

.cns-menu .cns-menu-opt-text{flex:1 1 auto;min-width:0;text-align:left;}
.cns-menu .cns-menu-opt-name{display:block;font-size:16px;line-height:20px;font-weight:500;
  color:inherit;text-align:left;}
.cns-menu .cns-menu-opt-price{flex:0 0 auto;font-size:16px;line-height:20px;font-weight:700;
  color:var(--cns-plum);white-space:nowrap;text-align:right;}
.cns-menu .cns-menu-opt.is-on .cns-menu-opt-price{color:var(--cns-gold);}
.cns-menu .cns-menu-opt.is-quote .cns-menu-opt-price{font-weight:400;font-size:14px;color:#9A8A90;
  white-space:normal;max-width:52%;}

/* The folded step: one line saying what was picked, and a way back. */
.cns-menu .cns-menu-chosen{display:flex;flex-direction:row;align-items:center;gap:12px;width:100%;
  margin:0;padding:12px 16px;border:1px solid var(--cns-plum);border-radius:10px;
  background:var(--cns-cream);background-image:none;box-shadow:none;text-align:left;
  text-transform:none;letter-spacing:normal;font-family:var(--cns-sans);font-size:16px;
  line-height:20px;color:var(--cns-plum);cursor:pointer;}
.cns-menu .cns-menu-chosen:hover{background:#FFF2D9;}
.cns-menu .cns-menu-chosen:focus-visible{outline:2px solid var(--cns-plum);outline-offset:2px;}
.cns-menu .cns-menu-chosen-name{flex:1 1 auto;min-width:0;font-weight:500;color:var(--cns-plum);
  text-align:left;}
.cns-menu .cns-menu-chosen-price{flex:0 0 auto;font-weight:700;color:var(--cns-plum);white-space:nowrap;}
.cns-menu .cns-menu-change{flex:0 0 auto;font-size:13px;font-weight:600;color:var(--cns-crimson);
  text-decoration:underline;text-underline-offset:3px;white-space:nowrap;}

.cns-menu .cns-menu-total{display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin-top:16px;padding:14px 18px;border-radius:10px;background:var(--cns-plum);color:var(--cns-cream);}
.cns-menu .cns-menu-total em{font-style:italic;font-size:16px;line-height:1.2;color:var(--cns-cream);}
.cns-menu .cns-menu-total strong{font-size:26px;line-height:1.1;font-weight:700;letter-spacing:-.02em;
  color:var(--cns-gold);}

.cns-menu .cns-menu-foot{margin-top:10px;font-size:14px;line-height:19px;color:#6A6A6A;}
.cns-menu .cns-menu-foot+.cns-menu-foot{margin-top:6px;}

.cns-menu+.cns-svc-rule{margin-top:20px;}

@media(max-width:767px){
  .cns-menu .cns-menu-opt,.cns-menu .cns-menu-chosen{gap:10px;padding:11px 13px;}
  .cns-menu .cns-menu-opt-name{font-size:15px;}
  .cns-menu .cns-menu-total strong{font-size:22px;}
}

/* ---------------------------------------------------------------
 * Brand arrows point right, not up-right.
 *
 * The Home and Services pages still declare "\2197" in their own Elementor
 * page CSS, which this file cannot reach — the body prefix outranks them
 * whichever stylesheet ends up printed first. This stylesheet is enqueued
 * site-wide, so one rule covers every page. Fold the glyph into the page CSS
 * next time either page is edited, and this block can go.
 * ------------------------------------------------------------ */

body #cns-about-cta::after,
body #cns-svc-btn::after,
body #cns-rev-btn::after,
body #svc-cta::after{content:"\2192";}

/* The shared header marks the current section's link server-side. */
#cns-nav-left p a.cns-current,#cns-nav-right p a.cns-current{color:var(--cns-plum);text-decoration:underline;
  text-underline-offset:5px;text-decoration-thickness:1px;}
