/* ==================================================================
   Heather's Alterations Atelier — /alterations
   Couture-editorial layer over the site's moderno.css design tokens:
   --ink #070707, --body #454545, --muted, --bg, --bg-soft #f7f7f7,
   --line #e3e3e3, --accent #f1e4d8 (champagne, BACKGROUND ONLY),
   --accent-dark #d9cdc2.
   Golden-thread motif is decorative SVG strokes; all motion respects
   prefers-reduced-motion. Touch targets >= 44px. WCAG 2.2 AA contrast.
   ================================================================== */

.page-alterations { --alt-gold: #b08d57; --alt-gold-soft: #d9cdc2; }

/* shared type helpers ------------------------------------------------ */
.alt-eyebrow {
  display: block; font: 600 11px/1.4 "Jost", Arial, sans-serif;
  letter-spacing: .22em; text-transform: uppercase; color: #6b6b6b;
  margin: 0 0 14px;
}
.alt-kicker {
  display: block; font: 600 11px/1.4 "Jost", Arial, sans-serif;
  letter-spacing: .22em; text-transform: uppercase; color: #8a7a66;
  margin: 0 0 10px;
}
.alt-h2 {
  font: 400 clamp(26px, 3.4vw, 40px)/1.18 "Cormorant Garamond", Georgia, serif;
  color: var(--ink, #070707); margin: 0 0 16px;
}
.alt-h2 em { font-style: italic; }
.alt-section-lede { max-width: 560px; color: var(--body, #454545); margin: 0 0 26px; }
.alt-muted { color: #6b6b6b; font-size: 13px; }
.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; margin: -1px;
  padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* golden thread ------------------------------------------------------ */
.alt-thread path {
  stroke: var(--alt-gold); stroke-width: 1.4; opacity: .55;
  stroke-dasharray: 1600; stroke-dashoffset: 1600;
}
.alt-thread.is-drawn path { transition: stroke-dashoffset 2.4s ease; stroke-dashoffset: 0; }
.alt-thread--divider { display: block; width: 100%; height: 56px; margin: 44px 0 0; }
.alt-thread--hero {
  position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .alt-thread path { stroke-dashoffset: 0 !important; transition: none !important; }
  .page-alterations * { animation: none !important; transition-duration: .01ms !important; }
}

/* hero ---------------------------------------------------------------- */
.alt-hero {
  display: grid; grid-template-columns: minmax(0, 48%) minmax(0, 52%);
  min-height: 74vh; background: var(--bg-soft, #f7f7f7); overflow: hidden;
}
.alt-hero__media { position: relative; }
.alt-hero__media img {
  width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block;
}
.alt-hero__copy {
  align-self: center; padding: 64px clamp(24px, 6vw, 96px);
  max-width: 640px;
}
.alt-hero__h1 {
  font: 400 clamp(32px, 4.4vw, 56px)/1.1 "Cormorant Garamond", Georgia, serif;
  color: var(--ink, #070707); margin: 0 0 18px;
}
.alt-hero__lede { font-size: 17px; line-height: 1.7; color: var(--body, #454545); margin: 0 0 26px; }
.alt-hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; margin: 0 0 26px; }
.alt-hero__trust {
  list-style: none; display: flex; gap: 22px; flex-wrap: wrap;
  margin: 0 0 26px; padding: 0;
}
.alt-hero__trust li {
  position: relative; padding-left: 18px; font-size: 13px; color: #565656;
}
.alt-hero__trust li::before {
  content: ""; position: absolute; left: 0; top: .48em; width: 10px; height: 1.5px;
  background: var(--alt-gold);
}
.alt-hero__avail {
  display: inline-flex; flex-direction: column; gap: 3px;
  border: 1px solid var(--line, #e3e3e3); background: #fff;
  padding: 12px 18px; border-radius: 4px;
}
.alt-hero__avail-label {
  font: 600 10px/1.3 "Jost", Arial, sans-serif; letter-spacing: .18em;
  text-transform: uppercase; color: #8a7a66;
}
.alt-hero__avail-dates { font-size: 14px; color: var(--ink, #070707); }

/* buttons (inherit site .btn if present; safe standalone fallback) ----- */
.page-alterations .btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 46px; padding: 12px 26px; border: 1px solid var(--ink, #070707);
  background: #fff; color: var(--ink, #070707);
  font: 600 12px/1 "Jost", Arial, sans-serif; letter-spacing: .12em;
  text-transform: uppercase; text-decoration: none; cursor: pointer;
  border-radius: 2px; transition: background .18s, color .18s;
}
.page-alterations .btn:hover { background: var(--bg-soft, #f7f7f7); }
.page-alterations .btn--dark { background: var(--ink, #070707); color: #fff; }
.page-alterations .btn--dark:hover { background: #2b2b2b; color: #fff; }
.page-alterations .btn--ghost-danger { border-color: #a33; color: #a33; }
.page-alterations .btn:focus-visible,
.page-alterations a:focus-visible,
.page-alterations button:focus-visible,
.page-alterations input:focus-visible,
.page-alterations select:focus-visible,
.page-alterations textarea:focus-visible {
  outline: 2px solid var(--alt-gold); outline-offset: 2px;
}
.page-alterations .btn[disabled] { opacity: .45; cursor: not-allowed; }

/* promise ------------------------------------------------------------- */
.alt-promise {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 44%);
  gap: clamp(24px, 5vw, 72px); align-items: center; padding-top: 84px;
}
.alt-promise__media img { width: 100%; height: auto; display: block; border-radius: 2px; }

/* meet heather --------------------------------------------------------- */
.alt-heather { background: var(--accent, #f1e4d8); margin-top: 84px; padding: 84px 0; }
.alt-heather__grid {
  display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 1fr);
  gap: clamp(24px, 5vw, 72px); align-items: center;
}
.alt-heather__portrait { margin: 0; }
.alt-heather__portrait img {
  width: 100%; height: auto; display: block; border-radius: 2px;
  box-shadow: 0 24px 60px rgba(60, 40, 20, .18);
}
.alt-heather__portrait figcaption {
  margin-top: 10px; font: 600 11px/1.4 "Jost", Arial, sans-serif;
  letter-spacing: .18em; text-transform: uppercase; color: #6d5c49;
}
.alt-philosophy {
  margin: 24px 0 28px; padding: 0 0 0 22px; border-left: 2px solid var(--alt-gold);
}
.alt-philosophy p {
  font: 400 clamp(19px, 2.2vw, 24px)/1.45 "Cormorant Garamond", Georgia, serif;
  font-style: italic; color: #2c2418; margin: 0 0 8px;
}
.alt-philosophy cite { font: 400 12px/1.4 "Jost", Arial, sans-serif; color: #6d5c49; font-style: normal; }

/* fit map --------------------------------------------------------------- */
.alt-fitmap { padding-top: 84px; }
.alt-fitmap__grid {
  display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 64px); align-items: start;
}
.alt-fitmap__visual {
  position: relative; max-width: 340px; margin: 0 auto; user-select: none;
}
.alt-gown { width: 100%; height: auto; display: block; }
.alt-gown__line {
  fill: #fff; stroke: var(--ink, #070707); stroke-width: 1.6;
}
.alt-gown__waist, .alt-gown__seam {
  stroke: var(--alt-gold-soft); stroke-width: 1; stroke-dasharray: 3 4;
}
.alt-spot {
  position: absolute; transform: translate(-50%, -50%);
  width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer;
  display: grid; place-items: center; padding: 0;
}
.alt-spot__dot {
  width: 16px; height: 16px; border-radius: 50%;
  background: #fff; border: 2px solid var(--alt-gold);
  box-shadow: 0 0 0 4px rgba(176, 141, 87, .18); transition: transform .15s, background .15s;
}
.alt-spot:hover .alt-spot__dot { transform: scale(1.25); }
.alt-spot.is-on .alt-spot__dot { background: var(--alt-gold); }
.alt-fitmap__list { border: 0; padding: 0; margin: 0; display: grid; gap: 6px; }
.alt-fit-item {
  display: grid; grid-template-columns: 22px 1fr; grid-template-rows: auto auto;
  gap: 2px 12px; align-items: start; padding: 12px 14px;
  border: 1px solid var(--line, #e3e3e3); border-radius: 3px; cursor: pointer;
  background: #fff; transition: border-color .15s, background .15s;
}
.alt-fit-item:hover { border-color: var(--alt-gold-soft); }
.alt-fit-item.is-on { border-color: var(--alt-gold); background: #fdfaf6; }
.alt-fit-item input { grid-row: 1 / span 2; margin-top: 3px; width: 18px; height: 18px; accent-color: var(--alt-gold); }
.alt-fit-item__label { font: 600 14px/1.4 "Jost", Arial, sans-serif; color: var(--ink, #070707); }
.alt-fit-item__blurb { grid-column: 2; font-size: 13px; color: #6b6b6b; }
.alt-fitmap__note { min-height: 1.2em; color: #8a7a66; font-size: 13px; }

/* occasion path --------------------------------------------------------- */
.alt-occasions { background: var(--bg-soft, #f7f7f7); margin-top: 84px; padding: 84px 0 64px; }
.alt-occ__carousel {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px; margin-top: 10px;
}
.alt-occ__card {
  text-align: left; background: #fff; border: 1px solid var(--line, #e3e3e3);
  border-radius: 3px; padding: 22px 20px 24px; cursor: pointer;
  display: flex; flex-direction: column; gap: 8px; min-height: 44px;
  transition: border-color .15s, transform .15s, box-shadow .15s;
}
.alt-occ__card:hover { border-color: var(--alt-gold-soft); transform: translateY(-2px); }
.alt-occ__card[aria-checked="true"] {
  border-color: var(--alt-gold); box-shadow: 0 10px 30px rgba(60, 40, 20, .10);
  background: #fdfaf6;
}
.alt-occ__name {
  font: 500 clamp(17px, 1.7vw, 21px)/1.25 "Cormorant Garamond", Georgia, serif;
  color: var(--ink, #070707);
}
.alt-occ__card[aria-checked="true"] .alt-occ__name::after {
  content: " \2713"; color: var(--alt-gold);
}
.alt-occ__copy { font-size: 13px; line-height: 1.6; color: #6b6b6b; }
.alt-occ__progress { display: none; }

/* journey ---------------------------------------------------------------- */
.alt-journey { padding-top: 84px; }
.alt-journey__steps {
  list-style: none; margin: 30px 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 2.5vw, 36px);
  counter-reset: none;
}
.alt-journey__step { position: relative; padding-top: 18px; border-top: 1px solid var(--line, #e3e3e3); }
.alt-journey__n {
  position: absolute; top: -13px; left: 0; background: #fff; padding-right: 12px;
  font: 500 22px/1 "Cormorant Garamond", Georgia, serif; color: var(--alt-gold);
}
.alt-journey__step h3 {
  font: 500 18px/1.3 "Cormorant Garamond", Georgia, serif; color: var(--ink, #070707);
  margin: 8px 0 8px;
}
.alt-journey__step p { font-size: 14px; line-height: 1.65; color: #565656; margin: 0; }
.alt-honesty {
  margin: 40px auto 0; max-width: 660px; text-align: center;
  font: 400 15px/1.7 Georgia, serif; font-style: italic; color: #565656;
  padding: 18px 22px; background: var(--bg-soft, #f7f7f7); border-radius: 3px;
}

/* craftsmanship ------------------------------------------------------------ */
.alt-craft { background: var(--ink, #070707); color: #eee; margin-top: 84px; padding: 84px 0; }
.alt-craft .alt-h2 { color: #fff; }
.alt-craft .alt-kicker { color: #c9b391; }
.alt-craft__grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 26px;
}
.alt-craft__cell { margin: 0; border-radius: 2px; overflow: hidden; }
.alt-craft__cell--img img { width: 100%; height: 300px; object-fit: cover; display: block; opacity: .92; }
.alt-craft__cell--img figcaption {
  padding: 10px 2px 0; font: 600 11px/1.5 "Jost", Arial, sans-serif;
  letter-spacing: .14em; text-transform: uppercase; color: #c9b391;
}
.alt-craft__cell--copy {
  display: flex; align-items: center; padding: 18px;
  border: 1px solid rgba(217, 205, 194, .25);
}
.alt-craft__cell--copy p {
  font: 400 clamp(16px, 1.6vw, 19px)/1.6 "Cormorant Garamond", Georgia, serif;
  color: #e8e0d5; margin: 0;
}

/* what to bring -------------------------------------------------------------- */
.alt-bring { padding-top: 84px; }
.alt-bring__grid {
  display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 64px); align-items: center;
}
.alt-bring__media img { width: 100%; height: auto; display: block; border-radius: 2px; }
.alt-bring__list { list-style: none; margin: 6px 0 14px; padding: 0; }
.alt-bring__list li {
  position: relative; padding: 9px 0 9px 26px; border-bottom: 1px dashed var(--line, #e3e3e3);
  color: var(--body, #454545); font-size: 15px;
}
.alt-bring__list li::before {
  content: ""; position: absolute; left: 0; top: 1.05em; width: 14px; height: 1.5px;
  background: var(--alt-gold);
}

/* booking studio -------------------------------------------------------------- */
.alt-studio { margin-top: 84px; padding: 84px 0 96px; background: var(--bg-soft, #f7f7f7); }
.alt-stepper { background: #fff; border: 1px solid var(--line, #e3e3e3); border-radius: 4px; padding: clamp(18px, 3vw, 40px); margin-top: 18px; }
.alt-stepper__rail {
  list-style: none; display: flex; gap: 4px; margin: 0 0 28px; padding: 0 0 16px;
  border-bottom: 1px solid var(--line, #e3e3e3); overflow-x: auto;
}
.alt-stepper__rail li {
  flex: 1 0 auto; text-align: center; font: 600 10px/1.3 "Jost", Arial, sans-serif;
  letter-spacing: .1em; text-transform: uppercase; color: #9a9a9a;
  padding: 8px 8px; border-bottom: 2px solid transparent; white-space: nowrap;
}
.alt-stepper__rail li.is-active { color: var(--ink, #070707); border-bottom-color: var(--alt-gold); }
.alt-stepper__rail li.is-done { color: #8a7a66; }
.alt-step { border: 0; padding: 0; margin: 0; }
.alt-step__h {
  font: 400 clamp(20px, 2.4vw, 28px)/1.2 "Cormorant Garamond", Georgia, serif;
  color: var(--ink, #070707); margin-bottom: 18px; padding: 0;
}
.alt-optional { font-size: .6em; color: #9a9a9a; letter-spacing: .08em; text-transform: uppercase; font-family: "Jost", Arial, sans-serif; }
.alt-field-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 18px; }
.alt-field { display: flex; flex-direction: column; gap: 6px; font: 600 12px/1.4 "Jost", Arial, sans-serif; letter-spacing: .04em; color: #3c3c3c; }
.alt-field--wide { grid-column: 1 / -1; }
.alt-field--small { max-width: 130px; }
.alt-field input, .alt-field select, .alt-field textarea,
.alt-waitlist__form input {
  font: 400 15px/1.4 Arial, sans-serif; color: var(--ink, #070707);
  border: 1px solid #cfcfcf; border-radius: 3px; padding: 11px 12px; min-height: 44px;
  background: #fff; width: 100%;
}
.alt-field textarea { min-height: 72px; resize: vertical; }
.alt-field input[aria-invalid="true"] { border-color: #a33; }
.alt-field .alt-err { color: #a33; font-weight: 400; font-size: 12px; }
.alt-field__label { display: block; }
.alt-subfield { border: 1px solid var(--line, #e3e3e3); border-radius: 3px; padding: 10px 14px 12px; margin: 0; }
.alt-subfield legend { font: 600 12px/1.4 "Jost", Arial, sans-serif; color: #3c3c3c; padding: 0 6px; }
.alt-subfield label { margin-right: 18px; font-size: 14px; display: inline-flex; align-items: center; gap: 7px; min-height: 30px; }
.alt-subfield input { width: 18px; height: 18px; accent-color: var(--alt-gold); }
.alt-fit-summary { font: 400 14px/1.5 Arial, sans-serif; color: #565656; margin: 0; }
.alt-step__nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 26px; }
.alt-step__nav .alt-next:only-child, .alt-step__nav [type="submit"]:only-child { margin-left: auto; }
.alt-urgent-note {
  background: #fdf6ec; border: 1px solid #ecd9b8; border-radius: 3px;
  padding: 16px 18px; line-height: 1.65;
}

/* service cards */
.alt-svc-list { display: grid; gap: 10px; }
.alt-svc {
  display: grid; grid-template-columns: 24px 1fr; gap: 2px 12px;
  border: 1px solid var(--line, #e3e3e3); border-radius: 3px; padding: 14px 16px;
  cursor: pointer; background: #fff; transition: border-color .15s, background .15s;
}
.alt-svc:hover { border-color: var(--alt-gold-soft); }
.alt-svc.is-on { border-color: var(--alt-gold); background: #fdfaf6; }
.alt-svc input { grid-row: 1 / span 3; margin-top: 3px; width: 18px; height: 18px; accent-color: var(--alt-gold); }
.alt-svc__name { font: 600 15px/1.4 "Jost", Arial, sans-serif; color: var(--ink, #070707); }
.alt-svc__meta { grid-column: 2; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: #8a7a66; }
.alt-svc__prep { grid-column: 2; font-size: 13px; color: #6b6b6b; }

/* calendar */
.alt-cal { max-width: 430px; border: 1px solid var(--line, #e3e3e3); border-radius: 4px; padding: 14px; background: #fff; }
.alt-cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.alt-cal__month { font: 600 14px/1.3 "Jost", Arial, sans-serif; letter-spacing: .06em; }
.alt-cal__nav {
  width: 44px; height: 44px; border: 1px solid var(--line, #e3e3e3); background: #fff;
  border-radius: 3px; font-size: 20px; cursor: pointer;
}
.alt-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.alt-cal__dow { text-align: center; font: 600 10px/2.4 "Jost", Arial, sans-serif; color: #9a9a9a; text-transform: uppercase; }
.alt-cal__day {
  min-height: 44px; border: 1px solid transparent; border-radius: 3px; background: transparent;
  font: 400 14px/1 Arial, sans-serif; color: var(--ink, #070707); cursor: pointer; position: relative;
}
.alt-cal__day[disabled] { color: #c2c2c2; cursor: default; }
.alt-cal__day.has-slots::after {
  content: ""; position: absolute; left: 50%; bottom: 6px; transform: translateX(-50%);
  width: 5px; height: 5px; border-radius: 50%; background: var(--alt-gold);
}
.alt-cal__day.is-sel { background: var(--ink, #070707); color: #fff; }
.alt-cal__day:not([disabled]):hover { border-color: var(--alt-gold-soft); }

/* slots */
.alt-slots { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; min-height: 30px; }
.alt-slot {
  min-height: 44px; padding: 10px 16px; border: 1px solid #cfcfcf; border-radius: 3px;
  background: #fff; font: 600 13px/1 "Jost", Arial, sans-serif; letter-spacing: .06em;
  cursor: pointer; transition: border-color .15s, background .15s;
}
.alt-slot:hover { border-color: var(--alt-gold); }
.alt-slot.is-sel { background: var(--ink, #070707); color: #fff; border-color: var(--ink, #070707); }
.alt-hold-note {
  margin-top: 14px; padding: 12px 16px; background: #f4efe7; border: 1px solid var(--alt-gold-soft);
  border-radius: 3px; font-size: 14px; color: #4c4436;
}
.alt-full-day { margin-top: 16px; padding: 16px 18px; border: 1px dashed var(--alt-gold-soft); border-radius: 3px; }
.alt-full-day .alt-altdate { margin: 4px 6px 4px 0; }
.alt-waitlist { margin: 10px 0; }
.alt-waitlist summary { cursor: pointer; font-weight: 600; min-height: 30px; }
.alt-waitlist__form { display: grid; gap: 10px; max-width: 380px; margin-top: 10px; font-size: 13px; }

/* photos */
.alt-photo-picks { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-top: 6px; }
.alt-photo-pick {
  border: 1px dashed #cfcfcf; border-radius: 3px; padding: 14px; display: flex; flex-direction: column; gap: 8px;
  font: 600 13px/1.4 "Jost", Arial, sans-serif; cursor: pointer; background: #fff;
}
.alt-photo-pick input { font-weight: 400; font-size: 12px; }
.alt-photo-pick__state { font-weight: 400; font-size: 12px; color: #8a7a66; min-height: 1.2em; }
.alt-photo-pick.has-file { border-color: var(--alt-gold); border-style: solid; }

/* review + consents */
.alt-review { display: grid; gap: 0; border: 1px solid var(--line, #e3e3e3); border-radius: 4px; overflow: hidden; margin-bottom: 20px; }
.alt-review__row { display: grid; grid-template-columns: 150px 1fr; gap: 14px; padding: 11px 16px; border-bottom: 1px solid var(--line, #e3e3e3); }
.alt-review__row:last-child { border-bottom: 0; }
.alt-review__row dt { font: 600 11px/1.5 "Jost", Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #8a7a66; }
.alt-review__row dd { margin: 0; font-size: 14px; color: var(--ink, #070707); }
.alt-review__garment { display: flex; gap: 14px; align-items: center; }
.alt-review__garment img { width: 64px; height: 84px; object-fit: cover; border-radius: 2px; }
.alt-consents { display: grid; gap: 12px; margin: 6px 0 14px; }
.alt-consent {
  display: grid; grid-template-columns: 24px 1fr; gap: 10px; align-items: start;
  font-size: 13px; line-height: 1.6; color: #454545; cursor: pointer;
  padding: 12px 14px; border: 1px solid var(--line, #e3e3e3); border-radius: 3px; background: #fff;
}
.alt-consent input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--alt-gold); }
.alt-form-status { min-height: 1.3em; font-size: 14px; color: #8a5a20; }
.alt-form-status.is-err { color: #a33; }
.alt-form-status.is-ok { color: #2c6e3f; }

/* FAQ ------------------------------------------------------------------ */
.alt-faq { padding: 84px 0 40px; }
.alt-faq__list { max-width: 760px; }
.alt-faq__item { border-bottom: 1px solid var(--line, #e3e3e3); }
.alt-faq__item summary {
  cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px;
  padding: 18px 4px; font: 500 17px/1.4 "Cormorant Garamond", Georgia, serif; color: var(--ink, #070707);
  min-height: 44px; align-items: center;
}
.alt-faq__item summary::-webkit-details-marker { display: none; }
.alt-faq__item summary::after { content: "+"; color: var(--alt-gold); font-size: 22px; flex: none; }
.alt-faq__item[open] summary::after { content: "\2212"; }
.alt-faq__item p { margin: 0 0 18px; padding: 0 4px; color: #565656; line-height: 1.7; max-width: 660px; }

/* sticky mobile bar ----------------------------------------------------- */
.alt-sticky {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  display: none; gap: 10px; padding: 10px max(12px, env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom));
  background: rgba(255, 255, 255, .96); border-top: 1px solid var(--line, #e3e3e3);
  backdrop-filter: blur(6px);
}
.alt-sticky .btn { flex: 1; }

/* confirmation / manage page -------------------------------------------- */
.alt-confirm { padding: 56px 0 80px; }
.alt-confirm__head { max-width: 720px; margin-bottom: 34px; }
.alt-confirm__h1 { font: 400 clamp(28px, 3.6vw, 44px)/1.15 "Cormorant Garamond", Georgia, serif; margin: 0 0 12px; }
.alt-confirm__sub { color: #565656; line-height: 1.7; }
.alt-status-pill {
  display: inline-block; margin-top: 8px; padding: 6px 14px; border-radius: 20px;
  font: 600 11px/1.4 "Jost", Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase;
  background: var(--bg-soft, #f7f7f7); border: 1px solid var(--line, #e3e3e3); color: #565656;
}
.alt-status-pill[data-s="confirmed"] { background: #eef6ef; border-color: #bcd9c2; color: #2c6e3f; }
.alt-status-pill[data-s="pending_review"] { background: #fdf6ec; border-color: #ecd9b8; color: #8a5a20; }
.alt-status-pill[data-s="cancelled"], .alt-status-pill[data-s="no_show"] { background: #faeeee; border-color: #e4c2c2; color: #a33; }
.alt-confirm__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 340px); gap: 22px; align-items: start; }
.alt-confirm__card { border: 1px solid var(--line, #e3e3e3); border-radius: 4px; background: #fff; padding: 22px 24px; margin-bottom: 18px; }
.alt-card-h { font: 500 19px/1.3 "Cormorant Garamond", Georgia, serif; margin: 0 0 14px; }
.alt-dl { margin: 0; display: grid; gap: 0; }
.alt-dl > div { display: grid; grid-template-columns: 130px 1fr; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--bg-soft, #f2f2f2); }
.alt-dl dt { font: 600 11px/1.6 "Jost", Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #8a7a66; }
.alt-dl dd { margin: 0; font-size: 14px; }
.alt-tz { font-size: 12px; color: #9a9a9a; }
.alt-confirm__actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.alt-garment-card { border: 1px solid var(--alt-gold-soft); background: #fdfaf6; border-radius: 4px; padding: 20px 22px; margin-bottom: 18px; }
.alt-garment-card img { border-radius: 2px; display: block; margin-bottom: 10px; }
.alt-garment-card__name { font: 500 16px/1.4 "Cormorant Garamond", Georgia, serif; margin: 0 0 4px; }
.alt-garment-card__meta { font-size: 13px; color: #6b6b6b; margin: 0; }
.alt-manage { border-top: 1px solid var(--line, #e3e3e3); margin-top: 26px; padding-top: 26px; }
.alt-manage__row { display: flex; gap: 10px; flex-wrap: wrap; }
.alt-manage__panel { margin-top: 18px; border: 1px solid var(--line, #e3e3e3); border-radius: 4px; padding: 18px 20px; display: grid; gap: 12px; max-width: 640px; }
.alt-manage__panel label { display: grid; gap: 6px; font: 600 12px/1.4 "Jost", Arial, sans-serif; }
.alt-manage__panel textarea, .alt-manage__panel select, .alt-manage__panel input[type="file"] {
  font: 400 14px/1.5 Arial, sans-serif; border: 1px solid #cfcfcf; border-radius: 3px; padding: 10px;
}
.alt-photo-grid { display: flex; gap: 10px; flex-wrap: wrap; }
.alt-photo-thumb { margin: 0; font-size: 11px; color: #8a7a66; text-align: center; }
.alt-photo-thumb img { border-radius: 3px; object-fit: cover; }
.alt-resched-cal .alt-cal { max-width: 100%; }
.alt-expired { padding: 80px 0; max-width: 620px; }

/* responsive -------------------------------------------------------------- */
@media (max-width: 1023px) {
  .alt-journey__steps { grid-template-columns: repeat(2, 1fr); row-gap: 34px; }
  .alt-craft__grid { grid-template-columns: repeat(2, 1fr); }
  .alt-confirm__grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .alt-hero { grid-template-columns: 1fr; min-height: 0; }
  .alt-hero__media { max-height: 46vh; overflow: hidden; }
  .alt-hero__copy { padding: 30px 20px 40px; }
  .alt-promise, .alt-heather__grid, .alt-fitmap__grid, .alt-bring__grid { grid-template-columns: 1fr; }
  .alt-heather__portrait { max-width: 320px; }
  .alt-journey__steps { grid-template-columns: 1fr; }
  .alt-craft__grid { grid-template-columns: 1fr; }
  .alt-craft__cell--img img { height: 220px; }
  .alt-field-grid { grid-template-columns: 1fr; }
  .alt-field--small { max-width: none; }
  .alt-sticky { display: flex; }
  body.page-alterations { padding-bottom: 76px; }
  /* occasion path becomes a swipeable one-at-a-time carousel */
  .alt-occ__carousel {
    display: flex; overflow-x: auto; scroll-snap-type: x mandatory;
    gap: 12px; padding-bottom: 8px; -webkit-overflow-scrolling: touch;
  }
  .alt-occ__card { flex: 0 0 84%; scroll-snap-align: center; min-height: 150px; }
  .alt-occ__progress { display: flex; gap: 6px; justify-content: center; margin-top: 12px; }
  .alt-occ__progress span { width: 7px; height: 7px; border-radius: 50%; background: #d4c8bb; }
  .alt-occ__progress span.is-cur { background: var(--alt-gold); }
  .alt-stepper__rail li { font-size: 9px; padding: 8px 5px; }
}
