/*
Theme Name:   The Med Spa Wimberley
Theme URI:    https://themedspawimberley.com
Description:  Divi child theme for The Med Spa Wimberley. Built by Arbalest Solutions.
Author:       Arbalest Solutions
Template:     Divi
Version:      1.0.0
*/

/* ==========================================================================
   BRAND TOKENS
   Source of truth: Brand Assets/BRAND-GUIDE.md
   ========================================================================== */
:root{
  /* Brand palette, updated 1 Sep 2026 */
  --ms-cream:#FFFEF8;    /* page ground */
  --ms-sand:#D4C6B0;     /* panels, footer bottom bar, accents on dark */
  --ms-greige:#B2B19A;   /* navigation, borders, dividers */
  --ms-taupe:#A29377;    /* secondary accent */
  --ms-olive:#7C8268;    /* brand green: headings, rules, large text */
  --ms-deep:#5D624E;     /* DERIVED. Buttons carrying white text, 6.32 AA */
  --ms-ink:#2A2E24;      /* DERIVED. All body text, 13.72 AAA on Cream */
  --ms-white:#FFFFFF;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
#main-footer{background:var(--ms-ink);}

.ms-footer{
  background:var(--ms-ink);
  color:var(--ms-cream);
  padding:72px 0 56px;
  font-family:'Montserrat',Helvetica,Arial,sans-serif;
  font-size:16px;
  line-height:1.7;
}
.ms-footer__inner{
  max-width:1200px;margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:1.45fr .9fr 1.15fr 1.25fr;gap:44px;
}

/* headings */
.ms-footer h3{
  font-family:'Montserrat',Helvetica,Arial,sans-serif;
  font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ms-sand);margin:0 0 20px;padding:0;line-height:1.4;
}

/* brand lockup */
.ms-footer__brand{margin-bottom:22px;}
.ms-footer__brand .ms-lockup{
  font-family:'Merriweather',Georgia,serif;
  font-weight:700;font-size:24px;letter-spacing:.14em;line-height:1.1;
  color:var(--ms-white);text-transform:uppercase;margin:0;
}
.ms-footer__brand .ms-rule{
  height:2px;background:var(--ms-sand);margin:12px 0 10px;max-width:196px;
}
.ms-footer__brand .ms-sub{
  font-size:13px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ms-sand);margin:0;
}
.ms-footer__desc{color:rgba(255,255,255,.82);margin:0 0 24px;max-width:34ch;font-size:15px;}

/* lists */
.ms-footer ul{list-style:none;margin:0;padding:0;}
.ms-footer li{margin:0 0 11px;}
.ms-footer a{color:rgba(255,255,255,.85);text-decoration:none;transition:color .18s ease;}
.ms-footer a:hover{color:var(--ms-sand);}
.ms-footer a:focus-visible{outline:2px solid var(--ms-sand);outline-offset:3px;}

/* contact */
.ms-contact li{color:rgba(255,255,255,.85);}
.ms-hours{color:rgba(255,255,255,.85);margin:0;font-size:15px;}
.ms-hours strong{display:block;color:var(--ms-white);font-weight:600;}

/* CTA */
.ms-btn{
  display:inline-block;background:var(--ms-deep);color:var(--ms-white)!important;
  font-weight:600;font-size:16px;line-height:1;letter-spacing:.02em;
  padding:15px 28px;border-radius:4px;text-decoration:none;
  transition:background .18s ease;border:0;
  white-space:nowrap;text-align:center;
}
.ms-btn:hover{background:#4C5140;color:var(--ms-white)!important;}
.ms-btn:focus-visible{outline:2px solid var(--ms-sand);outline-offset:3px;}
.ms-btn--ghost{
  background:transparent;border:1px solid rgba(255,255,255,.45);
  color:var(--ms-white)!important;padding:14px 30px;
}
.ms-btn--ghost:hover{background:rgba(255,255,255,.08);border-color:var(--ms-sand);}
.ms-cta-note{color:rgba(255,255,255,.62);font-size:14px;margin:14px 0 0;}

/* social */
.ms-social{display:flex;gap:12px;margin:22px 0 0;padding:0;list-style:none;}
.ms-social a{
  display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;border:1px solid rgba(255,255,255,.28);border-radius:4px;
  transition:border-color .18s ease,background .18s ease;
}
.ms-social a:hover{border-color:var(--ms-sand);background:rgba(212,198,176,.16);}
.ms-social svg{width:18px;height:18px;fill:currentColor;}

/* bottom bar */
.ms-footer-bottom{
  background:var(--ms-sand);color:var(--ms-ink);
  font-family:'Montserrat',Helvetica,Arial,sans-serif;font-size:14px;
  padding:20px 0;
}
.ms-footer-bottom__inner{
  max-width:1200px;margin:0 auto;padding:0 24px;
  display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;
}
.ms-footer-bottom a{color:var(--ms-ink);text-decoration:none;font-weight:500;}
.ms-footer-bottom a:hover{text-decoration:underline;}
.ms-footer-bottom a:focus-visible{outline:2px solid var(--ms-ink);outline-offset:3px;}
.ms-legal{display:flex;gap:26px;flex-wrap:wrap;margin:0;padding:0;list-style:none;}
.ms-copy{margin:0;color:var(--ms-ink);}

/* disclaimer */
.ms-disclaimer{
  max-width:1200px;margin:44px auto 0;padding:22px 24px 0;
  border-top:1px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.55);font-size:13px;line-height:1.6;
}

/* responsive */
@media (max-width:1024px){
  .ms-footer__inner{grid-template-columns:1fr 1fr;gap:40px;}
}
@media (max-width:600px){
  .ms-footer{padding:52px 0 40px;}
  .ms-footer__inner{grid-template-columns:1fr;gap:36px;}
  .ms-footer-bottom__inner{flex-direction:column;align-items:flex-start;gap:14px;}
}

/* hide Divi's stock footer chrome, we render our own */
#main-footer .container.clearfix,
#footer-bottom,
#et-footer-nav{display:none!important;}

/* ==========================================================================
   NEWSLETTER STRIP
   ========================================================================== */

/* tame Divi's optin module inside the footer */
@media (max-width:900px){
}

/* Divi reveals these with inline display:block via jQuery, so hiding by class is safe */

/* ==========================================================================
   FOOTER: close the gap Divi leaves below #main-footer
   ========================================================================== */
#page-container{padding-bottom:0!important;}
#main-footer{margin-bottom:0;}
body{background-color:var(--ms-cream);}

/* ==========================================================================
   HEADER
   ========================================================================== */
#top-header{background-color:var(--ms-ink)!important;}
#top-header,#top-header a{color:#fff;font-family:'Montserrat',Helvetica,Arial,sans-serif;font-size:14px;}
#top-header a:hover{color:var(--ms-sand);}
#et-info-phone,#et-info-email{font-style:normal;letter-spacing:.02em;}

#main-header{background-color:var(--ms-greige)!important;box-shadow:0 1px 0 rgba(0,0,0,.06);}
#main-header .logo_container{padding:8px 0;}
#logo{max-height:54px;width:auto;}

/* nav type */
#top-menu li a{
  font-family:'Montserrat',Helvetica,Arial,sans-serif!important;
  font-size:14px!important;font-weight:600!important;
  letter-spacing:.04em;color:var(--ms-ink)!important;
  text-transform:none;
}
#top-menu li a:hover{color:var(--ms-ink)!important;opacity:1;}
#top-menu li.current-menu-item > a{color:var(--ms-ink)!important;}

/* dropdowns */
#top-menu li ul.sub-menu{
  background:#fff!important;border-top:3px solid var(--ms-olive)!important;
  box-shadow:0 8px 24px rgba(0,0,0,.12)!important;padding:8px 0!important;
}
#top-menu li ul.sub-menu li a{
  color:var(--ms-ink)!important;font-weight:500!important;
  padding:9px 20px!important;width:230px;
}
#top-menu li ul.sub-menu li a:hover{background:rgba(212,198,176,.28)!important;}

/* Appointments becomes the CTA */
#top-menu li.menu-item-50653 > a,
#et-secondary-menu li.menu-item-51173 > a{
  background:var(--ms-deep);color:#fff!important;
  border-radius:4px;padding:10px 20px!important;
  font-weight:600!important;line-height:1;
  transition:background .18s ease;
}
#top-menu li.menu-item-50653 > a:hover,
#et-secondary-menu li.menu-item-51173 > a:hover{background:#4C5140;color:#fff!important;}
#top-menu li.menu-item-50653{margin-left:10px;}

/* focus visibility, sitewide */
#top-menu a:focus-visible,#top-header a:focus-visible,.mobile_menu_bar:focus-visible{
  outline:2px solid var(--ms-olive);outline-offset:2px;
}

/* ==========================================================================
   MOBILE
   ========================================================================== */
@media (max-width:1200px){
  #main-header{background-color:var(--ms-greige)!important;}
  #logo{max-height:44px;}
  .et_mobile_menu{
    background:#fff!important;border-top:3px solid var(--ms-olive)!important;
    box-shadow:0 10px 26px rgba(0,0,0,.14)!important;
  }
  .et_mobile_menu li a{
    font-family:'Montserrat',Helvetica,Arial,sans-serif!important;
    font-size:16px!important;font-weight:500!important;
    color:var(--ms-ink)!important;
    padding:14px 20px!important;border-bottom:1px solid var(--ms-greige)!important;
  }
  .et_mobile_menu li a:hover{background:rgba(212,198,176,.24)!important;}
  .et_mobile_menu .menu-item-has-children > a{font-weight:700!important;background:rgba(212,198,176,.18)!important;}
  .et_mobile_menu li.menu-item-50653 > a{
    background:var(--ms-deep)!important;color:#fff!important;
    font-weight:600!important;text-align:center;
  }
  .mobile_menu_bar:before{color:var(--ms-ink)!important;font-size:32px;}
  #top-header .container{text-align:center;}
  #et-info{display:block;padding:4px 0;}
  #et-info-phone,#et-info-email{display:inline-block;margin:0 10px;}
}
@media (max-width:480px){
  #et-info-email{display:none;}          /* email is long, phone is the action on mobile */
  #logo{max-height:38px;}
}

/* ==========================================================================
   FIND US MAP BAND
   ========================================================================== */
.ms-map{max-width:1200px;margin:36px auto 0;padding:32px 24px 0;border-top:1px solid rgba(255,255,255,.14);}
/* Full width since the "Find Us" copy was removed as a duplicate of "Visit Us". */
.ms-map__inner{display:block;}
.ms-map__frame{
  position:relative;width:100%;padding-bottom:15%;min-height:150px;
  border-radius:4px;overflow:hidden;border:1px solid rgba(255,255,255,.18);
  background:var(--ms-ink);
}
.ms-map__frame iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;
  filter:grayscale(1) contrast(.92) brightness(.94);
  transition:filter .3s ease;
}
.ms-map__frame:hover iframe{filter:none;}
@media (max-width:900px){
  .ms-map{margin-top:40px;padding-top:36px;}
  .ms-map__frame{padding-bottom:56%;}
}

/* ==========================================================================
   HEADER, v2. Sleek, left-aligned, low.
   Divi's et-core-unified CSS loads after this file, so #page-container
   prefixes are needed to win.
   ========================================================================== */

/* top bar: thin utility strip */
#page-container #top-header{background-color:var(--ms-ink)!important;padding:0!important;}
#page-container #top-header .container{padding:7px 0!important;min-height:0!important;}
#page-container #top-header,
#page-container #top-header a,
#page-container #et-info-phone,
#page-container #et-info-email{
  color:rgba(255,254,248,.88)!important;
  font-family:'Montserrat',Helvetica,Arial,sans-serif!important;
  font-size:12.5px!important;font-style:normal!important;letter-spacing:.02em;
}
#page-container #top-header a:hover{color:var(--ms-sand)!important;}

/* main bar */
#page-container #main-header{
  background-color:var(--ms-greige)!important;
  box-shadow:0 1px 0 rgba(42,46,36,.10)!important;
}
#page-container #main-header .container{padding-top:0!important;padding-bottom:0!important;}

/* logo left, compact */
#page-container #main-header .logo_container{
  position:relative!important;height:auto!important;
  float:left!important;width:auto!important;padding:7px 0!important;
}
#page-container #main-header #logo{
  max-height:none!important;height:40px!important;width:auto!important;
  margin:0!important;display:block!important;
}
#page-container #main-header.et-fixed-header #logo{height:34px!important;}
#page-container #main-header.et-fixed-header .logo_container{padding:8px 0!important;}

/* nav right, tight */
#page-container #et-top-navigation{padding-top:0!important;float:right!important;width:auto!important;}
#page-container #top-menu{padding-top:0!important;}
#page-container #top-menu > li{padding-right:16px!important;}
#page-container #top-menu > li > a{
  font-family:'Montserrat',Helvetica,Arial,sans-serif!important;
  font-size:13px!important;font-weight:600!important;letter-spacing:.045em!important;
  color:var(--ms-ink)!important;text-transform:uppercase!important;
  padding-bottom:0!important;line-height:56px!important;opacity:1!important;
}
#page-container #main-header.et-fixed-header #top-menu > li > a{line-height:50px!important;}
#page-container #top-menu > li > a:hover{color:var(--ms-deep)!important;}
#page-container #top-menu > li.current-menu-item > a{color:var(--ms-deep)!important;}

/* dropdown caret */
#page-container #top-menu li.menu-item-has-children > a:first-child:after{
  top:auto!important;font-size:14px!important;right:2px!important;
}

/* dropdown panel */
#page-container #top-menu li ul.sub-menu{
  background:var(--ms-cream)!important;
  border-top:3px solid var(--ms-olive)!important;
  box-shadow:0 10px 28px rgba(42,46,36,.16)!important;
  padding:6px 0!important;border-radius:0 0 4px 4px!important;width:246px!important;
}
#page-container #top-menu li ul.sub-menu li{padding:0!important;}
#page-container #top-menu li ul.sub-menu li a{
  color:var(--ms-ink)!important;font-weight:500!important;text-transform:none!important;
  font-size:14px!important;letter-spacing:0!important;
  padding:11px 20px!important;width:246px!important;line-height:1.4!important;
}
#page-container #top-menu li ul.sub-menu li a:hover{
  background:rgba(212,198,176,.34)!important;color:var(--ms-deep)!important;
}

/* Appointments CTA */
#page-container #top-menu li.menu-item-50653{padding-right:0!important;margin-left:6px;}
#page-container #top-menu li.menu-item-50653 > a{
  background:var(--ms-deep)!important;color:#fff!important;
  border-radius:4px!important;padding:9px 17px!important;
  line-height:1!important;font-weight:600!important;
  display:inline-block!important;margin-top:13px!important;
}
#page-container #main-header.et-fixed-header #top-menu li.menu-item-50653 > a{margin-top:11px!important;}
#page-container #top-menu li.menu-item-50653 > a:hover{background:#4C5140!important;color:#fff!important;}

/* search icon: unnecessary clutter in a 7-item nav */
#page-container #et_top_search{display:none!important;}

#page-container #top-menu a:focus-visible,
#page-container #top-header a:focus-visible{outline:2px solid var(--ms-deep);outline-offset:2px;}

/* ==========================================================================
   MOBILE MENU, v2
   Divi collapses .et_mobile_menu to the toggle's width, so items wrap and
   the panel renders 44px wide. It also expands every sub-menu at once,
   which made the menu 1317px tall inside an 812px viewport.
   ========================================================================== */
@media (max-width:1200px){
  /* Divi ships hide_mobile_logo; keep a guard in case it is re-enabled */
  #page-container #main-header .logo_container{display:block!important;padding:9px 0!important;float:left!important;}
  #page-container #main-header #logo{height:38px!important;}
  #page-container .select_page{display:none!important;}

  #page-container #et-top-navigation{
    float:right!important;padding:0!important;width:auto!important;position:static!important;
  }
  #page-container #et_mobile_nav_menu{float:right!important;margin:0!important;position:static!important;}
  #page-container .mobile_menu_bar{padding:0!important;margin:0!important;}
  #page-container .mobile_menu_bar:before{
    color:var(--ms-ink)!important;font-size:30px!important;line-height:58px!important;
  }

  /* full-width panel, not 44px */
  #page-container .et_mobile_menu{
    position:absolute!important;top:100%!important;left:0!important;right:0!important;
    width:100vw!important;max-width:100vw!important;
    margin-left:calc(-50vw + 50%)!important;
    background:var(--ms-cream)!important;
    border-top:3px solid var(--ms-olive)!important;
    box-shadow:0 12px 28px rgba(42,46,36,.18)!important;
    padding:0!important;
    max-height:calc(100vh - 110px)!important;overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
  }
  #page-container .et_mobile_menu li a{
    color:var(--ms-ink)!important;
    font-family:'Montserrat',Helvetica,Arial,sans-serif!important;
    font-size:15px!important;font-weight:500!important;
    padding:15px 22px!important;border-bottom:1px solid rgba(178,177,154,.5)!important;
    min-height:50px!important;display:flex!important;align-items:center!important;
    white-space:normal!important;line-height:1.3!important;
  }
  #page-container .et_mobile_menu li a:hover{background:rgba(212,198,176,.34)!important;}

  /* parents read as section headers, children indented */
  #page-container .et_mobile_menu li.menu-item-has-children > a{
    font-weight:700!important;text-transform:uppercase!important;
    font-size:12.5px!important;letter-spacing:.08em!important;
    background:rgba(212,198,176,.28)!important;color:var(--ms-ink)!important;
  }
  #page-container .et_mobile_menu ul.sub-menu{padding-left:0!important;}
  #page-container .et_mobile_menu ul.sub-menu li a{
    padding-left:38px!important;font-size:14.5px!important;
    background:transparent!important;
  }
  #page-container .et_mobile_menu ul.sub-menu li a:before{
    content:"";display:inline-block;width:12px;height:1px;
    background:var(--ms-olive);margin-right:12px;flex:0 0 12px;
  }

  /* CTA pinned as the last row */
  #page-container .et_mobile_menu li.menu-item-50653 > a{
    background:var(--ms-deep)!important;color:#fff!important;
    font-weight:600!important;justify-content:center!important;
    text-transform:uppercase!important;letter-spacing:.06em!important;
    border-bottom:0!important;
  }
}
@media (max-width:480px){
  #page-container #main-header #logo{height:34px!important;}
  #page-container #et-info-email{display:none!important;}
}


/* header container matches the new 1200px content width */
#page-container #main-header .container,
#page-container #top-header .container{max-width:1200px!important;width:92%!important;}




/* ==========================================================================
   BREAKPOINT: hamburger below 1200
   Seven top-level items plus a logo and a CTA will not sit on one row under
   about 1200px. Rather than let the nav wrap to two or three rows, hand over
   to the mobile menu, which is already full-width and scrollable.
   ========================================================================== */
@media (max-width:1200px){
  #page-container #top-menu-nav,
  #page-container #top-menu{display:none!important;}
  #page-container #et_mobile_nav_menu{display:block!important;}
  #page-container #et-top-navigation{padding-top:0!important;}
}
@media (min-width:1201px){
  #page-container #et_mobile_nav_menu{display:none!important;}
  #page-container #top-menu{display:block!important;}
}

/* Single CTA, 1 Sep 2026. The top-bar "Book An Appointment" (secondary menu
   item 51173) pointed at the same Boulevard URL as the nav button, so the
   header carried two identical CTAs. The secondary item was deleted and the
   nav button relabelled "Book Appointment". Rule kept as a guard in case the
   secondary menu is ever repopulated. */
@media (max-width:1200px){
  #page-container .et_mobile_menu li.menu-item-51173{display:none!important;}
}

/* ==========================================================================
   HEADER ALIGNMENT
   Divi floats the logo and the nav, so neither is vertically centred: the
   logo sat 22px below the nav. Flexbox on the container centres both.
   ========================================================================== */
@media (min-width:1201px){
  #page-container #main-header .container.et_menu_container{
    display:flex!important;align-items:center!important;justify-content:space-between!important;
    min-height:76px!important;
  }
  #page-container #main-header .logo_container{
    float:none!important;position:relative!important;
    display:flex!important;align-items:center!important;
    height:auto!important;padding:0!important;margin:0!important;
    width:auto!important;flex:0 0 auto!important;
  }
  #page-container #main-header #logo{
    height:42px!important;width:auto!important;margin:0!important;display:block!important;
  }
  #page-container #et-top-navigation{
    float:none!important;display:flex!important;align-items:center!important;
    padding:0!important;margin:0!important;flex:0 0 auto!important;
  }
  #page-container #top-menu{
    display:flex!important;align-items:center!important;padding:0!important;margin:0!important;
  }
  /* full-height items so the dropdown's top:100% lands on the header edge */
  /* explicit full-bar height so the dropdown's top:100% lands on the header edge */
  #page-container #top-menu > li{
    display:flex!important;align-items:center!important;
    padding-right:12px!important;margin:0!important;float:none!important;
    height:76px!important;
  }
  #page-container #main-header.et-fixed-header #top-menu > li{height:60px!important;}
  /* line-height no longer sets the row height, flex does the centring */
  #page-container #top-menu > li > a{
    line-height:1.2!important;padding:0!important;display:block!important;
  }
  /* Divi's caret is absolute at right:2px and relies on the anchor carrying
     padding-right to sit clear of the label. padding:0 above removed that,
     so the arrow landed on the last letter. Reserve the space on parents. */
  #page-container #top-menu > li.menu-item-has-children > a:first-child{
    padding-right:16px!important;position:relative!important;
  }
  #page-container #top-menu li.menu-item-50653{padding-right:0!important;margin-left:8px!important;}
  #page-container #top-menu li.menu-item-50653 > a{
    margin-top:0!important;padding:10px 18px!important;line-height:1!important;
  }
  /* dropdown anchors to the bar, not the link box */
  #page-container #top-menu li ul.sub-menu{top:100%!important;margin-top:0!important;}
  #page-container #top-menu > li.menu-item-has-children > a:first-child:after{
    top:50%!important;right:0!important;
    transform:translateY(-50%)!important;line-height:1!important;
  }

  /* sticky state keeps the same centring, just shorter */
  #page-container #main-header.et-fixed-header .container.et_menu_container{min-height:60px!important;}
  #page-container #main-header.et-fixed-header #logo{height:34px!important;}
}

/* ==========================================================================
   HEADER ALIGNMENT, MOBILE / TABLET
   Same problem as desktop below 1201px: Divi floats the logo left and the
   hamburger right, leaving the logo 20px lower than the toggle. Flexbox
   centres both. The nav column is given the full bar height so the mobile
   panel's top:100% still resolves to the header's bottom edge.
   ========================================================================== */
@media (max-width:1200px){
  #page-container #main-header .container.et_menu_container{
    display:flex!important;align-items:center!important;justify-content:space-between!important;
    min-height:66px!important;
  }
  #page-container #main-header .logo_container{
    float:none!important;position:relative!important;
    display:flex!important;align-items:center!important;
    width:auto!important;height:auto!important;
    padding:0!important;margin:0!important;flex:0 0 auto!important;
  }
  #page-container #main-header #logo{
    height:34px!important;max-height:34px!important;width:auto!important;margin:0!important;display:block!important;
  }
  #page-container #et-top-navigation{
    float:none!important;position:static!important;
    display:flex!important;align-items:center!important;
    width:auto!important;height:66px!important;
    padding:0!important;margin:0!important;flex:0 0 auto!important;
  }
  #page-container #et_mobile_nav_menu{
    float:none!important;display:flex!important;align-items:center!important;
    height:66px!important;margin:0!important;
  }
  #page-container #et_mobile_nav_menu .mobile_nav{
    display:flex!important;align-items:center!important;height:66px!important;padding:0!important;
  }
  #page-container .mobile_menu_bar{
    display:flex!important;align-items:center!important;padding:0!important;margin:0!important;
  }
}

/* ==========================================================================
   STICKY GLASS HEADER

   NOT built on Divi's fixed nav. Turning on et_divi.divi_fixed_nav made Divi
   position both bars itself: it parks #top-header and #main-header at negative
   offsets with opacity 0 and relies on its own JS to place them. That never
   completed on this install, so the header vanished from the live site
   entirely. Reverted to divi_fixed_nav = false; do not re-enable it.

   Instead: position:sticky on #main-header, which keeps the element in flow
   (so nothing below needs padding compensation) and needs no JS to stick.
   A tiny scroll listener in functions.php toggles .ms-stuck past 40px, which
   is the only thing JS is responsible for.

   The utility strip is left alone and scrolls away naturally, so the stuck
   state is one 76px bar carrying the nav and the Book Appointment CTA.

   Alpha is 0.86, not lower. Measured against WCAG: Ink #2A2E24 on greige at
   0.86 over a worst-case black backdrop is 4.74:1, which clears AA. At 0.80
   it drops to 4.16 and fails. The glass reads as glass because of the blur
   and saturation, not because it is see-through.
   ========================================================================== */

/* position:sticky is killed by ANY clipping ancestor. Divi ships
   #page-container{overflow-y:hidden} and body{overflow-x:hidden}, both of
   which create a clip context, so the header scrolled away instead of
   sticking. overflow:clip clips exactly the same way WITHOUT creating a
   scroll container, so sticky survives. Guarded by @supports: older browsers
   keep overflow:hidden and simply get the old non-sticky header. */
@supports (overflow:clip){
  body{overflow-x:clip!important;}
  #page-container{overflow-x:clip!important;overflow-y:visible!important;}
}

/* The header is sticky now, so any in-page anchor (the nav is full of
   /services-menu/#... links) would land underneath it. Offset every scroll
   target by the tallest stuck bar plus a little air. */
html{scroll-padding-top:84px;}

#page-container #main-header{
  position:-webkit-sticky!important;
  position:sticky!important;
  top:0!important;
  z-index:99999!important;
  border-bottom:1px solid transparent;
  transition:background-color .3s ease, box-shadow .3s ease,
             border-color .3s ease, min-height .3s ease;
}

html body #page-container #main-header.ms-stuck{
  background-color:rgba(178,177,154,.94)!important;
  border-bottom-color:rgba(255,255,255,.26)!important;
  box-shadow:0 6px 26px rgba(42,46,36,.16)!important;
}

/* Only browsers that can actually blur get the lower alpha. Everything else
   keeps a near-opaque bar so contrast never depends on the backdrop. */
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  html body #page-container #main-header.ms-stuck{
    background-color:rgba(178,177,154,.86)!important;
    -webkit-backdrop-filter:blur(14px) saturate(160%);
    backdrop-filter:blur(14px) saturate(160%);
  }
}

/* Condense the bar once it is stuck. */
@media (min-width:1201px){
  html body #page-container #main-header.ms-stuck .container.et_menu_container{min-height:62px!important;}
  html body #page-container #main-header.ms-stuck #top-menu > li{height:62px!important;}
  html body #page-container #main-header.ms-stuck #logo{height:36px!important;max-height:36px!important;}
}
@media (max-width:1200px){
  html body #page-container #main-header.ms-stuck .container.et_menu_container{min-height:58px!important;}
  html body #page-container #main-header.ms-stuck #et-top-navigation,
  html body #page-container #main-header.ms-stuck #et_mobile_nav_menu,
  html body #page-container #main-header.ms-stuck #et_mobile_nav_menu .mobile_nav{height:58px!important;}
  html body #page-container #main-header.ms-stuck #logo{height:30px!important;max-height:30px!important;}
}

#page-container #main-header #logo{transition:height .3s ease;}

@media (prefers-reduced-motion:reduce){
  #page-container #main-header,
  #page-container #main-header #logo{transition:none!important;}
}

/* ==========================================================================
   CONTACT PAGE
   Rebuilt from scratch 1 Sep 2026. The previous page had a 446px empty hero,
   three stock images (rose petal, wet stone, a botox photo) used as decorative
   backgrounds, and eight Divi scroll animations that never fired because this
   site dispatches no scroll events, leaving most copy stuck at opacity 0.

   No animation library. This site's mobile LCP is 12.9s; adding GSAP or Lenis
   to a contact page would be indefensible. Entrance motion is a CSS stagger on
   load, so it never depends on scroll. Only transform and opacity animate.
   ========================================================================== */

/* Small uppercase labels use --c-deep (#5D624E, 6.32:1 on cream), not
   --c-olive (#7C8268, 3.96:1). Olive is a display-size colour only; at 11-12px
   it fails WCAG AA. Verified by measuring every text node on the page.

   Tokens live on BOTH page wrappers. The form is a separate Divi section and
   therefore not a descendant of .ms-c, so scoping the custom properties to
   .ms-c alone left every var() in the form block unresolved and the section
   lost its gutter entirely. */
.ms-c,
.ms-c-formwrap{
  --c-ground:var(--ms-cream);
  --c-ink:var(--ms-ink);
  --c-muted:#5E6353;
  --c-line:rgba(42,46,36,.13);
  --c-olive:var(--ms-olive);
  --c-deep:var(--ms-deep);
  --c-sand:var(--ms-sand);
  --gutter:clamp(20px,5vw,64px);
  --maxw:1180px;
}
.ms-c,
.ms-c-formwrap{
  color:var(--c-ink);
  font-family:'Montserrat',Helvetica,Arial,sans-serif;
}

/* Entrance. Staggered by an inline --d custom property per element. */
@media (prefers-reduced-motion:no-preference){
  .ms-c .ms-in{opacity:0;transform:translate3d(0,14px,0);animation:msIn .7s cubic-bezier(.22,.61,.36,1) forwards;animation-delay:var(--d,0ms);}
  @keyframes msIn{to{opacity:1;transform:translate3d(0,0,0);}}
}
@media (prefers-reduced-motion:reduce){
  .ms-c .ms-in{opacity:1;transform:none;}
}

/* --- Hero ---------------------------------------------------------------
   No photograph. A quiet cream field, a hairline rule, and type doing the
   work. The old hero was a stock botox JPEG behind an empty text module. */
.ms-c-hero{
  position:relative;
  background:
    radial-gradient(120% 90% at 82% 8%, rgba(178,177,154,.30) 0%, rgba(178,177,154,0) 58%),
    radial-gradient(90% 70% at 0% 100%, rgba(212,198,176,.34) 0%, rgba(212,198,176,0) 62%),
    var(--c-ground);
  padding:clamp(64px,10vw,132px) var(--gutter) clamp(52px,7vw,88px);
}
.ms-c-hero__inner{max-width:var(--maxw);margin:0 auto;}
.ms-c-hero__rule{
  display:block;max-width:var(--maxw);margin:0 auto;
  height:1px;background:linear-gradient(90deg,var(--c-line),rgba(42,46,36,0));
}

.ms-c-eyebrow{
  margin:0 0 18px;font-size:12px;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:var(--c-deep);
}

.ms-c-display{
  margin:0;font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;
  font-size:clamp(2.6rem,7.2vw,5.4rem);line-height:1.02;letter-spacing:-.015em;
  color:var(--c-ink);text-wrap:balance;
}
.ms-c-h2{
  margin:0 0 14px;font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;
  font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1.12;color:var(--c-ink);
}

.ms-c-lede{
  margin:26px 0 0;max-width:46ch;
  font-size:clamp(1rem,1.25vw,1.125rem);line-height:1.65;color:var(--c-muted);
}
.ms-c-note{margin:0;max-width:42ch;font-size:15px;line-height:1.65;color:var(--c-muted);}

/* --- Buttons ------------------------------------------------------------ */
.ms-c-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px;}
.ms-c-btn{
  --lift:0px;
  display:inline-flex;align-items:center;justify-content:center;
  min-height:54px;padding:0 32px;
  font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  text-decoration:none;border-radius:2px;
  background:var(--c-deep);color:#fff;border:1px solid var(--c-deep);
  transform:translate3d(0,var(--lift),0);
  transition:transform .28s cubic-bezier(.22,.61,.36,1), box-shadow .28s ease,
             background-color .28s ease, color .28s ease;
  box-shadow:0 2px 10px rgba(42,46,36,.12);
  will-change:transform;
}
.ms-c-btn:hover,.ms-c-btn:focus-visible{--lift:-3px;box-shadow:0 12px 28px rgba(42,46,36,.22);color:#fff;}
.ms-c-btn--ghost{
  background:transparent;color:var(--c-ink);border-color:rgba(42,46,36,.30);box-shadow:none;
}
.ms-c-btn--ghost:hover,.ms-c-btn--ghost:focus-visible{
  background:rgba(124,130,104,.10);border-color:var(--c-olive);color:var(--c-ink);
  box-shadow:0 10px 24px rgba(42,46,36,.12);
}
.ms-c a:focus-visible{outline:2px solid var(--c-olive);outline-offset:3px;}

/* --- Contact cards ------------------------------------------------------
   Three equal cards. Whole card is the hit target, so the tap area on mobile
   is the full tile rather than a 14px link. */
.ms-c-cards{
  max-width:var(--maxw);margin:0 auto;padding:clamp(44px,6vw,72px) var(--gutter);
  display:grid;gap:clamp(14px,1.6vw,20px);
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.ms-c-card{
  --lift:0px;
  display:flex;flex-direction:column;gap:12px;
  padding:clamp(24px,2.6vw,34px);
  background:rgba(255,255,255,.62);
  border:1px solid var(--c-line);border-radius:3px;
  text-decoration:none;color:inherit;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transform:translate3d(0,var(--lift),0);
  transition:transform .3s cubic-bezier(.22,.61,.36,1), box-shadow .3s ease,
             border-color .3s ease, background-color .3s ease;
  will-change:transform;
}
@media (hover:hover) and (pointer:fine){
  .ms-c-card:hover{--lift:-4px;box-shadow:0 16px 38px rgba(42,46,36,.13);
    border-color:rgba(124,130,104,.42);background:rgba(255,255,255,.86);}
  .ms-c-card:hover .ms-c-arrow{transform:translate3d(4px,0,0);}
}
.ms-c-card:focus-visible{--lift:-4px;box-shadow:0 16px 38px rgba(42,46,36,.13);}
.ms-c-card__label{
  font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--c-deep);
}
.ms-c-card__value{
  font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.45;font-weight:500;color:var(--c-ink);
  overflow-wrap:anywhere;
}
.ms-c-card__more{
  margin-top:auto;padding-top:10px;display:inline-flex;align-items:center;gap:8px;
  font-size:13px;color:var(--c-muted);
}
.ms-c-arrow{
  width:16px;height:1px;background:currentColor;position:relative;display:inline-block;
  transition:transform .3s cubic-bezier(.22,.61,.36,1);
}
.ms-c-arrow:after{
  content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;
  border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);
}

/* --- Hours -------------------------------------------------------------- */
.ms-c-hours{
  max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter) clamp(52px,7vw,84px);
  display:grid;gap:clamp(26px,4vw,64px);
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  align-items:start;
}
.ms-c-hours__list{list-style:none;margin:0;padding:0;border-top:1px solid var(--c-line);}
.ms-c-hours__list li{
  display:flex;align-items:baseline;gap:14px;
  padding:15px 4px;border-bottom:1px solid var(--c-line);
  font-size:clamp(.95rem,1.15vw,1.05rem);
}
.ms-c-hours__list li > span:first-child{flex:0 0 auto;min-width:8.5em;font-weight:600;}
.ms-c-hours__list li > span:nth-child(2){color:var(--c-muted);}
.ms-c-hours__list li.is-today{
  background:linear-gradient(90deg,rgba(124,130,104,.11),rgba(124,130,104,0));
  box-shadow:inset 2px 0 0 var(--c-olive);
}
.ms-c-hours__list li.is-today > span:first-child{color:var(--c-ink);}
.ms-c-today{
  margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:#fff;background:var(--c-deep);padding:4px 9px;border-radius:2px;
}

/* --- Form --------------------------------------------------------------- */
.ms-c-formwrap{
  background:
    radial-gradient(80% 120% at 100% 0%, rgba(178,177,154,.26) 0%, rgba(178,177,154,0) 60%),
    var(--c-ground);
  border-top:1px solid var(--c-line);
  padding:clamp(56px,7vw,92px) var(--gutter);
}
.ms-c-formwrap .ms-c-form__head{max-width:var(--maxw);margin:0 auto clamp(28px,3.5vw,44px);}
.ms-c-formwrap .et_pb_contact{max-width:var(--maxw);margin:0 auto;}
.ms-c-formwrap .et_pb_contact_form{background:transparent!important;}
.ms-c-formwrap .et_pb_contact_field{padding:0 0 18px!important;}
.ms-c-formwrap .et_pb_contact_form_label{
  display:block!important;position:static!important;height:auto!important;width:auto!important;
  overflow:visible!important;clip:auto!important;
  margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--c-deep);
}
.ms-c-formwrap .et_pb_contact_field .input,
.ms-c-formwrap .et_pb_contact_field textarea{
  width:100%;padding:16px 18px!important;
  font-family:'Montserrat',Helvetica,Arial,sans-serif!important;font-size:16px!important;
  color:var(--c-ink)!important;
  background:#fff!important;
  border:1px solid var(--c-line)!important;border-radius:3px!important;
  box-shadow:none!important;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.ms-c-formwrap .et_pb_contact_field textarea{min-height:190px;resize:vertical;}
.ms-c-formwrap .et_pb_contact_field .input:focus,
.ms-c-formwrap .et_pb_contact_field textarea:focus{
  outline:none;border-color:var(--c-olive)!important;
  box-shadow:0 0 0 3px rgba(124,130,104,.18)!important;
}
.ms-c-formwrap .et_pb_contact_field .input::placeholder,
.ms-c-formwrap .et_pb_contact_field textarea::placeholder{color:#8A8F7E;opacity:1;}
.ms-c-formwrap .et_pb_contact_submit,
.ms-c-formwrap .et_pb_contact_submit:hover{
  min-height:54px;padding:0 34px!important;
  font-family:'Montserrat',Helvetica,Arial,sans-serif!important;
  font-size:13px!important;font-weight:700!important;letter-spacing:.12em!important;
  text-transform:uppercase!important;
  background:var(--c-deep)!important;color:#fff!important;
  border:1px solid var(--c-deep)!important;border-radius:2px!important;
  transition:transform .28s cubic-bezier(.22,.61,.36,1), box-shadow .28s ease;
}
.ms-c-formwrap .et_pb_contact_submit:hover{transform:translate3d(0,-3px,0);box-shadow:0 12px 28px rgba(42,46,36,.22);}
.ms-c-formwrap .et_pb_contact_submit:after{display:none!important;}
.ms-c-formwrap .et_pb_contact_captcha_question,
.ms-c-formwrap .et_pb_contact_right p{color:var(--c-muted)!important;font-size:15px!important;}
.ms-c-formwrap .et_pb_contact_captcha{
  padding:14px 16px!important;font-size:16px!important;
  border:1px solid var(--c-line)!important;border-radius:3px!important;background:#fff!important;
}
.ms-c-formwrap .et_contact_bottom_container{
  float:none;text-align:left;margin:10px 0 0;
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
}
.ms-c-formwrap .et_pb_contact_right{display:flex;align-items:center;gap:10px;margin:0;}
.ms-c-formwrap .et_pb_contact_captcha{width:76px;text-align:center;}
.ms-c-formwrap .et_pb_contact_submit{order:-1;}

/* wpautop wraps stray whitespace inside code modules in empty <p> tags. In a
   grid container each one becomes a grid item and pushes the real cards into
   the wrong cells. The markup is minified so this should not occur, but this
   guard makes the layout immune if anyone reformats it in the Divi editor. */
.ms-c p:empty,
.ms-c-cards > p,
.ms-c-cards > br{display:none!important;}

/* --- Responsive --------------------------------------------------------- */
@media (max-width:980px){
  .ms-c-cards{grid-template-columns:1fr;}
  .ms-c-hours{grid-template-columns:1fr;}
}
@media (max-width:600px){
  /* The hard line break is a desktop composition choice. On a phone it forces
     a ragged four-line headline, so drop it and let text-wrap:balance work. */
  .ms-c-display br{display:none;}
  .ms-c-actions{flex-direction:column;align-items:stretch;}
  .ms-c-btn{width:100%;}
  .ms-c-hours__list li{flex-wrap:wrap;gap:2px 14px;}
  .ms-c-hours__list li > span:first-child{min-width:0;flex:1 0 auto;}
  .ms-c-today{margin-left:0;}
}

/* Divi wrappers must not reintroduce padding or stock backgrounds. */
.page-id-50622 .et_pb_section.ms-c-section{padding:0!important;background-image:none!important;}
/* The form section carries ms-c-section too, so the reset above zeroed its
   padding and left the submit button flush against the footer. Restore it. */
.page-id-50622 .et_pb_section.ms-c-formwrap{
  padding:clamp(56px,7vw,92px) var(--gutter)!important;
}
.page-id-50622 .et_pb_row.ms-c-rowfull{
  width:100%!important;max-width:100%!important;padding:0!important;margin:0 auto!important;
}

/* ==========================================================================
   HEADER, TABLET (768 to 1200)
   Two problems. First, Divi's .clearfix:after is a real element with
   content:" " and display:block, so inside the flex container it counted as a
   THIRD flex item. justify-content:space-between pushed the pseudo to the
   right edge and stranded the nav in the middle: at 1024px the hamburger sat
   at x=596 in a container ending at 983, with 387px of dead space beside the
   logo. Killing the pseudo moves the nav back to the right edge.

   Second, tablet had no call to action at all. The Book button lives in
   #top-menu, which is hidden wholesale below 1201px, so on every iPad the
   only route to booking was to open the hamburger. Rather than duplicate the
   markup, the menu is shown again with every item hidden except the CTA, so
   it stays in sync with whatever that menu item points at.
   ========================================================================== */

/* Applies at all widths: the pseudo should never have been a flex item. */
#page-container #main-header .container.et_menu_container:before,
#page-container #main-header .container.et_menu_container:after{display:none!important;}

@media (min-width:768px) and (max-width:1200px){
  html body #page-container #main-header .container.et_menu_container{min-height:76px!important;}
  html body #page-container #main-header.ms-stuck .container.et_menu_container{min-height:64px!important;}

  #page-container #main-header #logo{height:40px!important;max-height:40px!important;}
  html body #page-container #main-header.ms-stuck #logo{height:34px!important;max-height:34px!important;}

  #page-container #et-top-navigation,
  #page-container #main-header.ms-stuck #et-top-navigation{
    display:flex!important;align-items:center!important;gap:18px!important;height:auto!important;
  }

  /* Reveal the menu, but only the Book Appointment item. The <nav> wrapper
     #top-menu-nav is hidden alongside #top-menu below 1201px, so both have to
     come back or the list has a display:none parent and measures 0x0. */
  #page-container #top-menu-nav{display:block!important;}
  #page-container #top-menu{
    display:flex!important;align-items:center!important;padding:0!important;margin:0!important;
  }
  #page-container #top-menu > li{display:none!important;}
  #page-container #top-menu > li.menu-item-50653{
    display:flex!important;align-items:center!important;
    height:auto!important;padding:0!important;margin:0!important;
  }
  #page-container #top-menu > li.menu-item-50653 > a{
    padding:12px 20px!important;line-height:1!important;font-size:12px!important;
    margin:0!important;   /* desktop rules add a top margin; it sat 6px low */
  }
  /* The panel repeats it once open; one CTA on screen at a time. */
  #page-container .et_mobile_menu li.menu-item-50653{display:none!important;}

  /* A 30px icon is not a touch target. */
  #page-container #et_mobile_nav_menu,
  #page-container #main-header.ms-stuck #et_mobile_nav_menu,
  #page-container #et_mobile_nav_menu .mobile_nav,
  #page-container #main-header.ms-stuck #et_mobile_nav_menu .mobile_nav{
    height:auto!important;margin:0!important;
  }
  #page-container .mobile_menu_bar{
    display:flex!important;align-items:center!important;justify-content:center!important;
    width:46px!important;height:46px!important;padding:0!important;
    border:1px solid rgba(42,46,36,.22);border-radius:3px;
    transition:background-color .25s ease, border-color .25s ease;
  }
  #page-container .mobile_menu_bar:hover{background:rgba(255,255,255,.34);border-color:rgba(42,46,36,.38);}
  #page-container .mobile_menu_bar:before{font-size:28px!important;}

  /* Panel hangs off the bar, which is taller here than on a phone. */
  #page-container .et_mobile_menu{max-height:calc(100vh - 150px)!important;}
}

/* Phone: the toggle glyph is 30px wide, under the 44px minimum touch target.
   Widen the hit area without changing how the bar looks. */
@media (max-width:767px){
  #page-container .mobile_menu_bar{
    display:flex!important;align-items:center!important;justify-content:flex-end!important;
    min-width:44px!important;min-height:44px!important;
  }
}

/* ==========================================================================
   CONTACT HERO, IMAGE PANEL AND TEXTURE

   Photography note. The media library holds three interior shots from 2017
   (480x360 to 614x401, low-light phone snapshots) and a set of "transparent"
   logos that are not transparent and use the superseded 2017 quatrefoil mark.
   None are good enough to enlarge, so none are used. The one asset that
   survived review is a 2024 shot of the spa tent at 1170x2099, which is
   genuinely on-brand: cream canvas, wood floor, warm neutrals.

   It is not dropped in raw. It is cropped below the wall air-conditioner,
   desaturated to 0.62 so it sits inside the greige palette instead of
   competing with it, unsharp-masked to counter phone-camera softness, and
   veiled 10% toward Sand. 2.6MB PNG became a 38KB WebP with a 104KB JPEG
   fallback. It sits beside the type, never behind it, so it can never put
   text contrast at risk.
   ========================================================================== */

.ms-c-hero__grid{
  max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(32px,5vw,72px);align-items:center;
}
.ms-c-hero__inner{max-width:none;}

.ms-c-hero__media{
  position:relative;border-radius:3px;overflow:hidden;
  box-shadow:0 24px 60px rgba(42,46,36,.18);
  border:1px solid rgba(42,46,36,.10);
}
.ms-c-hero__media img{
  display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;
}
/* Brand veil over the photograph so it reads as part of the palette. */
.ms-c-hero__media:after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(160deg,rgba(124,130,104,.16) 0%,rgba(212,198,176,.10) 46%,rgba(42,46,36,.16) 100%);
  mix-blend-mode:multiply;
}

/* Fine grain. Removes the flat digital sterility of large plain fields
   without adding a request: one inline SVG turbulence, ~0.035 opacity. */
.ms-c-hero:before,
.ms-c-formwrap:before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  opacity:.035;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");
}
.ms-c-formwrap{position:relative;}
.ms-c-hero > *{position:relative;z-index:1;}
.ms-c-formwrap > *{position:relative;z-index:1;}

@media (max-width:900px){
  /* Below this the panel would be a letterbox strip. Give the type the full
     width and let the photograph sit under it at a calmer height. */
  .ms-c-hero__grid{grid-template-columns:1fr;gap:34px;}
  /* ratio comes from the file itself now */
}
@media (max-width:600px){
  /* ratio comes from the file itself now */
}

/* ==========================================================================
   ABOUT PAGE
   Rebuilt from scratch 1 Sep 2026. The previous page buried genuinely strong
   trust content: nine Best of Wimberley wins, a named medical director, seven
   real bios and three testimonials, all rendered as a wall of body copy with
   a cursive headline, a stray floating social column and large empty gaps
   where 12-14MB headshots were being served through the Photon CDN.

   Same discipline as the contact page: no animation library, entrance motion
   is a CSS stagger on load (this site fires no scroll events), only transform
   and opacity animate, and every reveal has a reduced-motion path.
   ========================================================================== */

.ms-a{
  --c-ground:var(--ms-cream);
  --c-ink:var(--ms-ink);
  --c-muted:#5E6353;
  --c-line:rgba(42,46,36,.13);
  --c-olive:var(--ms-olive);
  --c-deep:var(--ms-deep);
  --c-sand:var(--ms-sand);
  --gutter:clamp(20px,5vw,64px);
  --maxw:1180px;
  color:var(--c-ink);
  font-family:'Montserrat',Helvetica,Arial,sans-serif;
}

@media (prefers-reduced-motion:no-preference){
  .ms-a .ms-in{opacity:0;transform:translate3d(0,14px,0);animation:msIn .7s cubic-bezier(.22,.61,.36,1) forwards;animation-delay:var(--d,0ms);}
}
@media (prefers-reduced-motion:reduce){ .ms-a .ms-in{opacity:1;transform:none;} }

/* Shared type ------------------------------------------------------------ */
.ms-a-eyebrow{margin:0 0 16px;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--c-deep);}
.ms-a-display{
  margin:0;font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;
  font-size:clamp(2.3rem,5.6vw,4.3rem);line-height:1.06;letter-spacing:-.012em;text-wrap:balance;
}
.ms-a-display em{font-style:normal;color:var(--c-deep);}
.ms-a-h2{
  margin:0 0 14px;font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;
  font-size:clamp(1.6rem,3.2vw,2.4rem);line-height:1.14;
}
.ms-a-lede{margin:24px 0 0;max-width:48ch;font-size:clamp(1rem,1.2vw,1.1rem);line-height:1.66;color:var(--c-muted);}
.ms-a-note{margin:0 0 26px;font-size:16px;line-height:1.65;color:var(--c-muted);}
.ms-a-name{margin:0;font-size:1.15rem;font-weight:600;letter-spacing:.005em;}
.ms-a-role{margin:4px 0 14px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--c-deep);}
.ms-a-bio,.ms-a-lead__body p{margin:0 0 14px;font-size:15.5px;line-height:1.7;color:var(--c-muted);}
.ms-a-lead__body p:last-child{margin-bottom:0;}

/* Buttons ---------------------------------------------------------------- */
.ms-a-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}
.ms-a-btn{
  --lift:0px;display:inline-flex;align-items:center;justify-content:center;
  min-height:54px;padding:0 32px;font-size:13px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;text-decoration:none;border-radius:2px;
  background:var(--c-deep);color:#fff;border:1px solid var(--c-deep);
  transform:translate3d(0,var(--lift),0);box-shadow:0 2px 10px rgba(42,46,36,.12);
  transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s ease,background-color .28s ease;
  will-change:transform;
}
.ms-a-btn:hover,.ms-a-btn:focus-visible{--lift:-3px;box-shadow:0 12px 28px rgba(42,46,36,.22);color:#fff;}
.ms-a-btn--ghost{background:transparent;color:var(--c-ink);border-color:rgba(42,46,36,.30);box-shadow:none;}
.ms-a-btn--ghost:hover,.ms-a-btn--ghost:focus-visible{background:rgba(124,130,104,.10);border-color:var(--c-olive);color:var(--c-ink);}
.ms-a a:focus-visible{outline:2px solid var(--c-olive);outline-offset:3px;}

/* Hero ------------------------------------------------------------------- */
.ms-a-hero{
  position:relative;
  background:
    radial-gradient(120% 90% at 88% 6%, rgba(178,177,154,.32) 0%, rgba(178,177,154,0) 58%),
    radial-gradient(90% 70% at 0% 100%, rgba(212,198,176,.34) 0%, rgba(212,198,176,0) 62%),
    var(--c-ground);
  padding:clamp(60px,9vw,120px) var(--gutter) clamp(52px,7vw,88px);
}
.ms-a-hero:before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");
}
.ms-a-hero > *{position:relative;z-index:1;}
.ms-a-hero__grid{
  max-width:var(--maxw);margin:0 auto;display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:clamp(32px,5vw,64px);align-items:center;
}

/* Award years read as a row of chips, not a comma list. */
.ms-a-awards{
  display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:30px 0 0;padding:0;
}
.ms-a-awards li{list-style:none;display:inline-block;
  font-size:12px;font-weight:600;letter-spacing:.1em;color:var(--c-deep);
  padding:7px 13px;border:1px solid rgba(124,130,104,.38);border-radius:2px;
  background:rgba(255,255,255,.5);
}

.ms-a-hero__stats{display:grid;gap:2px;background:var(--c-line);border:1px solid var(--c-line);border-radius:3px;overflow:hidden;}
.ms-a-stat{background:rgba(255,255,255,.72);padding:20px 22px;display:flex;flex-direction:column;gap:4px;}
.ms-a-stat__n{font-family:'Aboreto','Cinzel',Georgia,serif;font-size:1.9rem;line-height:1;color:var(--c-ink);}
.ms-a-stat__l{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--c-muted);}

/* Story + mission -------------------------------------------------------- */
.ms-a-story{max-width:var(--maxw);margin:0 auto;padding:clamp(52px,7vw,86px) var(--gutter) 0;}
.ms-a-story__grid{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);gap:clamp(28px,5vw,64px);align-items:start;}
.ms-a-story__body p{margin:0 0 18px;font-size:16.5px;line-height:1.75;color:var(--c-muted);}
.ms-a-story__body p:last-child{margin-bottom:0;}
.ms-a-story__body strong{color:var(--c-ink);font-weight:600;}
.ms-a-mission{margin-top:clamp(40px,5vw,64px);padding-top:clamp(30px,4vw,44px);border-top:1px solid var(--c-line);}
.ms-a-quote{
  margin:0;font-family:'Aboreto','Cinzel',Georgia,serif;
  font-size:clamp(1.35rem,3vw,2.15rem);line-height:1.28;color:var(--c-ink);max-width:26ch;
}

/* What we do ------------------------------------------------------------- */
.ms-a-do{max-width:var(--maxw);margin:0 auto;padding:clamp(52px,7vw,86px) var(--gutter) 0;}
.ms-a-do__head{margin-bottom:clamp(24px,3vw,38px);}
.ms-a-do__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px);}
.ms-a-do__col{padding:clamp(22px,2.4vw,30px);background:rgba(255,255,255,.6);border:1px solid var(--c-line);border-radius:3px;}
.ms-a-do__col h3{margin:0 0 14px;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--c-deep);}
.ms-a-do__col ul{list-style:none;margin:0;padding:0;}
.ms-a-do__col li{list-style:none;padding:8px 0;border-bottom:1px solid var(--c-line);font-size:15.5px;color:var(--c-muted);}
.ms-a-do__col li:last-child{border-bottom:0;padding-bottom:0;}

/* Team ------------------------------------------------------------------- */
.ms-a-team{max-width:var(--maxw);margin:0 auto;padding:clamp(52px,7vw,86px) var(--gutter) 0;}
.ms-a-team__head{margin-bottom:clamp(26px,3.5vw,42px);}
.ms-a-portrait{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;background:var(--c-sand);}

/* Founder and medical director get the wide treatment. */
.ms-a-leads{display:grid;gap:clamp(18px,2.4vw,26px);margin-bottom:clamp(18px,2.4vw,26px);}
.ms-a-lead{
  display:grid;grid-template-columns:minmax(0,.32fr) minmax(0,.68fr);gap:clamp(20px,3vw,36px);
  align-items:start;padding:clamp(20px,2.4vw,30px);
  background:rgba(255,255,255,.62);border:1px solid var(--c-line);border-radius:3px;
}
.ms-a-lead__media{border-radius:2px;overflow:hidden;}
/* Must out-specify `.ms-a-lead__body p` below, which otherwise repaints this
   chip olive-on-olive and makes it invisible. */
.ms-a-lead__body p.ms-a-tag{margin:0 0 10px;display:inline-block;font-size:10px;line-height:1.4;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#fff;background:var(--c-deep);padding:5px 10px;border-radius:2px;}

.ms-a-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px);}
.ms-a-card{
  --lift:0px;display:flex;flex-direction:column;
  padding:clamp(18px,2vw,24px);background:rgba(255,255,255,.62);
  border:1px solid var(--c-line);border-radius:3px;
  transform:translate3d(0,var(--lift),0);
  transition:transform .3s cubic-bezier(.22,.61,.36,1),box-shadow .3s ease,border-color .3s ease;
  will-change:transform;
}
@media (hover:hover) and (pointer:fine){
  .ms-a-card:hover{--lift:-4px;box-shadow:0 16px 38px rgba(42,46,36,.13);border-color:rgba(124,130,104,.42);}
}
.ms-a-card__media{border-radius:2px;overflow:hidden;margin-bottom:18px;}

/* Testimonials ----------------------------------------------------------- */
.ms-a-quotes{max-width:var(--maxw);margin:0 auto;padding:clamp(52px,7vw,86px) var(--gutter) 0;}
.ms-a-quotes__head{margin-bottom:clamp(24px,3vw,38px);}
.ms-a-quotes__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px);}
.ms-a-testimonial{
  margin:0;padding:clamp(24px,2.6vw,32px);
  background:rgba(255,255,255,.6);border:1px solid var(--c-line);border-radius:3px;
  border-top:2px solid var(--c-olive);
}
.ms-a-testimonial p{margin:0;font-size:15.5px;line-height:1.72;color:var(--c-muted);}
.ms-a-testimonial p:before{content:"\201C";font-family:'Aboreto',Georgia,serif;font-size:2rem;line-height:0;color:var(--c-olive);margin-right:4px;vertical-align:-.35em;}

/* Closing CTA ------------------------------------------------------------ */
.ms-a-cta{margin-top:clamp(52px,7vw,86px);padding:clamp(52px,7vw,84px) var(--gutter);border-top:1px solid var(--c-line);
  background:radial-gradient(80% 120% at 100% 0%, rgba(178,177,154,.26) 0%, rgba(178,177,154,0) 60%), var(--c-ground);}
.ms-a-cta__inner{max-width:var(--maxw);margin:0 auto;}
.ms-a-cta .ms-a-actions{margin-top:0;}

/* Responsive ------------------------------------------------------------- */
@media (max-width:1000px){
  .ms-a-hero__grid{grid-template-columns:1fr;}
  .ms-a-hero__stats{grid-template-columns:repeat(2,1fr);}
  .ms-a-story__grid{grid-template-columns:1fr;}
  .ms-a-do__grid,.ms-a-quotes__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ms-a-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:680px){
  .ms-a-lead{grid-template-columns:1fr;}
  .ms-a-lead__media{max-width:240px;}
  .ms-a-do__grid,.ms-a-quotes__grid,.ms-a-grid{grid-template-columns:1fr;}
  .ms-a-hero__stats{grid-template-columns:1fr;}
  .ms-a-actions{flex-direction:column;align-items:stretch;}
  .ms-a-btn{width:100%;}
  .ms-a-display br{display:none;}
}

/* wpautop guards, same trap as the contact page. */
.ms-a p:empty,.ms-a-awards > p,.ms-a-grid > p,.ms-a-do__grid > p,.ms-a-quotes__grid > p,.ms-a-hero__stats > p{display:none!important;}

.page-id-50657 .et_pb_section.ms-a-section{padding:0!important;background-image:none!important;}
.page-id-50657 .et_pb_row.ms-a-rowfull{width:100%!important;max-width:100%!important;padding:0!important;margin:0 auto!important;}

/* ==========================================================================
   REVIEWS PAGE
   Rebuilt 1 Sep 2026. The old page carried three testimonials inside a Divi
   slider plus eight scroll animations that never fired on this site, so the
   hero rendered as 427px of blank cream.

   Review text is short attributed excerpts linking to the Google profile,
   the same pattern Google's own snippets and licensed review widgets use.
   Nothing behind Google's "More" truncation is reproduced or invented.
   No AggregateRating schema is emitted: Google disallows self-serving review
   markup for LocalBusiness and it risks a manual action.
   ========================================================================== */

.ms-r{
  --c-ground:var(--ms-cream); --c-ink:var(--ms-ink); --c-muted:#5E6353;
  --c-line:rgba(42,46,36,.13); --c-olive:var(--ms-olive); --c-deep:var(--ms-deep);
  --c-sand:var(--ms-sand); --c-star:#B08A3E;
  --gutter:clamp(20px,5vw,64px); --maxw:1180px;
  color:var(--c-ink); font-family:'Montserrat',Helvetica,Arial,sans-serif;
}
@media (prefers-reduced-motion:no-preference){
  .ms-r .ms-in{opacity:0;transform:translate3d(0,14px,0);animation:msIn .7s cubic-bezier(.22,.61,.36,1) forwards;animation-delay:var(--d,0ms);}
}
@media (prefers-reduced-motion:reduce){ .ms-r .ms-in{opacity:1;transform:none;} }

.ms-r-eyebrow{margin:0 0 16px;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--c-deep);}
.ms-r-display{margin:0;font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;
  font-size:clamp(2.3rem,5.6vw,4.2rem);line-height:1.06;letter-spacing:-.012em;text-wrap:balance;}
.ms-r-h2{margin:0 0 14px;font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;
  font-size:clamp(1.6rem,3.2vw,2.4rem);line-height:1.14;}
.ms-r-lede{margin:24px 0 0;max-width:46ch;font-size:clamp(1rem,1.2vw,1.1rem);line-height:1.66;color:var(--c-muted);}
.ms-r-note{margin:0 0 26px;font-size:16px;line-height:1.65;color:var(--c-muted);}

.ms-r-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}
.ms-r-btn{--lift:0px;display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 32px;
  font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-radius:2px;
  background:var(--c-deep);color:#fff;border:1px solid var(--c-deep);
  transform:translate3d(0,var(--lift),0);box-shadow:0 2px 10px rgba(42,46,36,.12);
  transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s ease;will-change:transform;}
.ms-r-btn:hover,.ms-r-btn:focus-visible{--lift:-3px;box-shadow:0 12px 28px rgba(42,46,36,.22);color:#fff;}
.ms-r-btn--ghost{background:transparent;color:var(--c-ink);border-color:rgba(42,46,36,.30);box-shadow:none;}
.ms-r-btn--ghost:hover,.ms-r-btn--ghost:focus-visible{background:rgba(124,130,104,.10);border-color:var(--c-olive);color:var(--c-ink);}
.ms-r a:focus-visible{outline:2px solid var(--c-olive);outline-offset:3px;}

/* Hero + score panel ----------------------------------------------------- */
.ms-r-hero{position:relative;padding:clamp(60px,9vw,116px) var(--gutter) clamp(48px,6vw,80px);
  background:radial-gradient(120% 90% at 88% 6%, rgba(178,177,154,.32) 0%, rgba(178,177,154,0) 58%),
             radial-gradient(90% 70% at 0% 100%, rgba(212,198,176,.34) 0%, rgba(212,198,176,0) 62%),
             var(--c-ground);}
.ms-r-hero:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");}
.ms-r-hero > *{position:relative;z-index:1;}
.ms-r-hero__grid{max-width:var(--maxw);margin:0 auto;display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(32px,5vw,64px);align-items:center;}

.ms-r-score{background:rgba(255,255,255,.72);border:1px solid var(--c-line);border-radius:3px;
  padding:clamp(24px,3vw,34px);text-align:center;}
.ms-r-score__n{margin:0;font-family:'Aboreto','Cinzel',Georgia,serif;font-size:clamp(3rem,6vw,4rem);line-height:1;}
.ms-r-score__stars{display:flex;justify-content:center;gap:4px;margin:12px 0 10px;}
.ms-r-star{width:19px;height:19px;fill:var(--c-star);flex:0 0 auto;}
.ms-r-score__c{margin:0;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--c-muted);}
.ms-r-asof{margin:16px 0 0;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);opacity:.8;}

.ms-r-themes{list-style:none;margin:20px 0 0;padding:18px 0 0;border-top:1px solid var(--c-line);
  display:grid;gap:8px;text-align:left;}
.ms-r-themes li{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13.5px;color:var(--c-muted);}
.ms-r-themes b{font-weight:600;color:var(--c-deep);background:rgba(124,130,104,.14);padding:2px 9px;border-radius:2px;font-size:12px;}

/* Review wall. CSS columns so cards of different lengths pack without gaps. */
.ms-r-wall{max-width:var(--maxw);margin:0 auto;padding:clamp(52px,7vw,86px) var(--gutter) 0;}
.ms-r-wall__head{margin-bottom:clamp(24px,3vw,38px);}
.ms-r-grid{columns:3;column-gap:clamp(14px,1.8vw,20px);}
.ms-r-card{
  break-inside:avoid;margin:0 0 clamp(14px,1.8vw,20px);
  padding:clamp(20px,2.2vw,26px);
  background:rgba(255,255,255,.66);border:1px solid var(--c-line);border-radius:3px;
  transition:box-shadow .3s ease,border-color .3s ease;
}
@media (hover:hover) and (pointer:fine){
  .ms-r-card:hover{box-shadow:0 14px 34px rgba(42,46,36,.11);border-color:rgba(124,130,104,.38);}
}
.ms-r-card__stars{display:flex;gap:3px;margin-bottom:12px;}
.ms-r-card__stars .ms-r-star{width:15px;height:15px;}
.ms-r-card blockquote{margin:0 0 14px;font-size:15.5px;line-height:1.68;color:var(--c-muted);}
.ms-r-card figcaption{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;
  padding-top:12px;border-top:1px solid var(--c-line);}
.ms-r-who{font-size:14px;font-weight:600;color:var(--c-ink);}
.ms-r-when{font-size:12px;color:var(--c-muted);}

.ms-r-more{margin:clamp(24px,3vw,36px) 0 0;}
.ms-r-more a{display:inline-flex;align-items:center;gap:10px;text-decoration:none;
  font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-deep);}
.ms-r-arrow{width:18px;height:1px;background:currentColor;position:relative;display:inline-block;transition:transform .3s ease;}
.ms-r-arrow:after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;
  border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);}
.ms-r-more a:hover .ms-r-arrow{transform:translate3d(4px,0,0);}

/* Guest book ------------------------------------------------------------- */
.ms-r-guest{max-width:var(--maxw);margin:0 auto;padding:clamp(52px,7vw,86px) var(--gutter) 0;}
.ms-r-guest__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px);}
.ms-r-quote{margin:0;padding:clamp(24px,2.6vw,32px);background:rgba(255,255,255,.6);
  border:1px solid var(--c-line);border-top:2px solid var(--c-olive);border-radius:3px;}
.ms-r-quote blockquote{margin:0 0 14px;font-size:15.5px;line-height:1.7;color:var(--c-muted);}
.ms-r-quote blockquote:before{content:"\201C";font-family:'Aboreto',Georgia,serif;font-size:2rem;line-height:0;
  color:var(--c-olive);margin-right:4px;vertical-align:-.35em;}
.ms-r-quote figcaption{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--c-deep);}

/* CTA -------------------------------------------------------------------- */
.ms-r-cta{margin-top:clamp(52px,7vw,86px);padding:clamp(52px,7vw,84px) var(--gutter);border-top:1px solid var(--c-line);
  background:radial-gradient(80% 120% at 100% 0%, rgba(178,177,154,.26) 0%, rgba(178,177,154,0) 60%), var(--c-ground);}
.ms-r-cta__inner{max-width:var(--maxw);margin:0 auto;}
.ms-r-cta .ms-r-actions{margin-top:0;}

/* Responsive ------------------------------------------------------------- */
@media (max-width:1000px){
  .ms-r-hero__grid{grid-template-columns:1fr;}
  .ms-r-grid{columns:2;}
  .ms-r-guest__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:680px){
  .ms-r-grid{columns:1;}
  .ms-r-guest__grid{grid-template-columns:1fr;}
  .ms-r-actions{flex-direction:column;align-items:stretch;}
  .ms-r-btn{width:100%;}
  .ms-r-display br{display:none;}
}

/* wpautop guards */
.ms-r p:empty,.ms-r-grid > p,.ms-r-guest__grid > p,.ms-r-themes > p{display:none!important;}
.page-id-50677 .et_pb_section.ms-r-section{padding:0!important;background-image:none!important;}
.page-id-50677 .et_pb_row.ms-r-rowfull{width:100%!important;max-width:100%!important;padding:0!important;margin:0 auto!important;}

/* ==========================================================================
   SERVICES PAGE
   Rebuilt 1 Sep 2026 from the audit in SERVICES-PAGE-CATALOGUE.md.

   The old page hid all 39 prices inside 16 collapsed Divi accordions, and its
   anchors were broken: id="membership" appeared SEVENTEEN times and three of
   the seven anchors the nav links to were duplicated, so deep links landed on
   a divider instead of the service. Every anchor here appears exactly once.

   Prices are visible without a click. That is the point of a services menu.
   ========================================================================== */

.ms-s{
  --c-ground:var(--ms-cream); --c-ink:var(--ms-ink); --c-muted:#5E6353;
  --c-line:rgba(42,46,36,.13); --c-olive:var(--ms-olive); --c-deep:var(--ms-deep);
  --c-sand:var(--ms-sand); --gutter:clamp(20px,5vw,64px); --maxw:1180px;
  color:var(--c-ink); font-family:'Montserrat',Helvetica,Arial,sans-serif;
}
@media (prefers-reduced-motion:no-preference){
  .ms-s .ms-in{opacity:0;transform:translate3d(0,14px,0);animation:msIn .7s cubic-bezier(.22,.61,.36,1) forwards;animation-delay:var(--d,0ms);}
}
@media (prefers-reduced-motion:reduce){ .ms-s .ms-in{opacity:1;transform:none;} }

.ms-s-eyebrow{margin:0 0 14px;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--c-deep);}
.ms-s-display{margin:0;font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;
  font-size:clamp(2.2rem,5.4vw,4rem);line-height:1.06;letter-spacing:-.012em;text-wrap:balance;}
.ms-s-h2{margin:0 0 12px;font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;
  font-size:clamp(1.6rem,3.2vw,2.35rem);line-height:1.14;}
.ms-s-lede{margin:22px 0 0;max-width:56ch;font-size:clamp(1rem,1.2vw,1.08rem);line-height:1.66;color:var(--c-muted);}
.ms-s-intro{margin:0;max-width:70ch;font-size:15.5px;line-height:1.7;color:var(--c-muted);}
.ms-s-note{margin:0 0 26px;font-size:16px;line-height:1.65;color:var(--c-muted);}

.ms-s-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px;}
.ms-s-btn{--lift:0px;display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 32px;
  font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-radius:2px;
  background:var(--c-deep);color:#fff;border:1px solid var(--c-deep);
  transform:translate3d(0,var(--lift),0);box-shadow:0 2px 10px rgba(42,46,36,.12);
  transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s ease;will-change:transform;}
.ms-s-btn:hover,.ms-s-btn:focus-visible{--lift:-3px;box-shadow:0 12px 28px rgba(42,46,36,.22);color:#fff;}
.ms-s-btn--ghost{background:transparent;color:var(--c-ink);border-color:rgba(42,46,36,.30);box-shadow:none;}
.ms-s-btn--ghost:hover,.ms-s-btn--ghost:focus-visible{background:rgba(124,130,104,.10);border-color:var(--c-olive);color:var(--c-ink);}
.ms-s-btn--sm{min-height:46px;padding:0 24px;font-size:12px;}
.ms-s a:focus-visible{outline:2px solid var(--c-olive);outline-offset:3px;}

/* Hero + jump nav -------------------------------------------------------- */
.ms-s-hero{position:relative;padding:clamp(56px,8vw,104px) var(--gutter) 0;
  background:radial-gradient(120% 90% at 88% 6%, rgba(178,177,154,.32) 0%, rgba(178,177,154,0) 58%),
             radial-gradient(90% 70% at 0% 100%, rgba(212,198,176,.30) 0%, rgba(212,198,176,0) 62%),
             var(--c-ground);}
.ms-s-hero:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");}
.ms-s-hero > *{position:relative;z-index:1;}
.ms-s-hero__inner{max-width:var(--maxw);margin:0 auto;}

.ms-s-jump{max-width:var(--maxw);margin:clamp(34px,5vw,56px) auto 0;
  border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line);}
.ms-s-jump ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px 4px;margin:0;padding:14px 0;}
.ms-s-jump li{list-style:none;}
.ms-s-jump a{display:inline-block;padding:8px 14px;border-radius:2px;text-decoration:none;
  font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--c-muted);
  transition:background-color .25s ease,color .25s ease;}
.ms-s-jump a:hover,.ms-s-jump a:focus-visible{background:rgba(124,130,104,.13);color:var(--c-deep);}

/* Sections --------------------------------------------------------------- */
.ms-s-sec{max-width:var(--maxw);margin:0 auto;padding:clamp(48px,6.5vw,80px) var(--gutter) 0;scroll-margin-top:92px;}
.ms-s-sec__head{margin-bottom:clamp(22px,3vw,34px);}

/* Price list. The name and price sit on one baseline with a leader rule
   between them, so the price is scannable down the right edge. */
.ms-s-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--c-line);}
.ms-s-item{list-style:none;padding:22px 0;border-bottom:1px solid var(--c-line);}
.ms-s-item__top{display:flex;align-items:baseline;gap:14px;}
.ms-s-item__top h3{margin:0;font-size:clamp(1.05rem,1.5vw,1.2rem);font-weight:600;line-height:1.3;}
.ms-s-item__top:after{content:"";flex:1 1 auto;border-bottom:1px dotted rgba(42,46,36,.28);transform:translateY(-4px);}
.ms-s-item__price{flex:0 0 auto;font-family:'Aboreto','Cinzel',Georgia,serif;
  font-size:clamp(1.1rem,1.7vw,1.35rem);color:var(--c-ink);white-space:nowrap;}
.ms-s-item__d{margin:10px 0 0;max-width:72ch;font-size:15px;line-height:1.7;color:var(--c-muted);}
.ms-s-item__note{margin:8px 0 0;display:inline-block;font-size:12px;font-weight:600;letter-spacing:.06em;
  color:var(--c-deep);background:rgba(124,130,104,.14);padding:4px 10px;border-radius:2px;}
.ms-s-secbook{margin:24px 0 0;}

/* Memberships ------------------------------------------------------------ */
.ms-s-mgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.8vw,20px);}
.ms-s-mcard{padding:clamp(20px,2.2vw,26px);background:rgba(255,255,255,.66);
  border:1px solid var(--c-line);border-radius:3px;display:flex;flex-direction:column;}
.ms-s-mcard--feature{border-color:rgba(124,130,104,.55);box-shadow:0 14px 34px rgba(42,46,36,.10);}
.ms-s-flag{margin:0 0 10px;display:inline-block;align-self:flex-start;font-size:10px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--c-deep);padding:4px 9px;border-radius:2px;}
.ms-s-mcard h3{margin:0 0 8px;font-size:1rem;font-weight:600;}
.ms-s-price{margin:0;font-family:'Aboreto','Cinzel',Georgia,serif;font-size:2rem;line-height:1;color:var(--c-ink);}
.ms-s-price span{display:block;margin-top:6px;font-family:'Montserrat',sans-serif;font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--c-muted);}
.ms-s-mdesc{margin:14px 0 0;font-size:14.5px;line-height:1.65;color:var(--c-muted);}

.ms-s-perks{margin-top:clamp(16px,2vw,22px);padding:clamp(22px,2.6vw,30px);
  background:rgba(212,198,176,.22);border:1px solid var(--c-line);border-radius:3px;}
.ms-s-perks h3{margin:0 0 14px;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--c-deep);}
.ms-s-perks ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 24px;}
.ms-s-perks li{list-style:none;font-size:15px;color:var(--c-muted);padding-left:18px;position:relative;}
.ms-s-perks li:before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:50%;background:var(--c-olive);}
.ms-s-perks__cta{margin:22px 0 0;}

/* Add-on tables ---------------------------------------------------------- */
.ms-s-tables{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,24px);}
.ms-s-table{padding:clamp(22px,2.4vw,30px);background:rgba(255,255,255,.62);border:1px solid var(--c-line);border-radius:3px;}
.ms-s-table h3{margin:0 0 14px;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--c-deep);}
.ms-s-table dl{margin:0;}
.ms-s-table dl > div{display:flex;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid var(--c-line);}
.ms-s-table dl > div:last-child{border-bottom:0;padding-bottom:0;}
.ms-s-table dt{margin:0;font-size:15px;color:var(--c-ink);}
.ms-s-table dl > div:after{content:"";order:1;flex:1 1 auto;border-bottom:1px dotted rgba(42,46,36,.24);transform:translateY(-4px);}
.ms-s-table dd{order:2;margin:0;flex:0 0 auto;font-weight:600;font-size:15px;color:var(--c-deep);}

/* CTA -------------------------------------------------------------------- */
.ms-s-cta{margin-top:clamp(52px,7vw,86px);padding:clamp(52px,7vw,84px) var(--gutter);border-top:1px solid var(--c-line);
  background:radial-gradient(80% 120% at 100% 0%, rgba(178,177,154,.26) 0%, rgba(178,177,154,0) 60%), var(--c-ground);}
.ms-s-cta__inner{max-width:var(--maxw);margin:0 auto;}
.ms-s-cta .ms-s-actions{margin-top:0;}

/* Responsive ------------------------------------------------------------- */
@media (max-width:1000px){
  .ms-s-mgrid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ms-s-perks ul{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:680px){
  .ms-s-mgrid,.ms-s-tables{grid-template-columns:1fr;}
  .ms-s-perks ul{grid-template-columns:1fr;}
  .ms-s-actions{flex-direction:column;align-items:stretch;}
  .ms-s-btn{width:100%;}
  .ms-s-display br{display:none;}
  /* the dotted leader collapses on narrow screens; stack instead */
  .ms-s-item__top{flex-wrap:wrap;gap:4px 12px;}
  .ms-s-item__top:after{display:none;}
  .ms-s-item__price{margin-left:0;}
}

/* wpautop guards */
.ms-s p:empty,.ms-s-list > p,.ms-s-mgrid > p,.ms-s-tables > p,.ms-s-jump ul > p{display:none!important;}
.page-id-50560 .et_pb_section.ms-s-section{padding:0!important;background-image:none!important;}
.page-id-50560 .et_pb_row.ms-s-rowfull{width:100%!important;max-width:100%!important;padding:0!important;margin:0 auto!important;}

/* ==========================================================================
   HOME PAGE
   Rebuilt 1 Sep 2026 from HOME-PAGE-CATALOGUE.md.

   The old home page declared 12 Divi scroll animations, which became 20
   animated elements at runtime, and ALL 20 stayed at opacity 0 permanently
   because this site dispatches no scroll events. Below the hero the page was
   a field of empty frames: blank service cards, 1 of 9 headshots, no
   testimonials. On the page that takes 96.5% of organic traffic.

   Nothing here depends on scroll. Entrance is a CSS stagger on load.
   ========================================================================== */

.ms-h{
  --c-ground:var(--ms-cream); --c-ink:var(--ms-ink); --c-muted:#5E6353;
  --c-line:rgba(42,46,36,.13); --c-olive:var(--ms-olive); --c-deep:var(--ms-deep);
  --c-sand:var(--ms-sand); --gutter:clamp(20px,5vw,64px); --maxw:1180px;
  color:var(--c-ink); font-family:'Montserrat',Helvetica,Arial,sans-serif;
}
@media (prefers-reduced-motion:no-preference){
  .ms-h .ms-in{opacity:0;transform:translate3d(0,14px,0);animation:msIn .7s cubic-bezier(.22,.61,.36,1) forwards;animation-delay:var(--d,0ms);}
}
@media (prefers-reduced-motion:reduce){ .ms-h .ms-in{opacity:1;transform:none;} }

.ms-h-eyebrow{margin:0 0 14px;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--c-deep);}
.ms-h-display{margin:0;font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;
  font-size:clamp(2.1rem,5vw,3.8rem);line-height:1.07;letter-spacing:-.012em;text-wrap:balance;}
.ms-h-h2{margin:0 0 12px;font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;
  font-size:clamp(1.55rem,3.1vw,2.3rem);line-height:1.14;}
.ms-h-lede{margin:24px 0 0;max-width:56ch;font-size:clamp(1rem,1.2vw,1.1rem);line-height:1.66;color:var(--c-muted);}
.ms-h-intro{margin:0;max-width:60ch;font-size:15.5px;line-height:1.7;color:var(--c-muted);}
.ms-h-note{margin:0 0 26px;font-size:16px;line-height:1.65;color:var(--c-muted);}

.ms-h-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px;}
.ms-h-btn{--lift:0px;display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 32px;
  font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-radius:2px;
  background:var(--c-deep);color:#fff;border:1px solid var(--c-deep);
  transform:translate3d(0,var(--lift),0);box-shadow:0 2px 10px rgba(42,46,36,.12);
  transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s ease;will-change:transform;}
.ms-h-btn:hover,.ms-h-btn:focus-visible{--lift:-3px;box-shadow:0 12px 28px rgba(42,46,36,.22);color:#fff;}
.ms-h-btn--ghost{background:transparent;color:var(--c-ink);border-color:rgba(42,46,36,.30);box-shadow:none;}
.ms-h-btn--ghost:hover,.ms-h-btn--ghost:focus-visible{background:rgba(124,130,104,.10);border-color:var(--c-olive);color:var(--c-ink);}
.ms-h a:focus-visible{outline:2px solid var(--c-olive);outline-offset:3px;}
.ms-h-arrow{width:16px;height:1px;background:currentColor;position:relative;display:inline-block;margin-left:9px;
  transition:transform .3s cubic-bezier(.22,.61,.36,1);vertical-align:middle;}
.ms-h-arrow:after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;
  border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);}
.ms-h-link{text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-deep);}
.ms-h-link:hover .ms-h-arrow{transform:translate3d(4px,0,0);}

/* Hero ------------------------------------------------------------------- */
.ms-h-hero{position:relative;padding:clamp(64px,9vw,124px) var(--gutter) clamp(48px,6vw,76px);
  background:radial-gradient(120% 90% at 88% 6%, rgba(178,177,154,.32) 0%, rgba(178,177,154,0) 58%),
             radial-gradient(90% 70% at 0% 100%, rgba(212,198,176,.32) 0%, rgba(212,198,176,0) 62%),
             var(--c-ground);}
.ms-h-hero:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");}
.ms-h-hero > *{position:relative;z-index:1;}
.ms-h-hero__inner{max-width:var(--maxw);margin:0 auto;}
.ms-h-alt{margin:22px 0 0;}
.ms-h-alt a{text-decoration:none;font-size:14px;color:var(--c-muted);}
.ms-h-alt a:hover{color:var(--c-deep);}
.ms-h-alt a:hover .ms-h-arrow{transform:translate3d(4px,0,0);}

/* Trust bar -------------------------------------------------------------- */
.ms-h-trust{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);}
.ms-h-trust__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;
  background:var(--c-line);border:1px solid var(--c-line);border-radius:3px;overflow:hidden;}
.ms-h-stat{background:rgba(255,255,255,.74);padding:22px 24px;display:flex;flex-direction:column;gap:6px;
  text-decoration:none;color:inherit;transition:background-color .25s ease;}
.ms-h-stat:hover{background:#fff;}
.ms-h-stat__n{font-family:'Aboreto','Cinzel',Georgia,serif;font-size:1.85rem;line-height:1;color:var(--c-ink);}
.ms-h-stat__l{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--c-muted);}

/* Sections + service cards ----------------------------------------------- */
.ms-h-sec{max-width:var(--maxw);margin:0 auto;padding:clamp(48px,6.5vw,84px) var(--gutter) 0;}
.ms-h-sec__head{margin-bottom:clamp(22px,3vw,34px);}
.ms-h-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.7vw,18px);}
.ms-h-card{--lift:0px;display:flex;flex-direction:column;gap:10px;padding:clamp(20px,2.2vw,26px);
  background:rgba(255,255,255,.66);border:1px solid var(--c-line);border-radius:3px;
  text-decoration:none;color:inherit;transform:translate3d(0,var(--lift),0);
  transition:transform .3s cubic-bezier(.22,.61,.36,1),box-shadow .3s ease,border-color .3s ease;will-change:transform;}
@media (hover:hover) and (pointer:fine){
  .ms-h-card:hover{--lift:-4px;box-shadow:0 16px 38px rgba(42,46,36,.13);border-color:rgba(124,130,104,.42);}
  .ms-h-card:hover .ms-h-arrow{transform:translate3d(4px,0,0);}
}
.ms-h-card__top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.ms-h-card__n{font-size:1.02rem;font-weight:600;line-height:1.3;}
.ms-h-card__p{flex:0 0 auto;font-family:'Aboreto','Cinzel',Georgia,serif;font-size:.98rem;color:var(--c-deep);white-space:nowrap;}
.ms-h-card__d{font-size:14.5px;line-height:1.62;color:var(--c-muted);}
.ms-h-card__go{margin-top:auto;padding-top:8px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-deep);}

.ms-h-more{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,24px);margin-top:clamp(16px,2vw,22px);}
.ms-h-more__col{padding:clamp(22px,2.4vw,30px);background:rgba(212,198,176,.20);border:1px solid var(--c-line);border-radius:3px;}
.ms-h-more__col h3{margin:0 0 14px;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--c-deep);}
.ms-h-more__col ul{list-style:none;margin:0 0 18px;padding:0;}
.ms-h-more__col li{list-style:none;padding:8px 0;border-bottom:1px solid var(--c-line);font-size:15px;color:var(--c-muted);}
.ms-h-more__col li:last-child{border-bottom:0;}
.ms-h-more__col p{margin:0;}

/* Membership band -------------------------------------------------------- */
.ms-h-band{margin-top:clamp(48px,6.5vw,84px);padding:clamp(48px,6.5vw,80px) var(--gutter);
  background:var(--c-ink);color:var(--ms-cream);}
.ms-h-band .ms-h-eyebrow{color:var(--c-sand);}
.ms-h-band .ms-h-h2{color:var(--ms-cream);}
.ms-h-band .ms-h-intro{color:rgba(255,254,248,.82);}
.ms-h-band .ms-h-btn{background:var(--c-sand);border-color:var(--c-sand);color:var(--c-ink);}
.ms-h-band .ms-h-btn:hover{background:#fff;border-color:#fff;color:var(--c-ink);}
.ms-h-band__inner{max-width:var(--maxw);margin:0 auto;display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,4vw,56px);align-items:center;}
.ms-h-band__list{list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,254,248,.16);}
.ms-h-band__list li{list-style:none;display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding:15px 0;border-bottom:1px solid rgba(255,254,248,.16);font-size:15.5px;}
.ms-h-band__list b{font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;font-size:1.3rem;color:var(--c-sand);}

/* Split section ---------------------------------------------------------- */
.ms-h-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,60px);align-items:start;}
.ms-h-quotes{display:grid;gap:14px;margin-top:18px;}
.ms-h-quotes figure{margin:0;padding:20px 22px;background:rgba(255,255,255,.62);
  border:1px solid var(--c-line);border-left:2px solid var(--c-olive);border-radius:3px;}
.ms-h-quotes blockquote{margin:0 0 10px;font-size:15px;line-height:1.68;color:var(--c-muted);}
.ms-h-quotes figcaption{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--c-deep);}

/* CTA -------------------------------------------------------------------- */
.ms-h-cta{margin-top:clamp(52px,7vw,86px);padding:clamp(52px,7vw,84px) var(--gutter);border-top:1px solid var(--c-line);
  background:radial-gradient(80% 120% at 100% 0%, rgba(178,177,154,.26) 0%, rgba(178,177,154,0) 60%), var(--c-ground);}
.ms-h-cta__inner{max-width:var(--maxw);margin:0 auto;}
.ms-h-cta .ms-h-actions{margin-top:0;}

/* Responsive ------------------------------------------------------------- */
@media (max-width:1000px){
  .ms-h-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ms-h-trust__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ms-h-band__inner,.ms-h-split{grid-template-columns:1fr;}
}
@media (max-width:680px){
  .ms-h-grid,.ms-h-more,.ms-h-trust__grid{grid-template-columns:1fr;}
  .ms-h-actions{flex-direction:column;align-items:stretch;}
  .ms-h-btn{width:100%;}
  .ms-h-display br{display:none;}
}

/* wpautop guards */
.ms-h p:empty,.ms-h-grid > p,.ms-h-trust__grid > p,.ms-h-more > p,.ms-h-band__list > p{display:none!important;}
.page-id-50540 .et_pb_section.ms-h-section{padding:0!important;background-image:none!important;}
.page-id-50540 .et_pb_row.ms-h-rowfull{width:100%!important;max-width:100%!important;padding:0!important;margin:0 auto!important;}

/* ==========================================================================
   PRODUCTS PAGE
   Rebuilt 1 Sep 2026. The old page was five Divi CTA modules of manufacturer
   marketing boilerplate with three slide animations that never fired, no
   booking call to action anywhere, and the two revenue links buried as plain
   buttons above the fold content.

   AFFILIATE LINKS ARE LOAD-BEARING and are preserved byte for byte:
     ZO         http://zoskinhealth.com/drjramirez        (practice referral)
     SkinBetter .../checkout.ssp?is=skinusernew&invitecode=100966#register
   Do not "tidy" the scheme or strip the query. See PRODUCTS-PAGE-CATALOGUE.md.
   ========================================================================== */

.ms-p{
  --c-ground:var(--ms-cream); --c-ink:var(--ms-ink); --c-muted:#5E6353;
  --c-line:rgba(42,46,36,.13); --c-olive:var(--ms-olive); --c-deep:var(--ms-deep);
  --c-sand:var(--ms-sand); --gutter:clamp(20px,5vw,64px); --maxw:1180px;
  color:var(--c-ink); font-family:'Montserrat',Helvetica,Arial,sans-serif;
}
@media (prefers-reduced-motion:no-preference){
  .ms-p .ms-in{opacity:0;transform:translate3d(0,14px,0);animation:msIn .7s cubic-bezier(.22,.61,.36,1) forwards;animation-delay:var(--d,0ms);}
}
@media (prefers-reduced-motion:reduce){ .ms-p .ms-in{opacity:1;transform:none;} }

.ms-p-eyebrow{margin:0 0 14px;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--c-deep);}
.ms-p-display{margin:0;font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;
  font-size:clamp(2.2rem,5.4vw,4rem);line-height:1.06;letter-spacing:-.012em;text-wrap:balance;}
.ms-p-h2{margin:0 0 12px;font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;
  font-size:clamp(1.55rem,3.1vw,2.3rem);line-height:1.14;}
.ms-p-lede{margin:24px 0 0;max-width:58ch;font-size:clamp(1rem,1.2vw,1.08rem);line-height:1.66;color:var(--c-muted);}
.ms-p-intro{margin:0;max-width:62ch;font-size:15.5px;line-height:1.7;color:var(--c-muted);}
.ms-p-note{margin:0 0 26px;font-size:16px;line-height:1.65;color:var(--c-muted);}

.ms-p-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px;}
.ms-p-btn{--lift:0px;display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 32px;
  font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-radius:2px;
  background:var(--c-deep);color:#fff;border:1px solid var(--c-deep);
  transform:translate3d(0,var(--lift),0);box-shadow:0 2px 10px rgba(42,46,36,.12);
  transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s ease;will-change:transform;}
.ms-p-btn:hover,.ms-p-btn:focus-visible{--lift:-3px;box-shadow:0 12px 28px rgba(42,46,36,.22);color:#fff;}
.ms-p-btn--ghost{background:transparent;color:var(--c-ink);border-color:rgba(42,46,36,.30);box-shadow:none;}
.ms-p-btn--ghost:hover,.ms-p-btn--ghost:focus-visible{background:rgba(124,130,104,.10);border-color:var(--c-olive);color:var(--c-ink);}
.ms-p a:focus-visible{outline:2px solid var(--c-olive);outline-offset:3px;}
.ms-p-arrow{width:16px;height:1px;background:currentColor;position:relative;display:inline-block;margin-left:9px;
  transition:transform .3s cubic-bezier(.22,.61,.36,1);vertical-align:middle;}
.ms-p-arrow:after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;
  border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);}

/* Hero ------------------------------------------------------------------- */
.ms-p-hero{position:relative;padding:clamp(60px,9vw,116px) var(--gutter) clamp(48px,6vw,76px);
  background:radial-gradient(120% 90% at 88% 6%, rgba(178,177,154,.32) 0%, rgba(178,177,154,0) 58%),
             radial-gradient(90% 70% at 0% 100%, rgba(212,198,176,.32) 0%, rgba(212,198,176,0) 62%),
             var(--c-ground);}
.ms-p-hero:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");}
.ms-p-hero > *{position:relative;z-index:1;}
.ms-p-hero__inner{max-width:var(--maxw);margin:0 auto;}

/* Shop band. The two affiliate destinations get their own surface. */
.ms-p-shop{padding:clamp(44px,6vw,72px) var(--gutter);background:var(--c-ink);color:var(--ms-cream);}
.ms-p-shop .ms-p-eyebrow{color:var(--c-sand);}
.ms-p-shop .ms-p-h2{color:var(--ms-cream);}
.ms-p-shop .ms-p-intro{color:rgba(255,254,248,.82);}
.ms-p-shop__inner{max-width:var(--maxw);margin:0 auto;display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(26px,4vw,56px);align-items:center;}
.ms-p-shop__links{display:grid;gap:12px;}
.ms-p-shoplink{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 22px;border:1px solid rgba(255,254,248,.22);border-radius:3px;
  text-decoration:none;color:var(--ms-cream);background:rgba(255,254,248,.04);
  transition:background-color .25s ease,border-color .25s ease;}
.ms-p-shoplink:hover{background:rgba(255,254,248,.10);border-color:rgba(255,254,248,.42);color:var(--ms-cream);}
.ms-p-shoplink:hover .ms-p-arrow{transform:translate3d(4px,0,0);}
.ms-p-shoplink span{font-size:1.05rem;font-weight:600;}
.ms-p-shoplink b{font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-sand);white-space:nowrap;}

/* Brand cards ------------------------------------------------------------ */
.ms-p-sec{max-width:var(--maxw);margin:0 auto;padding:clamp(48px,6.5vw,84px) var(--gutter) 0;}
.ms-p-sec__head{margin-bottom:clamp(22px,3vw,34px);}
.ms-p-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,22px);}
.ms-p-card{--lift:0px;display:flex;flex-direction:column;background:rgba(255,255,255,.68);
  border:1px solid var(--c-line);border-radius:3px;overflow:hidden;
  transform:translate3d(0,var(--lift),0);
  transition:transform .3s cubic-bezier(.22,.61,.36,1),box-shadow .3s ease,border-color .3s ease;will-change:transform;}
@media (hover:hover) and (pointer:fine){
  .ms-p-card:hover{--lift:-4px;box-shadow:0 16px 38px rgba(42,46,36,.13);border-color:rgba(124,130,104,.42);}
}
.ms-p-card__media{background:#fff;border-bottom:1px solid var(--c-line);}
.ms-p-card__media img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;}
.ms-p-card__body{padding:clamp(20px,2.2vw,26px);display:flex;flex-direction:column;flex:1 1 auto;}
.ms-p-kicker{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--c-deep);}
.ms-p-card__body h3{margin:0 0 10px;font-size:1.15rem;font-weight:600;}
.ms-p-desc{margin:0;font-size:15px;line-height:1.68;color:var(--c-muted);}
.ms-p-card__go{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--c-line);}
.ms-p-card__go a{text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-deep);}
.ms-p-card__go a:hover .ms-p-arrow{transform:translate3d(4px,0,0);}
.ms-p-card__instore{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--c-line);
  font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-muted);}

/* CTA -------------------------------------------------------------------- */
.ms-p-cta{margin-top:clamp(52px,7vw,86px);padding:clamp(52px,7vw,84px) var(--gutter);border-top:1px solid var(--c-line);
  background:radial-gradient(80% 120% at 100% 0%, rgba(178,177,154,.26) 0%, rgba(178,177,154,0) 60%), var(--c-ground);}
.ms-p-cta__inner{max-width:var(--maxw);margin:0 auto;}
.ms-p-cta .ms-p-actions{margin-top:0;}

/* Responsive ------------------------------------------------------------- */
@media (max-width:1000px){
  .ms-p-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ms-p-shop__inner{grid-template-columns:1fr;}
}
@media (max-width:680px){
  .ms-p-grid{grid-template-columns:1fr;}
  .ms-p-actions{flex-direction:column;align-items:stretch;}
  .ms-p-btn{width:100%;}
  .ms-p-display br{display:none;}
  .ms-p-shoplink{flex-direction:column;align-items:flex-start;gap:8px;}
}

/* wpautop guards */
.ms-p p:empty,.ms-p-grid > p,.ms-p-shop__links > p{display:none!important;}
.page-id-50589 .et_pb_section.ms-p-section{padding:0!important;background-image:none!important;}
.page-id-50589 .et_pb_row.ms-p-rowfull{width:100%!important;max-width:100%!important;padding:0!important;margin:0 auto!important;}

/* ==========================================================================
   SITE PHOTOGRAPHY
   Shared figure treatment for the real photography catalogued 2 Sep 2026.
   Sources are the professional Aug 2024 shoot and the Dec 2021 building
   photos; the 2021 files carry EXIF Orientation 6 and were rotated on
   generation, which is why they had always displayed sideways.
   ========================================================================== */
.ms-photo{
  margin:clamp(40px,5vw,64px) auto 0;padding:0 clamp(20px,5vw,64px);
  max-width:1180px;
}
.ms-photo picture{display:block;border-radius:3px;overflow:hidden;
  border:1px solid rgba(42,46,36,.12);box-shadow:0 18px 44px rgba(42,46,36,.14);}
.ms-photo img{display:block;width:100%;height:auto;}
.ms-photo--wide img{object-fit:cover;}
.ms-photo--tall img{object-fit:cover;}
.ms-photo figcaption{margin-top:12px;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:#5E6353;font-family:'Montserrat',Helvetica,Arial,sans-serif;}

/* On the reviews page the photo sits inside the hero grid beside the score. */
.ms-r-hero__grid .ms-photo{margin:0;padding:0;max-width:none;}
.ms-r-hero__grid{align-items:start;}
@media (max-width:1000px){
  /* ratio comes from the file itself now */
}

/* NOTE: the wide `eltamd-range` shot was tried in this card and reverted.
   Fifteen products contained into a 334px square render as mostly white
   space and read as an empty card. The square three-bottle crop is legible
   at card size, so the range shot stays generated but unplaced. */

/* --- Second photo pass, 2 Sep 2026 ---------------------------------------
   Every /site/ photograph now ships at two widths with srcset, so a phone
   pulls the 900w (wide) or 700w (tall) file instead of the full 1800/1400.
   ------------------------------------------------------------------------ */

/* About: the owners sit inline in the story column, not full bleed. */
.ms-photo--inline{max-width:420px;margin:clamp(28px,4vw,44px) 0 0;padding:0;}
.ms-photo--inline img{object-fit:cover;}

/* Contact: reception plus the entrance patio, stacked as a pair. */
.ms-c-hero__media{display:grid;gap:12px;grid-template-columns:1fr 1fr;
  border-radius:0;overflow:visible;box-shadow:none;border:0;}
.ms-c-hero__media picture{display:block;border-radius:3px;overflow:hidden;
  border:1px solid rgba(42,46,36,.10);box-shadow:0 18px 44px rgba(42,46,36,.16);}
.ms-c-hero__media img{object-fit:cover;width:100%;height:auto;display:block;}
.ms-c-hero__media:after{display:none;}   /* the old single-image veil */

@media (max-width:900px){
  /* ratio comes from the file itself now */
}
@media (max-width:600px){
  .ms-c-hero__media{grid-template-columns:1fr;}
  .ms-c-hero__media img{aspect-ratio:3/2;}
  .ms-photo--inline{max-width:none;}
}

/* ==========================================================================
   ACCESSIBILITY PASS, 2 Sep 2026
   From a scripted audit across every page at desktop and phone widths.
   ========================================================================== */

/* Footer contact links were 15px tall. A phone tap target should be 44px.
   Padding is added rather than font-size so the visual rhythm is unchanged;
   negative margin keeps the list spacing identical to before. */
.ms-contact a,
.ms-legal a{
  display:inline-block;
  padding:9px 0;
  margin:-9px 0;
}
.ms-contact li{padding:0;}

/* Divi's search field renders at 13.3px, which makes iOS zoom the whole page
   on focus and then leaves it zoomed. 16px is the threshold that prevents it. */
#page-container .et-search-form input,
#page-container input.et-search-field,
#page-container .et_pb_menu .et-search-field{
  font-size:16px!important;
}

/* ==========================================================================
   MASSAGE PAGE
   Rebuilt 2 Sep 2026. It was the last page still on the original Divi design,
   and its entire content block was rendered TWICE (a duplicated Divi row).
   It also carried massage prices the services page never showed: $100 for
   60 minutes and $140 for 90, alongside the member rates.
   ========================================================================== */
.ms-m{
  --c-ground:var(--ms-cream); --c-ink:var(--ms-ink); --c-muted:#5E6353;
  --c-line:rgba(42,46,36,.13); --c-olive:var(--ms-olive); --c-deep:var(--ms-deep);
  --c-sand:var(--ms-sand); --gutter:clamp(20px,5vw,64px); --maxw:1180px;
  color:var(--c-ink); font-family:'Montserrat',Helvetica,Arial,sans-serif;
}
@media (prefers-reduced-motion:no-preference){
  .ms-m .ms-in{opacity:0;transform:translate3d(0,14px,0);animation:msIn .7s cubic-bezier(.22,.61,.36,1) forwards;animation-delay:var(--d,0ms);}
}
@media (prefers-reduced-motion:reduce){ .ms-m .ms-in{opacity:1;transform:none;} }

.ms-m-eyebrow{margin:0 0 14px;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--c-deep);}
.ms-m-display{margin:0;font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;
  font-size:clamp(2.2rem,5.2vw,3.9rem);line-height:1.06;letter-spacing:-.012em;text-wrap:balance;}
.ms-m-h2{margin:0 0 12px;font-family:'Aboreto','Cinzel',Georgia,serif;font-weight:400;
  font-size:clamp(1.55rem,3.1vw,2.3rem);line-height:1.14;}
.ms-m-lede{margin:24px 0 0;max-width:52ch;font-size:clamp(1rem,1.2vw,1.08rem);line-height:1.66;color:var(--c-muted);}
.ms-m-intro{margin:0;max-width:62ch;font-size:15.5px;line-height:1.7;color:var(--c-muted);}
.ms-m-note{margin:0 0 26px;font-size:16px;line-height:1.65;color:var(--c-muted);}

.ms-m-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px;}
.ms-m-btn{--lift:0px;display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 32px;
  font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-radius:2px;
  background:var(--c-deep);color:#fff;border:1px solid var(--c-deep);
  transform:translate3d(0,var(--lift),0);box-shadow:0 2px 10px rgba(42,46,36,.12);
  transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s ease;will-change:transform;}
.ms-m-btn:hover,.ms-m-btn:focus-visible{--lift:-3px;box-shadow:0 12px 28px rgba(42,46,36,.22);color:#fff;}
.ms-m-btn--ghost{background:transparent;color:var(--c-ink);border-color:rgba(42,46,36,.30);box-shadow:none;}
.ms-m-btn--ghost:hover,.ms-m-btn--ghost:focus-visible{background:rgba(124,130,104,.10);border-color:var(--c-olive);color:var(--c-ink);}
.ms-m a:focus-visible{outline:2px solid var(--c-olive);outline-offset:3px;}
.ms-m-link{display:inline-flex;align-items:center;text-decoration:none;font-size:13px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--c-deep);}
.ms-m-arrow{width:16px;height:1px;background:currentColor;position:relative;display:inline-block;margin-left:9px;
  transition:transform .3s cubic-bezier(.22,.61,.36,1);vertical-align:middle;}
.ms-m-arrow:after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;
  border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);}
.ms-m-link:hover .ms-m-arrow{transform:translate3d(4px,0,0);}

/* Hero ------------------------------------------------------------------- */
.ms-m-hero{position:relative;padding:clamp(56px,8vw,110px) var(--gutter) clamp(44px,6vw,72px);
  background:radial-gradient(120% 90% at 88% 6%, rgba(178,177,154,.32) 0%, rgba(178,177,154,0) 58%),
             radial-gradient(90% 70% at 0% 100%, rgba(212,198,176,.32) 0%, rgba(212,198,176,0) 62%),
             var(--c-ground);}
.ms-m-hero:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");}
.ms-m-hero > *{position:relative;z-index:1;}
.ms-m-hero__grid{max-width:var(--maxw);margin:0 auto;display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(30px,5vw,60px);align-items:center;}
.ms-m-hero__media picture{display:block;border-radius:3px;overflow:hidden;
  border:1px solid rgba(42,46,36,.10);box-shadow:0 18px 44px rgba(42,46,36,.16);}
.ms-m-hero__media img{display:block;width:100%;height:auto;object-fit:cover;}

/* Sections + price table ------------------------------------------------- */
.ms-m-sec{max-width:var(--maxw);margin:0 auto;padding:clamp(48px,6.5vw,84px) var(--gutter) 0;}
.ms-m-sec__head{margin-bottom:clamp(22px,3vw,34px);}

.ms-m-table{border-top:1px solid var(--c-line);}
.ms-m-table__head,.ms-m-row{display:grid;grid-template-columns:minmax(0,1fr) 130px 130px;gap:14px;align-items:baseline;}
.ms-m-table__head{padding:12px 4px;border-bottom:1px solid var(--c-line);
  font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--c-deep);}
.ms-m-table__head span:not(:first-child),.ms-m-row__p,.ms-m-row__m{text-align:right;}
.ms-m-row{padding:18px 4px;border-bottom:1px solid var(--c-line);}
.ms-m-row__n{font-size:clamp(1rem,1.4vw,1.12rem);font-weight:600;}
.ms-m-row__p{font-family:'Aboreto','Cinzel',Georgia,serif;font-size:1.2rem;color:var(--c-ink);}
.ms-m-row__m{font-family:'Aboreto','Cinzel',Georgia,serif;font-size:1.2rem;color:var(--c-deep);}
.ms-m-after{margin:24px 0 0;}

/* Technique cards -------------------------------------------------------- */
.ms-m-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.8vw,20px);}
.ms-m-card{padding:clamp(20px,2.2vw,26px);background:rgba(255,255,255,.66);
  border:1px solid var(--c-line);border-radius:3px;
  transition:box-shadow .3s ease,border-color .3s ease;}
@media (hover:hover) and (pointer:fine){
  .ms-m-card:hover{box-shadow:0 14px 34px rgba(42,46,36,.11);border-color:rgba(124,130,104,.38);}
}
.ms-m-card h3{margin:0 0 10px;font-size:1.02rem;font-weight:600;}
.ms-m-card p{margin:0;font-size:14.5px;line-height:1.65;color:var(--c-muted);}

/* Spa tent band ---------------------------------------------------------- */
.ms-m-tent{margin-top:clamp(48px,6.5vw,84px);padding:clamp(48px,6.5vw,80px) var(--gutter);
  background:var(--c-ink);color:var(--ms-cream);}
.ms-m-tent .ms-m-eyebrow{color:var(--c-sand);}
.ms-m-tent .ms-m-h2{color:var(--ms-cream);}
.ms-m-tent .ms-m-intro{color:rgba(255,254,248,.82);}
.ms-m-tent .ms-m-btn{background:var(--c-sand);border-color:var(--c-sand);color:var(--c-ink);}
.ms-m-tent .ms-m-btn:hover{background:#fff;border-color:#fff;color:var(--c-ink);}
.ms-m-tent__inner{max-width:var(--maxw);margin:0 auto;display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,4vw,56px);align-items:center;}
.ms-m-tent__media picture{display:block;border-radius:3px;overflow:hidden;border:1px solid rgba(255,254,248,.18);}
.ms-m-tent__media img{display:block;width:100%;height:auto;object-fit:cover;}

/* CTA -------------------------------------------------------------------- */
.ms-m-cta{margin-top:clamp(48px,6.5vw,84px);padding:clamp(48px,6.5vw,80px) var(--gutter);border-top:1px solid var(--c-line);
  background:radial-gradient(80% 120% at 100% 0%, rgba(178,177,154,.26) 0%, rgba(178,177,154,0) 60%), var(--c-ground);}
.ms-m-cta__inner{max-width:var(--maxw);margin:0 auto;}
.ms-m-cta .ms-m-actions{margin-top:0;}

/* Responsive ------------------------------------------------------------- */
@media (max-width:1000px){
  .ms-m-hero__grid,.ms-m-tent__inner{grid-template-columns:1fr;}
  .ms-m-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  /* ratio comes from the file itself now */
}
@media (max-width:680px){
  .ms-m-grid{grid-template-columns:1fr;}
  .ms-m-actions{flex-direction:column;align-items:stretch;}
  .ms-m-btn{width:100%;}
  .ms-m-display br{display:none;}
  .ms-m-table__head{display:none;}
  .ms-m-row{grid-template-columns:1fr auto;gap:4px 12px;}
  .ms-m-row__n{grid-column:1 / -1;}
  .ms-m-row__p:before{content:"Standard ";font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-muted);}
  .ms-m-row__m:before{content:"Member ";font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-muted);}
  .ms-m-row__p,.ms-m-row__m{text-align:left;}
}
.ms-m p:empty,.ms-m-grid > p,.ms-m-table > p{display:none!important;}
.page-id-2 .et_pb_section.ms-m-section{padding:0!important;background-image:none!important;}
.page-id-2 .et_pb_row.ms-m-rowfull{width:100%!important;max-width:100%!important;padding:0!important;margin:0 auto!important;}
