/* =====================================================================
   Fit With Shruti - 3.3.0 layer. Loads LAST. Additive; delete this file
   (+ its enqueue in functions.php) to revert.
   1 Icons · 2 Blank-space + sticky CTA · 3 Pre-footer "Book your slot"
   4 Mobile menu that fits the screen · 5 Programs carousel
   ===================================================================== */

.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------------------------------------------------------------------
   1. PREMIUM ICON SET (duotone line icons, one family everywhere)
   --------------------------------------------------------------------- */
.hc-ico{display:block;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.hc-ico .hc-d{fill:currentColor;fill-opacity:.14;stroke:none}
.focus-icon .hc-ico .hc-d,.hc-semantic-icon .hc-ico .hc-d,.ccard-icon .hc-ico .hc-d{fill:var(--lime);fill-opacity:.5}
.focus-card .focus-icon,.ccard .ccard-icon{color:var(--forest)}
.focus-card .focus-icon svg{width:26px;height:26px}
.btn .hc-btn-icon .hc-d,.pcard-link .hc-btn-icon .hc-d{fill-opacity:.22}
.footer-social .hc-ico{stroke-width:1.5}
.footer-social .hc-ico .hc-d{fill:#E6C98B;fill-opacity:.25}
.hc-mnav-btn .hc-ico{width:20px;height:20px}
.hc-car-btn .hc-ico{width:20px;height:20px;stroke-width:2}

/* ---------------------------------------------------------------------
   2. NO BLANK STRIPS + STICKY CTA SITS ON THE FOOTER
      Old rules added 72-86px of paper-coloured padding to <body> and
      <main>, which showed as white bands above the footer and under the
      floating button. The footer now owns that room (it is dark), so the
      button always floats over footer colour at the end of the page.
   --------------------------------------------------------------------- */
@media(max-width:960px){
  html body{padding-bottom:0!important}
  html body main,html body main.wrap,html body .wrap{padding-bottom:0!important;margin-bottom:0!important}
  html body .site-footer{padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))!important;margin-bottom:0!important}
  html body .site-footer .footer-bottom{padding-bottom:4px}
}

/* ---------------------------------------------------------------------
   3. PRE-FOOTER "BOOK YOUR SLOT"
   --------------------------------------------------------------------- */
html body .offer-bar{
  background:none!important;border:0!important;
  padding:clamp(26px,5vw,56px) 0 clamp(34px,6vw,72px);
}
html body .offer-bar::before{display:none!important}
.offer-card{
  position:relative;overflow:hidden;isolation:isolate;
  display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:clamp(22px,4.5vw,64px);align-items:center;
  padding:clamp(24px,4.6vw,56px);
  border-radius:clamp(22px,3vw,34px);
  border:1px solid rgba(176,134,63,.5);
  background:
    radial-gradient(520px 280px at 100% 0,rgba(201,161,90,.34),transparent 70%),
    radial-gradient(420px 260px at 0 100%,rgba(181,115,90,.15),transparent 70%),
    linear-gradient(135deg,#FFFCF2 0%,#F7EBCB 100%);
  box-shadow:0 1px 0 #fff inset,0 40px 70px -36px rgba(11,35,24,.45);
}
.offer-card::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;z-index:1;
  background:linear-gradient(90deg,transparent,#C9A15A 25%,#E6C98B 50%,#C9A15A 75%,transparent);
}
.offer-card::after{
  content:"";position:absolute;right:-60px;bottom:-70px;width:260px;height:260px;z-index:-1;border-radius:50%;
  border:1px solid rgba(176,134,63,.25);box-shadow:0 0 0 26px rgba(201,161,90,.06),0 0 0 52px rgba(201,161,90,.04);
}
.offer-eyebrow{
  display:inline-flex;align-items:center;gap:8px;max-width:100%;
  padding:8px 14px 8px 11px;border-radius:999px;
  background:rgba(255,255,255,.72);border:1px solid rgba(176,134,63,.4);
  font:700 11.5px/1.25 Inter,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#7A5C1E;
}
.offer-eyebrow .hc-ico{width:17px;height:17px;flex:0 0 17px}
.offer-title{
  font-family:var(--font-display,Fraunces,Georgia,serif)!important;font-weight:600;
  font-size:clamp(28px,4.8vw,46px);line-height:1.08;letter-spacing:-.015em;
  margin:16px 0 10px;color:var(--forest);
}
.offer-text{margin:0;max-width:46ch;font-size:clamp(15px,1.6vw,17px);line-height:1.6;color:#3B4D43}
.offer-perks{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:12px}
.offer-perks li{display:flex;align-items:center;gap:12px;font:600 14.5px/1.35 Inter,system-ui,sans-serif;color:#1B3326}
.offer-perks .hc-ico{
  box-sizing:content-box;width:20px;height:20px;flex:0 0 20px;padding:7px;border-radius:12px;
  color:var(--forest);background:#fff;border:1px solid rgba(176,134,63,.4);box-shadow:0 6px 14px -8px rgba(138,106,44,.6);
}
.offer-perks .hc-ico .hc-d{fill:var(--lime);fill-opacity:.5}
.offer-action{display:flex;flex-direction:column;gap:16px;align-items:stretch}
.offer-cta-wrap{position:relative;padding-top:13px}
html body .offer-bar .offer-cta{
  width:100%;min-height:64px;padding:0 26px;border-radius:999px;font-size:17px;font-weight:700;letter-spacing:.005em;gap:12px;
  box-shadow:0 22px 36px -18px rgba(11,35,24,.7),0 1px 0 rgba(255,255,255,.18) inset;
}
html body .offer-bar .offer-cta .hc-btn-icon{width:20px;height:20px;min-width:20px;flex-basis:20px}
html body .offer-bar .offer-cta .hc-btn-icon svg{width:20px;height:20px;color:#E6C98B}
.offer-strike{
  position:absolute;top:0;right:20px;z-index:3;
  padding:6px 12px;border-radius:999px;
  background:linear-gradient(180deg,#EBD093,#C9A15A);color:#3A2A08;
  font:800 12.5px/1 Inter,system-ui,sans-serif;letter-spacing:.02em;
  box-shadow:0 10px 18px -8px rgba(138,106,44,.85),0 0 0 3px #F9EFD3;
  transform:rotate(3deg);pointer-events:none;
}
.offer-strike s{text-decoration-thickness:2px;text-decoration-color:#7A2E1A}
.offer-note{display:flex;align-items:center;justify-content:center;gap:9px;margin:0;font:600 13px/1.4 Inter,system-ui,sans-serif;color:#4A5C51;text-align:center}
.offer-note .hc-ico{width:17px;height:17px;flex:0 0 17px;color:#1F7A4D}
@media(max-width:820px){
  html body .offer-bar{padding:20px 0 28px}
  .offer-card{grid-template-columns:1fr;gap:22px;padding:26px 20px 24px;border-radius:24px}
  .offer-card::after{width:200px;height:200px;right:-70px;bottom:-90px}
  .offer-perks{gap:11px}
  .offer-strike{right:18px}
}
@media(max-width:380px){
  .offer-card{padding:24px 16px 22px}
  .offer-eyebrow{font-size:10.5px;letter-spacing:.09em}
  html body .offer-bar .offer-cta{font-size:16px;padding:0 18px}
}

/* ---------------------------------------------------------------------
   4. MOBILE MENU - the whole panel always fits the screen, no scrolling
      Rows share the available height (capped), the buttons stay pinned
      at the bottom. Sizes follow the viewport height.
   --------------------------------------------------------------------- */
@media(max-width:960px){
  html body .site-header .navlinks.is-open{
    display:flex;flex-direction:column;align-items:stretch;
    height:calc(100vh - var(--hc-hdr-bottom,72px));
    height:calc(100dvh - var(--hc-hdr-bottom,72px));
    max-height:calc(100vh - var(--hc-hdr-bottom,72px));
    max-height:calc(100dvh - var(--hc-hdr-bottom,72px));
    overflow:hidden;overscroll-behavior:contain;
    padding:2px clamp(20px,6vw,36px) calc(18px + env(safe-area-inset-bottom,0px));
  }
  html body .site-header .navlinks.is-open>li:not(.hc-mnav-cta){
    flex:1 1 0;min-height:0;max-height:62px;display:flex;align-items:stretch;
  }
  html body .site-header .navlinks.is-open>li:not(.hc-mnav-cta)>a{
    min-height:0;height:100%;padding-top:0;padding-bottom:0;align-items:center;
    font-size:clamp(18px,3.1vh,25px);font-size:clamp(18px,3.1dvh,25px);line-height:1.1;
  }
  html body .site-header .navlinks.is-open>li>a::after{
    width:clamp(28px,4.4dvh,34px);height:clamp(28px,4.4dvh,34px);
  }
  html body .site-header .navlinks.is-open>li.hc-mnav-cta{
    flex:0 0 auto;margin-top:auto;padding-top:clamp(8px,1.8dvh,20px);
  }
  .hc-mnav-actions{gap:clamp(8px,1.5dvh,12px)}
  html body .site-header .navlinks.is-open .hc-mnav-btn{min-height:clamp(46px,6.4dvh,56px);font-size:clamp(14.5px,2dvh,15.5px)}
  .hc-mnav-note{margin-top:clamp(8px,1.6dvh,16px)}
}
@media(max-width:960px) and (max-height:660px){
  .hc-mnav-note{display:none}
  html body .site-header .navlinks.is-open>li:not(.hc-mnav-cta)>a{gap:12px}
}
/* very short screens (phone held sideways): scrolling is the only sane option */
@media(max-width:960px) and (max-height:460px){
  html body .site-header .navlinks.is-open{overflow-y:auto}
  html body .site-header .navlinks.is-open>li:not(.hc-mnav-cta){flex:0 0 auto;min-height:46px}
}

/* ---------------------------------------------------------------------
   5. PROGRAMS CAROUSEL (home page)
   --------------------------------------------------------------------- */
.hc-programs{position:relative}
.hc-programs-row{display:block!important}
.hc-programs-track{
  --hc-gap:clamp(14px,2vw,24px);--pv:3;
  display:flex!important;flex-wrap:nowrap!important;grid-template-columns:none!important;
  align-items:stretch!important;gap:var(--hc-gap)!important;
  overflow-x:auto!important;overflow-y:hidden;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;
  padding:16px 6px 30px!important;margin:-16px -6px 0!important;width:auto!important;
}
.hc-programs-track::-webkit-scrollbar{display:none}
.hc-programs-track:focus-visible{outline:2px solid var(--pu-gold-deep,#8A6A2C);outline-offset:4px;border-radius:20px}
.hc-programs-track>*{
  flex:0 0 calc((100% - (var(--pv) - 1)*var(--hc-gap))/var(--pv))!important;
  width:auto!important;max-width:none!important;min-width:0!important;
  scroll-snap-align:start;
  transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s,border-color .3s;
}
.hc-programs-track>.pcard{display:flex;flex-direction:column;height:auto}
.hc-programs-track .pcard-body{flex:1 1 auto;display:flex;flex-direction:column}
.hc-programs-track .pcard-body .pcard-link{margin-top:auto}
.hc-programs-track>.pcard:hover{transform:translateY(-5px);border-color:rgba(201,161,90,.65);box-shadow:0 30px 50px -28px rgba(35,54,38,.5)}
@media(max-width:960px){.hc-programs-track{--pv:2}}
@media(max-width:620px){.hc-programs-track{--pv:1.12}}
@media(hover:none){.hc-programs-track>.pcard:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.hc-programs-track{scroll-behavior:auto}}

/* ---------------------------------------------------------------------
   6. Remaining text-glyph icons -> real icons (ratings, checks)
   --------------------------------------------------------------------- */
.hc-stars{display:inline-flex;gap:3px;vertical-align:middle;line-height:0}
.hc-star{width:1em;height:1em;min-width:14px;min-height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;opacity:.55}
.hc-star.is-on{fill:currentColor;opacity:1;filter:drop-shadow(0 1px 1px rgba(138,106,44,.35))}
html body .cta-checks span{display:inline-flex;align-items:center;gap:8px}
html body .cta-checks span::before{
  content:"";flex:0 0 18px;width:18px;height:18px;margin:0;font-size:0;
  background:currentColor;color:var(--gold-light,#E6C98B);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9' stroke-width='1.6'/%3E%3Cpath d='m8.3 12.3 2.6 2.6 4.9-5.4'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9' stroke-width='1.6'/%3E%3Cpath d='m8.3 12.3 2.6 2.6 4.9-5.4'/%3E%3C/svg%3E") center/contain no-repeat;
}
.hcp-tm-story-link .hc-btn-icon{width:16px;height:16px}
.hcp-tm-story-link .hc-btn-icon svg{width:16px;height:16px}
