/* ==========================================================================
   Walden — complete stylesheet
   One source of truth. No layered overrides.
   ========================================================================== */

:root{
  --walden-grad: linear-gradient(90deg,#A810B0 0%,#FF00C1 26%,#FF2A92 48%,#EF5B76 70%,#F7903C 100%);
  --w-gap: 1.25rem;
}

/* --------------------------------------------------------------------------
   1. TYPOGRAPHIC RHYTHM
   Every flow element shares one left edge. Nothing is re-centred or re-indented.
   -------------------------------------------------------------------------- */
h1,h2,h3,h4,h5,h6,.wp-block-post-title{ text-wrap:balance; }
p{ text-wrap:pretty; }

h2.wp-block-heading{ margin-bottom:.75rem; }
h3.wp-block-heading{ margin-top:1.9rem; margin-bottom:.45rem; }
h4.wp-block-heading{ margin-top:1.5rem; margin-bottom:.35rem; }
p + h2.wp-block-heading{ margin-top:2.6rem; }
p + h3.wp-block-heading{ margin-top:2rem; }

/* --------------------------------------------------------------------------
   2. LISTS — bullets sit on the same left edge as body text
   -------------------------------------------------------------------------- */
.wp-block-post-content ul,
.wp-block-post-content ol,
.entry-content ul,
.entry-content ol,
main ul:not(.wp-block-navigation__container):not(.wp-block-post-template):not(.wp-block-page-list),
main ol:not(.wp-block-navigation__container):not(.wp-block-post-template){
  padding-left:0;
  margin:0 0 1.1rem;
  list-style:none;
}
main ul:not(.wp-block-navigation__container):not(.wp-block-post-template):not(.wp-block-page-list) > li,
main ol:not(.wp-block-navigation__container):not(.wp-block-post-template) > li{
  position:relative;
  padding-left:1.6rem;
  margin-bottom:.5rem;
}
/* round marker, optically aligned to the first text line */
main ul:not(.wp-block-navigation__container):not(.wp-block-post-template):not(.wp-block-page-list) > li::before{
  content:"";
  position:absolute;
  left:.25rem;
  top:.62em;
  width:7px;height:7px;border-radius:50%;
  background:var(--wp--preset--color--accent);
}
/* numbered lists keep their numerals, same left edge */
main ol:not(.wp-block-navigation__container):not(.wp-block-post-template){ counter-reset:w-ol; }
main ol:not(.wp-block-navigation__container):not(.wp-block-post-template) > li{ counter-increment:w-ol; padding-left:1.9rem; }
main ol:not(.wp-block-navigation__container):not(.wp-block-post-template) > li::before{
  content:counter(w-ol) ".";
  position:absolute;left:0;top:0;
  font-weight:800;color:var(--wp--preset--color--secondary);
  font-variant-numeric:tabular-nums;
}
/* nested lists indent once, consistently */
main li > ul, main li > ol{ margin:.5rem 0 .25rem; }
main li > ul > li{ padding-left:1.4rem; }
main li > ul > li::before{ background:var(--wp--preset--color--secondary); width:6px;height:6px; }

/* on dark sections the marker flips to the light accent */
.wp-block-cover li::before,
.has-contrast-background-color li::before,
.has-primary-background-color li::before,
.has-primary-dark-background-color li::before{ background:var(--wp--preset--color--accent) !important; }

/* footer and nav lists opt out entirely */
.walden-footer ul{ list-style:none; padding-left:0; margin:0; display:grid; gap:.55rem; }
.walden-footer li{ padding-left:0 !important; margin:0 !important; }
.walden-footer li::before{ display:none !important; }

/* --------------------------------------------------------------------------
   3. HEADER
   -------------------------------------------------------------------------- */
.walden-header{
  position:sticky; top:0; z-index:60;
  background:rgba(4,24,15,.94);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(134,211,166,.16);
}
.walden-header a{ color:#DCEAE1; text-decoration:none; }
.walden-header a:hover{ color:#fff; }
.walden-header .wp-block-site-logo img{ height:30px; width:auto; }
.walden-header .wp-block-navigation{ font-size:.85rem; font-weight:700; }
.walden-header .wp-block-navigation a{ color:#DCEAE1 !important; }
.walden-header .wp-block-navigation a:hover{ color:#fff !important; }
.walden-header .wp-block-navigation__submenu-container{
  background:#07281A; border:1px solid rgba(134,211,166,.2);
  border-radius:14px; padding:8px; min-width:290px;
  box-shadow:0 30px 70px -25px rgba(0,0,0,.85); overflow:hidden;
}
.walden-header .wp-block-navigation__submenu-container::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--walden-grad);
}
.walden-header .wp-block-navigation__submenu-container li{ padding-left:0 !important; }
.walden-header .wp-block-navigation__submenu-container li::before{ display:none !important; }
.walden-header .wp-block-navigation__submenu-container a{
  border-radius:9px; padding:10px 14px !important; color:#DCEAE1 !important;
}
.walden-header .wp-block-navigation__submenu-container a:hover{
  background:rgba(134,211,166,.12); color:var(--wp--preset--color--accent) !important;
}
.walden-tel{ font-weight:800; white-space:nowrap; color:#fff !important; text-decoration:none !important; }
.walden-tel small{
  display:block; font-size:.62rem; letter-spacing:.16em; font-weight:700;
  color:var(--wp--preset--color--mint); text-transform:uppercase;
}

/* --------------------------------------------------------------------------
   4. HERO / COVER
   -------------------------------------------------------------------------- */
.wp-block-cover.alignfull{ min-height:min(72vh,640px); }
.wp-block-cover .wp-block-cover__image-background{ filter:saturate(.8); }
.wp-block-cover .wp-block-cover__background{
  background:linear-gradient(100deg,rgba(4,24,15,.88) 0%,rgba(4,24,15,.58) 50%,rgba(4,24,15,.34) 100%) !important;
  opacity:1 !important;
}
.wp-block-cover__inner-container{ position:relative; z-index:3; }
.wp-block-cover h1,.wp-block-cover h2,.wp-block-cover h3,.wp-block-cover h4,
.wp-block-cover p,.wp-block-cover li,.wp-block-cover strong{
  color:#fff !important; text-shadow:0 2px 18px rgba(0,0,0,.35);
}
.wp-block-cover a:not(.wp-block-button__link){ color:#FFC58A !important; }
.wp-block-cover .wp-block-button__link{ color:#231402 !important; text-shadow:none; }
.wp-block-cover .is-style-outline .wp-block-button__link{ color:#fff !important; }

/* --------------------------------------------------------------------------
   5. KICKER + GRADIENT RULE
   -------------------------------------------------------------------------- */
.is-style-walden-kicker{
  display:flex; align-items:center; gap:10px;
  font-size:.72rem !important; font-weight:800; letter-spacing:.2em;
  text-transform:uppercase; color:var(--wp--preset--color--secondary);
  margin-bottom:.7rem;
}
.is-style-walden-kicker::before{
  content:""; width:26px; height:3px; border-radius:3px;
  background:var(--walden-grad); flex:none;
}
.wp-block-cover .is-style-walden-kicker,
.has-contrast-background-color .is-style-walden-kicker,
.has-primary-background-color .is-style-walden-kicker{ color:var(--wp--preset--color--mint); }
.walden-rule{ display:block; width:80px; height:3px; border-radius:3px; background:var(--walden-grad); }

/* --------------------------------------------------------------------------
   6. CARDS
   -------------------------------------------------------------------------- */
.walden-card,.is-style-walden-card{
  background:#fff; border:1px solid var(--wp--preset--color--line);
  border-radius:14px; padding:var(--wp--preset--spacing--40);
  position:relative; overflow:hidden; height:100%;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.walden-card::before,.is-style-walden-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:var(--walden-grad); z-index:2;
}
.walden-card:hover,.is-style-walden-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 50px -22px rgba(4,24,15,.45);
  border-color:var(--wp--preset--color--mint);
}
.walden-card > *:first-child{ margin-top:0; }
.walden-card > *:last-child{ margin-bottom:0; }

/* service cards with a photo run edge to edge */
.walden-svc{ display:flex; flex-direction:column; padding:0 !important; }
.walden-svc .wp-block-image{ margin:0; }
.walden-svc .wp-block-image img{ width:100%; aspect-ratio:3/2; object-fit:cover; display:block; border-radius:0; }
.walden-svc h3{ margin:1.1rem 1.25rem .4rem; }
.walden-svc p{ margin:0 1.25rem .9rem; color:var(--wp--preset--color--muted); }
.walden-svc ul{ margin:0 1.25rem 1.35rem !important; }
.walden-svc ul li a{ text-decoration:none; font-weight:700; }

.walden-step-num{
  font-family:'Michroma',sans-serif; font-size:.7rem !important; letter-spacing:.1em;
  background:var(--walden-grad); -webkit-background-clip:text; background-clip:text;
  color:transparent; margin-bottom:.7rem;
}

/* --------------------------------------------------------------------------
   7. TRUST STRIP
   -------------------------------------------------------------------------- */
.walden-trust .wp-block-column{ border-left:2px solid rgba(134,211,166,.28); padding-left:1.1rem; }
.walden-trust p{ margin:0; }
.walden-trust p strong{ color:#fff; }
.walden-trust .has-small-font-size{ color:#9BB8A7 !important; margin-top:.25rem; }

/* --------------------------------------------------------------------------
   8. QUERY GRIDS — projects, areas, posts
   -------------------------------------------------------------------------- */
.wp-block-post-template{ gap:1.6rem !important; padding-left:0 !important; margin:0; list-style:none; }
.wp-block-post-template > li{ padding-left:0 !important; margin:0 !important; }
.wp-block-post-template > li::before{ display:none !important; }

.walden-projects .wp-block-post{
  background:#fff; border:1px solid var(--wp--preset--color--line);
  border-radius:14px; overflow:hidden; display:flex; flex-direction:column;
  position:relative; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.walden-projects .wp-block-post::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:var(--walden-grad); z-index:2;
}
.walden-projects .wp-block-post:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 50px -22px rgba(4,24,15,.45);
  border-color:var(--wp--preset--color--mint);
}
.walden-projects .wp-block-post-featured-image{ margin:0 !important; overflow:hidden; }
.walden-projects .wp-block-post-featured-image a{ display:block; line-height:0; }
.walden-projects .wp-block-post-featured-image img{
  width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
  border-radius:0 !important; transition:transform .5s ease;
}
.walden-projects .wp-block-post:hover .wp-block-post-featured-image img{ transform:scale(1.05); }
.walden-projects .wp-block-post-title{ margin:1.1rem 1.25rem .55rem !important; line-height:1.25; }
.walden-projects .wp-block-post-title a{
  text-decoration:none; color:var(--wp--preset--color--ink) !important; font-weight:800;
}
.walden-projects .wp-block-post-title a:hover{ color:var(--wp--preset--color--accent-dark) !important; }
.walden-projects .wp-block-post-excerpt{
  margin:0 1.25rem 1.35rem !important; color:var(--wp--preset--color--muted);
}

.walden-areas .wp-block-post-title{ margin:0 !important; }
.walden-areas .wp-block-post-title a{
  display:block; padding:11px 18px; border-radius:100px; background:#fff;
  border:1px solid var(--wp--preset--color--line); font-weight:700;
  text-decoration:none; color:var(--wp--preset--color--ink); text-align:center;
  transition:.16s;
}
.walden-areas .wp-block-post-title a:hover{
  background:var(--wp--preset--color--primary); color:#fff;
  border-color:var(--wp--preset--color--primary); transform:translateY(-2px);
}
.wp-block-query .wp-block-post-title a{ text-decoration:none; color:var(--wp--preset--color--ink); }
.wp-block-query .wp-block-post-title a:hover{ color:var(--wp--preset--color--accent-dark); }

/* --------------------------------------------------------------------------
   9. FAQ / DETAILS
   -------------------------------------------------------------------------- */
.wp-block-details{
  background:#fff; border:1px solid var(--wp--preset--color--line);
  border-radius:12px; padding:1rem 1.25rem; margin-bottom:.7rem;
}
.wp-block-details summary{
  font-weight:800; cursor:pointer; list-style:none;
  display:flex; justify-content:space-between; gap:1rem; align-items:flex-start;
}
.wp-block-details summary::-webkit-details-marker{ display:none; }
.wp-block-details summary::after{
  content:"+"; color:var(--wp--preset--color--secondary); font-weight:800; flex:none;
}
.wp-block-details[open] summary::after{ content:"\2212"; }
.wp-block-details > *:not(summary){ margin-top:.8rem; }
.wp-block-details > *:last-child{ margin-bottom:0; }

/* --------------------------------------------------------------------------
   10. MEDIA
   -------------------------------------------------------------------------- */
.wp-block-image img{ border-radius:12px; height:auto; }
.walden-framed img{ border-radius:14px; width:100%; box-shadow:0 18px 50px -22px rgba(4,24,15,.5); }
.wp-block-media-text{ gap:clamp(1rem,3vw,2.5rem); align-items:center; }
.wp-block-media-text__content{ padding:0 !important; }
.wp-block-media-text__media img{ border-radius:12px; }
.wp-block-media-text__media:empty{ display:none; }
.wp-block-gallery figure img{ border-radius:10px; }
.wp-element-caption{ font-size:.82rem; color:var(--wp--preset--color--muted); }

.walden-map{ margin-inline:auto; }
.walden-map iframe{
  width:100%; display:block; border-radius:14px;
  border:1px solid var(--wp--preset--color--line);
}

/* --------------------------------------------------------------------------
   11. BUTTONS, TABLES, QUOTES
   -------------------------------------------------------------------------- */
.wp-block-buttons{ gap:.7rem; }
.wp-block-button.is-style-outline .wp-block-button__link{
  border:2px solid currentColor; background:transparent; color:inherit;
}
.wp-block-table table{ border-collapse:collapse; width:100%; }
.wp-block-table th{
  background:var(--wp--preset--color--primary); color:#fff; text-align:left;
  padding:12px 14px; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase;
}
.wp-block-table td{ padding:11px 14px; border-top:1px solid var(--wp--preset--color--line); }
.wp-block-quote{ border-left:4px solid var(--wp--preset--color--accent); padding-left:1.4rem; font-style:normal; }

.walden-nap{ font-weight:700; }
.walden-nap a{ text-decoration:none; }
.walden-contact-cta{
  background:#fff; border:1px solid var(--wp--preset--color--line);
  border-radius:14px; padding:1.5rem; max-width:520px;
}
.wp-block-cover .walden-contact-cta{
  background:rgba(4,24,15,.6); border-color:rgba(134,211,166,.35);
}
.walden-contact-cta .wp-block-buttons{ margin-top:.8rem; }
.walden-contact-cta > *:first-child{ margin-top:0; }

/* --------------------------------------------------------------------------
   12. FOOTER
   -------------------------------------------------------------------------- */
.walden-footer{ background:#07281A; color:#A9C6B6; font-size:.9rem; }
.walden-footer a{ color:#A9C6B6; text-decoration:none; }
.walden-footer a:hover{ color:var(--wp--preset--color--accent); }
.walden-footer h2,.walden-footer h3,.walden-footer h4,.walden-footer strong{
  color:var(--wp--preset--color--base);
}
.walden-footer h4{ margin-top:0; }
.walden-footer .wp-block-site-logo img{ height:32px; width:auto; }

/* --------------------------------------------------------------------------
   13. RESPONSIVE
   -------------------------------------------------------------------------- */
@media (max-width:781px){
  .wp-block-cover.alignfull{
    min-height:auto;
    padding-top:var(--wp--preset--spacing--60) !important;
    padding-bottom:var(--wp--preset--spacing--60) !important;
  }
  .walden-trust .wp-block-column{ border-left:0; padding-left:0; }
  .walden-header .wp-block-navigation__responsive-container.is-menu-open{ background:#04180F; }
  .walden-header .wp-block-navigation__responsive-container.is-menu-open a{ color:#fff !important; }
  .wp-block-media-text{ gap:1.2rem; }
  .walden-contact-cta{ max-width:none; }
}

/* == LIST OVERRIDE == */
/* Core block styles win on specificity, so the list rules are restated here
   with enough weight to hold. Bullets share the body-text left edge. */
main ul.wp-block-list,
main ol.wp-block-list,
.wp-block-post-content ul.wp-block-list,
.wp-block-post-content ol.wp-block-list{
  padding-left:0 !important;
  margin:0 0 1.15rem !important;
  list-style:none !important;
}
main ul.wp-block-list > li,
.wp-block-post-content ul.wp-block-list > li{
  position:relative !important;
  padding-left:1.6rem !important;
  margin-bottom:.5rem !important;
  list-style:none !important;
}
main ul.wp-block-list > li::marker,
main ol.wp-block-list > li::marker{ content:"" !important; }
main ul.wp-block-list > li::before,
.wp-block-post-content ul.wp-block-list > li::before{
  content:"" !important;
  position:absolute !important;
  left:.28rem !important;
  top:.62em !important;
  width:7px !important; height:7px !important;
  border-radius:50% !important;
  background:var(--wp--preset--color--accent) !important;
  display:block !important;
}
main ol.wp-block-list{ counter-reset:w-ol !important; }
main ol.wp-block-list > li{
  position:relative !important; counter-increment:w-ol !important;
  padding-left:1.9rem !important; margin-bottom:.5rem !important; list-style:none !important;
}
main ol.wp-block-list > li::before{
  content:counter(w-ol) "." !important;
  position:absolute !important; left:0 !important; top:0 !important;
  font-weight:800 !important; color:var(--wp--preset--color--secondary) !important;
}
main li > ul.wp-block-list{ margin:.5rem 0 .25rem !important; }
/* dark sections */
.wp-block-cover ul.wp-block-list > li::before,
.has-contrast-background-color ul.wp-block-list > li::before,
.has-primary-background-color ul.wp-block-list > li::before{
  background:var(--wp--preset--color--accent) !important;
}
/* nav, post grids and footer opt out */
.wp-block-navigation ul, .wp-block-navigation li,
.wp-block-post-template, .wp-block-post-template > li,
.walden-footer ul, .walden-footer li{
  padding-left:0 !important; list-style:none !important;
}
.wp-block-navigation li::before,
.wp-block-post-template > li::before,
.walden-footer li::before{ display:none !important; content:none !important; }

/* == EMPTY COLUMN == */
/* A column holding nothing renders as dead space and squeezes its sibling.
   Collapse it so the remaining column takes the full width. */
.wp-block-column:empty{ display:none !important; }
.wp-block-column:not(:has(img)):not(:has(p)):not(:has(h1)):not(:has(h2)):not(:has(h3)):not(:has(h4)):not(:has(ul)):not(:has(ol)):not(:has(iframe)):not(:has(figure)):not(:has(.wp-block-buttons)){
  display:none !important;
}
/* when only one column is left it should span the row */
.wp-block-columns:has(> .wp-block-column:only-child) > .wp-block-column{ flex-basis:100% !important; }

/* == MEDIA TEXT == */
/* An image-beside-text block squeezed into the narrow text column gives two
   cramped half-columns. These always span the wide measure. */
.wp-block-media-text{
  width:100% !important;
  max-width:var(--wp--style--global--wide-size) !important;
  margin-left:auto !important; margin-right:auto !important;
  grid-template-columns:1fr 1fr !important;
  gap:clamp(1.2rem,3.5vw,3rem);
  align-items:center;
}
.wp-block-media-text.has-media-on-the-right{ grid-template-columns:1fr 1fr !important; }
.wp-block-media-text__media{ margin:0 !important; }
.wp-block-media-text__media img{
  width:100% !important; height:auto !important; display:block !important;
  border-radius:14px; object-fit:cover;
}
.wp-block-media-text__content{ padding:0 !important; }
.wp-block-media-text__content > *:first-child{ margin-top:0; }
.wp-block-media-text__content > *:last-child{ margin-bottom:0; }
/* two-column blocks in a narrow container get the same treatment */
.wp-block-group.is-layout-constrained > .wp-block-columns{
  width:100%;
  max-width:var(--wp--style--global--wide-size);
  margin-left:auto; margin-right:auto;
}
@media (max-width:781px){
  .wp-block-media-text{ grid-template-columns:1fr !important; }
  .wp-block-media-text.has-media-on-the-right{ grid-template-columns:1fr !important; }
  .wp-block-media-text__media{ grid-row:1 !important; grid-column:1 !important; }
  .wp-block-media-text__content{ grid-row:2 !important; grid-column:1 !important; }
}

/* == BANDS == */
/* Full-width photo bands sit between sections at a fixed cinematic ratio so no
   page ends up with an 800px slab of image. */
.walden-band{ margin:0 auto !important; width:100%; }
.walden-band img{
  width:100% !important;
  aspect-ratio:21/9 !important;
  max-height:440px !important;
  object-fit:cover !important;
  display:block !important;
  border-radius:14px !important;
}
@media (max-width:781px){
  .walden-band img{ aspect-ratio:16/10 !important; max-height:280px !important; }
}
/* every image in body copy behaves */
.wp-block-post-content .wp-block-image img{ max-height:560px; object-fit:cover; }

/* == CENTERING FIX == */
.is-layout-constrained > *:not(.alignleft):not(.alignright):not(.alignfull),
.is-layout-constrained > .alignwide{margin-left:auto !important;margin-right:auto !important;}
.is-layout-constrained > .alignfull{margin-left:calc(-1 * var(--wp--style--root--padding-left, 0px)) !important;margin-right:calc(-1 * var(--wp--style--root--padding-right, 0px)) !important;}

/* == MOBILE OVERHAUL v3.2 == */
@media (max-width:781px){

  /* ---- compact, sticky, single-row header ---- */
  .walden-header{
    position:sticky; top:0; z-index:900;
    padding-top:10px !important; padding-bottom:10px !important;
    box-shadow:0 1px 0 rgba(134,211,166,.16);
  }
  .admin-bar .walden-header{ top:46px; }
  .walden-header > .wp-block-group{
    display:flex !important; flex-wrap:nowrap !important;
    align-items:center !important; justify-content:space-between !important; gap:12px !important;
  }
  .walden-header .wp-block-site-logo{ flex:0 0 auto; }
  .walden-header .wp-block-site-logo img{ width:118px !important; height:auto !important; }
  /* phone + quote cluster moves to the sticky bottom bar */
  .walden-header > .wp-block-group > .wp-block-group{ display:none !important; }
  .walden-header .wp-block-navigation{ margin-left:auto; flex:0 0 auto; }
  .walden-header .wp-block-navigation__responsive-container-open{
    padding:6px !important; width:42px; height:42px;
    display:flex !important; align-items:center; justify-content:center;
  }
  .walden-header .wp-block-navigation__responsive-container-open svg{ width:26px; height:26px; }

  /* ---- overlay menu ---- */
  .walden-header .is-menu-open .wp-block-navigation__responsive-container-content{
    padding-top:6px; width:100%;
  }
  .walden-header .is-menu-open .wp-block-navigation__container,
  .walden-header .is-menu-open .wp-block-navigation__submenu-container{
    gap:0 !important; width:100%; align-items:stretch !important;
  }
  .walden-header .is-menu-open .wp-block-navigation__responsive-container-close{
    width:44px; height:44px;
  }
  .walden-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item{
    width:100%; position:relative;
    border-bottom:1px solid rgba(255,255,255,.12);
  }
  .walden-header .is-menu-open .wp-block-navigation-item__content{
    display:block; width:100%;
    padding:15px 56px 15px 2px !important;
    font-size:1.06rem; font-weight:650; line-height:1.25; color:#fff !important;
  }
  /* submenus collapsed until tapped */
  .walden-header .is-menu-open .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-container{
    display:none !important;
  }
  .walden-header .is-menu-open .wp-block-navigation-item.has-child.walden-open > .wp-block-navigation__submenu-container{
    display:block !important;
    position:static !important; opacity:1 !important; visibility:visible !important;
    background:transparent !important; border:0 !important; box-shadow:none !important;
    padding:0 0 10px !important; margin:0 !important; min-width:0 !important;
  }
  .walden-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item{
    border-bottom:0 !important; width:100%;
  }
  .walden-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
    padding:12px 8px 12px 18px !important;
    font-size:.98rem; font-weight:500; opacity:.86;
    border-left:2px solid rgba(134,211,166,.35);
  }
  .walden-header .is-menu-open .wp-block-navigation-submenu__toggle{
    position:absolute !important; top:0; right:0;
    width:56px; height:53px; margin:0 !important; padding:0 !important;
    display:flex !important; align-items:center; justify-content:center;
    background:transparent !important; border:0 !important; color:#fff !important;
  }
  .walden-header .is-menu-open .wp-block-navigation-submenu__toggle svg{
    width:17px; height:17px; transition:transform .18s ease;
  }
  .walden-header .is-menu-open .walden-open > .wp-block-navigation-submenu__toggle svg{
    transform:rotate(180deg);
  }

  /* ---- sticky call / quote bar ---- */
  .walden-mobilebar{
    position:fixed; left:0; right:0; bottom:0; z-index:950;
    display:grid; grid-template-columns:1fr 1fr; gap:8px;
    padding:9px 12px calc(9px + env(safe-area-inset-bottom, 0px));
    background:rgba(4,24,15,.97);
    border-top:1px solid rgba(134,211,166,.22);
  }
  .walden-mobilebar a{
    display:flex; align-items:center; justify-content:center;
    min-height:46px; border-radius:999px;
    font-weight:700; font-size:.95rem; text-decoration:none; letter-spacing:.01em;
  }
  .walden-mobilebar__call{ color:#fff; border:1.5px solid rgba(255,255,255,.55); }
  .walden-mobilebar__quote{ background:var(--wp--preset--color--accent,#F7903C); color:#04180F; }
  body.has-walden-mobilebar{ padding-bottom:76px; }
  html.has-modal-open .walden-mobilebar{ display:none !important; }

  /* ---- type scale ---- */
  main h1, main .wp-block-cover h1{
    font-size:clamp(1.85rem, 7.4vw, 2.15rem) !important;
    line-height:1.14 !important; letter-spacing:-.01em;
  }
  main h2{ font-size:clamp(1.42rem, 5.6vw, 1.66rem) !important; line-height:1.2 !important; }
  main h3{ font-size:1.14rem !important; }
  main p, main li{ font-size:1.02rem; line-height:1.62; }
  .walden-band img{ border-radius:12px !important; }
}

@media (min-width:782px){
  .walden-mobilebar{ display:none !important; }
  body.has-walden-mobilebar{ padding-bottom:0; }
}

/* == ACCORDION BTN == */
@media (max-width:781px){
  .walden-header .wp-block-navigation-submenu__toggle{ display:none !important; }
  .walden-header .walden-acc-btn{ display:none; }
  .walden-header .is-menu-open .walden-acc-btn{
    position:absolute !important; top:0; right:0; width:58px; height:53px;
    margin:0; padding:0; display:flex !important; align-items:center; justify-content:center;
    background:transparent; border:0; color:#fff; cursor:pointer; -webkit-appearance:none;
  }
  .walden-header .is-menu-open .walden-acc-btn svg{ transition:transform .18s ease; }
  .walden-header .is-menu-open .walden-open > .walden-acc-btn svg{ transform:rotate(180deg); }
}

/* == HEADER CONTAINING BLOCK FIX == */
/* backdrop-filter on a sticky header creates a containing block, which traps the
   fixed-position mobile menu overlay inside the header box. Solid bg on phones. */
@media (max-width:781px){
  .walden-header{ backdrop-filter:none !important; -webkit-backdrop-filter:none !important; background:#04180F !important; }
  .walden-header .wp-block-navigation__responsive-container.is-menu-open{
    background:#04180F !important; padding:20px 22px 32px !important; overflow-y:auto !important;
  }
}

/* == MENU ROW FIX == */
@media (max-width:781px){
  .walden-header .is-menu-open .wp-block-navigation__container,
  .walden-header .is-menu-open .wp-block-navigation__submenu-container,
  .walden-header .is-menu-open .wp-block-navigation-item{
    justify-content:flex-start !important; align-items:stretch !important;
  }
  .walden-header .is-menu-open .wp-block-navigation-item__content{
    box-sizing:border-box !important; width:100% !important; flex:1 1 auto !important;
  }
  .walden-header .is-menu-open .wp-block-navigation__responsive-container-content{
    align-items:stretch !important; justify-content:flex-start !important;
  }
}

/* == MENU POLISH == */
@media (max-width:781px){
  .walden-header .is-menu-open .wp-block-navigation__submenu-container::before{ display:none !important; content:none !important; }
  .walden-header .walden-acc-btn svg{ width:18px !important; height:18px !important; flex:0 0 18px; }
}

/* == HAMBURGER COLOUR == */
.walden-header .wp-block-navigation__responsive-container-open,
.walden-header .wp-block-navigation__responsive-container-close{ color:#fff !important; }
.walden-header .wp-block-navigation__responsive-container-open svg,
.walden-header .wp-block-navigation__responsive-container-close svg{ fill:#fff !important; }

/* == CARD FLUSH LEFT == */
/* must out-specify the global centering rule (0,4,0) */
.walden-card > *:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.walden-nope),
.walden-card > * > *:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.walden-nope){
  margin-left:0 !important; margin-right:0 !important;
  max-width:100% !important; text-align:left !important;
}
.walden-card > h1:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.walden-nope),.walden-card > h2:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.walden-nope),.walden-card > h3:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.walden-nope),.walden-card > h4:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.walden-nope),
.walden-card > p:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.walden-nope),.walden-card > ul:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.walden-nope),.walden-card > ol:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.walden-nope){ width:auto !important; }
.walden-card figure:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.walden-nope),.walden-card figure img:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.walden-nope){ width:100% !important; }

/* == MOBILE MENU ACCORDION (details) == */
@media (max-width:781px){
  .walden-header details.walden-acc{ width:100%; display:block; }
  .walden-header summary.walden-acc-sum{
    display:flex !important; align-items:center; justify-content:space-between;
    width:100%; padding:15px 2px; margin:0; cursor:pointer;
    font-size:1.06rem; font-weight:650; line-height:1.25; color:#fff;
    list-style:none; -webkit-tap-highlight-color:transparent; touch-action:manipulation;
  }
  .walden-header summary.walden-acc-sum::-webkit-details-marker{ display:none; }
  .walden-header summary.walden-acc-sum::marker{ content:""; }
  .walden-header .walden-acc-chev{ flex:0 0 18px; margin-right:14px; transition:transform .18s ease; }
  .walden-header details.walden-acc[open] .walden-acc-chev{ transform:rotate(180deg); }
  .walden-header details.walden-acc:not([open]) > .wp-block-navigation__submenu-container{ display:none !important; }
  .walden-header details.walden-acc[open] > .wp-block-navigation__submenu-container{
    display:block !important; position:static !important; opacity:1 !important; visibility:visible !important;
    background:transparent !important; border:0 !important; box-shadow:none !important;
    padding:0 0 10px !important; margin:0 !important; min-width:0 !important; width:100% !important;
  }
  .walden-header details.walden-acc .wp-block-navigation-item{ width:100%; border-bottom:0 !important; }
  .walden-header details.walden-acc .wp-block-navigation-item__content{
    display:block !important; box-sizing:border-box; width:100% !important;
    padding:12px 8px 12px 18px !important; font-size:.98rem; font-weight:500; opacity:.9;
    border-left:2px solid rgba(134,211,166,.35); color:#fff !important;
  }
  .walden-header details.walden-acc .walden-acc-all .wp-block-navigation-item__content{ font-weight:650; opacity:1; }
}

/* == HEADINGS ON DARK == */
/* Headings inherit the light text colour when a section sets one, so a
   dark-green band never gets near-black type on it. */
.has-base-color h1,.has-base-color h2,.has-base-color h3,
.has-base-color h4,.has-base-color h5,.has-base-color h6,
.has-primary-background-color h1,.has-primary-background-color h2,
.has-primary-background-color h3,.has-primary-background-color h4,
.has-primary-background-color h5,.has-primary-background-color h6{
  color:var(--wp--preset--color--base,#ffffff) !important;
}

/* == SERVICE CARD SIDE SPACING ==
   .walden-svc has no card padding so its photo can run edge to edge, and its
   text relied on side margins, which the card flush-left rule above strips.
   The inset is restored with padding, which that rule does not touch. */
.walden-card.walden-svc > h3,
.walden-card.walden-svc > p,
.walden-card.walden-svc > ul,
.walden-card.walden-svc > ol{
	padding-left:1.25rem !important;
	padding-right:1.25rem !important;
}
.walden-card.walden-svc > ul li,
.walden-card.walden-svc > ol li{
	padding-left:0;
}

/* == DRONE VIDEO == portrait clip, framed and centred, caption beneath */
.walden-dronevid{
	max-width:420px;
	margin:0 auto 1.9rem;
}
.walden-dronevid__v{
	width:100%;
	height:auto;
	aspect-ratio:720/1280;
	object-fit:cover;
	display:block;
	border-radius:14px;
	background:#04180F;
	box-shadow:0 18px 40px rgba(4,24,15,.28);
}
.walden-dronevid__cap{
	margin:.85rem 0 0;
	font-size:.86rem;
	line-height:1.45;
	color:var(--wp--preset--color--muted);
	text-align:center;
}
@media (min-width:900px){
	.walden-dronevid{ max-width:460px; }
}
@media (prefers-reduced-motion:reduce){
	.walden-dronevid__v{ animation:none; }
}