/* Shared visual language from the approved homepage.
   Load after site.css and before home.css. Homepage-specific composition stays
   in home.css; the CMS back office does not load these public styles. */
@font-face {
  font-family: Allura;
  src: url("fonts/allura.ec47de04a5f2.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@media screen {
  :root {
    --paper: #fffdfc;
    --ink: #363331;
    --muted: #68615e;
    --rose: #a96374;
    --rose-dark: #844454;
    --blush: #f7eded;
    --line: #eadfdb;
    --radius: 7px;
    --shadow: 0 2px 5px #43332906;
  }
  body { font-size: 16px; }
  .container { width: min(1200px, calc(100% - 80px)); }
  h1, h2 {
    font-family: var(--serif);
    font-weight: 500;
    letter-spacing: -.025em;
    line-height: 1.05;
  }
  h1 { font-size: 46px; }
  h2 { font-size: 35px; }
  :where(body:not(.home-reference)) h3 { font-size: 20px; letter-spacing: 0; }
  h4 { font-size: 16px; letter-spacing: 0; }
  .eyebrow, .fh-eyebrow {
    font: 600 11px/1.5 var(--sans);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--rose-dark);
    margin: 0 0 11px;
  }
  .lead, .page-intro, .section-description {
    font-size: 16px;
    line-height: 1.8;
    margin-block: 20px 28px;
  }
  .quiet, .helptext, .back-link { font-size: 14px; }
  .button, .fh-button {
    border-radius: 32px;
    min-height: 46px;
    padding: 12px 26px;
    font-size: 13px;
    font-weight: 600;
    gap: 14px;
    background: var(--rose);
    border-color: var(--rose);
    color: #fff;
  }
  .button:hover, .fh-button:hover {
    background: var(--rose-dark);
    border-color: var(--rose-dark);
  }
  .button-small { padding: 10px 22px; min-height: 44px; }
  .button-outline { color: var(--rose-dark); background: transparent; border-color: #bc8e9b; }
  .button-outline:hover { color: var(--rose-dark); background: var(--blush); border-color: var(--rose-dark); }
  .text-link, .text-button { font-size: 14px; font-weight: 500; }
  .fh-program-body > .fh-button {
    font-size: 11px;
    min-height: 36px;
    padding: 8px 14px;
    margin-top: auto;
    align-self: start;
    width: 100%;
  }

  /* One header and footer on the landing page, catalogue and member pages. */
  .site-header { background: #fffdfd; border-bottom: 0; }
  .nav-wrap { min-height: 78px; gap: 28px; }
  .brand > span { font: 400 36px/1 Allura, var(--serif); letter-spacing: 0; }
  .brand i { color: inherit; font-weight: inherit; }
  .brand-dot { display: none; }
  .brand small {
    font-size: 10px;
    letter-spacing: .11em;
    text-transform: uppercase;
    margin-top: 6px;
    color: #57514f;
  }
  .nav-wrap nav { gap: 29px; margin-inline: auto; }
  .nav-wrap nav a { font-size: 13px; font-weight: 400; }
  .nav-wrap > .button { font-size: 13px; min-height: 40px; padding: 10px 22px; gap: 10px; border-radius: 30px; }
  .nav-wrap > .button span { display: none; }
  .site-footer { padding-top: 35px; background: var(--paper); }
  .footer-top { padding-bottom: 28px; gap: 48px; }
  .footer-top p, .footer-links a, .footer-links button { font-size: 12px; }
  .footer-links { gap: 3px; }
  .footer-bottom { font-size: 11px; padding-block: 18px; }

  /* Existing page structures use the same heading and body scale. */
  body:not(.home-reference) .page-section { padding-block: 42px 64px; }
  body:not(.home-reference) .section-heading { margin-bottom: 28px; }
  body:not(.home-reference) .section-heading .eyebrow { margin-bottom: 11px; }
  body:not(.home-reference) .section-intro { font-size: 16px; }
  .prose, .document-body, .document-operator, .legal-card p { color: var(--muted); font-size: 16px; line-height: 1.8; }
  .prose h2, .product-grid h2, .classroom-grid h2, .document-body h2,
  .document-operator h2, .document-toc h2, .legal-card h2,
  .summary-card h2, .empty-state h2 { font-size: 30px; line-height: 1.2; }
  .prose h3, .empty-state h3 { font-size: 20px; }
  .document-heading > p:not(.eyebrow) { font-size: 16px; line-height: 1.8; }
  .article-card h2, .document-card h2 { font-size: 28px; line-height: 1.2; }
  .article-card, .document-card, .account-card, .summary-card, .legal-card,
  .purchase-card, .review-card, .empty-state { box-shadow: var(--shadow); }
  .article-card p, .document-card p, .summary-card p, .account-card p,
  .review-card p, .empty-state p { font-size: 16px; }
  .document-toc, .document-notice, .table-wrap, .lesson-list,
  .progress-card, .notice, .messages p { border-radius: var(--radius); }
  .document-notice, .notice, .messages p { border-color: var(--line); }
  .status-pill { font-size: 12px; border-radius: 20px; padding: 6px 11px; color: var(--rose-dark); background: var(--blush); border-color: var(--line); }
  .account-card h3 { font-size: 18px; }
  .program-detail-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 7px; margin-block: 26px; }
  .program-outline { margin-block: 28px; }
  .program-outline summary { font-size: 16px; }
  .program-outline .prose { padding: 12px 0 4px; }
  .program-outline .prose p { margin-block: 8px; }
  .spec-grid b { font-size: 22px; font-weight: 500; }
  .spec-grid span { font-size: 13px; }
  .price { font-size: 32px; font-weight: 500; }
  .purchase-body h2 { margin-top: 0; }
  .purchase-body > .quiet { font-size: 14px; }
  .auth-art { background: var(--blush); }
  .auth-art h2 { font-size: 35px; }
  .auth-form h1 { font-size: 46px; }
  .auth-form .eyebrow { font-size: 11px; }
  .auth-form > .quiet { font-size: 14px; }
  label { font-size: 14px; }
  input:not([type="checkbox"]):not([type="hidden"]), textarea, select {
    border-color: #c9b4b9;
    border-radius: 7px;
    font-size: 16px;
  }
  input:not([type="checkbox"]):not([type="hidden"]):focus, textarea:focus, select:focus { border-color: var(--rose-dark); }
  .lesson-check { border-color: #c9b4b9; }
  .lesson-row h3 { font-size: 16px; }
  .lesson-row small, .progress-card span { font-size: 14px; }
  .cookie-banner { border-radius: 7px; }
  .cookie-banner p { font-size: 14px; }
}
@media screen and (min-width: 1500px) {
  .container { width: min(1280px, calc(100% - 120px)); }
}
@media screen and (max-width: 1200px) {
  .container { width: calc(100% - 64px); }
  .nav-wrap { gap: 20px; }
  .nav-wrap nav { gap: 18px; }
  h1, .auth-form h1 { font-size: 42px; }
}
@media screen and (max-width: 1000px) {
  .nav-wrap { min-height: 76px; }
  .nav-wrap nav { margin: 0; }
  .nav-wrap nav a { font-size: 16px; }
  .nav-wrap > .button { margin-left: auto; min-height: 44px; }
  .menu-toggle { border: 0; }
  h1, .auth-form h1 { font-size: 39px; }
  .fh-program-body > .fh-button { min-height: 44px; font-size: 13px; }
}
@media screen and (max-width: 700px) {
  .container { width: calc(100% - 40px); }
  .nav-wrap { min-height: 72px; gap: 10px; }
  .brand > span { font-size: 31px; }
  .brand small { display: block; font-size: 8px; letter-spacing: .07em; }
  .nav-wrap > .button { font-size: 12px; padding: 10px 15px; }
  .menu-toggle { width: 40px; height: 44px; }
  h1, .auth-form h1 { font-size: 36px; line-height: 1.06; }
  h2, .auth-art h2 { font-size: 33px; }
  .button, .fh-button { font-size: 13px; min-height: 46px; padding: 12px 22px; }
  .fh-program-body > .fh-button { min-height: 44px; font-size: 13px; padding: 8px 14px; }
  body:not(.home-reference) .page-section { padding-block: 32px 48px; }
  .prose h2, .product-grid h2, .classroom-grid h2, .document-body h2,
  .document-operator h2, .document-toc h2, .legal-card h2,
  .summary-card h2, .empty-state h2 { font-size: 28px; }
  .article-card h2, .document-card h2 { font-size: 26px; }
  .program-detail-image { margin-block: 22px; }
  .footer-top { gap: 26px; }
  .footer-top p, .footer-links a, .footer-links button { font-size: 14px; }
  .footer-bottom { font-size: 12px; }
}
@media screen and (max-width: 380px) {
  .container { width: calc(100% - 32px); }
  .brand > span { font-size: 28px; }
  .nav-wrap { gap: 4px; }
  .nav-wrap > .button { padding-inline: 11px; font-size: 11px; max-width: none; }
  h1, .auth-form h1 { font-size: 34px; }
}

.video-frame video{display:block;width:100%;height:100%;object-fit:contain;background:#f5e6e5}
.program-outline ul{padding:0;list-style:none;margin:14px 0}
.program-outline li{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}
.program-outline li .quiet{flex-shrink:0}
@media(max-width:600px){.program-outline li{flex-direction:column;gap:4px}}

/* Member progress, course preparation and private before/after records. */
.member-nav{display:flex;flex-wrap:wrap;gap:8px 24px;border-bottom:1px solid var(--line);margin:24px 0 30px}
.member-nav a{display:block;padding:12px 0;font-size:15px;color:var(--muted);border-bottom:2px solid transparent}
.member-nav a[aria-current=page]{color:var(--rose-dark);border-color:var(--rose)}
.member-progress{padding:22px 24px;background:var(--blush);border:1px solid var(--line);border-radius:var(--radius);margin:20px 0 28px}
.member-progress-heading,.progress-counts{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.member-progress-heading b{font-size:17px;font-weight:600}
.member-progress-heading span,.progress-counts{font-size:14px;color:var(--muted)}
.member-progress progress{display:block;width:100%;height:8px;margin:16px 0;border:0;appearance:none;border-radius:10px;overflow:hidden;background:var(--line)}
.member-progress progress::-webkit-progress-bar{background:var(--line)}
.member-progress progress::-webkit-progress-value{background:var(--rose)}
.member-progress progress::-moz-progress-bar{background:var(--rose)}
.progress-counts strong{font-size:20px;color:var(--ink);font-weight:500;margin-right:5px}
.member-section-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin:28px 0 18px}
.member-section-heading h2{margin:0}
.member-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.member-course-grid .account-card{display:flex;flex-direction:column;align-items:stretch;gap:12px;min-width:0}
.member-course-grid .account-card h2{font-size:28px;line-height:1.2}
.member-course-grid .account-card h3,.member-course-grid .account-card p{margin:0}
.member-course-grid .account-card>.status-pill{align-self:flex-start}
.member-course-grid .account-card>.button{margin-top:auto}
.member-course-grid .member-progress{padding:16px;margin:4px 0 8px}
.member-course-grid .member-progress-heading b{font-size:15px}
.member-course-grid .member-progress-heading{gap:6px}
.lesson-row.is-complete .lesson-check{background:var(--rose);color:var(--paper);border-color:var(--rose)}
.lesson-row.is-locked{color:var(--muted);background:var(--paper);cursor:default}
.lesson-row.is-locked .lesson-check{border-style:dashed}
.lesson-row .quiet{margin:6px 0 0}
.lesson-row>div{min-width:0;flex:1}
.course-next{margin:0 0 30px}
.course-complete{padding:20px 24px;background:var(--blush);border-radius:var(--radius);margin-bottom:28px}
.course-preparation,.comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.course-preparation{margin:28px 0}
.preparation-card,.comparison-card{border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:var(--paper);min-width:0}
.preparation-card h2,.comparison-card h2{font-size:28px;line-height:1.2;margin:0 0 18px}
.preparation-card p,.comparison-card p{font-size:15px}
.preparation-card .prose{font-size:15px;line-height:1.7}
.measurement-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin:18px 0}
.measurement-values div{border-bottom:1px solid var(--line);padding-bottom:12px;min-width:0}
.measurement-values dt{font-size:13px;color:var(--muted)}
.measurement-values dd{margin:5px 0 0;font-size:23px;font-weight:500}
.initial-photos{display:flex;gap:12px;margin:18px 0}
.initial-photos a{width:80px}
.initial-photos img{width:80px;height:100px;object-fit:contain;border-radius:var(--radius);background:var(--blush)}
.member-links{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center}
.completed-label{color:var(--rose-dark);font-weight:600;margin:0 0 6px}
.results-links{margin:20px 0 28px}
.results-photos{margin-top:36px}
.member-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.member-photo img{width:100%;aspect-ratio:3/4;object-fit:contain;background:var(--blush);border-radius:var(--radius)}
.member-photo h4{margin:12px 0 0}
.member-photo p{overflow-wrap:anywhere}
.results-forms{margin-top:30px;align-items:start}
.measure-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:22px}
.form-field label{display:block;margin-bottom:6px}
.form-field input,.form-field select{width:100%;min-width:0}
.results-forms textarea{min-height:90px}
#comparison,#photos,#measurements,#photo-form{scroll-margin-top:100px}
@media(max-width:1000px){.member-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.member-course-grid,.course-preparation,.comparison-grid{grid-template-columns:1fr}.member-progress{padding:20px}.preparation-card,.comparison-card{padding:22px}.member-nav{gap:8px 20px}.member-nav a{font-size:14px}.member-photo-grid{gap:14px}.lesson-row{padding:18px 14px;gap:12px}.lesson-actions{align-items:flex-start;gap:20px}.initial-photos img{height:90px}}
