/* Booking, confirmation and Mario's admin. Same palette and type as the Good Company page. */
.booking-page{--open:#304a3a;--open-soft:#e3e8d2;--taken:#ae5638;--closed:#ebe6d6;--card:#fffdf6}
.booking-page .call-button{min-height:44px;padding:10px 20px;font-size:12px;background:var(--terracotta);color:#fff8ed;border-radius:100px}
.booking-page h1{font:clamp(44px,5vw,72px)/1.02 Instrument,Georgia,serif;letter-spacing:-.03em;margin:18px 0 20px}
.booking-page h1 em,.booking-page h2 em{color:var(--terracotta)}
.booking-page h2{font:34px/1.05 Instrument,Georgia,serif;letter-spacing:-.02em}
.booking-page .button{border-radius:100px;background:var(--terracotta);color:#fff8ed}
.booking-page .button:hover{background:#914527}
.booking-page .button[disabled]{opacity:.55;cursor:progress}

.book-intro{text-align:center;padding-block:30px 34px}
.book-intro .eyebrow,.book-intro>p{margin-inline:auto}
.book-intro>p:not(.eyebrow){font-size:15px;line-height:1.8;max-width:600px}

.notice{background:#f0ead7;border-left:3px solid var(--forest);padding:14px 18px;margin-block:0 22px;font-size:14px;border-radius:4px}
.notice.warn{border-left-color:var(--terracotta);background:#f6e3d6}
.book-notice{max-width:1100px}

.book-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:26px;align-items:start;padding-bottom:40px}
.cal-card,.form-card,.panel,.done-card,.login-card{background:var(--card);border:1px solid #e3dcc6;border-radius:10px;padding:26px}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.cal-head h2,.cal-head h3{font:28px/1.1 Instrument,Georgia,serif;letter-spacing:-.01em;text-align:center;flex:1}
.cal-nav{width:44px;height:44px;border-radius:50%;border:1px solid #d6d0b8;background:transparent;font-size:24px;line-height:1;color:var(--ink)}
.cal-nav:hover:not([disabled]){background:#f0ead7}
.cal-nav[disabled]{opacity:.3;cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal-weekdays{margin-bottom:6px}
.cal-weekdays span{font:9px Martian,monospace;letter-spacing:.08em;text-transform:uppercase;text-align:center;opacity:.65}
.day{aspect-ratio:1/1;min-height:44px;border-radius:8px;border:1px solid transparent;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:2px;font-size:15px;color:var(--ink);position:relative}
.day small{font-size:9px;letter-spacing:.02em;line-height:1.1}
.day.blank{visibility:hidden}
.day.closed{color:#a8a594;cursor:default}
.day.past{color:#c8c4b2;cursor:default}
.day.open{background:var(--open-soft);border-color:#c5cfb0;font-weight:700;cursor:pointer}
.day.open small{font-weight:600;color:var(--forest)}
.day.open:hover{background:#d5dfbd}
.day.taken{background:#f3ddd1;color:var(--taken);cursor:default;text-decoration:line-through;text-decoration-thickness:1px}
.day.taken small{text-decoration:none}
.day.selected{background:var(--forest);border-color:var(--forest);color:#fff8ed}
.day.selected small{color:#fff8ed}
.day.today::after{content:'';position:absolute;bottom:5px;width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.6}
.cal-legend{list-style:none;display:flex;flex-wrap:wrap;gap:8px 18px;padding:0;margin:18px 0 0;font-size:12px}
.cal-legend li{display:flex;align-items:center;gap:7px}
.swatch{width:14px;height:14px;border-radius:4px;display:inline-block;border:1px solid #c5cfb0}
.swatch.open{background:var(--open-soft)}
.swatch.taken{background:#f3ddd1;border-color:#e6bfa9}
.swatch.closed{background:var(--closed);border-color:#dcd5bf}
.swatch.changed{background:transparent;border:2px dashed var(--terracotta)}
.cal-empty{margin-top:16px;font-size:14px}

.form-card .eyebrow{font-size:9px}
.form-card h2{margin:10px 0 12px}
.form-card>div>p,.form-card form>p{font-size:14px}
.picked{display:flex;flex-direction:column;margin:10px 0 18px;padding:14px 16px;border-radius:8px;background:#eef0e0}
.picked strong{font:28px/1.1 Instrument,Georgia,serif;font-weight:400}
.picked span{font-size:13px}
.trip-price{margin:0 0 16px;padding:12px 14px;border-radius:6px;background:#eef0e0;color:var(--ink);font-weight:700;line-height:1.5}
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;flex:1;min-width:0}
.field label{font-size:12px;font-weight:700}
.field label span{font-weight:400;opacity:.65}
.field input,.field select,.field textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #cfc8ae;border-radius:6px;background:#fff;color:var(--ink);font-size:16px}
.field textarea{min-height:80px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--forest);outline-offset:1px}
.field-row{display:flex;gap:12px}
.agree{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.6;margin:4px 0 16px;cursor:pointer}
.agree input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--forest)}
.form-error{color:#9b3b1f;background:#fbe9df;border-radius:6px;padding:10px 12px;font-size:13px;margin-bottom:14px}
.form-card .button{width:100%;margin-top:0}
.secure-note{font-size:11px;opacity:.7;margin-top:10px;text-align:center;max-width:none}
.rather-call{font-size:12px;margin-top:20px;padding-top:16px;border-top:1px solid #e3dcc6;max-width:none}
.call-card .button{width:100%;margin-top:18px}

.book-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;padding-block:20px 70px;border-top:1px solid #dcd6bf}
.book-facts h3{font:22px/1.1 Instrument,Georgia,serif;margin-bottom:8px}
.book-facts p{font-size:14px;line-height:1.7}

.done{padding-block:40px 80px;display:flex;justify-content:center}
.done-card{max-width:640px;width:100%;text-align:center;padding:40px 34px}
.done-card>p:not(.eyebrow){margin:14px auto 0;font-size:15px;line-height:1.75}
.done-card .eyebrow{margin-inline:auto}
.done-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:26px 0 8px;text-align:left}
.done-facts div{background:#eef0e0;border-radius:8px;padding:12px 14px}
.done-facts dt{font:9px Martian,monospace;letter-spacing:.08em;text-transform:uppercase;opacity:.7}
.done-facts dd{margin:4px 0 0;font:22px/1.2 Instrument,Georgia,serif}
.done-actions{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:26px}
.done-actions .button{margin-top:0;min-width:260px}
.done-card>.button{margin-top:22px}

/* Admin */
.admin{padding-block:24px 70px}
.login-card{max-width:420px;margin:40px auto}
.login-card .button{width:100%;margin-top:4px}
.admin-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}
.admin-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:start}
.panel h2{font-size:30px;margin-bottom:6px}
.panel h2.gap{margin-top:30px}
.hint{font-size:13px;line-height:1.7;margin-bottom:16px;opacity:.85}
.text-button{background:none;border:0;padding:8px 0;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:4px;color:var(--terracotta)}
.admin-days .day{cursor:pointer;border:1px solid #e0dac4}
.admin-days .day.working{background:var(--open-soft);border-color:#b9c59f;font-weight:700}
.admin-days .day.off{background:var(--closed);color:#8f8b78}
.admin-days .day.booked{background:#f3ddd1;border-color:#e0b39b;color:var(--taken);text-decoration:none}
.admin-days .day.changed{outline:2px dashed var(--terracotta);outline-offset:-4px}
.admin-days .day.past{opacity:.45;cursor:default}
.admin-days .day small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-days .day.busy{opacity:.5}
.bulk{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:10px}
.weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.weekdays button{min-height:48px;border-radius:8px;border:1px solid #d6d0b8;background:var(--closed);font-size:13px;font-weight:700;color:#8f8b78}
.weekdays button[aria-pressed="true"]{background:var(--forest);border-color:var(--forest);color:#fff8ed}
.trips{display:flex;flex-direction:column;gap:12px;margin:14px 0 20px}
.trip{border:1px solid #e0dac4;border-radius:8px;padding:14px 16px;background:#fff}
.trip.conflict{border-color:var(--terracotta);background:#fbeee6}
.trip.held{opacity:.75}
.trip-when{font:22px/1.15 Instrument,Georgia,serif}
.trip-who{font-size:14px;margin-top:4px}
.trip-who a{font-weight:700}
.trip-meta{font-size:12px;opacity:.75;margin-top:4px}
.trip-note{font-size:13px;margin-top:6px;padding:8px 10px;background:#f6f2e6;border-radius:6px}
.trip-actions{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:8px;align-items:center}
.trip-actions input{min-height:38px;padding:4px 8px;border:1px solid #cfc8ae;border-radius:6px;font-size:14px}
.badge{display:inline-block;font:9px Martian,monospace;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:20px;background:#eef0e0;margin-left:6px;vertical-align:middle}
.badge.warn{background:var(--terracotta);color:#fff8ed}
.empty{font-size:14px;opacity:.75}
.add-phone{border-top:1px solid #e3dcc6;padding-top:14px;margin-top:14px}
.add-phone summary{cursor:pointer;font-weight:700;font-size:14px;padding:6px 0}
.add-phone form,.add-phone .hint{margin-top:12px}
.add-phone .button{width:100%;margin-top:0}
.feed{display:flex;gap:10px;align-items:center}
.feed input{flex:1;min-width:0;min-height:40px;padding:6px 10px;border:1px solid #cfc8ae;border-radius:6px;font-size:12px}

@media(max-width:900px){
  .book-layout,.admin-grid{grid-template-columns:1fr}
  .book-facts{grid-template-columns:1fr;gap:18px}
}
@media(max-width:760px){
  .booking-page .nav .call-button{display:inline-flex;padding:8px 14px;font-size:11px;min-height:40px}
  .cal-card,.form-card,.panel,.done-card{padding:18px 14px}
  .cal-grid{gap:4px}
  .day{font-size:14px;min-height:40px;border-radius:6px}
  .day small{font-size:8px}
  .field-row{flex-direction:column;gap:0}
  .done-facts{grid-template-columns:1fr}
  .done-card{padding:30px 18px}
}

/* No single word alone on the last line of the intro. */
.book-intro>p:not(.eyebrow){text-wrap:balance}
.picked span{text-wrap:balance}
