html { scroll-behavior: smooth; }
img { max-width: 100%; }
form label { min-width: 0; }
div[data-show] { flex: 1.4 1 420px; min-width: 0; max-width: 100%; }
form input, form select, form textarea { max-width: 100%; min-width: 0; box-sizing: border-box; }
[hidden] { display: none !important; }
summary { list-style: none; }
summary::-webkit-details-marker { display: none; }
.faq-sign { display: inline-block; transition: transform 0.2s ease; }
details[open] .faq-sign { transform: rotate(45deg); }
button:disabled { opacity: 0.6; cursor: default; }
.lb-error { color: #9A4A2A; font-size: 14px; }

/* Phone and tablet: signature header with menu box, full-screen menu */
.menu-btn, .sticky-book, .m-menu { display: none; }
@media (max-width: 1200px) {
  header { position: sticky; top: 0; z-index: 80; background: rgba(250,248,242,0.94); -webkit-backdrop-filter: saturate(1.2) blur(10px); backdrop-filter: saturate(1.2) blur(10px); }
  header nav { flex-wrap: nowrap !important; padding-top: 14px !important; padding-bottom: 14px !important; }
  header nav img { width: 160px !important; }
  header .nav-links { display: none !important; }
  .menu-btn {
    display: inline-flex; flex: none; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0;
    background: transparent; border: 1px solid rgba(28,27,24,0.45); cursor: pointer; position: relative;
  }
  .menu-btn span, .menu-btn::before, .menu-btn::after { content: ''; position: absolute; left: 14px; right: 14px; height: 1px; background: #1C1B18; transition: transform 0.3s ease, opacity 0.2s ease; }
  .menu-btn::before { top: 17px; } .menu-btn span { top: 23.5px; } .menu-btn::after { top: 30px; }
  .menu-btn.is-open::before { transform: translateY(6.5px) rotate(45deg); }
  .menu-btn.is-open span { opacity: 0; }
  .menu-btn.is-open::after { transform: translateY(-6.5px) rotate(-45deg); }
  .m-menu {
    display: flex; position: fixed; inset: 0; z-index: 75; background: #FAF8F2; flex-direction: column; overflow-y: auto;
    padding: 104px 32px 40px; box-sizing: border-box; opacity: 0; visibility: hidden; transform: translateY(-10px);
    transition: opacity 0.3s ease, transform 0.35s ease, visibility 0s linear 0.35s; font-family: 'Jost', 'Helvetica Neue', sans-serif; font-weight: 300; color: #1C1B18;
  }
  .m-menu.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity 0.3s ease, transform 0.35s ease; }
  .m-menu .mm-inner { width: 100%; max-width: 640px; margin: 0 auto; display: flex; flex-direction: column; gap: 28px; }
  .m-menu .mm-eyebrow { font-size: 11px; letter-spacing: 0.36em; color: #7A5B2B; }
  .m-menu .mm-big { display: flex; flex-direction: column; }
  .m-menu .mm-big a { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(22px, 3.6vw, 28px); line-height: 1.2; color: #1C1B18; text-decoration: none; padding: 14px 0; display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid rgba(28,27,24,0.1); }
  .m-menu .mm-big a small { font-family: 'Jost', sans-serif; font-size: 10px; letter-spacing: 0.22em; color: #7A5B2B; }
  .m-menu .mm-small { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 24px; }
  .m-menu .mm-small a { font-size: 15px; color: #1C1B18; text-decoration: none; padding: 10px 0; }
  .m-menu .mm-book { display: flex; align-items: center; justify-content: center; min-height: 56px; background: #B8945B; color: #0E0E0E; text-decoration: none; font-size: 13px; font-weight: 500; letter-spacing: 0.22em; }
  .m-menu .mm-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .m-menu .mm-contact a { display: flex; align-items: center; justify-content: center; min-height: 48px; border: 1px solid rgba(28,27,24,0.3); color: #1C1B18; text-decoration: none; font-size: 12px; letter-spacing: 0.2em; }
  .m-menu .mm-foot { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 4px; }
  .m-menu .mm-foot em { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 20px; color: #7A5B2B; }
  .m-menu .mm-inner > * { opacity: 0; transform: translateY(8px); transition: opacity 0.4s ease, transform 0.4s ease; }
  .m-menu.is-open .mm-inner > * { opacity: 1; transform: none; }
  .m-menu.is-open .mm-inner > *:nth-child(2) { transition-delay: 0.05s; } .m-menu.is-open .mm-inner > *:nth-child(3) { transition-delay: 0.1s; }
  .m-menu.is-open .mm-inner > *:nth-child(4) { transition-delay: 0.15s; } .m-menu.is-open .mm-inner > *:nth-child(5) { transition-delay: 0.2s; }
  .m-menu.is-open .mm-inner > *:nth-child(n+6) { transition-delay: 0.25s; }
  body.menu-open { overflow: hidden; }
  body.menu-open header { z-index: 90 !important; transform: none !important; opacity: 1 !important; visibility: visible !important; }
  body.menu-open .wa-float, body.menu-open .sticky-book { opacity: 0; pointer-events: none; }
  /* program pages: the row of program links scrolls sideways instead of wrapping */
  .prog-subnav { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; white-space: nowrap; }
  .prog-subnav::-webkit-scrollbar { display: none; }
}
@media (max-width: 640px) {
  header nav { padding-left: 20px !important; padding-right: 20px !important; }
  header nav img { width: 132px !important; }
  footer img { width: 150px !important; }
  .m-menu { padding: 92px 20px 32px; }
  .m-menu .mm-small, .m-menu .mm-contact { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .sticky-book {
    display: flex; position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 60;
    align-items: center; justify-content: center; min-height: 54px; background: #B8945B; color: #0E0E0E !important;
    text-decoration: none; font: 500 13px/1 'Jost', 'Helvetica Neue', sans-serif; letter-spacing: 0.22em;
    box-shadow: 0 10px 30px rgba(28,27,24,0.22); transition: opacity 0.25s ease, transform 0.25s ease;
  }
  .sticky-book.is-hidden { opacity: 0; transform: translateY(12px); pointer-events: none; }
  body { padding-bottom: 86px; }
}

/* WhatsApp button */
.wa-float {
  position: fixed; right: 24px; bottom: 24px; z-index: 70; display: flex; align-items: center; gap: 10px;
  background: #1C1B18; color: #FAF8F2 !important; text-decoration: none; padding: 14px 20px; border-radius: 999px;
  font: 400 12px/1 'Jost', 'Helvetica Neue', sans-serif; letter-spacing: 0.2em; box-shadow: 0 10px 30px rgba(28,27,24,0.25);
}
@media (max-width: 760px) {
  .wa-float { right: 16px !important; bottom: 84px !important; padding: 14px !important; }
  .wa-float .wa-label { display: none; }
}

/* Legacy list pop-up */
.lp-wrap { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 16px; opacity: 0; transition: opacity 0.3s ease; }
.lp-wrap.is-open { opacity: 1; }
.lp-back { position: absolute; inset: 0; background: rgba(28,27,24,0.55); }
.lp-box { position: relative; display: flex; width: 100%; max-width: 860px; max-height: calc(100vh - 32px); overflow: auto; background: #FAF8F2; color: #1C1B18; box-shadow: 0 30px 80px rgba(0,0,0,0.3); transform: translateY(12px); transition: transform 0.3s ease; font-family: 'Jost', 'Helvetica Neue', sans-serif; font-weight: 300; }
.lp-wrap.is-open .lp-box { transform: none; }
.lp-photo { flex: 0 0 42%; min-height: 420px; background: #E4DBCC; display: flex; align-items: center; justify-content: center; text-align: center; padding: 24px; box-sizing: border-box; }
.lp-photo span { font-size: 11px; letter-spacing: 0.28em; color: #776D5C; line-height: 2; }
.lp-body { flex: 1 1 auto; padding: 48px 44px 36px; display: flex; flex-direction: column; gap: 16px; justify-content: center; }
.lp-eyebrow { font-size: 11px; letter-spacing: 0.4em; color: #7A5B2B; }
.lp-body h2 { margin: 0; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 400; font-size: 46px; line-height: 1; }
.lp-body p { margin: 0; font-size: 16px; line-height: 1.7; color: #4A463F; }
.lp-form { display: flex; flex-direction: column; gap: 14px; padding-top: 6px; }
.lp-form label { display: flex; flex-direction: column; gap: 8px; font-size: 11px; letter-spacing: 0.24em; color: #4A463F; }
.lp-form input[type="email"] { border: 0; border-bottom: 1px solid #1C1B18; background: transparent; padding: 12px 0; font: 300 18px/1.4 'Jost', sans-serif; color: #1C1B18; min-height: 44px; }
.lp-form button { border: 0; background: #B8945B; color: #0E0E0E; padding: 18px 24px; font: 500 13px/1.2 'Jost', sans-serif; letter-spacing: 0.2em; cursor: pointer; min-height: 52px; }
.lp-note { font-size: 13px; color: #6F6A60; }
.lp-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.lp-no { align-self: center; background: none; border: 0; color: #6F6A60; font: 400 13px/1 'Jost', sans-serif; letter-spacing: 0.08em; padding: 12px; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.lp-x { position: absolute; top: 8px; right: 10px; z-index: 1; background: none; border: 0; font-size: 30px; line-height: 1; color: #1C1B18; cursor: pointer; width: 44px; height: 44px; }
@media (max-width: 700px) { .lp-photo { display: none; } .lp-body { padding: 44px 24px 24px; } .lp-body h2 { font-size: 38px; } }
.lp-form input[type="email"]:focus { outline: none; border-bottom: 2px solid #B8945B; }

/* EN | ES switch */
.lang-switch { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; letter-spacing: 0.16em; color: #857D70; padding: 12px 0; }
.lang-switch a { color: #6F6A60 !important; text-decoration: none; padding: 4px 2px; }
.lang-switch a.on { color: #1C1B18 !important; border-bottom: 1px solid #B8945B; }

/* Ease of use: comfortable tap areas, clear focus, anchors clear of the header, calm motion */
:focus-visible { outline: 2px solid #7A5B2B; outline-offset: 3px; }
footer :focus-visible, #founders :focus-visible, .hero-full :focus-visible, .lb-live :focus-visible { outline-color: #D9B98A; }
a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline: none; }
.skip-link { position: absolute; left: 16px; top: -60px; z-index: 200; background: #1C1B18; color: #FAF8F2 !important; padding: 12px 18px; font: 400 13px/1 'Jost', sans-serif; letter-spacing: 0.16em; text-decoration: none; }
.skip-link:focus { top: 12px; }
footer a { display: inline-flex; align-items: center; min-height: 44px; }
a[style*="border-bottom: 1px solid"] { min-height: 44px; display: inline-flex; align-items: flex-end; box-sizing: border-box; }
:where(div, section, form) > a[href^="tel:"], :where(div, section, form) > a[href^="mailto:"] { display: inline-flex; align-items: center; min-height: 44px; }
input[type="radio"], input[type="checkbox"] { width: 20px; height: 20px; accent-color: #7A5B2B; }
@media (max-width: 1200px) { [id], .legacy-booking { scroll-margin-top: 96px; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
  .prog-track { scroll-behavior: auto !important; }
}
.form-note { display: block; font-size: 14px; color: #9A4A2A; padding-top: 4px; }
@media (min-width: 1201px) { #start { scroll-margin-top: 24px; } }
#main + div a, .prog-subnav a { min-height: 44px; display: inline-flex; align-items: center; box-sizing: border-box; }

/* Phones: paragraph text one step heavier so it reads easily outdoors. Headlines are unchanged. */
@media (max-width: 760px) {
  p:not([style*="Cormorant"]), li { font-weight: 400; }
}

/* Questions: smaller on tablet and phone so each one has room to breathe */
@media (max-width: 1200px) {
  details > summary > span:first-child { font-size: 20px !important; line-height: 1.3; }
}
@media (max-width: 760px) {
  details > summary { padding: 14px 0 !important; gap: 16px !important; }
  details > summary > span:first-child { font-size: 18px !important; }
  details > summary .faq-sign { font-size: 20px !important; }
  details > p { font-size: 16px !important; padding-right: 0 !important; }
}

/* ---------- Site search ---------- */
.search-btn { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; margin-left: auto; margin-right: -8px; padding: 0; background: transparent; border: 0; color: #1C1B18; cursor: pointer; transition: color 0.2s ease; }
.search-btn:hover { color: #7A5B2B; }
.search-btn svg { width: 20px; height: 20px; }
@media (max-width: 1200px) { .search-btn { width: 48px; height: 48px; margin-right: 0; } }
.s-panel { position: fixed; inset: 0; z-index: 95; overflow-y: auto; overscroll-behavior: contain; background: #FAF8F2;
  font-family: 'Jost', 'Helvetica Neue', sans-serif; font-weight: 300; color: #1C1B18; opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity 0.25s ease, transform 0.3s ease, visibility 0s linear 0.3s; }
.s-panel.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity 0.25s ease, transform 0.3s ease; }
.s-inner { max-width: 760px; margin: 0 auto; padding: 28px 32px 80px; box-sizing: border-box; }
.s-top { display: flex; justify-content: space-between; align-items: center; min-height: 56px; }
.s-eyebrow, .s-label { font-size: 11px; letter-spacing: 0.34em; color: #7A5B2B; }
.s-label { color: #6F6A60; display: block; margin-bottom: 14px; }
.s-close { position: relative; width: 48px; height: 48px; flex: none; padding: 0; background: transparent; border: 1px solid rgba(28,27,24,0.45); cursor: pointer; }
.s-close::before, .s-close::after { content: ''; position: absolute; left: 14px; right: 14px; top: 23.5px; height: 1px; background: #1C1B18; }
.s-close::before { transform: rotate(45deg); } .s-close::after { transform: rotate(-45deg); }
.s-field { display: flex; align-items: center; gap: 16px; margin-top: 56px; padding: 6px 0 14px; border-bottom: 1px solid #1C1B18; transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.s-field:focus-within { border-bottom-color: #B8945B; box-shadow: 0 1px 0 #B8945B; }
.s-field > svg { width: 26px; height: 26px; flex: none; color: #7A5B2B; }
.s-input { flex: 1; min-width: 0; border: 0; background: transparent; padding: 8px 0; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 40px; font-weight: 400; line-height: 1.15; color: #1C1B18; outline: none; border-radius: 0; -webkit-appearance: none; appearance: none; }
.s-input::placeholder { color: #A39A8B; opacity: 1; }
.s-input::-webkit-search-cancel-button, .s-input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; }
.s-input:focus-visible { outline: none; }
.s-clear { flex: none; min-height: 44px; padding: 0 4px; background: transparent; border: 0; font-family: inherit; font-size: 11px; letter-spacing: 0.22em; color: #6F6A60; cursor: pointer; }
.s-clear:hover { color: #1C1B18; }
.s-status { margin: 16px 0 0; min-height: 16px; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: #6F6A60; }
.s-empty { margin-top: 28px; }
.s-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.s-chip { min-height: 44px; padding: 10px 18px; background: #FFFDF8; border: 1px solid rgba(28,27,24,0.2); font-family: inherit; font-size: 15px; font-weight: 300; color: #1C1B18; cursor: pointer; transition: border-color 0.2s ease, color 0.2s ease; }
.s-chip:hover { border-color: #B8945B; color: #7A5B2B; }
.s-results { list-style: none; margin: 8px 0 0; padding: 0; }
.s-results a { display: grid; grid-template-columns: 1fr auto; column-gap: 24px; row-gap: 6px; margin: 0 -16px; padding: 22px 16px; border-bottom: 1px solid rgba(28,27,24,0.1); color: inherit; text-decoration: none !important; transition: background-color 0.15s ease; }
.s-results li:first-child a { border-top: 1px solid rgba(28,27,24,0.1); }
.s-results li.is-active a, .s-results a:hover { background: #F1EBE1; }
.s-where { grid-column: 1; font-size: 11px; letter-spacing: 0.24em; color: #7A5B2B; }
.s-sec { font-size: 13px; letter-spacing: 0.01em; color: #6F6A60; }
.s-title { grid-column: 1; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 26px; line-height: 1.2; color: #1C1B18; }
.s-text { grid-column: 1; font-size: 15px; line-height: 1.6; color: #4A463F; }
.s-go { grid-column: 2; grid-row: 1 / span 3; align-self: center; font-size: 20px; color: #7A5B2B; opacity: 0.35; transform: translateX(-4px); transition: opacity 0.15s ease, transform 0.15s ease; }
.s-results li.is-active .s-go, .s-results a:hover .s-go { opacity: 1; transform: none; }
.s-panel mark { background: rgba(184,148,91,0.24); color: inherit; padding: 0 1px; }
.s-none { margin-top: 24px; }
.s-none-title { margin: 0 0 8px; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 30px; line-height: 1.2; }
.s-none-text { margin: 0 0 24px; font-size: 16px; line-height: 1.7; color: #4A463F; }
.s-ask { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px; margin-bottom: 32px; background: #B8945B; color: #0E0E0E !important; text-decoration: none !important; font-size: 13px; font-weight: 500; letter-spacing: 0.2em; }
body.search-open { overflow: hidden; }
body.search-open .wa-float, body.search-open .sticky-book { opacity: 0; pointer-events: none; }
.mm-search { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 52px; padding: 0 16px; background: #FFFDF8; border: 1px solid rgba(28,27,24,0.2); font-family: inherit; font-size: 15px; font-weight: 300; color: #6F6A60; text-align: left; cursor: pointer; }
.mm-search svg { color: #7A5B2B; flex: none; }
.search-hit { animation: legacyHit 2.6s ease-out; }
@keyframes legacyHit { 0%, 25% { background-color: rgba(184,148,91,0.22); box-shadow: 0 0 0 14px rgba(184,148,91,0.22); } 100% { background-color: transparent; box-shadow: 0 0 0 14px transparent; } }
@media (max-width: 640px) {
  .s-inner { padding: 14px 20px 64px; }
  .s-field { margin-top: 28px; gap: 12px; }
  .s-field > svg { width: 22px; height: 22px; }
  .s-input { font-size: 28px; }
  .s-title { font-size: 22px; }
  .s-text { font-size: 15px; }
  .s-results a { padding: 18px 16px; }
  .s-chip { font-size: 14px; padding: 10px 14px; }
}
@media (prefers-reduced-motion: reduce) { .s-panel, .s-panel.is-open, .s-go, .search-hit { transition: none; animation: none; } }

/* Numbers line up with the text (2× NCAA, 21+ years, 01 to 04) */
body { font-variant-numeric: lining-nums; }

/* Pop-up panels */
.lg-dialog{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100%;height:100%;margin:0}
.lg-dialog::backdrop{background:transparent}
.lg-dialog-in{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}
body.dialog-open{overflow:hidden}

/* Phones and tablets: photo boxes in a shorter 4:3 shape so pages scroll less */
@media (max-width: 900px){.ph{aspect-ratio:4 / 3 !important;height:auto !important;min-height:0 !important;flex-basis:auto !important}}

/* Footer: compact rows (each link still a full tap target) */
footer a { padding-top: 0 !important; padding-bottom: 0 !important; }
@media (min-width: 601px) { footer a { min-height: 40px; } }
/* Phones: footer link groups side by side, contact in a tidy grid */
@media (max-width: 600px){
  footer > div { padding-top: 56px !important; gap: 40px !important; }
  footer > div > div:first-child{gap:36px 24px !important}
  /* Programs on the left; Legacy and Partner with us stacked on the right; contact across the width */
  footer > div > div:first-child{display:grid !important;grid-template-columns:1fr 1fr;column-gap:24px !important;row-gap:36px !important;align-items:start}
  footer > div > div:first-child > div{min-width:0}
  footer > div > div:first-child > div:nth-child(1){grid-column:1 / -1}
  footer > div > div:first-child > div:nth-child(2){grid-column:1;grid-row:2 / span 2}
  footer > div > div:first-child > div:nth-child(3){grid-column:2;grid-row:2}
  footer > div > div:first-child > div:nth-child(4){grid-column:2;grid-row:3}
  footer > div > div:first-child > div:nth-child(5){grid-column:1 / -1}
  footer > div > div:last-child{gap:4px 24px !important}
}

/* Tablets: footer logo on its own row, then three even link columns, then contact across the width */
@media (min-width: 601px) and (max-width: 1023px){
  footer > div > div:first-child{gap:40px 32px !important}
  footer > div > div:first-child > div:first-child{flex:1 1 100% !important}
  footer > div > div:first-child > div:nth-child(n+2){flex:1 1 0 !important;min-width:0}
  footer > div > div:first-child > div:nth-child(5){flex:1 1 100% !important;flex-direction:row !important;flex-wrap:wrap;column-gap:32px !important}
  footer > div > div:first-child > div:nth-child(5) > span:first-child{flex-basis:100%}
}

/* Phones: the hero photo note would sit under the headline, so it is hidden there */
/* Phones: keep the two players in view on a tall screen */
/* Tablets: the words cover more of the photo, so the fade is a little deeper */
/* Phones and tablets: the video shows clearly on top, and the words sit just below it */
@media (max-width: 900px){
  .hero-full{flex-direction: column !important; align-items: stretch !important; justify-content: flex-start !important; min-height: 0 !important; background: #1A1815 !important}
  .hero-img{position: relative !important; inset: auto !important; height: 54vh !important; min-height: 320px; max-height: 520px; object-position: 70% 55% !important}
  .hero-fade{background: linear-gradient(to bottom, rgba(26,24,21,0) 0, rgba(26,24,21,0) 34vh, #1A1815 54vh) !important}
  .hero-copy{padding-top: 0 !important; margin-top: -56px !important; padding-bottom: 56px !important}
}
/* Laptops: frame the hero video a little wider so the two players walk to the right of the headline */
/* Home hero photo: a very slow, calm zoom that brings the scene to life without moving anything near the words */
.hero-full{overflow: hidden}
.hero-zoom{transform-origin: 70% 60%; animation: heroZoom 26s ease-in-out infinite alternate; will-change: transform}
@keyframes heroZoom{from{transform: scale(1)}to{transform: scale(1.04)}}
@media (prefers-reduced-motion: reduce){.hero-zoom{animation: none}}

/* The WhatsApp button waits until the visitor scrolls past the home video, so the opening view stays clean */
.wa-float { transition: opacity 0.35s ease; }
body.hero-view .wa-float { opacity: 0; pointer-events: none; }
/* booking: live program and price bar on phones */
.lb-live { display: none; }
@media (max-width: 760px) {
  .lb-live.on { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 65; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: #1C1B18; color: #FAF8F2; font-family: 'Jost', 'Helvetica Neue', sans-serif; font-weight: 300; box-shadow: 0 -8px 24px rgba(0,0,0,0.12); }
  .lb-live-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 13px; color: rgba(250,248,242,0.8); }
  .lb-live-t strong { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 400; font-size: 24px; color: #FAF8F2; line-height: 1.1; }
  .lb-live button { flex: none; min-height: 48px; padding: 0 22px; border: 0; background: #B8945B; color: #0E0E0E; font: 500 13px/1 'Jost', sans-serif; letter-spacing: 0.2em; cursor: pointer; }
  body.lb-live-on .sticky-book, body.lb-live-on .wa-float { opacity: 0; pointer-events: none; }
}
@media (max-width: 760px) { body.lb-live-on { padding-bottom: calc(80px + env(safe-area-inset-bottom)); } }
.lb-worry summary::-webkit-details-marker { display: none; }
.lb-worry[open] summary span:last-child { transform: rotate(45deg); }

/* Reading comfort: body paragraphs stay between about 45 and 75 characters a line */
section p { max-width: 60ch; }
/* Phones: 24px side margins everywhere, so text has room and lines are not cramped */
@media (max-width: 640px) {
  section > div, footer > div { padding-left: 24px !important; padding-right: 24px !important; }
  header nav { padding-left: 24px !important; padding-right: 24px !important; }
}

.lb-field-err { font-size: 14px; letter-spacing: 0; line-height: 1.5; color: #9A4A2A; }
.lb-field-err::before { content: '! '; font-weight: 500; }
[aria-invalid="true"] { border-bottom-color: #9A4A2A !important; }

/* Phones: headings sized for a small screen (H1 up to 44px, H2 up to 34px) */
@media (max-width: 600px) {
  h1 { font-size: clamp(36px, 11vw, 44px) !important; line-height: 1.08 !important; }
  h2 { font-size: clamp(28px, 8.5vw, 34px) !important; line-height: 1.15 !important; }
  body [data-type="h2"] { font-size: clamp(28px, 8.5vw, 34px) !important; line-height: 1.15 !important; }
  body [data-type="h3"] { font-size: 22px !important; line-height: 1.2 !important; }
}

/* Applications, one step at a time */
.gf { display: flex; flex-direction: column; gap: 20px; width: 100%; }
.gf-prog { font-size: 11px; letter-spacing: 0.28em; color: #7A5B2B; }
.gf-step { display: flex; flex-direction: column; gap: 24px; }
.gf-step[hidden] { display: none; }
.gf-q { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(24px, 2.4vw, 30px); line-height: 1.15; color: inherit; }
.gf-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 10px; }
.gf-card { cursor: pointer; font: inherit; font-size: 16px; text-align: left; min-height: 64px; padding: 16px 20px; background: transparent; color: inherit; border: 1px solid rgba(28,27,24,0.28); transition: border-color .15s, background .15s; }
.gf-card:hover { border-color: #B8945B; }
.gf-card[aria-pressed="true"] { border-color: #B8945B; background: #FFFDF8; color: #1C1B18; }
.gf-fields { display: flex; flex-wrap: wrap; gap: 24px 28px; }
.gf-fields > label { flex: 1 1 240px; }
.gf-fields > label:has(textarea), .gf-fields > label:has(input[type="checkbox"]) { flex-basis: 100%; }
.gf-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
.gf-next { cursor: pointer; border: 0; background: #B8945B; color: #0E0E0E; padding: 20px 36px; font: inherit; font-size: 13px; letter-spacing: 0.22em; font-weight: 500; min-height: 48px; }
.gf-back { cursor: pointer; background: transparent; border: 0; border-bottom: 1px solid rgba(28,27,24,0.3); color: inherit; opacity: .75; padding: 10px 0 4px; min-height: 44px; font: inherit; font-size: 12px; letter-spacing: 0.2em; }
section[style*="#0E0E0E"] .gf-card { border-color: rgba(250,248,242,0.3); }
section[style*="#0E0E0E"] .gf-card[aria-pressed="true"] { background: rgba(184,148,91,0.15); color: #FAF8F2; }
section[style*="#0E0E0E"] .gf-back { border-bottom-color: rgba(250,248,242,0.4); }

/* Anything you can click shows the hand pointer, and reacts gently on hover */
/* (kept as separate rules, so a browser that does not know one selector still applies all the others) */
a[href], a[href] *, button:not(:disabled), button:not(:disabled) *, summary, summary *, select, input[type="radio"], input[type="checkbox"], input[type="submit"], input[type="button"] { cursor: pointer; }
[role="button"], [onclick], [data-act], [data-act] *, [data-f], [data-f] *, [data-action], [data-dialog], [data-close-dialog], [data-scroll], [data-door], .prog-card, .gift-amt, .gf-card, .lm-pin { cursor: pointer; }
label:has(> input[type="radio"]), label:has(> input[type="checkbox"]) { cursor: pointer; }
button:disabled, [aria-disabled="true"] { cursor: not-allowed; }
a[href], button, summary { transition: background-color .18s ease, border-color .18s ease, color .18s ease, opacity .18s ease, transform .18s ease, box-shadow .18s ease; }
/* gold buttons deepen a touch; outlined buttons fill softly; dark buttons lighten */
a[style*="background: #B8945B"]:hover, button[style*="background: #B8945B"]:hover:not(:disabled), a[style*="background:#B8945B"]:hover { background: #A9864F !important; }
a[style*="border: 1px solid rgba(28,27,24"]:hover, button[style*="border: 1px solid rgba(28,27,24"]:hover:not(:disabled) { border-color: #1C1B18 !important; background-color: rgba(28,27,24,0.04) !important; }
a[style*="background: #0E0E0E"]:hover, button[style*="background: #0E0E0E"]:hover:not(:disabled), a[style*="background: #1C1B18"]:hover, button[style*="background: #1C1B18"]:hover:not(:disabled) { background: #2E2A25 !important; }
a[style*="border: 1px solid rgba(250,248,242"]:hover { border-color: #FAF8F2 !important; background-color: rgba(250,248,242,0.08) !important; }
/* text links in the menu and footer warm to gold on hover */
header nav a[href]:not([style*="background"]):hover, footer a[href]:hover, .mm-small a:hover { color: #7A5B2B !important; }
footer a[href]:hover { color: #EBD3A4 !important; }
/* cards that are links lift very slightly */
a[href][style*="border: 1px solid"]:not([style*="padding: 0 "]):hover { box-shadow: 0 10px 28px rgba(28,27,24,0.08); transform: translateY(-2px); }
.gf-card:hover, [data-f]:hover { border-color: #B8945B !important; }
/* questions and program cards respond to the pointer */
details > summary:hover > span:first-child { color: #7A5B2B; }
.prog-card:hover img { transform: scale(1.03); }
.prog-card img { transition: transform .5s ease; }
@media (prefers-reduced-motion: reduce) { .prog-card:hover img { transform: none; } a[href]:hover { transform: none !important; } a[href], button, summary { transition: none; } }

/* Sliders: arrows sit on the sides of the photos and cards, where the eye and the thumb already are */
.sl-wrap { position: relative; }
.sl-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 56px; height: 56px; border-radius: 50%; border: 1px solid rgba(28,27,24,0.14) !important;
  background: rgba(250,248,242,0.94) !important; color: #1C1B18 !important; font-size: 20px; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 22px rgba(14,14,14,0.18); padding: 0; }
.sl-arrow:hover:not(:disabled) { background: #FFFFFF !important; box-shadow: 0 8px 28px rgba(14,14,14,0.26); transform: translateY(-50%) scale(1.06); }
.sl-arrow:disabled { opacity: 0 !important; pointer-events: none; }
.sl-prev { left: -28px; } .sl-next { right: -28px; }
.sl-arrow:focus-visible { outline: 2px solid #7A5B2B; outline-offset: 3px; }
.sl-bar { height: 2px; background: rgba(28,27,24,0.12); margin-top: 20px; position: relative; overflow: hidden; }
.sl-bar > span { position: absolute; top: 0; bottom: 0; left: 0; background: #B8945B; transition: left .25s ease, width .25s ease; }
@media (max-width: 1340px) { .sl-prev { left: 8px; } .sl-next { right: 8px; } }
@media (max-width: 760px) { .sl-arrow { width: 44px; height: 44px; font-size: 18px; } }
@media (hover: none) and (max-width: 760px) { .sl-arrow { display: none; } }

/* Privacy, terms and policies: the text runs the full width of its column, lining up with the dividers */
body[data-page="privacy-terms"] section p, body[data-page="policies"] section p { max-width: none; }

/* Headings never leave one word alone on the last line; paragraphs break more evenly */
h1, h2, h3 { text-wrap: balance; }
p, li, blockquote { text-wrap: pretty; }
.skip-link { min-height: 44px; display: inline-flex; align-items: center; box-sizing: border-box; }

/* privacy note under request forms */
.consent-note { margin: 4px 0 0; font-size: 13px; line-height: 1.6; color: #6F6A60; max-width: 560px; }
.consent-note a { color: inherit; text-decoration: underline; padding: 6px 0; }

/* Ask Legacy: the website assistant */
.ak-launch { position: fixed; right: 24px; bottom: 84px; z-index: 70; display: flex; align-items: center; gap: 10px; border: 1px solid rgba(184,148,91,0.7); background: #FAF8F2; color: #1C1B18; padding: 13px 19px; border-radius: 999px; font: 400 12px/1 'Jost', 'Helvetica Neue', sans-serif; letter-spacing: 0.2em; box-shadow: 0 10px 30px rgba(28,27,24,0.18); cursor: pointer; transition: transform .25s ease, box-shadow .25s ease, opacity .25s ease; }
.ak-launch svg { color: #7A5B2B; }
.ak-launch:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(28,27,24,0.24); }
body.menu-open .ak-launch, body.search-open .ak-launch, body.ask-open .ak-launch, body.ask-open .wa-float { opacity: 0; pointer-events: none; }
.ak-panel { position: fixed; right: 24px; bottom: 24px; z-index: 90; width: 380px; max-width: calc(100vw - 32px); height: min(600px, calc(100vh - 48px)); display: flex; flex-direction: column; background: #FAF8F2; color: #1C1B18; border: 1px solid rgba(184,148,91,0.45); box-shadow: 0 30px 80px rgba(28,27,24,0.3); font-family: 'Jost', 'Helvetica Neue', sans-serif; font-weight: 300; opacity: 0; transform: translateY(14px); transition: opacity .3s ease, transform .3s ease; }
.ak-panel.is-open { opacity: 1; transform: none; }
.ak-panel[hidden] { display: none; }
.ak-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 20px 20px 16px; border-bottom: 1px solid rgba(28,27,24,0.1); }
.ak-head > div { display: flex; flex-direction: column; gap: 6px; }
.ak-eyebrow { font-size: 11px; letter-spacing: 0.28em; color: #7A5B2B; }
.ak-title { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 26px; line-height: 1.1; }
.ak-x { width: 44px; height: 44px; margin: -10px -10px 0 0; border: 0; background: none; font-size: 26px; color: #6F6A60; cursor: pointer; }
.ak-log { flex: 1 1 auto; overflow-y: auto; padding: 18px 20px; display: flex; flex-direction: column; gap: 12px; overscroll-behavior: contain; }
.ak-msg { max-width: 88%; font-size: 15px; line-height: 1.6; padding: 11px 14px; animation: akIn .3s ease both; }
.ak-msg.ai { align-self: flex-start; background: #FFFDF8; border: 1px solid rgba(184,148,91,0.3); }
.ak-msg.me { align-self: flex-end; background: #1C1B18; color: #FAF8F2; }
.ak-msg a { color: #7A5B2B; border-bottom: 1px solid #B8945B; text-decoration: none; letter-spacing: 0.04em; }
.ak-ok { color: #5E6E4E; }
.ak-dots { display: inline-flex; gap: 5px; padding: 4px 0; }
.ak-dots i { width: 6px; height: 6px; border-radius: 50%; background: #B8945B; animation: akDot 1.2s ease-in-out infinite; }
.ak-dots i:nth-child(2) { animation-delay: .15s; } .ak-dots i:nth-child(3) { animation-delay: .3s; }
@keyframes akDot { 0%, 80%, 100% { opacity: .3; transform: none; } 40% { opacity: 1; transform: translateY(-3px); } }
@keyframes akIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.ak-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 20px 12px; }
.ak-chips:empty { display: none; }
.ak-chips button { border: 1px solid rgba(184,148,91,0.6); background: transparent; color: #4A463F; padding: 9px 12px; min-height: 40px; font: 400 13px/1.2 'Jost', sans-serif; cursor: pointer; transition: background-color .25s ease, border-color .25s ease; }
.ak-chips button:hover { background: rgba(184,148,91,0.12); border-color: #B8945B; }
.ak-form { display: flex; align-items: flex-end; gap: 8px; margin: 0 20px; border-top: 1px solid rgba(28,27,24,0.12); padding-top: 12px; }
.ak-form textarea { flex: 1 1 auto; resize: none; border: 0; border-bottom: 1px solid #1C1B18; background: transparent; font: 300 16px/1.5 'Jost', sans-serif; color: #1C1B18; padding: 8px 0; max-height: 120px; }
.ak-form textarea:focus { outline: none; border-bottom-color: #B8945B; }
.ak-send { width: 44px; height: 44px; flex: none; border: 0; background: #B8945B; color: #0E0E0E; font-size: 18px; cursor: pointer; transition: opacity .25s ease; }
.ak-send:disabled { opacity: .5; }
.ak-note { margin: 0; padding: 10px 20px 16px; font-size: 11px; line-height: 1.5; color: #8C867A; }
.ak-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ak-hand { align-self: stretch; display: flex; flex-direction: column; gap: 10px; border: 1px solid rgba(184,148,91,0.55); padding: 14px; background: #FFFDF8; animation: akIn .3s ease both; }
.ak-hand-t { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 20px; }
.ak-hand label { display: flex; flex-direction: column; gap: 4px; font-size: 10px; letter-spacing: 0.22em; color: #6F6A60; }
.ak-hand input { border: 0; border-bottom: 1px solid #1C1B18; background: transparent; font: 300 16px/1.4 'Jost', sans-serif; padding: 6px 0; color: #1C1B18; }
.ak-hand input:focus { outline: none; border-bottom-color: #B8945B; }
.ak-hand button { align-self: flex-start; border: 0; background: #B8945B; color: #0E0E0E; padding: 12px 18px; min-height: 44px; font: 500 11px/1 'Jost', sans-serif; letter-spacing: 0.2em; cursor: pointer; }
.ak-hand-e { font-size: 13px; color: #8A3B2B; } .ak-hand-e:empty { display: none; }
.ak-hand-n { font-size: 11px; color: #8C867A; }
@media (max-width: 760px) {
  .ak-launch { right: 16px; bottom: 144px; padding: 14px; }
  .ak-launch .ak-label { display: none; }
  .ak-panel { right: 0; bottom: 0; left: 0; width: auto; max-width: none; height: 88vh; height: 88dvh; border-left: 0; border-right: 0; border-bottom: 0; }
}
@media (prefers-reduced-motion: reduce) { .ak-panel, .ak-launch { transition: none; } .ak-msg, .ak-hand, .ak-dots i { animation: none; } }

/* Header: menu words turn gold on hover, with a dropdown of what is inside */
header nav a:not([style*="background"]):not(.on):not([data-lang]) { transition: color .25s ease; }
header nav a:not([style*="background"]):not([data-lang]):hover, header nav a:not([style*="background"]):not([data-lang]):focus-visible { color: #9C7A3F !important; }
.nd { position: relative; display: inline-flex; align-items: center; }
.nd-top { position: relative; }
.nd-top::after { content: ''; position: absolute; left: 0; right: 0; bottom: 6px; height: 1px; background: #B8945B; transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.nd:hover .nd-top::after, .nd.is-open .nd-top::after, .nd-top.nd-here::after { transform: scaleX(1); }
.nd.is-open .nd-top { color: #9C7A3F !important; }
.nd-panel { position: absolute; top: calc(100% + 14px); left: 50%; z-index: 80; min-width: 300px; padding: 22px 0 16px; background: #1C1B18; color: #FAF8F2; box-shadow: 0 24px 60px rgba(14,14,14,0.28); opacity: 0; visibility: hidden; transform: translate(-50%, -6px); transition: opacity .22s ease, transform .22s ease, visibility 0s linear .22s; letter-spacing: normal; }
.nd-panel::before { content: ''; position: absolute; top: -7px; left: 50%; width: 14px; height: 14px; background: #1C1B18; transform: translateX(-50%) rotate(45deg); }
.nd-panel::after { content: ''; position: absolute; left: 0; right: 0; top: -16px; height: 16px; } /* keeps the menu open while the mouse travels down */
.nd.is-open .nd-panel { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition: opacity .22s ease, transform .22s ease; }
.nd-list { display: flex; flex-direction: column; }
.nd-wide { min-width: 560px; }
.nd-wide .nd-list { display: grid; grid-template-columns: 1fr 1fr; }
.nd-i { display: flex; flex-direction: column; gap: 3px; padding: 11px 28px; color: #FAF8F2 !important; text-decoration: none; transition: background-color .2s ease; }
.nd-i b { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; font-size: 21px; letter-spacing: 0; line-height: 1.15; transition: color .2s ease; }
.nd-i span { font: 300 13px/1.4 'Jost', 'Helvetica Neue', sans-serif; letter-spacing: 0.02em; color: rgba(250,248,242,0.62); }
.nd-i:hover, .nd-i:focus-visible { background: rgba(250,248,242,0.05); }
.nd-i:hover b, .nd-i:focus-visible b { color: #D4B47E; }
.nd-foot { display: flex; flex-wrap: wrap; gap: 6px 24px; margin: 12px 28px 0; padding-top: 14px; border-top: 1px solid rgba(250,248,242,0.14); }
.nd-foot a { font: 400 11px/1 'Jost', sans-serif; letter-spacing: 0.2em; color: rgba(250,248,242,0.75) !important; text-decoration: none; padding: 8px 0; transition: color .2s ease; }
.nd-foot a.gold { color: #D4B47E !important; }
.nd-foot a:hover { color: #EBD3A4 !important; }
@media (max-width: 1200px) { .nd-panel { display: none; } .nd-top::after { display: none; } }
@media (prefers-reduced-motion: reduce) { .nd-panel, .nd-top::after { transition: none; } }

/* Type: serif for headlines, big numbers and quotes; sans-serif medium for everything you scan or tap */
.nd-i b { font-family: 'Jost', 'Helvetica Neue', sans-serif; font-weight: 500; font-size: 15px; letter-spacing: 0.04em; line-height: 1.3; }
.nd-i span { font-size: 13px; }
.nd-i { gap: 4px; padding: 12px 28px; }
.m-menu .mm-big a { font-family: 'Jost', 'Helvetica Neue', sans-serif !important; font-weight: 500 !important; font-size: clamp(17px, 2.6vw, 20px) !important; letter-spacing: 0.08em; }
.s-title { font-family: 'Jost', 'Helvetica Neue', sans-serif; font-weight: 500; font-size: 17px; letter-spacing: 0.01em; }
.ak-hand-t { font-family: 'Jost', 'Helvetica Neue', sans-serif; font-weight: 500; font-size: 15px; letter-spacing: 0.02em; }

/* "Do we come to you?" */
[data-area-check] { width: 100%; max-width: 560px; }
.ac-form { display: flex; flex-direction: column; gap: 8px; }
.ac-l { font-size: 11px; letter-spacing: 0.24em; color: #6F6A60; }
.ac-row { display: flex; gap: 0; border-bottom: 1px solid #1C1B18; }
.ac-row input { flex: 1 1 auto; min-width: 0; border: 0; background: transparent; font: 300 18px/1.4 'Jost', 'Helvetica Neue', sans-serif; color: #1C1B18; padding: 12px 0; }
.ac-row input:focus { outline: none; }
.ac-row:focus-within { border-bottom-color: #B8945B; }
.ac-row button { flex: none; border: 0; background: #B8945B; color: #0E0E0E; padding: 0 22px; min-height: 48px; font: 500 12px/1 'Jost', sans-serif; letter-spacing: 0.2em; cursor: pointer; margin-bottom: 6px; transition: background-color .25s ease; }
.ac-row button:hover { background: #A88449; }
.ac-out:empty { display: none; }
.ac-out { padding-top: 16px; }
.ac-yes, .ac-no { display: flex; gap: 14px; align-items: flex-start; animation: akIn .35s ease both; }
.ac-yes > div, .ac-no { flex-direction: column; gap: 6px; }
.ac-no { display: flex; }
.ac-yes b, .ac-no b { font: 500 17px/1.35 'Jost', 'Helvetica Neue', sans-serif; color: #1C1B18; }
.ac-yes span:not(.ac-ic), .ac-no > span { font-size: 15px; line-height: 1.55; color: #4A463F; }
.ac-yes > div { display: flex; }
.ac-ic { flex: none; width: 30px; height: 30px; border-radius: 50%; background: #B8945B; color: #0E0E0E; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; margin-top: 1px; }
.ac-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; padding-top: 8px; }
.ac-btn { background: #1C1B18; color: #FAF8F2 !important; text-decoration: none; padding: 14px 20px; font-size: 12px; letter-spacing: 0.2em; transition: background-color .25s ease; }
.ac-btn:hover { background: #3A3934; }
.ac-link { color: #7A5B2B !important; text-decoration: none; font-size: 12px; letter-spacing: 0.18em; border-bottom: 1px solid #B8945B; padding: 6px 0 2px; }
.ac-wait { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 6px; }
.ac-wait input { flex: 1 1 160px; border: 0; border-bottom: 1px solid #1C1B18; background: transparent; font: 300 16px/1.4 'Jost', sans-serif; padding: 10px 0; color: #1C1B18; }
.ac-wait input:focus { outline: none; border-bottom-color: #B8945B; }
.ac-wait button { border: 0; background: #1C1B18; color: #FAF8F2; padding: 0 18px; min-height: 44px; font: 500 11px/1 'Jost', sans-serif; letter-spacing: 0.2em; cursor: pointer; }
.ac-msg { font-size: 14px; color: #8A3B2B; } .ac-msg.ok { color: #5E6E4E; } .ac-msg:empty { display: none; }
/* on a dark section */
.ac-dark .ac-l { color: rgba(250,248,242,0.7); } .ac-dark .ac-row { border-bottom-color: rgba(250,248,242,0.6); } .ac-dark .ac-row input { color: #FAF8F2; } .ac-dark .ac-row input::placeholder { color: rgba(250,248,242,0.5); }
.ac-dark .ac-yes b, .ac-dark .ac-no b { color: #FAF8F2; } .ac-dark .ac-yes span:not(.ac-ic), .ac-dark .ac-no > span { color: rgba(250,248,242,0.8); }
.ac-dark .ac-btn { background: #B8945B; color: #0E0E0E !important; } .ac-dark .ac-link { color: #EBD3A4 !important; }

/* the slim header while scrolling */
.site-hd { position: sticky; top: 0; z-index: 75; transition: box-shadow .3s ease, background-color .3s ease; }
.site-hd nav, .site-hd nav img { transition: padding .3s ease, width .3s ease; }
body.hd-slim .site-hd { box-shadow: 0 8px 24px rgba(28,27,24,0.08); background: #FAF8F2 !important; }
body.hd-slim .site-hd nav { padding-top: 10px !important; padding-bottom: 10px !important; }
body.hd-slim .site-hd nav > a img { width: 150px !important; }
body.hd-slim .site-hd .nd-panel { top: calc(100% + 10px); }
@media (max-width: 1200px) { body.hd-slim .site-hd nav > a img { width: 130px !important; } }
@media (prefers-reduced-motion: reduce) { .site-hd, .site-hd nav, .site-hd nav img { transition: none; } }

/* Spanish suggestion */
.es-hint { position: fixed; left: 24px; bottom: 24px; z-index: 72; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; max-width: min(560px, calc(100vw - 48px)); box-sizing: border-box; padding: 14px 18px; background: #1C1B18; color: #FAF8F2; box-shadow: 0 16px 40px rgba(14,14,14,0.3); font: 300 15px/1.4 'Jost', 'Helvetica Neue', sans-serif; opacity: 0; transform: translateY(12px); transition: opacity .3s ease, transform .3s ease; }
.es-hint.is-on { opacity: 1; transform: none; }
.es-hint .es-yes { background: #B8945B; color: #0E0E0E !important; text-decoration: none; padding: 10px 14px; font: 500 11px/1 'Jost', sans-serif; letter-spacing: 0.2em; }
.es-hint .es-no { border: 0; background: none; color: rgba(250,248,242,0.75); font: 300 14px/1 'Jost', sans-serif; padding: 10px 4px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 760px) { .es-hint { left: 16px; right: 16px; bottom: 148px; max-width: none; } }
body.menu-open .es-hint, body.ask-open .es-hint { display: none; }

.bk-zip { display: flex; flex-direction: column; gap: 6px; max-width: 360px; }
.bk-zip input { border: 0; border-bottom: 1px solid rgba(28,27,24,0.4); background: transparent; font: 300 16px/1.4 'Jost', sans-serif; padding: 10px 0; color: #1C1B18; }
.bk-zip input:focus { outline: none; border-bottom-color: #B8945B; }
.bk-zip-r { font-size: 14px; color: #8A3B2B; } .bk-zip-r:empty { display: none; }

/* Phones: section spacing in proportion (desktop keeps its larger rhythm). Classes come from phonepad.js at build time. */
@media (max-width: 640px) {
  section > .sp-t-l { padding-top: 72px !important; } section > .sp-b-l { padding-bottom: 72px !important; }
  section > .sp-t-m { padding-top: 56px !important; } section > .sp-b-m { padding-bottom: 56px !important; }
  section > .sp-t-s { padding-top: 40px !important; } section > .sp-b-s { padding-bottom: 40px !important; }
  /* two buttons side by side become a neat stack of equal width on a phone */
  section div:has(> a[style*="padding: 18px"] + a[style*="padding: 18px"]) { flex-direction: column; align-items: center; }
  section div:has(> a[style*="padding: 18px"] + a[style*="padding: 18px"]) > a { width: min(100%, 320px); box-sizing: border-box; text-align: center; }
}

/* "Use my location" in the area check and the booking step: a quiet text button under the field */
.ac-geo { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; min-height: 44px; padding: 0; border: 0; background: none; color: #7A5B2B; font: 500 12px/1 'Jost', 'Helvetica Neue', sans-serif; letter-spacing: 0.18em; cursor: pointer; }
.ac-geo span { border-bottom: 1px solid rgba(184,148,91,0.6); padding-bottom: 3px; transition: border-color .2s ease; }
.ac-geo:hover span { border-bottom-color: #7A5B2B; }
.ac-geo:focus-visible { outline: 1px solid #B8945B; outline-offset: 4px; }
.ac-geo.is-busy { color: #8C867A; cursor: progress; }
.ac-geo.is-busy svg { animation: acPulse 1.2s ease-in-out infinite; }
@keyframes acPulse { 50% { opacity: 0.35; } }
@media (prefers-reduced-motion: reduce) { .ac-geo.is-busy svg { animation: none; } }
.ac-dark .ac-geo { color: #EBD3A4; } .ac-dark .ac-geo span { border-bottom-color: rgba(235,211,164,0.6); }
.bk-geo { border: 0; background: none; padding: 10px 0; min-height: 44px; color: #7A5B2B; font: 500 11px/1 'Jost', 'Helvetica Neue', sans-serif; letter-spacing: 0.18em; text-decoration: underline; text-decoration-color: rgba(184,148,91,0.6); text-underline-offset: 4px; cursor: pointer; white-space: nowrap; }
.bk-geo:disabled { color: #8C867A; cursor: progress; }
.bk-geo { align-self: flex-start; }

/* booking: "Someone manages my schedule?" */
.bk-help { border-top: 1px solid rgba(28,27,24,0.12); padding-top: 14px; }
.bk-help > summary { cursor: pointer; list-style: none; font-size: 15px; color: #1C1B18; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.bk-help > summary::-webkit-details-marker { display: none; }
.bk-help > summary::before { content: '+'; width: 22px; height: 22px; border: 1px solid #B8945B; color: #7A5B2B; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; flex: none; }
.bk-help[open] > summary::before { content: '–'; }
.bk-help > summary span { color: #6F6A60; font-size: 13px; }
.bk-help-b { display: flex; flex-direction: column; gap: 16px; padding-top: 8px; }
.bk-help-t { font-size: 14px; line-height: 1.55; color: #4A463F; max-width: 560px; }

/* The footer sits outside the page wrapper that sets the brand font, so it sets its own (Jost; the tagline keeps Cormorant) */
footer { font-family: 'Jost', 'Helvetica Neue', Arial, sans-serif; font-weight: 300; }

/* Phones: the contact links, one per line (number, WhatsApp, email, Instagram, city), easy to tap and to read */
@media (max-width: 600px) {
  footer > div > div:first-child > div:nth-child(5) { display: flex !important; flex-direction: column !important; gap: 0 !important; }
  footer > div > div:first-child > div:nth-child(5) > span:last-child { min-height: 40px; }
}

/* Smooth page changes: moving between Legacy pages is a soft cross-fade, and the header stays in place,
   so the site feels like one continuous experience. Browsers without view transitions simply load as before. */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: lgFadeOut 0.22s cubic-bezier(.4,0,.2,1) both; }
::view-transition-new(root) { animation: lgFadeIn 0.32s cubic-bezier(.2,.8,.3,1) both; }
@keyframes lgFadeOut { to { opacity: 0; } }
@keyframes lgFadeIn { from { opacity: 0; transform: translateY(6px); } }
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
}
/* the site header holds still while the page fades beneath it (not while the slim scrolling header is showing) */
body:not(.hd-slim) header.site-hd { view-transition-name: lg-header; }
::view-transition-old(lg-header), ::view-transition-new(lg-header) { animation: none; }
::view-transition-group(lg-header) { animation: none; }

/* "Welcome back" and "Continue your plan": one quiet band under the header */
.kb { background: #1C1B18; color: #FAF8F2; font-family: 'Jost', 'Helvetica Neue', sans-serif; font-weight: 300; overflow: hidden; max-height: 0; transition: max-height .35s ease; }
.kb.is-on { max-height: 160px; }
.kb-in { max-width: 1280px; margin: 0 auto; padding: 12px 32px; box-sizing: border-box; display: flex; align-items: center; gap: 8px 24px; flex-wrap: wrap; }
.kb-t { flex: 1 1 280px; font-size: 15px; line-height: 1.5; }
.kb-t b { font-weight: 500; color: #EBD3A4; }
.kb-s { color: rgba(250,248,242,0.75); }
.kb-a { color: #EBD3A4 !important; text-decoration: none; font-size: 12px; letter-spacing: 0.2em; border-bottom: 1px solid rgba(235,211,164,0.6); padding: 6px 0 3px; white-space: nowrap; }
.kb-a:hover { border-bottom-color: #EBD3A4; }
.kb-x { background: none; border: 0; color: rgba(250,248,242,0.7); font-size: 22px; line-height: 1; width: 44px; height: 44px; margin-right: -12px; cursor: pointer; }
.kb-x:hover { color: #FAF8F2; }
@media (max-width: 640px) { .kb-in { padding: 10px 24px; } .kb-t { font-size: 14px; } }
@media (prefers-reduced-motion: reduce) { .kb { transition: none; } }

/* "Do we come to you?": a generous, framed field so a full city name always fits, the button inside it on larger
   screens and full width under it on phones */
.ac-form { gap: 10px; }
.ac-l { font-size: 12px; }
.ac-row { border: 1px solid rgba(28,27,24,0.32); border-bottom: 1px solid rgba(28,27,24,0.32); background: #FFFDF8; padding: 6px; gap: 6px; align-items: stretch; transition: border-color .2s ease, box-shadow .2s ease; }
.ac-row:focus-within { border-color: #B8945B; box-shadow: 0 0 0 3px rgba(184,148,91,0.18); }
.ac-row input { font-size: 19px; padding: 14px 14px; min-height: 58px; box-sizing: border-box; }
.ac-row input::placeholder { color: #8C867A; }
.ac-row button { min-height: 58px; padding: 0 30px; font-size: 13px; margin: 0; }
.ac-geo { margin-top: 2px; }
@media (max-width: 560px) {
  .ac-row { flex-direction: column; padding: 0; border: 0; background: transparent; gap: 10px; }
  .ac-row:focus-within { box-shadow: none; }
  .ac-row input { border: 1px solid rgba(28,27,24,0.32); background: #FFFDF8; width: 100%; }
  .ac-row input:focus { border-color: #B8945B; box-shadow: 0 0 0 3px rgba(184,148,91,0.18); }
  .ac-row button { width: 100%; min-height: 54px; }
}
/* on the dark band (Where we coach hero) */
.ac-dark .ac-row { background: rgba(250,248,242,0.06); border-color: rgba(250,248,242,0.4); }
.ac-dark .ac-row input { color: #FAF8F2; }
.ac-dark .ac-row input::placeholder { color: rgba(250,248,242,0.6); }
@media (max-width: 560px) { .ac-dark .ac-row { background: transparent; } .ac-dark .ac-row input { background: rgba(250,248,242,0.06); border-color: rgba(250,248,242,0.4); } }
/* the booking step's "Not sure? Type your ZIP code": wider, so a city name fits too */
.bk-zip { max-width: 520px; }
.bk-zip input { font-size: 17px; }

/* The sticky FIND MY PROGRAM on phones: text centered optically (capitals sit high in a line-height of 1) */
@media (max-width: 760px) { .sticky-book { padding-top: 3px; box-sizing: border-box; } }

/* For me / For my child / For my family, and every answer in Find your program: black with gold text on hover */
a[data-door], .legacy-finder [data-f]:not([data-f="back"]):not([data-f="go"]) { transition: background-color .22s ease, color .22s ease, border-color .22s ease; }
a[data-door]:hover, a[data-door]:focus-visible,
.legacy-finder [data-f]:not([data-f="back"]):not([data-f="go"]):hover, .legacy-finder [data-f]:not([data-f="back"]):not([data-f="go"]):focus-visible {
  background: #1C1B18 !important; color: #D4B47E !important; border-color: #1C1B18 !important; }
a[data-door]:hover span, a[data-door]:focus-visible span,
.legacy-finder [data-f]:not([data-f="back"]):not([data-f="go"]):hover span, .legacy-finder [data-f]:not([data-f="back"]):not([data-f="go"]):focus-visible span { color: #D4B47E !important; }
.legacy-finder [data-f]:not([data-f="back"]):not([data-f="go"]):hover span + span, a[data-door]:hover span + span { color: rgba(212,180,126,0.75) !important; }

/* Questions that open (FAQ): the answers always in the sans serif (the home page FAQ sits outside the font wrapper) */
section details > :not(summary) { font-family: 'Jost', 'Helvetica Neue', Arial, sans-serif; font-weight: 300; }
section details > :not(summary) * { font-family: inherit; }
section details > summary { font-family: 'Jost', 'Helvetica Neue', Arial, sans-serif; }

/* Header menu: one underline only. The current page, hover and an open menu all show the same single gold line
   (the line drawn into the current page's link is hidden, so it never doubles up) */
header nav .nd-top { border-bottom-color: transparent !important; }

/* Contact: one simple box. The inquiry list gets a clear arrow, and every field warms to gold when active */
.ct-form select { -webkit-appearance: none; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%237A5B2B' stroke-width='1.4'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 4px center !important; background-size: 12px 8px !important; padding-right: 28px !important; font-family: 'Jost', 'Helvetica Neue', sans-serif; }
.ct-form input:focus, .ct-form select:focus { outline: none; border-bottom-color: #B8945B !important; }
.ct-form textarea:focus { outline: none; border-color: #B8945B !important; box-shadow: 0 0 0 3px rgba(184,148,91,0.15); }
.ct-form textarea::placeholder { color: #8C867A; }
/* Contact details on phones: each label sits above its value, so the email address always fits on one line */
@media (max-width: 560px) {
  .ct-info > div { flex-direction: column; gap: 4px !important; align-items: flex-start !important; }
  .ct-info > div > span:first-child { width: auto !important; }
  .ct-info > div > span:last-child { overflow-wrap: normal !important; }
}

/* Hover that stands out from the hero photo: a fine ivory outline, a soft lift and a deeper shadow */
a[data-door] { transition: background-color .22s ease, color .22s ease, border-color .22s ease, transform .25s cubic-bezier(.2,.8,.3,1), box-shadow .25s ease; }
section a[data-door]:not(.legacy-finder a):hover, section a[data-door]:not(.legacy-finder a):focus-visible {
  transform: translateY(-3px); box-shadow: 0 0 0 1px rgba(250,248,242,0.9), 0 18px 36px rgba(0,0,0,0.42); }
/* the answers in Find your program, on the light background: a gentler lift */
.legacy-finder [data-f]:not([data-f="back"]):not([data-f="go"]) { transition: background-color .22s ease, color .22s ease, border-color .22s ease, transform .25s cubic-bezier(.2,.8,.3,1), box-shadow .25s ease; }
.legacy-finder [data-f]:not([data-f="back"]):not([data-f="go"]):hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(28,27,24,0.18); }
@media (prefers-reduced-motion: reduce) { a[data-door]:hover, .legacy-finder [data-f]:hover { transform: none !important; } }
@media (hover: none) { section a[data-door]:hover, .legacy-finder [data-f]:hover { transform: none; } }

/* The three doors in the hero: a clear prompt, a line under each choice, an arrow that slides in, a gentle press */
.door .door-a { position: absolute; right: 18px; top: 50%; transform: translate(-6px, -50%); opacity: 0; font-size: 16px; transition: opacity .25s ease, transform .25s cubic-bezier(.2,.8,.3,1); }
.door:hover .door-a, .door:focus-visible .door-a { opacity: 1; transform: translate(0, -50%); }
.door:active { transform: translateY(-1px) scale(0.985) !important; transition-duration: .08s; }
.door:focus-visible { outline: 2px solid #FAF8F2; outline-offset: 3px; }
@media (max-width: 640px) {
  .doors { flex-direction: column; gap: 10px !important; }
  .door { flex: none !important; max-width: none !important; width: 100%; padding: 15px 44px 14px 22px !important; }
  .door .door-a { opacity: 0.7; transform: translate(0, -50%); }   /* no hover on phones: the arrow is always there, softly */
}
@media (prefers-reduced-motion: reduce) { .door .door-a { transition: none; } }

/* The four quick facts under the hero: thin gold dividers between them on wide screens */
@media (min-width: 1000px) { .tp-i + .tp-i { border-left: 1px solid rgba(184,148,91,0.35); padding-left: 28px !important; } }
@media (min-width: 641px) and (max-width: 999px) { .tp-i { flex-basis: 45% !important; } }
@media (max-width: 640px) { .tp { gap: 18px !important; } .tp-i { flex-basis: 100% !important; padding-right: 0 !important; } }

/* The base font for the whole site: anything without its own font is in the sans serif, never the browser's Times */
body { font-family: 'Jost', 'Helvetica Neue', Arial, sans-serif; font-weight: 300; }

/* Find your program: even rows of choices, and a quiet "choose one" line under each question */
.fd-grid { display: grid; grid-template-columns: repeat(var(--c, 3), minmax(0, 1fr)); gap: 10px; }
.fd-grid > button { min-width: 0; }
.fd-hint { font-family: 'Jost', 'Helvetica Neue', Arial, sans-serif; font-weight: 300; font-size: 15px; color: #6F6A60; margin-top: -8px; }
@media (max-width: 1000px) { .fd-grid { grid-template-columns: repeat(var(--t, 2), minmax(0, 1fr)); } }
@media (max-width: 760px) { .fd-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .fd-grid { grid-template-columns: 1fr; } }

/* Booking: required fields carry a small red star, the standard everyone recognizes */
.req { color: #A33A2B; font-size: 14px; letter-spacing: 0; font-weight: 400; margin-left: 1px; }
.req-key { font-size: 12px; letter-spacing: 0.04em; color: #6F6A60; margin-bottom: -8px; }
.req-key .req { margin: 0 2px 0 0; }
.bk-miss { color: #A33A2B !important; }
.bk-miss input { border-bottom-color: #A33A2B !important; }

/* The booking page: a calm, focused space with nothing around the plan */
.bk-page { background: #FAF8F2; }
.bk-page-in { max-width: 1120px; margin: 0 auto; padding: 40px 32px 112px; display: flex; flex-direction: column; gap: 28px; }
.bk-back { align-self: flex-start; font-size: 12px; letter-spacing: 0.22em; color: #6F6A60; text-decoration: none; border-bottom: 1px solid rgba(28,27,24,0.25); padding: 10px 0 4px; min-height: 44px; box-sizing: border-box; display: inline-flex; align-items: flex-end; }
.bk-back:hover { color: #7A5B2B; border-color: #B8945B; }
.bk-page-head { display: flex; flex-direction: column; gap: 14px; max-width: 720px; }
.bk-page-k { font-size: 12px; letter-spacing: 0.42em; color: #7A5B2B; }
.bk-page-h { margin: 0; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 400; font-size: clamp(36px, 4.2vw, 56px); line-height: 1.05; }
.bk-page-p { margin: 0; font-size: 16px; line-height: 1.65; color: #4A463F; max-width: 600px; }
.bk-trust { display: flex; flex-wrap: wrap; gap: 10px 28px; padding: 14px 0; border-top: 1px solid rgba(28,27,24,0.12); border-bottom: 1px solid rgba(28,27,24,0.12); font-size: 13px; letter-spacing: 0.04em; color: #4A463F; }
.bk-trust span { display: inline-flex; align-items: center; gap: 8px; }
.bk-trust span::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: #B8945B; flex: none; }
@media (max-width: 760px) { .bk-page-in { padding: 24px 20px 88px; gap: 22px; } .bk-trust { flex-direction: column; gap: 8px; } }

/* On the program page: one clear door into the booking page */
.bk-door { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px 48px; padding: 36px 40px; background: #F1EBE1; border: 1px solid rgba(184,148,91,0.45); }
.bk-door-l { display: flex; flex-direction: column; gap: 14px; }
.bk-door-k { font-size: 11px; letter-spacing: 0.28em; color: #7A5B2B; }
.bk-door-list { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 10px 32px; font-size: 16px; color: #1C1B18; }
.bk-door-list li { display: flex; align-items: center; gap: 10px; }
.bk-door-list li::before { content: '✓'; color: #8A6A35; font-size: 14px; }
.bk-door-btn { background: #B8945B; color: #0E0E0E !important; text-decoration: none; padding: 20px 34px; font-size: 13px; letter-spacing: 0.2em; font-weight: 500; min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; }
.bk-door-btn:hover { background: #0E0E0E; color: #B8945B !important; }
@media (max-width: 760px) { .bk-door { padding: 26px 22px; } .bk-door-list { flex-direction: column; } .bk-door-btn { width: 100%; justify-content: center; box-sizing: border-box; } }

/* Search: popular links that go straight to their page look the same as the other chips */
a.s-chip { text-decoration: none; display: inline-flex; align-items: center; box-sizing: border-box; }
.s-results li.s-book .s-title { font-family: 'Cormorant Garamond', Georgia, serif; }
@media (min-width: 1000px) { .tp-i { flex: 1 1 0 !important; } }

/* Checkout header and footer on the booking pages */
.co-head { position: sticky; top: 0; z-index: 40; background: rgba(250,248,242,0.96); backdrop-filter: blur(8px); border-bottom: 1px solid rgba(28,27,24,0.1); }
.co-nav { max-width: 1120px; margin: 0 auto; padding: 16px 32px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.co-logo { display: flex; align-items: center; min-height: 44px; }
.co-logo img { width: 168px; height: auto; display: block; }
.co-right { display: flex; align-items: center; gap: 28px; }
.co-secure { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; letter-spacing: 0.28em; color: #4E6B4A; white-space: nowrap; }
.co-help { font-size: 14px; color: #1C1B18 !important; text-decoration: none; min-height: 44px; display: inline-flex; align-items: center; gap: 6px; }
.co-help-k { color: #6F6A60; }
.co-foot { background: #F1EBE1; border-top: 1px solid rgba(28,27,24,0.1); }
.co-foot-in { max-width: 1120px; margin: 0 auto; padding: 28px 32px 36px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px 32px; font-size: 13px; color: #6F6A60; }
.co-stripe { display: inline-flex; align-items: flex-start; gap: 8px; max-width: 560px; line-height: 1.6; }
.co-stripe svg { flex: none; margin-top: 3px; color: #4E6B4A; }
.co-links { display: flex; flex-wrap: wrap; gap: 8px 22px; align-items: center; }
.co-links a { color: #4A463F; text-decoration: none; border-bottom: 1px solid rgba(28,27,24,0.2); }
.co-links a:hover { color: #7A5B2B; border-color: #B8945B; }
@media (max-width: 640px) { .co-nav { padding: 12px 20px; } .co-head .co-logo img { width: 128px !important; } .co-head .co-help { display: none !important; } .co-head .co-secure { letter-spacing: 0.2em; } .co-right { gap: 16px; } .co-secure svg { width: 18px; height: 18px; } .co-foot-in { padding: 24px 20px 96px; } }

/* Booking: the players joining a semi-private program */
.bk-partners { display: flex; flex-direction: column; gap: 14px; border-top: 1px solid rgba(28,27,24,0.12); padding-top: 22px; }
.bk-p-k { font-size: 11px; letter-spacing: 0.28em; color: #6F6A60; }
.bk-p-t { font-size: 14px; line-height: 1.6; color: #4A463F; }
.bk-p-row { display: flex; flex-direction: column; gap: 10px; padding: 18px 20px 22px; background: #FFFDF8; border: 1px solid rgba(28,27,24,0.12); }
.bk-p-n { font-size: 11px; letter-spacing: 0.24em; color: #7A5B2B; }

/* The Grand Slam medal: one slow turn when it comes into view, then it sways gently on its ribbon */
.medal-anim { transform-origin: 50% 0; overflow: visible; }
.medal-anim .medal-disc { transform-box: fill-box; transform-origin: center; }
.medal-anim.is-on .medal-disc { animation: medal-turn 2.6s cubic-bezier(.45, 0, .25, 1) .2s 1 both; }
.medal-anim.is-on { animation: medal-sway 7s ease-in-out 2.9s infinite; }
@keyframes medal-turn { 0% { transform: scaleX(1); } 25% { transform: scaleX(.04); } 50% { transform: scaleX(1); } 75% { transform: scaleX(.04); } 100% { transform: scaleX(1); } }
@keyframes medal-sway { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(2.2deg); } 75% { transform: rotate(-2.2deg); } }
@media (prefers-reduced-motion: reduce) { .medal-anim.is-on, .medal-anim.is-on .medal-disc { animation: none; } }

/* Format cards: the whole card opens booking with that format chosen */
.fmt-card { cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.fmt-card:hover { border-color: #B8945B !important; box-shadow: 0 14px 34px rgba(28,27,24,0.08); transform: translateY(-2px); }
.fmt-cue { margin-top: auto; padding-top: 22px; font-size: 12px; letter-spacing: 0.2em; color: #7A5B2B; font-weight: 500; }
.fmt-card:hover .fmt-cue { color: #1C1B18; }
@media (prefers-reduced-motion: reduce) { .fmt-card:hover { transform: none; } }

/* Booking: "Welcome back" note, quiet, with Start over as a small gold link on the right */
.bk-resume { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; padding: 14px 18px; margin-bottom: 8px; background: #F1EBE1; border-left: 2px solid #B8945B; font-size: 15px; color: #3A3934; }
.bk-resume button { background: none; border: 0; border-bottom: 1px solid #B8945B; padding: 6px 0 3px; min-height: 36px; font-family: inherit; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: #7A5B2B; cursor: pointer; }
.bk-resume button:hover { color: #1C1B18; border-color: #1C1B18; }

/* Footer: every area we coach, listed like the other footer links */
.ft-areas { display: flex; flex-wrap: wrap; gap: 6px 32px; align-items: baseline; margin-top: -20px; }
.ft-areas-k { font-size: 11px; letter-spacing: 0.3em; color: rgba(250,248,242,0.55); text-decoration: none; padding: 6px 0; flex: none; }
.ft-areas-k:hover { color: #B8945B; }
.ft-areas-l { display: flex; flex-wrap: wrap; gap: 0 24px; flex: 1 1 520px; min-width: 0; }
.ft-areas-l a { color: #FAF8F2; text-decoration: none; font-size: 14px; padding: 6px 0; }
.ft-areas-l a:hover { color: #B8945B; }
@media (max-width: 640px) { .ft-areas { margin-top: -24px; flex-direction: column; gap: 4px; } .ft-areas-l { gap: 0 20px; flex-basis: auto; } }

/* Where We Coach: every area page, as a calm grid */
.ar-list-in { max-width: 1280px; margin: 0 auto; padding: 96px 32px 112px; display: flex; flex-direction: column; gap: 40px; }
.ar-list-head { display: flex; flex-direction: column; gap: 16px; }
.ar-list-k { font-size: 12px; letter-spacing: 0.42em; color: #7A5B2B; }
.ar-list-h { margin: 0; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 400; font-size: clamp(32px, 3.8vw, 52px); line-height: 1.06; }
.ar-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 0 40px; }
.ar-cell { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr; gap: 6px 16px; align-items: start; padding: 22px 0; border-top: 1px solid rgba(28,27,24,0.18); border-bottom: 1px solid rgba(28,27,24,0.18); margin-top: -1px; color: #1C1B18; text-decoration: none; }
.ar-cell-k { grid-column: 1; font-size: 11px; letter-spacing: 0.28em; color: #7A5B2B; }
.ar-cell-n { grid-column: 1; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 24px; line-height: 1.2; }
.ar-cell-go { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: #B8945B; font-size: 18px; transition: transform .2s ease; }
.ar-cell:hover .ar-cell-n { color: #7A5B2B; }
.ar-cell:hover .ar-cell-go { transform: translateX(4px); }

/* Links inside sentences look like links: underlined in gold, same colour as the text */
section p a:not([class]), section li a:not([class]) { color: inherit !important; text-decoration: underline !important; text-decoration-color: #B8945B !important; text-decoration-thickness: 1px; text-underline-offset: 3px; }
section p a:not([class]):hover { color: #7A5B2B !important; }
/* The "build my program" door button matches every other primary button */
.bk-door-btn { padding: 18px 32px !important; min-height: 56px; font-size: 13px !important; letter-spacing: 0.2em !important; box-sizing: border-box; display: inline-flex !important; align-items: center; justify-content: center; }

/* Private request pages: the form in one calm column, and the "welcome back" line when answers were kept */
.rq-body { max-width: 760px; width: 100%; }
.rq-body > [data-show] > form, .rq-body > [data-show] > div { flex: none !important; width: 100%; max-width: none !important; box-sizing: border-box; }
.rq-page .bk-page-in { padding-bottom: 96px; }
.gf-resume { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 20px; padding: 14px 18px; background: #FFFDF8; border: 1px solid rgba(184,148,91,0.45); font-size: 14px; color: #3A3934; }
.gf-resume button { cursor: pointer; background: transparent; border: 0; border-bottom: 1px solid rgba(28,27,24,0.35); padding: 8px 0 2px; min-height: 40px; font: inherit; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: #1C1B18; }
/* a form under its heading (one column) is as tall as its step, not a fixed height */
[style*="flex-direction: column"] > div[data-show], .rq-body > div[data-show] { flex: none; }
/* the safety promise under the coaching credentials */
.safe-line { max-width: 760px; }

/* ---------- The Legacy Journal ---------- */
.jr-in { max-width: 1280px; margin: 0 auto; padding-left: 32px; padding-right: 32px; }
.jr-narrow { max-width: 760px; }
.jr-k { display: block; font-size: 12px; letter-spacing: 0.42em; color: #7A5B2B; }
.jr-h1 { margin: 0; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 400; font-size: clamp(42px, 5.2vw, 72px); line-height: 1.02; color: #1C1B18; }
.jr-art .jr-h1 { font-size: clamp(38px, 4.4vw, 60px); line-height: 1.06; }
.jr-lead { margin: 0; font-size: clamp(18px, 1.5vw, 20px); line-height: 1.6; color: #3A3934; max-width: 640px; }
.jr-hero { padding: 112px 0 56px; }
.jr-hero .jr-in { display: flex; flex-direction: column; gap: 24px; }
.jr-list { padding: 0 0 112px; }
.jr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 56px 40px; }
.jr-card { display: flex; flex-direction: column; gap: 14px; color: #1C1B18; text-decoration: none; }
.jr-img { display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; background: #E8DFD0; overflow: hidden; }
.jr-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.jr-card:hover .jr-img img { transform: scale(1.03); }
.jr-img-k { font-size: 11px; letter-spacing: 0.28em; color: #7A5B2B; }
.jr-meta { font-size: 11px; letter-spacing: 0.28em; color: #6F6A60; text-transform: uppercase; }
.jr-ct { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; font-size: clamp(24px, 2.2vw, 30px); line-height: 1.18; }
.jr-cs { font-size: 16px; line-height: 1.65; color: #3A3934; }
.jr-more { align-self: flex-start; font-size: 12px; letter-spacing: 0.2em; color: #7A5B2B; border-bottom: 1px solid #B8945B; padding: 6px 0 4px; }
.jr-card:hover .jr-ct { color: #7A5B2B; }
.jr-art { padding: 48px 0 0; }
.jr-head { display: flex; flex-direction: column; gap: 20px; }
.jr-back { align-self: flex-start; font-size: 12px; letter-spacing: 0.22em; color: #6F6A60; text-decoration: none; border-bottom: 1px solid rgba(28,27,24,0.25); padding: 10px 0 4px; min-height: 44px; box-sizing: border-box; display: inline-flex; align-items: flex-end; margin-bottom: 16px; }
.jr-back:hover { color: #7A5B2B; border-color: #B8945B; }
.jr-cover { margin: 48px auto 0; max-width: 1080px; padding: 0 32px; box-sizing: border-box; }
.jr-cover img { display: block; width: 100%; height: auto; max-height: 640px; object-fit: cover; }
.jr-body { padding-top: 48px; padding-bottom: 24px; font-size: clamp(17px, 1.3vw, 18px); line-height: 1.75; color: #2E2D29; }
.jr-body p { margin: 0 0 24px; }
.jr-body h2 { margin: 48px 0 16px; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; font-size: clamp(26px, 2.4vw, 32px); line-height: 1.2; color: #1C1B18; }
.jr-body ul { margin: 0 0 24px; padding-left: 22px; }
.jr-body li { margin: 0 0 10px; padding-left: 4px; }
.jr-body li::marker { color: #B8945B; }
.jr-body strong { font-weight: 500; color: #1C1B18; }
.jr-body a { color: inherit; text-decoration: underline; text-decoration-color: #B8945B; text-underline-offset: 3px; }
.jr-body a:hover { color: #7A5B2B; }
.jr-cta { margin: 32px 0 112px; padding: 40px; background: #F1EBE1; display: flex; flex-direction: column; gap: 16px; }
.jr-cta-h { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(28px, 2.8vw, 38px); line-height: 1.1; color: #1C1B18; }
.jr-cta-b { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center; padding-top: 8px; }
.jr-btn, .jr-btn2 { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; box-sizing: border-box; font-size: 13px; letter-spacing: 0.2em; text-decoration: none; text-align: center; }
.jr-btn { background: #B8945B; color: #0E0E0E; padding: 18px 32px; font-weight: 500; align-self: flex-start; }
.jr-btn2 { border: 1px solid #1C1B18; color: #1C1B18; padding: 17px 31px; }
.jr-btn:hover { background: #A9864F; } .jr-btn2:hover { border-color: #B8945B; color: #7A5B2B; }
.jr-related { border-top: 1px solid rgba(28,27,24,0.12); padding-top: 88px; }
.jr-related .jr-in { display: flex; flex-direction: column; gap: 40px; }
.jr-draft { background: #1C1B18; color: #F3E6CC; text-align: center; font-size: 12px; letter-spacing: 0.2em; padding: 12px 20px; }
@media (max-width: 600px) {
  .jr-in { padding-left: 24px; padding-right: 24px; }
  .jr-hero { padding: 72px 0 40px; }
  .jr-cover { padding: 0; }
  .jr-cta { padding: 28px 24px; margin-bottom: 72px; }
  .jr-cta-b .jr-btn, .jr-cta-b .jr-btn2 { width: 100%; }
  .jr-list { padding-bottom: 72px; } .jr-related { padding-top: 64px; }
}
