/* Private workshop intake and appointment requests. */
.hero-content .appointment-hero-note { color:#fff; font-size:.84rem; line-height:1.6; margin:24px auto 0; max-width:660px; }
.hero-content .appointment-hero-title { display:flex; justify-content:center; column-gap:.3em; font-family:Montserrat,sans-serif; font-size:clamp(26px,3.2vw,34px); font-weight:800; text-transform:uppercase; letter-spacing:.5px; line-height:1.18; margin:0 auto 20px; max-width:1000px; }
.hero-content:has(.appointment-hero-title) .lead { max-width:820px; text-transform:none; font-size:1.05rem; }
.hero-content:has(.appointment-hero-title) { padding-top:160px; padding-bottom:70px; }
.hero-content .btn-row { gap:14px; }
.client-intake { padding:80px 0; background:#f6f5f2; }
.client-intake .section-title { font-size:clamp(1.9rem,3vw,2.7rem); max-width:780px; }
.client-paths { display:grid; grid-template-columns:1.25fr 1fr; gap:32px; margin-top:38px; }
.client-paths article { background:#fff; border:1px solid var(--line); border-radius:12px; padding:32px; }
.client-paths h3 { font-size:1.4rem; margin-bottom:18px; }
.client-paths p { color:var(--ink-60); margin-bottom:18px; }
.client-paths .eyebrow { color:#b61a16; }
.client-location { border-top:1px solid var(--line); padding-top:20px; margin-top:24px; font-size:.9rem; }
.appointment-steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); list-style:none; counter-reset:appointment-step; gap:24px; padding:0; margin:46px 0 0; }
.appointment-steps li { counter-increment:appointment-step; border-top:2px solid #151515; padding-top:18px; }
.appointment-steps li::before { content:'0' counter(appointment-step); display:block; color:#b61a16; font-size:.85rem; font-weight:800; margin-bottom:12px; }
.appointment-steps strong,.appointment-steps span { display:block; }
.appointment-steps strong { font-size:.96rem; margin-bottom:8px; }
.appointment-steps span { font-size:.9rem; line-height:1.6; color:var(--ink-60); }
.existing-contact { margin:24px 0; }
.existing-contact h3 { color:#fff; font-size:1.4rem; }
.existing-contact p { color:#c7c7c7; margin:12px 0 20px; }
.request-summary { color:#242424; }
.request-summary h3 { font-size:1.5rem; margin-bottom:18px; }
.request-summary ul { margin:20px 0; padding-left:20px; }
.request-summary li { margin-bottom:12px; }
.request-summary .btn { width:100%; margin:16px 0; }
.appointment-section { padding:76px 0; }
.appointment-section > .container > .section-sub { max-width:850px; }
.appointment-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr); gap:54px; margin-top:40px; align-items:start; }
.appointment-aside h2 { font-size:1.6rem; margin-bottom:20px; }
.appointment-aside h3 { font-size:1.12rem; margin:24px 0 12px; }
.appointment-aside p { color:var(--ink-60); margin-bottom:20px; }
.appointment-aside .contact-list { margin-top:24px; }
.appointment-aside .contact-list a { overflow-wrap:anywhere; }
.arrival-note { border-left:3px solid #c62520; padding:1px 0 1px 20px; margin:30px 0; }
.appointment-form-card { min-width:0; }
#appointment-request,#quote,#new-clients { scroll-margin-top:150px; }
.anchor-target { display:block; }
form.appointment-form { padding:30px; }
.appointment-form fieldset { border:0; border-top:1px solid var(--line); padding:24px 0 0; margin:28px 0 0; min-width:0; }
.appointment-form legend { font-size:1.1rem; font-weight:800; padding:0 12px 0 0; color:#171717; }
.appointment-form .f-field textarea { height:auto; min-height:105px; }
.appointment-form input[type=file] { padding:12px; height:auto; font-size:.85rem; }
.appointment-form input[type=file]::file-selector-button { border:1px solid #ccc; background:#eee; color:#171717; border-radius:3px; padding:8px; margin-right:8px; }
.request-notice { padding:18px; border-left:3px solid #bb201c; background:#f6f2f0; font-size:.94rem; line-height:1.7; color:#262626; }
.form-help { display:block; color:#5b5b5b; font-size:.84rem; line-height:1.65; margin:12px 0; }
.form-help a { color:#145d34; text-decoration:underline; }
.field-error { color:#aa1717; font-size:.88rem; margin:12px 0; }
.request-acknowledgement { display:flex; gap:12px; align-items:flex-start; margin:28px 0 20px; color:#262626; font-size:.88rem; line-height:1.65; cursor:pointer; }
.request-acknowledgement input { width:20px; height:20px; margin:4px 0 0; flex:0 0 20px; accent-color:#bd221d; }
.appointment-form .privacy-note { color:#666; }
@media (max-width:1100px) {
  .nav-cta-lt { display:none; }
  .mbar { display:flex; }
  body { padding-bottom:calc(64px + env(safe-area-inset-bottom, 0px)); }
  .mbar { padding-bottom:env(safe-area-inset-bottom, 0px); background:#111; }
  .appointment-form .f-field input,.appointment-form .f-field select,.appointment-form .f-field textarea { font-size:16px; min-width:0; }
  .appointment-form .f-field { min-width:0; }
  body:has(.appointment-form input:focus,.appointment-form select:focus,.appointment-form textarea:focus) .mbar { display:none; }
  html { scroll-padding-bottom:80px; }
}
@media (max-width:900px) {
  .appointment-layout,.client-paths { grid-template-columns:1fr; gap:30px; }
  .appointment-steps { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .appointment-section,.client-intake { padding:48px 0; }
  #appointment-request,#quote,#new-clients { scroll-margin-top:96px; }
}
@media (max-width:767px) {
  .hero-content .appointment-hero-title { flex-direction:column; font-size:22px; margin-bottom:14px; }
}
@media (max-width:620px) {
  .hero-content:has(.appointment-hero-title) { padding:116px 24px 50px; }
  .hero-content:has(.appointment-hero-title) .lead { font-size:.95rem; line-height:1.7; }
  .hero-logo-lt { width:min(320px,70vw); }
  .client-paths article { padding:24px; }
  .client-paths .btn { width:100%; }
  .appointment-steps { grid-template-columns:1fr; gap:20px; }
  .appointment-steps li { display:grid; grid-template-columns:32px 1fr; column-gap:12px; padding-top:14px; }
  .appointment-steps li::before { grid-row:span 2; }
  .appointment-steps span { grid-column:2; }
  .appointment-form .f-row { grid-template-columns:1fr; gap:0; }
  form.appointment-form { padding:22px 18px; }
  .mbar a { padding:10px 7px; font-size:12px; line-height:1.3; }
}
