/* Treina tokens (from the Astro site fn-treina.css) */
:root{--t-dark:#2c2a20;--t-text:#67655e;--t-muted:#8c8a83;--t-accent:#ff592d;--t-accent-ink:#d23e12;--t-hover:#e4461c;--t-bg:#fff7f5;--t-line:#f0e3de;--t-card:#fff;--t-font-h:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;--t-font-b:"Karla",system-ui,-apple-system,"Segoe UI",sans-serif;--t-radius-lg:24px;--t-radius:16px;--t-radius-sm:10px;--t-pill:999px;--t-shadow:0 12px 32px rgba(44,42,32,.08);--t-shadow-lift:0 18px 40px rgba(44,42,32,.12);--t-measure:760px;--t-ease:cubic-bezier(.2,.7,.2,1)}
/* fn-booking.css — /free-personal-training-session/: heading, a placeholder-only form, then the booking calendar in a
   light version of the fitnessimage.com.au/sth-melbourne-t/ panel. Tokens come from fn-treina.css. */
.fnb--min { min-height: 100vh; background: #fff; }
.fnb--min .fnb-main { max-width: 760px; margin: 0 auto; padding: clamp(48px, 10vh, 112px) 20px 72px; }
.fnb--min h1 { margin: 0 0 clamp(28px, 4vh, 40px); font: 700 clamp(1.75rem, 1.3rem + 1.6vw, 2.375rem)/1.15 var(--t-font-h); color: #15140f; letter-spacing: -.02em; text-align: center; text-wrap: balance; }

.fnb-stage { display: grid; }
.fnb-stage > .fnb-form, .fnb-stage > .fnb-cal { grid-area: 1 / 1; align-self: start; width: 100%; min-width: 0; }
.fnb-form { display: grid; gap: 14px; }
.fnb-stage > .fnb-form { justify-self: center; max-width: 480px; }
.fnb-form[hidden] { display: none; }
.fnb-input { box-sizing: border-box; width: 100%; height: 54px; padding: 0 18px; border: 1px solid rgba(44, 42, 32, .5); border-radius: var(--t-radius-sm); background: #fff; font: 400 16px/1 var(--t-font-b); color: var(--t-dark); transition: border-color .2s, box-shadow .2s; }
.fnb-input::placeholder { color: #4a483f; opacity: 1; }
.fnb-input:hover { border-color: #2c2a20; }
.fnb-input:focus { outline: none; border-color: var(--t-accent); box-shadow: 0 0 0 4px rgba(255, 89, 45, .14); }
.fnb-input[aria-invalid=true] { border-color: var(--t-accent-ink); }
.fnb-error { margin: 0; padding: 10px 14px; border-radius: var(--t-radius-sm); background: #fff1ed; color: var(--t-accent-ink); font: 600 14px/1.4 var(--t-font-b); }
.fnb-error[hidden] { display: none; }
.fnb-submit { margin-top: 10px; display: inline-flex; align-items: center; justify-content: center; width: 100%; height: 56px; border: 0; border-radius: var(--t-pill); background: #ff592d; color: #fff; font: 700 18px/1 var(--t-font-b); cursor: pointer; transition: background-color .25s, transform .25s, box-shadow .25s; }
.fnb-submit:hover { background: #e84a20; transform: translateY(-2px); box-shadow: 0 10px 22px rgba(255, 89, 45, .25); }
.fnb-submit:disabled { opacity: .7; cursor: progress; transform: none; }
.fnb-submit:focus-visible { outline: 2px solid var(--t-accent); outline-offset: 3px; }

/* Calendar panel (layout of the sth-melbourne-t booking panel, light palette) */
.fnb-cal { background: #fff; border: 1px solid rgba(44, 42, 32, .28); border-radius: 12px; width: 100%; max-width: 720px; margin: 0 auto; box-shadow: 0 1px 0 rgba(44, 42, 32, .04), 0 18px 44px rgba(44, 42, 32, .08); }
.fnb-cal[hidden] { display: none; }
.fnb-cal__host { position: relative; display: flex; align-items: center; gap: 16px; margin: 0 24px; padding: 24px 0; border-bottom: 1px solid rgba(44, 42, 32, .28); text-align: left; }
.fnb-cal__host img { flex-shrink: 0; width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.fnb-cal__host > div { flex: 1; min-width: 0; }
.fnb-cal__host h2 { margin: 0 0 6px; font: 600 clamp(20px, 3vw, 26px)/1.25 var(--t-font-h); color: var(--t-dark); letter-spacing: -.01em; outline: none; }
.fnb-cal__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0 8px; font: 400 14px/1.5 var(--t-font-b); color: #3a382f; }
.fnb-cal__sep { flex: none; width: 5px; height: 5px; border-radius: 50%; background: #5c5a52; }
.fnb-tz { position: static; min-width: 0; }
.fnb-tz__toggle { display: flex; align-items: center; gap: 8px; padding: 4px 0; border: 0; background: none; color: #3a382f; font: inherit; cursor: pointer; }
.fnb-tz__toggle:hover { color: var(--t-dark); }
.fnb-tz__toggle:focus-visible { outline: 2px solid var(--t-accent); outline-offset: 2px; border-radius: 4px; }
.fnb-tz__chev { flex: 0 0 16px; display: block; transition: transform .2s; }
.fnb-tz__toggle[aria-expanded=true] .fnb-tz__chev { transform: rotate(180deg); }
.fnb-tz__panel { position: absolute; z-index: 30; top: calc(100% + 8px); right: 0; width: 300px; max-width: calc(100vw - 48px); padding: 12px; border: 1px solid rgba(44, 42, 32, .1); border-radius: 10px; background: #fff; color: var(--t-dark); box-shadow: 0 12px 34px rgba(44, 42, 32, .5); }
.fnb-tz__panel[hidden], .fnb-tz__panel [hidden] { display: none !important; }
.fnb-tz__panel input { box-sizing: border-box; width: 100%; padding: 10px 12px; border: 1px solid #2c2a20; border-radius: 6px; background: #fff; color: var(--t-dark); font: 400 16px/1.4 var(--t-font-b); }
.fnb-tz__panel input::placeholder { color: #4a483f; opacity: 1; }
.fnb-tz__panel input:focus { outline: none; border-color: var(--t-accent); }
.fnb-tz__results { max-height: 300px; margin-top: 8px; overflow: auto; overscroll-behavior: contain; }
.fnb-tz__results button { display: block; width: 100%; min-height: 40px; padding: 10px 8px; border: 0; border-radius: 4px; background: #fff; color: var(--t-dark); text-align: left; font: 400 14px/1.4 var(--t-font-b); cursor: pointer; }
.fnb-tz__results button:hover, .fnb-tz__results button:focus-visible, .fnb-tz__results button[aria-selected=true] { background: #f1efea; outline-offset: -2px; }
.fnb-tz__panel p { margin: 12px 0 4px; font: 400 14px/1.4 var(--t-font-b); color: #3a382f; }
.fnb-cal iframe { display: block; width: 100%; height: 440px; border: 0; border-radius: 0 0 12px 12px; background: transparent; }
@keyframes fnb-rise { from { opacity: 0; transform: translateY(14px); } }

@media (max-width: 600px) {
  .fnb--min .fnb-main { padding-top: 40px; }
  .fnb--min .fnb-main.is-cal { padding-inline: 12px; }
  .fnb-cal__host { gap: 12px; margin-inline: 16px; padding-block: 20px; }
  .fnb-cal__meta { flex-direction: column; align-items: flex-start; gap: 0; }
  .fnb-cal__sep { display: none; }
  .fnb-tz__toggle { max-width: 100%; min-height: 32px; padding: 2px 0; }
  .fnb-tz__toggle [data-fnb-tz-label] { overflow-wrap: anywhere; text-align: left; }
  .fnb-tz__results button { min-height: 44px; }
  .fnb-cal iframe { height: 690px; }
}
@media (prefers-reduced-motion: reduce) { .fnb-cal { animation: none; } }
