/**
 * Theme Name: Blocksy Child
 * Description: Blocksy Child theme
 * Author: Creative Themes
 * Template: blocksy
 * Text Domain: blocksy
 */

/* ============================================================
   MySmartHomes design system - "Aerium" redesign. Added 2026-09-06.
   SCOPED ON PURPOSE: Elementor Global Colors/Fonts are NOT changed,
   so the 39 not-yet-redesigned pages keep their current look.
   Everything here applies only to elements carrying an .msh-* class.
   ============================================================ */

:root {
  --msh-bg:#0d0f12;
  --msh-bg-footer:#0a0c0e;
  --msh-bg-solid-alt:#14181c;
  --msh-hero-glow:radial-gradient(1200px 600px at 50% -10%, #2a3138 0%, #151a1f 45%, #0d0f12 100%);
  --msh-text:#eef0f2;
  --msh-text-85:rgba(238,240,242,.85);
  --msh-text-80:rgba(238,240,242,.8);
  --msh-text-70:rgba(238,240,242,.7);
  --msh-text-muted:rgba(238,240,242,.6);
  --msh-text-faint:rgba(238,240,242,.4);
  --msh-surface:rgba(255,255,255,.035);
  --msh-surface-2:rgba(255,255,255,.04);
  --msh-border:rgba(255,255,255,.08);
  --msh-border-hover:rgba(255,255,255,.25);
  --msh-divider:rgba(255,255,255,.1);
  --msh-glass-bg:rgba(20,24,28,.7);
  --msh-glass-border:rgba(255,255,255,.1);
  --msh-input-bg:rgba(255,255,255,.06);
  --msh-input-border:rgba(255,255,255,.12);
  --msh-tile:#c9ccd0;
  --msh-overlay-card:linear-gradient(180deg, rgba(13,15,18,0) 50%, rgba(13,15,18,.9) 100%);
  --msh-overlay-hero:linear-gradient(180deg, rgba(13,15,18,.72) 0%, rgba(13,15,18,.05) 45%, rgba(13,15,18,.7) 100%);
  --msh-overlay-band:linear-gradient(90deg, rgba(13,15,18,.92) 0%, rgba(13,15,18,.65) 45%, rgba(13,15,18,.15) 100%);
  --msh-sans:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --msh-serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --msh-r-card:16px; --msh-r-card-l:18px; --msh-r-panel:22px;
  --msh-r-input:10px; --msh-r-submit:12px; --msh-r-pill:999px;
  --msh-gutter:48px; --msh-gap:14px; --msh-section:96px;
}

.msh{background:var(--msh-bg);color:var(--msh-text);font-family:var(--msh-sans);font-weight:400;-webkit-font-smoothing:antialiased}
.msh--glow{background:var(--msh-hero-glow)}
.msh *,.msh *::before,.msh *::after{box-sizing:border-box}
.msh h1 em,.msh h2 em,.msh h3 em,.msh .msh-serif{font-family:var(--msh-serif);font-style:italic;font-weight:400}

.msh-eyebrow{font-size:13px;line-height:1.2;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--msh-text-muted)}
.msh-h1{font-size:66px;line-height:1.02;letter-spacing:-.02em;font-weight:300;margin:0;text-wrap:balance}
.msh-h2{font-size:48px;line-height:1.1;letter-spacing:-.02em;font-weight:300;margin:0;text-wrap:balance}
.msh-h2--feature{font-size:52px;line-height:1.05}
.msh-h2--form{font-size:32px;line-height:1.12}
.msh-h3{font-size:32px;line-height:1.2;letter-spacing:-.01em;font-weight:400;margin:0}
.msh-h3--sm{font-size:24px}
.msh-lead{font-size:18px;line-height:1.6;color:var(--msh-text-80);margin:0}
.msh-body{font-size:16px;line-height:1.6;color:var(--msh-text-70);margin:0}
.msh-index{font-size:14px;color:var(--msh-text-faint);font-variant-numeric:tabular-nums}
.msh-body a,.msh-lead a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);transition:border-color .18s ease}
.msh-body a:hover,.msh-lead a:hover{border-bottom-color:var(--msh-text)}

.msh-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--msh-sans);font-size:15px;font-weight:600;line-height:1;padding:14px 22px;border-radius:var(--msh-r-pill);border:1px solid transparent;background:var(--msh-text);color:var(--msh-bg);text-decoration:none;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}
.msh-btn:hover,.msh-btn:focus-visible{background:#fff;color:var(--msh-bg)}
.msh-btn--ghost{background:transparent;color:var(--msh-text);border-color:var(--msh-border-hover)}
.msh-btn--ghost:hover,.msh-btn--ghost:focus-visible{background:rgba(255,255,255,.08);color:var(--msh-text)}
.msh-btn--submit{border-radius:var(--msh-r-submit);width:100%;justify-content:center;padding:15px 22px}
.msh-link{font-size:15px;font-weight:500;color:var(--msh-text);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);transition:border-color .18s ease}
.msh-link:hover{border-bottom-color:var(--msh-text)}
.msh a:focus-visible,.msh button:focus-visible,.msh input:focus-visible,.msh select:focus-visible,.msh textarea:focus-visible{outline:2px solid var(--msh-text);outline-offset:3px}

.msh-chip{display:inline-flex;align-items:center;font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--msh-text-85);padding:9px 15px;border-radius:var(--msh-r-pill);background:var(--msh-glass-bg);border:1px solid var(--msh-glass-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:background-color .18s ease}
.msh-chip:hover{background:rgba(255,255,255,.08)}
.msh-glass{background:var(--msh-glass-bg);border:1px solid var(--msh-glass-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}

.msh-card{background:var(--msh-surface);border:1px solid var(--msh-border);border-radius:var(--msh-r-card-l);transition:border-color .18s ease}
.msh-card:hover{border-color:var(--msh-border-hover)}
.msh-card--panel{border-radius:var(--msh-r-panel);background:var(--msh-surface-2);padding:28px}
.msh-card--dashed{border-style:dashed}

.msh-photo{position:relative;overflow:hidden;border-radius:var(--msh-r-card-l);border:1px solid var(--msh-border);transition:border-color .18s ease}
.msh-photo:hover{border-color:var(--msh-border-hover)}
.msh-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(1.15)}
.msh-photo--service img{filter:saturate(1.15) contrast(1.05)}
.msh-photo::after{content:"";position:absolute;inset:0;background:var(--msh-overlay-card);pointer-events:none}
.msh-photo__caption{position:absolute;left:20px;bottom:18px;z-index:1;font-size:22px;font-weight:500;color:var(--msh-text)}
.msh-hero-photo::after{background:var(--msh-overlay-hero)}
.msh-band::after{background:var(--msh-overlay-band)}
.msh-tile{background:var(--msh-tile);border-radius:14px;padding:6px 10px;height:150px;display:flex;align-items:center;justify-content:center}
.msh-tile img{max-height:100%;object-fit:contain;transform:scale(1.25)}

.msh-grid{display:grid;gap:var(--msh-gap)}
.msh-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.msh-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.msh-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.msh-stack{display:flex;flex-direction:column;gap:var(--msh-gap)}
.msh-section{padding-top:var(--msh-section)}
.msh-gutter{padding-left:var(--msh-gutter);padding-right:var(--msh-gutter)}

.msh-field,.msh input[type="text"],.msh input[type="email"],.msh input[type="tel"],.msh select,.msh textarea{width:100%;font-family:var(--msh-sans);font-size:16px;line-height:1.4;color:var(--msh-text);background:var(--msh-input-bg);border:1px solid var(--msh-input-border);border-radius:var(--msh-r-input);padding:15px 16px;transition:border-color .18s ease,background-color .18s ease}
.msh input::placeholder,.msh textarea::placeholder{color:var(--msh-text-faint)}
.msh input:focus,.msh select:focus,.msh textarea:focus{border-color:var(--msh-border-hover);background:rgba(255,255,255,.08)}
.msh select option{background:var(--msh-bg);color:var(--msh-text)}
.msh textarea{min-height:120px;resize:vertical}
.msh .wpcf7-form p{margin:0}
.msh .wpcf7 .wpcf7-response-output{margin:16px 0 0;padding:12px 14px;border-radius:var(--msh-r-input);border:1px solid var(--msh-border);color:var(--msh-text-85);font-size:15px}
.msh .wpcf7-not-valid-tip{color:#e8a49c;font-size:13px;margin-top:6px}
.msh .wpcf7-spinner{filter:invert(1) opacity(.6)}

.msh-widget{position:absolute;left:18px;bottom:18px;z-index:1;display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--msh-r-card);background:var(--msh-glass-bg);border:1px solid var(--msh-glass-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.msh-toggle{width:38px;height:22px;border-radius:var(--msh-r-pill);background:var(--msh-text);position:relative;flex:none}
.msh-toggle::after{content:"";position:absolute;right:3px;top:3px;width:16px;height:16px;border-radius:50%;background:var(--msh-bg)}

.msh-topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px var(--msh-gutter);border-bottom:1px solid rgba(255,255,255,.06);background:var(--msh-bg);font-size:13.5px;color:var(--msh-text-85)}
.msh-topbar__brand{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--msh-text-muted)}
.msh-topbar__right{display:flex;align-items:center;gap:28px}
.msh-topbar a{color:inherit;text-decoration:none}
.msh-topbar a:hover{color:#fff}
.msh-topbar__rule{width:1px;height:16px;background:var(--msh-divider)}

.msh-navwrap{position:sticky;top:0;z-index:20;padding:14px clamp(16px,3vw,48px);background:var(--msh-bg)}
.msh-nav{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 14px 12px 22px;border-radius:var(--msh-r-pill);background:var(--msh-glass-bg);border:1px solid var(--msh-glass-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.msh-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--msh-text)}
.msh-logo__mark{flex:none}
.msh-logo__word{font-size:22px;font-weight:600;letter-spacing:-.01em;white-space:nowrap}
.msh-logo__word span{font-weight:300}
.msh-nav__links{display:flex;align-items:center;gap:clamp(14px,2vw,34px);list-style:none;margin:0;padding:0}
.msh-nav__links a{font-size:16px;font-weight:500;color:var(--msh-text);text-decoration:none;white-space:nowrap;opacity:.9;transition:opacity .18s ease}
.msh-nav__links a:hover{opacity:1}
/* Mobile menu overlay is hidden until the <=900px breakpoint opens it */
.msh-menu{display:none}
.msh-header .msh-menu a{color:var(--msh-text);text-decoration:none}
.msh-burger{display:none;width:44px;height:44px;align-items:center;justify-content:center;border:0;background:transparent;color:var(--msh-text);cursor:pointer}

.msh-footer{background:var(--msh-bg-footer);color:var(--msh-text);padding:56px var(--msh-gutter) 40px;overflow:hidden}
.msh-footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
.msh-footer h4{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--msh-text-muted);margin:0 0 14px}
.msh-footer p,.msh-footer li,.msh-footer a{font-size:15px;line-height:1.6;color:var(--msh-text-70)}
.msh-footer a{text-decoration:none;transition:color .18s ease}
.msh-footer a:hover{color:var(--msh-text)}
.msh-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
/* Specificity has to beat Elementor .elementor img{height:auto} */
.msh-footer img.msh-footer__logo{height:64px;width:auto;margin-bottom:16px;display:block}
.msh-wordmark{font-family:var(--msh-serif);font-size:140px;line-height:.9;color:rgba(238,240,242,.08);white-space:nowrap;overflow:hidden;margin-top:32px;user-select:none;pointer-events:none}

@media (max-width:900px){
  :root{--msh-gutter:16px;--msh-section:64px}
  .msh-topbar{display:none}
  .msh-navwrap{padding-top:56px}
  .msh-nav__links{display:none}
  .msh-nav .msh-btn{display:none}
  .msh-burger{display:inline-flex}
  .msh-menu{position:fixed;inset:0;z-index:40;display:none;flex-direction:column;justify-content:center;padding:24px;background:rgba(13,15,18,.96);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
  .msh-menu[data-open="true"]{display:flex}
  .msh-menu a{font-size:30px;font-weight:300;color:var(--msh-text);text-decoration:none;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.08)}
  .msh-menu__foot{margin-top:auto;display:flex;flex-direction:column;gap:14px}
  .msh-menu__foot .msh-btn{width:100%;justify-content:center}
  .msh-menu__close{position:absolute;top:18px;right:18px;width:44px;height:44px}
  .msh-h1{font-size:40px}
  .msh-h2{font-size:32px}
  .msh-h2--feature{font-size:36px}
  .msh-h3{font-size:24px}
  .msh-lead{font-size:16px}
  .msh-grid-3,.msh-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .msh-grid-2{grid-template-columns:minmax(0,1fr)}
  .msh-grid--services{grid-template-columns:repeat(2,minmax(0,1fr))}
  .msh-grid--services .msh-photo{height:220px}
  .msh-grid--partners{grid-template-columns:repeat(2,minmax(0,1fr))}
  .msh-tile{height:110px}
  .msh-card--panel{padding:28px 22px}
  .msh-hero-photo::after{background:none}
  .msh-hero-photo img{object-fit:contain;background:var(--msh-bg-solid-alt);aspect-ratio:2/1;height:auto}
  .msh-hero-panel{background:var(--msh-bg-solid-alt);padding:28px 22px}
  .msh-band::after{background:rgba(13,15,18,.88)}
  .msh-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .msh-footer__brand{grid-column:1/-1}
  .msh-wordmark{font-size:64px}
}

@media (max-width:520px){
  .msh-h1{font-size:34px}
  .msh-grid-3,.msh-grid-4,.msh-grid--services,.msh-grid--why{grid-template-columns:minmax(0,1fr)}
}

@media (prefers-reduced-motion:reduce){
  .msh *,.msh *::before,.msh *::after{transition:none !important;animation:none !important}
}

/* ---------- Escaping Elementor's boxed container --------------------- */
/* Elementor 4 does not render programmatically-set section/column classes,
   so sections opt in from the inside: any section containing .msh-fullbleed
   loses its max-width and padding. */
.elementor-section:has(.msh-fullbleed){padding:0}
.elementor-section:has(.msh-fullbleed) > .elementor-container{max-width:none;padding:0}
.elementor-section:has(.msh-fullbleed) .elementor-widget-wrap{padding:0}
.elementor-section:has(.msh-fullbleed) .elementor-widget:not(:last-child){margin-bottom:0}

/* ---------- Home hero ------------------------------------------------ */
.msh-hero{background:var(--msh-hero-glow)}
.msh-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--msh-gap);padding:var(--msh-gap) var(--msh-gutter) 0}
.msh-hero__panel{position:relative;width:100%;min-height:640px;border-radius:var(--msh-r-panel);overflow:hidden}
.msh-hero__panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.msh-hero__inner{position:relative;z-index:1;display:flex;flex-direction:column;height:100%;min-height:640px;padding:40px}
.msh-hero__inner .msh-lead{max-width:52ch;margin-top:18px}
.msh-hero__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.msh-hero__chips{display:flex;gap:10px;flex-wrap:wrap}
.msh-hero-formcard{background:var(--msh-surface-2);border:1px solid var(--msh-border);border-radius:var(--msh-r-panel);padding:28px;align-self:start}
.msh-formhead{margin-bottom:20px}
.msh-formhead .msh-eyebrow{display:block;margin-bottom:10px}
.msh-hero-formcard #web-to-lead-form-container{max-width:none!important;margin:0!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important}
.msh-hero-formcard #web-to-lead-form{display:flex;flex-direction:column;gap:12px}
.msh-hero-formcard #web-to-lead-form input{width:100%;font-family:var(--msh-sans);font-size:16px;color:var(--msh-text);background:var(--msh-input-bg);border:1px solid var(--msh-input-border);border-radius:var(--msh-r-input);padding:15px 16px}
.msh-hero-formcard #web-to-lead-form input::placeholder{color:var(--msh-text-faint)}
.msh-hero-formcard #web-to-lead-form button{font-family:var(--msh-sans);font-size:15px;font-weight:600;line-height:1;padding:15px 22px;width:100%;border:0;border-radius:var(--msh-r-submit);background:var(--msh-text);color:var(--msh-bg);cursor:pointer;transition:background-color .18s ease}
.msh-hero-formcard #web-to-lead-form button:hover{background:#fff}
.msh-hero-formcard #form-message{margin-top:12px;font-size:14px;line-height:1.5;color:var(--msh-text-80)}
.msh-hero-formcard #form-message.success{color:#9fd4b0}
.msh-hero-formcard #form-message.error{color:#e8a49c}
@media (max-width:900px){
  .msh-hero__grid{grid-template-columns:minmax(0,1fr);padding:var(--msh-gap) var(--msh-gutter) 0}
  .msh-hero__panel{min-height:0;display:flex;flex-direction:column;background:var(--msh-bg-solid-alt)}
  .msh-hero__panel img{position:static;aspect-ratio:2/1;height:auto;object-fit:contain}
  .msh-hero__inner{min-height:0;padding:24px 20px}
  .msh-hero__foot{flex-direction:column;align-items:flex-start}
  .msh-hero-formcard{padding:24px 20px}
}

/* Elementor 4 will not persist programmatic column deletes, so any sibling
   column inside an opted-in section that holds no .msh content is hidden. */
.elementor-section:has(.msh-fullbleed) > .elementor-container > .elementor-column:not(:has(.msh-fullbleed)){display:none}
.elementor-section:has(.msh-fullbleed) > .elementor-container > .elementor-column:has(.msh-fullbleed){width:100%}

/* ---------- Home page sections --------------------------------------- */
.msh-sec{padding:var(--msh-section) var(--msh-gutter) 0}
.msh-sec--center{text-align:center}
.msh-sec--center > .msh-eyebrow{display:block;margin-bottom:10px}
.msh-sec--center > .msh-h2{margin:0 auto 32px;max-width:24ch}
.msh-sec__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}
.msh-sec__head .msh-eyebrow{display:block;margin-bottom:10px}

.msh-svc{display:block;height:320px;text-decoration:none}
.msh-svc-cta{grid-column:span 2;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:28px;text-decoration:none}

.msh-feature__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--msh-gap)}
.msh-feature__photo{position:relative;min-height:480px}
.msh-feature__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.msh-feature__text{display:flex;flex-direction:column;gap:14px;justify-content:center}
.msh-specs{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column}
.msh-specs li{display:flex;gap:20px;justify-content:space-between;padding:14px 0;border-top:1px solid var(--msh-divider);font-size:15px}
.msh-specs li span:first-child{color:var(--msh-text);font-weight:500;white-space:nowrap}
.msh-specs li span:last-child{color:var(--msh-text-70);text-align:right}
.msh-feature__text .msh-btn{align-self:flex-start;margin-top:6px}

.msh-waterfront{position:relative;min-height:520px}
.msh-waterfront img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.msh-waterfront__inner{position:relative;z-index:1;max-width:640px;display:flex;flex-direction:column;gap:16px;padding:48px;justify-content:center;min-height:520px}
.msh-waterfront__inner .msh-btn{align-self:flex-start}

.msh-segs .msh-seg{display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-height:300px;padding:24px;text-decoration:none;text-align:left}
.msh-seg__body{display:flex;flex-direction:column;gap:10px;align-items:flex-start}

.msh-why__grid{display:grid;grid-template-columns:1fr 2fr;gap:40px;text-align:left}
.msh-why__cells{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.msh-why__cell{padding:24px;border-top:1px solid var(--msh-divider);border-left:1px solid var(--msh-divider);display:flex;flex-direction:column;gap:10px;min-height:150px}

.msh-partners{margin-bottom:var(--msh-section)}

@media (max-width:900px){
  .msh-sec__head{flex-direction:column;align-items:flex-start;gap:12px}
  .msh-svc{height:220px}
  .msh-svc-cta{grid-column:span 2}
  .msh-feature__grid{grid-template-columns:minmax(0,1fr)}
  .msh-feature__grid--rev .msh-feature__photo{order:-1}
  .msh-feature__photo{min-height:0}
  .msh-feature__photo img{position:static;aspect-ratio:4/3;height:auto}
  .msh-specs li{flex-direction:column;gap:4px}
  .msh-specs li span:last-child{text-align:left}
  .msh-waterfront,.msh-waterfront__inner{min-height:0}
  .msh-waterfront img{position:static;aspect-ratio:2/1;height:auto}
  .msh-waterfront__inner{padding:28px 22px}
  .msh-why__grid{grid-template-columns:minmax(0,1fr);gap:24px}
  .msh-why__cells{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){.msh-svc-cta{grid-column:span 1}.msh-why__cells{grid-template-columns:minmax(0,1fr)}}

/* The theme sets its own font on h1-h6, which outranks .msh inheritance.
   Force the sans face on our headings; only <em> stays serif. */
.msh h1,.msh h2,.msh h3,.msh h4,.msh h5,.msh h6,
.msh-h1,.msh-h2,.msh-h3,.msh-eyebrow,.msh-lead,.msh-body,.msh-link,.msh-index,.msh-btn,.msh-chip{font-family:var(--msh-sans)}
.msh h1 em,.msh h2 em,.msh h3 em,.msh .msh-serif{font-family:var(--msh-serif)}
.msh-wordmark{font-family:var(--msh-serif)}

/* Card-shaped links inherit the theme's orange link colour, so state it. */
.msh-svc,.msh-svc-cta,.msh-seg,.msh-tile,.msh-photo{color:var(--msh-text)}
.msh-svc-cta .msh-serif,.msh-seg .msh-h3,.msh-photo__caption{color:var(--msh-text)}
.msh-svc-cta .msh-body,.msh-seg .msh-body{color:var(--msh-text-70)}
.msh-svc-cta .msh-eyebrow{color:var(--msh-text-muted)}
.msh-seg .msh-link{color:var(--msh-text)}

/* ---------- Services page -------------------------------------------- */
.elementor-section:has(.msh-fullbleed),.elementor-section:has(.msh-enq__info){background:var(--msh-bg)}
.msh-pagehead{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end}
.msh-pagehead .msh-eyebrow{display:block;margin-bottom:10px}
.msh-h1--page{font-size:60px}
.msh-srow{display:grid;grid-template-columns:220px 1fr;gap:20px;overflow:hidden;text-decoration:none;color:var(--msh-text)}
.msh-srow__img{position:relative;overflow:hidden;min-height:180px}
.msh-srow__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.15)}
.msh-srow__body{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:22px 22px 22px 0}
.msh-srow__name{font-size:26px}

/* Enquiry: the CF7 widget is a sibling of our markup, so target the section */
.elementor-section:has(.msh-enq__info){padding:0 var(--msh-gutter) var(--msh-section)}
.elementor-section:has(.msh-enq__info) > .elementor-container{max-width:none;padding:0;gap:var(--msh-gap)}
.msh-enq__info{height:100%;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.msh-enq__form{background:var(--msh-surface-2);border:1px solid var(--msh-border);border-top-left-radius:var(--msh-r-panel);border-top-right-radius:var(--msh-r-panel);border-bottom:0;padding:28px 28px 0}
.elementor-section:has(.msh-enq__info) .wpcf7{background:var(--msh-surface-2);border:1px solid var(--msh-border);border-top:0;border-bottom-left-radius:var(--msh-r-panel);border-bottom-right-radius:var(--msh-r-panel);padding:0 28px 28px}
.elementor-section:has(.msh-enq__info) .wpcf7 p{margin:0}
.elementor-section:has(.msh-enq__info) .wpcf7 input[type=text],
.elementor-section:has(.msh-enq__info) .wpcf7 input[type=email],
.elementor-section:has(.msh-enq__info) .wpcf7 input[type=tel],
.elementor-section:has(.msh-enq__info) .wpcf7 select,
.elementor-section:has(.msh-enq__info) .wpcf7 textarea{width:100%;font-family:var(--msh-sans);font-size:16px;color:var(--msh-text);background:var(--msh-input-bg);border:1px solid var(--msh-input-border);border-radius:var(--msh-r-input);padding:15px 16px}
.elementor-section:has(.msh-enq__info) .wpcf7 ::placeholder{color:var(--msh-text-faint)}
.elementor-section:has(.msh-enq__info) .wpcf7 select option{background:var(--msh-bg);color:var(--msh-text)}
.elementor-section:has(.msh-enq__info) .wpcf7 input[type=submit]{font-family:var(--msh-sans);font-size:15px;font-weight:600;padding:15px 22px;width:100%;border:0;border-radius:var(--msh-r-submit);background:var(--msh-text);color:var(--msh-bg);cursor:pointer}
.elementor-section:has(.msh-enq__info) .wpcf7 input[type=submit]:hover{background:#fff}
.elementor-section:has(.msh-enq__info) .wpcf7-response-output{color:var(--msh-text-85);border-color:var(--msh-border);border-radius:var(--msh-r-input);font-size:15px}

@media (max-width:900px){
  .msh-pagehead{grid-template-columns:minmax(0,1fr);gap:16px}
  .msh-h1--page{font-size:40px}
  .msh-srow{grid-template-columns:minmax(0,1fr);gap:0}
  .msh-srow__img{min-height:0}
  .msh-srow__img img{position:static;aspect-ratio:16/9;height:auto}
  .msh-srow__body{padding:20px}
  .elementor-section:has(.msh-enq__info) > .elementor-container{flex-direction:column}
}
@media (max-width:520px){.msh-h1--page{font-size:34px}}

/* The theme also colours h1-h6 near-black, which is invisible on our ground. */
.msh h1,.msh h2,.msh h3,.msh h4,.msh h5,.msh h6{color:var(--msh-text)}
.msh h1 em,.msh h2 em,.msh h3 em{color:inherit}

/* ---------- Lutron page ---------------------------------------------- */
.msh-tier{display:flex;flex-direction:column;gap:10px}
.msh-tier .msh-specs{margin-top:6px}
.msh-steps{list-style:none;counter-reset:st;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.msh-steps li{counter-increment:st;position:relative;padding-left:38px;font-size:15px;line-height:1.6;color:var(--msh-text-70)}
.msh-steps li::before{content:counter(st,decimal-leading-zero);position:absolute;left:0;top:0;font-family:var(--msh-sans);font-size:13px;color:var(--msh-text-faint);font-variant-numeric:tabular-nums}
.msh-pcard{display:flex;flex-direction:column;overflow:hidden}
.msh-pcard__img{border:0;border-radius:0;height:260px}
.msh-pcard__img img{width:100%;height:100%;object-fit:cover}
.msh-pcard__body{display:flex;flex-direction:column;gap:12px;padding:24px}
.msh-faq{display:flex;flex-direction:column;margin-top:8px}
.msh-faq__row{display:grid;grid-template-columns:1fr 1.4fr;gap:32px;padding:22px 0;border-top:1px solid var(--msh-divider)}
.msh-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px}
.msh-cta{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;padding:56px 28px}
.msh-cta__btns{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.msh-sec--last{padding-bottom:var(--msh-section)}
.msh-card--panel > .msh-h3,.msh-card--panel > .msh-h2{margin-bottom:4px}
.msh-card--panel{display:flex;flex-direction:column;gap:12px}
@media (max-width:900px){
  .msh-faq__row{grid-template-columns:minmax(0,1fr);gap:10px}
  .msh-pcard__img{height:200px}
  .msh-cta{padding:40px 22px}
}

/* Blocksy prints its own page title on some pages, which would duplicate
   the H1 our layout already carries. Hide it on redesigned pages only. */
body:has(.msh-fullbleed) .entry-header{display:none}

/* ---------- Waterfront page ------------------------------------------ */
.msh-bigphone{display:block;font-size:40px;line-height:1.1;text-decoration:none;color:var(--msh-text);margin-top:4px}
.msh-bigphone:hover{color:#fff}
.msh-enq__info .msh-eyebrow{display:block}
@media (max-width:900px){.msh-bigphone{font-size:30px}}

/* contact links inside enquiry panel: keep design palette, not theme accent */
.msh-enq__info a,.msh-specs a{color:var(--msh-text);text-decoration:none;border-bottom:1px solid var(--msh-border)}
.msh-enq__info a:hover,.msh-specs a:hover{color:#fff;border-bottom-color:var(--msh-text)}

/* ---- Location / long-form article pages ---------------------------- */
body:has(.msh-article){background:var(--msh-bg)}
body:has(.msh-article) .site-main,body:has(.msh-article) .entry-content,body:has(.msh-article) article,body:has(.msh-article) .ct-container,body:has(.msh-article) .ct-container-full{background:transparent}
body:has(.msh-article) .entry-header{max-width:1290px;margin:0 auto;padding:80px var(--msh-gutter) 0;text-align:left}
body.page:has(.msh-article) .entry-header:before{content:"Service area";display:block;font-family:var(--msh-sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--msh-text-70);margin-bottom:14px}
body:has(.msh-article) .entry-header .page-title,body:has(.msh-article) .entry-header h1{font-family:var(--msh-sans);font-weight:300;letter-spacing:-.02em;font-size:clamp(32px,4.2vw,56px);line-height:1.06;color:var(--msh-text);margin:0}
.msh-article{max-width:1290px;margin:0 auto;padding:24px var(--msh-gutter) 0;font-family:var(--msh-sans);color:var(--msh-text-70);font-size:17px;line-height:1.72}
.msh-article > *{max-width:74ch}
.msh-article h2{font-family:var(--msh-sans);font-weight:300;letter-spacing:-.01em;font-size:clamp(23px,2.5vw,32px);line-height:1.18;color:var(--msh-text);margin:56px 0 12px}
.msh-article h3{font-family:var(--msh-sans);font-weight:500;font-size:19px;color:var(--msh-text);margin:30px 0 8px}
.msh-article p{margin:0 0 16px}
.msh-article strong{color:var(--msh-text);font-weight:500}
.msh-article a{color:var(--msh-text);text-decoration:none;border-bottom:1px solid var(--msh-border)}
.msh-article a:hover{color:#fff;border-bottom-color:var(--msh-text)}
.msh-article ul,.msh-article ol{margin:0 0 18px;padding:0;list-style:none;counter-reset:msh-ol}
.msh-article li{position:relative;padding:14px 20px 14px 48px;margin:8px 0;background:var(--msh-surface);border:1px solid var(--msh-border);border-radius:14px}
.msh-article ul li:before{content:"";position:absolute;left:22px;top:24px;width:6px;height:6px;border-radius:50%;background:var(--msh-tile)}
.msh-article ol li{counter-increment:msh-ol}
.msh-article ol li:before{content:counter(msh-ol,decimal-leading-zero);position:absolute;left:18px;top:14px;font-size:12px;letter-spacing:.08em;color:var(--msh-text-70)}
.msh-enq{max-width:1290px;margin:0 auto}
@media (max-width:900px){.msh-article > *{max-width:none}.msh-article{font-size:16px}}

/* page ground: kill the white gutters on redesigned pages ------------- */
body:has(.msh-fullbleed),body:has(.msh-enq__info),body:has(.msh-article){background:var(--msh-bg)} /* page ground */
body:has(.msh-fullbleed) .site-main,body:has(.msh-fullbleed) .entry-content,body:has(.msh-fullbleed) article,body:has(.msh-fullbleed) [class*="ct-container"]{background:transparent}
body:has(.msh-fullbleed) .entry-content.is-layout-constrained > *{max-width:none}

/* plain photo bands (no overlay text) need an explicit height, otherwise a
   small source image is upscaled to a huge block ------------------------- */
.msh-photo.msh-band:not(:has(.msh-waterfront__inner)){height:clamp(220px,32vw,420px)} /* plain photo bands */
.msh-photo.msh-band:not(:has(.msh-waterfront__inner)) > img{height:100%;object-fit:cover}

/* article header scope: posts get theme meta, not the location eyebrow ---- */
body:has(.msh-article) .entry-header a{color:var(--msh-text-70);text-decoration:none} /* article header scope */
body:has(.msh-article) .entry-header a:hover{color:var(--msh-text)}
body:has(.msh-article) .entry-header .entry-meta,body:has(.msh-article) .entry-header .ct-breadcrumbs{color:var(--msh-text-70)}
body:has(.msh-article) .hero-section,body:has(.msh-article) .page-title-wrap{background:transparent}

/* blog sidebar on dark ground: Blocksy paints near-black serif text ------- */
body:has(.msh-article) .ct-sidebar{color:var(--msh-text-70)} /* blog sidebar */
body:has(.msh-article) .ct-sidebar h1,body:has(.msh-article) .ct-sidebar h2,body:has(.msh-article) .ct-sidebar h3,body:has(.msh-article) .ct-sidebar h4{font-family:var(--msh-sans);font-weight:400;color:var(--msh-text)}
body:has(.msh-article) .ct-sidebar a{font-family:var(--msh-sans);color:var(--msh-text);text-decoration:none}
body:has(.msh-article) .ct-sidebar a:hover{color:#fff}
body:has(.msh-article) .ct-sidebar time,body:has(.msh-article) .ct-sidebar .ct-meta-element{color:var(--msh-text-70)}
body:has(.msh-article) .ct-sidebar .ct-widget{border-bottom:1px solid var(--msh-border);padding-bottom:18px}
body:has(.msh-article) .hero-section{background:transparent}
body:has(.msh-article) .hero-section::before,body:has(.msh-article) .hero-section::after{background:transparent}
