/* GLOBAL STYLES - loaded first on every page.
   Site-wide rules (nav, footer, type scale) belong here.
   The desktop styles of each page live in its own CSS file (and standard-pages.css); no rule was
   identical on all 17 pages, so this file only holds the phone/tablet additions below.
   Everything here sits inside media queries: screens wider than 1024px are not affected. */

/* Phone/tablet menu button: created or reused by assets/js/mobile-menu.js. Hidden on desktop. */
.tlt-mm-btn,.tlt-mm{display:none;}

/* ---------- Menu: 900px and narrower (the site's existing switch point) ---------- */
@media (max-width:900px){
  header nav{display:none !important;}
  header .tlt-mm-btn{
    display:flex;align-items:center;justify-content:center;
    min-width:48px;min-height:48px;padding:0;margin:-9px auto;
    background:none;border:0;cursor:pointer;
    font-family:Inter,system-ui,sans-serif;font-size:1.5rem;line-height:1;color:#0A1D30;
    -webkit-tap-highlight-color:transparent;
  }
  .tlt-mm{
    display:block;position:fixed;left:0;right:0;z-index:99;
    background:#FDFCF9;border-top:1px solid rgba(20,30,40,.10);
    box-shadow:0 18px 40px rgba(10,20,30,.14);
    overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
    opacity:0;visibility:hidden;transform:translateY(-6px);
    transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s;
  }
  .tlt-mm.is-open{opacity:1;visibility:visible;transform:none;transition:opacity .2s ease,transform .2s ease;}
  .tlt-mm ul{list-style:none;margin:0;padding:8px clamp(20px,5vw,64px) 24px;}
  .tlt-mm li{border-bottom:1px solid rgba(20,30,40,.10);}
  .tlt-mm li:last-child{border-bottom:0;}
  .tlt-mm .mm-row{display:flex;align-items:stretch;}
  .tlt-mm .mm-top{
    flex:1;display:flex;align-items:center;justify-content:space-between;text-align:left;
    min-height:52px;padding:8px 0;background:none;border:0;cursor:pointer;
    font-family:Inter,system-ui,sans-serif;font-size:1rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
    color:#0A1D30;text-decoration:none;
  }
  .tlt-mm .mm-chev{
    flex:0 0 52px;display:flex;align-items:center;justify-content:center;background:none;border:0;cursor:pointer;color:#0A1D30;
  }
  .tlt-mm .mm-top .mm-chev{flex:none;width:52px;height:52px;margin-right:-16px;}
  .tlt-mm .mm-row > .mm-chev{margin-right:-16px;}
  .tlt-mm .mm-chev::before{
    content:"";width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
    transform:rotate(45deg) translate(-2px,-2px);transition:transform .2s ease;
  }
  .tlt-mm li.is-expanded .mm-chev::before{transform:rotate(-135deg) translate(-2px,-2px);}
  .tlt-mm .mm-sub{display:none;padding:0 0 10px 14px;}
  .tlt-mm li.is-expanded .mm-sub{display:block;}
  .tlt-mm .mm-sub a{
    display:flex;align-items:center;min-height:48px;padding:6px 0;
    font-family:Inter,system-ui,sans-serif;font-size:1rem;font-weight:500;color:#151A1F;text-decoration:none;
  }
  .tlt-mm a.is-current,.tlt-mm .mm-top.is-current{color:#7A5F28;}
  .tlt-mm a:focus-visible,.tlt-mm button:focus-visible,header .tlt-mm-btn:focus-visible{outline:2px solid #9C824A;outline-offset:2px;}
}

/* ---------- Phones: 767px and narrower ---------- */
@media (max-width:767px){
  /* headings that were set never to wrap and got cut off at the screen edge */
  h1,h2,h3{white-space:normal !important;}
  .m-wrap{white-space:normal !important;}
  /* small text raised to 16px (labels with wide letter-spacing raised to 13px) - classes added to the HTML */
  .m16{font-size:16px !important;}
  .m13{font-size:13px !important;}
  /* bigger touch area for small links/buttons without changing how they look */
  .tt{position:relative;}
  .tt::after{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%);}
  input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:44px;}
}

/* PHONE-FIX-2 */
@media (max-width:767px){
.closing-quote blockquote,
.founder-text p,
.value-card p,
.page-hero blockquote,
.vision-body p,
.mission-body p,
.imagine-body p,
.values-lede p,
.init-card p,
.step p,
.pull-quote,
.values-quote,
.cta-final .quote,
.cta-final p.lede,
.eh-slide-txt p,
.section-head p.lede,
.founder-copy p,
.s-card .teaser,
.vision-lede,
.vm-panel blockquote,
.hm-quote blockquote,
.hero-copy p,
.journey-body p,
.podcast-more p,
[style*="justify"]{text-align:left !important;-webkit-hyphens:manual;hyphens:manual;}
.hero-media video{object-position:28% 50% !important;}
.hero-media{background-position:28% 50% !important;}
}

/* TLT-MODAL-FONT: Book a Free Call popup text +1pt */
.tlt-modal-overlay .tlt-modal .tlt-modal-invite{font-size:calc(1rem + 1pt)}
.tlt-modal-overlay .tlt-modal .eyebrow{font-size:calc(.72rem + 1pt)}
.tlt-modal-overlay .tlt-modal form label{font-size:calc(.82rem + 1pt)}

/* TLT-DISCOVERY-FORM: radio circles, textarea, groups */
.tlt-modal .fc-group{border:0;margin:0;padding:0;min-width:0}
.tlt-modal .fc-group legend{font-size:calc(.82rem + 1pt);font-weight:600;color:#123A5C;margin:0 0 8px;padding:0}
.tlt-modal .fc-opts{display:flex;flex-wrap:wrap;gap:10px 22px}
.tlt-modal .fc-opt{display:inline-flex;align-items:center;gap:9px;margin:0;cursor:pointer;font-weight:500;font-size:calc(.82rem + 1pt);color:#2c3138}
.tlt-modal .fc-opt input{-webkit-appearance:none;appearance:none;width:20px;height:20px;min-width:20px;padding:0;margin:0;border-radius:50%;border:1.5px solid #9C824A;background:#fff;position:relative;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.tlt-modal .fc-opt input::after{content:"";position:absolute;inset:3px;border-radius:50%;background:#C9A84C;transform:scale(0);transition:transform .18s ease}
.tlt-modal .fc-opt input:checked{border-color:#7A5F28}
.tlt-modal .fc-opt input:checked::after{transform:scale(1)}
.tlt-modal .fc-opt input:focus-visible{outline:2px solid #C9A84C;outline-offset:2px}
.tlt-modal textarea{border:1px solid rgba(20,30,40,.22);background:#fff;padding:13px 14px;font-size:1rem;color:#151A1F;width:100%;box-sizing:border-box;border-radius:6px;font-family:inherit;resize:vertical;min-height:84px;transition:border-color .25s}
.tlt-modal textarea:focus{outline:none;border-color:#9C824A}
.tlt-modal input::placeholder{color:#9aa1a8}

/* Footer bottom row (all pages): copyright centred, Terms of Use at the far right end of the divider line */
/* footer bottom row: copyright stays centred, Terms of Use sits at the far right, flush with the end of the divider line */
footer .footer-bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:12px}
footer .footer-bottom .tou-copy{grid-column:2}
footer .footer-bottom .tou-lnk{grid-column:3;justify-self:end;color:rgba(255,255,255,.55);transition:color .3s ease}
footer .footer-bottom .tou-lnk:hover,footer .footer-bottom .tou-lnk:focus-visible{color:#fff}
@media(max-width:700px){footer .footer-bottom{grid-template-columns:1fr;row-gap:10px}footer .footer-bottom .tou-copy,footer .footer-bottom .tou-lnk{grid-column:1;justify-self:center}}

/* Testimonial dots: keep the 9px look, but give a 24px tap area (PageSpeed tap target rule). */
.tst-dot{box-sizing:border-box !important;width:24px !important;height:24px !important;border:7.5px solid transparent !important;background-clip:padding-box !important;padding:0 !important;}

.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* ===== Phone footer (700px and narrower) =====
   Logo left with the tagline; Follow Us under them; About / Services / Get Involved as tap-to-open rows;
   Make a Gift as a full-width button. The rows are built by assets/js/footer-accordion.js
   (without the script every link simply stays visible). */
@media (max-width:700px){
  footer .footer-top{flex-direction:column;flex-wrap:nowrap;gap:0;margin-bottom:28px;align-items:stretch;}
  footer .footer-brand-row{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:26px;align-items:start;gap:0 26px;max-width:100%;}
  footer .footer-brand-row .footer-logo-mark{grid-column:1;grid-row:1 / span 2;height:150px !important;width:auto !important;max-width:none;align-self:start;}
  footer .footer-brand-row .footer-brand{display:contents;font-family:var(--serif);font-size:1.12rem;letter-spacing:.02em;white-space:nowrap;color:var(--gold-soft);text-transform:uppercase;}
  footer .footer-brand-row .footer-brand > span{grid-column:2;grid-row:2;margin-top:12px;white-space:normal;letter-spacing:0;font-size:.98rem;line-height:1.75;text-align:left !important;display:block;}
  footer .footer-brand-row .footer-brand > h4{grid-column:1 / -1;margin:34px 0 14px !important;}
  footer .footer-brand-row .footer-brand > .footer-social{grid-column:1 / -1;}
  footer .footer-cols{display:block;margin-top:34px;border-top:1px solid rgba(255,255,255,.14);}
  footer .footer-col{border-bottom:1px solid rgba(255,255,255,.14);margin:0;}
  footer.fa-on .footer-col > h4{margin:0 !important;}
  footer.fa-on .fc-btn{display:flex;width:100%;align-items:center;justify-content:space-between;min-height:56px;padding:0;background:none;border:0;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;text-align:left;}
  footer.fa-on .fc-btn::after{content:"+";font-family:Inter,system-ui,sans-serif;font-weight:400;font-size:1.6rem;line-height:1;color:var(--gold-soft);}
  footer.fa-on .footer-col.is-open .fc-btn::after{content:"\2212";}
  footer.fa-on .fc-body{display:none;padding:2px 0 16px;}
  footer.fa-on .footer-col.is-open .fc-body{display:block;}
  footer.fa-on .footer-col a{padding:5px 0;}
  footer .footer-top > .tlt-dn-btn{display:flex;justify-content:center;width:100%;box-sizing:border-box;margin:28px 0 0;float:none;padding:16px 20px;font-size:1.05rem;}
}

/* ===== Phones: testimonial slider stacks (picture, then quote, then the arrows). It used to run off the right edge. ===== */
@media (max-width:700px){
  [data-tst] .tst-row{flex-wrap:wrap;justify-content:center !important;gap:12px 28px !important;}
  [data-tst] .tst-box{order:-1;flex:0 0 100% !important;height:auto !important;position:static !important;}
  [data-tst] .tst-box .tst-slide{position:static !important;flex-direction:column !important;gap:22px !important;align-items:center !important;}
  [data-tst] .tst-box .tst-slide > div{width:100% !important;max-width:100% !important;flex:0 0 auto !important;}
  [data-tst] .tst-box .tst-slide > div:first-child{width:auto !important;}
  [data-tst] .tst-box blockquote{text-align:left !important;}
}

/* ===== Phones: testimonial slider on Founder's Message and Holistic Energy Medicine =====
   Pictures 10% smaller; the two arrows sit beside the picture at its base; nothing but the dots below the quote. */
.tst-br{display:none;}
@media (max-width:700px){
  .tst-br{display:inline;}
  .tstv2 .tst-row{position:relative;}
  .tstv2 .tst-box .tst-slide > div:first-child > div{width:195.3px !important;height:280.8px !important;}
  .tstv2 .tst-arrow{position:absolute;top:calc(280.8px - 46px);width:46px !important;height:46px !important;z-index:4;}
  .tstv2 .tst-arrow[data-dir="-1"]{left:calc(50% - 97.65px - 10px - 46px);}
  .tstv2 .tst-arrow[data-dir="1"]{left:calc(50% + 97.65px + 10px);}
}

/* ===== Phones: testimonial name sits 35% closer to the quote (22px to 14.3px) ===== */
@media (max-width:700px){
  [data-tst] .tst-box blockquote + p{margin-top:14.3px !important;}
}

/* ===== Phones only: forced line breaks, header logo guarantee, Join the Mission and Events tweaks ===== */
.mbr{display:none;}
@media (max-width:700px){
  .mbr{display:inline;}
  .dbr{display:none;}
  .evx-chev{display:none !important;}
  .jm-hero-q{max-width:none !important;}
  .jm-globe-pill{white-space:nowrap;text-align:center;padding:16px 18px !important;font-size:clamp(15px,4.9vw,20px) !important;}
}
@media (max-width:900px){
  header.nav .brand-logo{height:59.375px;width:auto;max-width:none;display:block;flex:none;}
}
@media (max-width:700px){
  .tlt-hero .tlt-sub:has(.mbr){font-size:min(24px,6vw) !important;}
}

/* ===== Phones only: Holistic Energy Medicine, What to Expect runs on as one sentence; gold button on two lines ===== */
@media (max-width:700px){
  .wte1,.wte2{display:inline !important;margin:0 !important;text-align:left !important;}
  .wte1:after{content:" ";}
  .wte2:after{content:"";display:block;height:20px;}
  a.scp2[href="#sessions"]{text-align:center;justify-content:center;}
}

/* ===== Phone menu: no coloured flash when a section arrow is tapped ===== */
@media (max-width:900px){
  .tlt-mm,.tlt-mm *{-webkit-tap-highlight-color:rgba(0,0,0,0) !important;}
  .tlt-mm button,.tlt-mm a{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;background-color:transparent;}
  .tlt-mm button:focus:not(:focus-visible),.tlt-mm a:focus:not(:focus-visible){outline:none;}
  .tlt-mm .mm-top:active,.tlt-mm .mm-chev:active,.tlt-mm .mm-sub a:active{background:none;}
}

/* ===== Footer headings on tablet and desktop (701px and wider): the heading text sits inside a button that only works on phones.
   Make that button invisible as a button so the heading keeps its original look (soft gold Inter capitals). ===== */
@media (min-width:701px){
  footer .footer-col h4 .fc-btn{all:unset;display:inline;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:default;pointer-events:none;}
}

/* ===== Tablets only (touch screens wider than a phone; classes set by footer-accordion.js) ===== */
/* Landscape: one-row footer like desktop, slightly smaller, menus kept inside the line above the copyright.
   Make a Gift sits level with the social icons, starting at the left edge of the About menu (placed by donate-now.js). */
footer.ft-tl .footer-top{flex-wrap:nowrap !important;justify-content:space-between !important;gap:clamp(24px,3vw,40px) !important;align-items:flex-start;}
footer.ft-tl .footer-brand-row{flex:none;gap:clamp(16px,2vw,26px);}
footer.ft-tl .footer-logo-mark{height:clamp(170px,17vw,210px) !important;width:auto !important;}
footer.ft-tl .footer-brand{font-size:1.25rem !important;max-width:240px;}
footer.ft-tl .footer-brand span{font-size:.9rem !important;}
footer.ft-tl .footer-social{flex-wrap:nowrap !important;gap:6px !important;}
footer.ft-tl .footer-social a{width:44px !important;height:44px !important;}
footer.ft-tl .footer-cols{flex-wrap:nowrap !important;gap:clamp(22px,2.8vw,34px) !important;margin-right:clamp(16px,2.5vw,36px);}
footer.ft-tl .footer-col a{font-size:.92rem !important;}
/* Portrait: logo block centred, the three menus centred as a group, Make a Gift centred below them. */
footer.ft-tp .footer-top{flex-direction:column !important;flex-wrap:nowrap !important;align-items:center !important;gap:56px !important;}
footer.ft-tp .footer-brand-row{justify-content:center;}
footer.ft-tp .footer-cols{justify-content:center !important;flex-wrap:nowrap !important;gap:clamp(28px,5vw,48px) !important;}
footer.ft-tp .footer-top > .tlt-dn-btn{align-self:center;float:none;margin:-16px 0 0;}
@media (max-width:1100px){
  footer.ft-tl .footer-col a,footer.ft-tl .footer-col h4{white-space:nowrap;}
  footer.ft-tl .footer-col a{font-size:.86rem !important;}
  footer.ft-tl .footer-brand span{font-size:.86rem !important;}
  footer.ft-tl .footer-brand{font-size:1.15rem !important;}
  footer.ft-tl .footer-logo-mark{height:160px !important;}
  footer.ft-tl .footer-top{gap:20px !important;}
  footer.ft-tl .footer-cols{gap:20px !important;margin-right:12px;}
  footer.ft-tl .footer-social a{width:40px !important;height:40px !important;}
}
footer.ft-tp .footer-bottom .tou-lnk,footer.ft-tl .footer-bottom .tou-lnk{white-space:nowrap;}

/* ===== Testimonial sliders on tablets held upright: arrows below the picture either side of the dots (moved by tst-tablet.js),
   35% less space between the heading and the picture, 25% less between the quote and the dots. ===== */
@media (min-width:701px) and (orientation:portrait) and (hover:none) and (pointer:coarse){
  [data-tst] h2{margin-bottom:51px !important;}
  [data-tst] .tst-box{height:auto !important;position:static !important;}
  [data-tst] .tst-box .tst-slide{position:static !important;}
  [data-tst] .tst-dots{margin-top:55px !important;align-items:center;}
  [data-tst] .tst-dots .tst-arrow{position:static !important;width:46px !important;height:46px !important;margin:0 14px;}
}
@media (min-width:701px) and (orientation:portrait) and (hover:none) and (pointer:coarse){
  [data-tst] .tst-row{justify-content:center !important;}
  [data-tst] .tst-box{flex:1 1 auto !important;width:100% !important;min-width:0;}
  [data-tst] .tst-box .tst-slide{width:100%;box-sizing:border-box;}
  [data-tst] .tst-box .tst-slide > div:last-child{flex:1 1 auto !important;width:auto !important;min-width:0;}
}
