/* ==========================================================================
   VASTORE — CAPABILITIES, ERP EXPLORER, PROJECT BRIEF, ASSISTANT
   Reads every token from /theme.css.
   ========================================================================== */

/* ==========================================================================
   CAPABILITIES
   ========================================================================== */

.services{
 position:relative;isolation:isolate;overflow:hidden;
 background:var(--ink-900);color:var(--on-dark);
}
.services>.container{position:relative;z-index:2}
.services h2 span{color:var(--on-dark-faint)}
.services h2 em{font-style:normal;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.services .section-intro{color:var(--on-dark-muted)}

/* Segmented filter */
.public-site .service-filter{
 display:inline-flex;flex-wrap:wrap;gap:var(--s-1);height:auto;
 margin-bottom:var(--s-7);padding:5px;
 background:var(--glass);border:1px solid var(--on-dark-line);border-radius:var(--r-pill);
 backdrop-filter:blur(8px);
}
.public-site .service-filter button{
 position:relative;flex:none;height:auto;
 padding:11px 22px;border-radius:var(--r-pill);
 font-size:var(--fs-small);font-weight:600;color:var(--on-dark-muted);
 transition:color var(--t-base) var(--ease),background var(--t-base) var(--ease);
}
.public-site .service-filter button:hover{color:var(--n-0)}
.public-site .service-filter button[data-state=active]{
 background:var(--grad-ember);color:var(--ink-900);
 box-shadow:0 6px 18px -6px color-mix(in srgb,var(--ember-600) 70%,transparent);
}

.capability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}

.capability{
 position:relative;isolation:isolate;overflow:hidden;
 display:flex;flex-direction:column;
 padding:clamp(24px,2.4vw,34px);border-radius:var(--r-lg);
 background:linear-gradient(158deg,color-mix(in srgb,var(--ink-700) 62%,transparent),var(--ink-850));
 border:1px solid var(--on-dark-line);
 transition:transform var(--t-base) var(--ease-out),border-color var(--t-base) var(--ease),
            box-shadow var(--t-base) var(--ease-out);
}
.capability:hover{
 transform:translateY(-6px);
 border-color:color-mix(in srgb,var(--ember-500) 52%,transparent);
 box-shadow:0 28px 60px -22px rgb(6 11 21 / .85);
}
/* Hairline that sweeps across the top edge on hover */
.capability::after{
 content:'';position:absolute;top:0;left:0;right:0;height:1px;z-index:1;
 background:linear-gradient(90deg,transparent,var(--ember-400),transparent);
 transform:translateX(-100%);
 transition:transform .85s var(--ease-out);
}
.capability:hover::after{transform:translateX(100%)}

.capability-top{
 display:flex;align-items:center;justify-content:space-between;
 margin-bottom:var(--s-6);color:var(--ember-500);
}
.capability-top svg{
 width:30px;height:30px;
 transition:transform var(--t-base) var(--ease-spring),color var(--t-base) var(--ease);
}
.capability:hover .capability-top svg{transform:translateY(-3px) rotate(-6deg)}
.capability-top span{
 font:700 var(--fs-label)/1 var(--mono);letter-spacing:.06em;color:var(--on-dark-faint);
}
.capability h3{font-size:var(--fs-h3);font-weight:650;margin-bottom:var(--s-3)}
.capability>p{font-size:var(--fs-small);line-height:1.75;color:var(--on-dark-muted);min-height:5.2em}

.capability ul{list-style:none;margin:var(--s-6) 0;padding:0;display:grid;gap:var(--s-3)}
.capability li{
 display:flex;align-items:center;gap:var(--s-3);
 font-size:var(--fs-small);color:var(--on-dark-muted);
}
.capability li svg{width:14px;height:14px;flex:none;color:var(--ember-500)}

.capability>button{
 margin-top:auto;display:flex;align-items:center;gap:var(--s-3);
 width:100%;min-height:48px;padding-top:var(--s-5);
 border-top:1px solid var(--on-dark-line);
 font-size:var(--fs-small);font-weight:650;color:var(--ember-400);
 transition:color var(--t-base) var(--ease),gap var(--t-base) var(--ease-out);
}
.capability>button svg{transition:transform var(--t-base) var(--ease-spring)}
.capability>button:hover{color:var(--n-0);gap:var(--s-5)}
.capability>button:hover svg{transform:translate(3px,-3px)}

/* ==========================================================================
   ERP EXPLORER
   ========================================================================== */

.erp-section{background:var(--surface-sunken);position:relative;overflow:hidden}
.erp-grid{
 display:grid;grid-template-columns:.95fr 1fr;
 gap:clamp(40px,6vw,92px);align-items:center;
}
.erp-grid h2 em{font-style:normal;color:var(--ink-soft)}
.erp-intro{margin-top:var(--s-5);max-width:46ch;font-size:var(--fs-lead);line-height:1.75;color:var(--ink-muted)}

.erp-values{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-6);margin:var(--s-6) 0}
.erp-values span{
 display:flex;align-items:center;gap:var(--s-2);
 font-size:var(--fs-small);font-weight:650;
}
.erp-values svg{width:18px;height:18px;color:var(--brand-deep)}

.erp-note{
 max-width:44ch;padding-left:var(--s-4);
 border-left:2px solid var(--ember-500);
 font-size:var(--fs-small);line-height:1.7;color:var(--ink-muted);
}

/* The panel itself */
.module-panel{
 padding:clamp(22px,2.2vw,30px);border-radius:var(--r-xl);
 background:var(--surface);border:1px solid var(--line);
 box-shadow:var(--sh-lg);
}
.module-heading{
 display:flex;align-items:center;gap:var(--s-3);
 padding-bottom:var(--s-5);border-bottom:1px solid var(--line);
}
.module-icon{
 flex:none;padding:12px;border-radius:var(--r-md);
 background:var(--brand-tint);color:var(--brand-deep);
}
.module-icon svg{width:21px;height:21px}
.module-heading h3{font-size:var(--fs-h4);font-weight:700}
.module-heading p{margin-top:3px;font-size:var(--fs-micro);color:var(--ink-soft)}
.mini-label{
 margin-left:auto;font:600 var(--fs-micro)/1 var(--mono);
 letter-spacing:.1em;color:var(--ink-soft);
}

.module-list{display:grid;gap:var(--s-2);margin:var(--s-5) 0}
.module{
 position:relative;overflow:hidden;
 display:flex;align-items:flex-start;gap:var(--s-3);
 padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;
 transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),
            transform var(--t-fast) var(--ease-out);
}
.module:hover{border-color:var(--ember-300);transform:translateX(3px)}
.module.selected{
 border-color:var(--ember-400);background:var(--ember-100);
 box-shadow:inset 3px 0 var(--ember-500);
}
.module [data-slot=checkbox]{
 flex:none;margin-top:3px;width:18px;height:18px;
 border:1px solid var(--n-400);
 transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease);
}
.module [data-state=checked]{background:var(--ink-700);border-color:var(--ink-700);color:var(--n-0)}
.module svg{width:14px;height:14px}
.module strong{display:block;font-size:var(--fs-small);line-height:1.5;font-weight:650}
.module small{display:block;margin-top:3px;font-size:var(--fs-micro);line-height:1.65;color:var(--ink-muted)}

.module-cta{width:100%;border-radius:var(--r-md)!important}
.module-disclaimer{margin-top:var(--s-4);font-size:var(--fs-micro);line-height:1.6;text-align:center;color:var(--ink-soft)}

/* ==========================================================================
   PROJECT BRIEF
   ========================================================================== */

.brief-section{background:var(--surface)}
.brief-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,6vw,96px)}
.brief-grid h2 span{color:var(--ink-soft)}
.brief-grid>div>p:not(.eyebrow){margin-top:var(--s-5);max-width:40ch;font-size:var(--fs-body);color:var(--ink-muted)}

.direct-contact{display:grid;gap:var(--s-1);margin:var(--s-6) 0}
.direct-contact a{
 display:flex;align-items:center;gap:var(--s-3);
 min-height:48px;padding:var(--s-2) var(--s-3);
 margin-inline:calc(-1 * var(--s-3));border-radius:var(--r-sm);
 font-size:var(--fs-body);font-weight:500;
 transition:background var(--t-base) var(--ease),color var(--t-base) var(--ease)
}
.direct-contact a:hover{background:var(--brand-tint);color:var(--brand-deep)}
.direct-contact svg{width:18px;height:18px;flex:none;color:var(--brand-deep)}

.assistant-inline{
 position:relative;overflow:hidden;
 display:flex;align-items:center;gap:var(--s-4);width:100%;
 margin-top:var(--s-6);padding:var(--s-5);
 border:1px solid var(--line);border-radius:var(--r-md);
 background:var(--surface-sunken);color:var(--ink-muted);text-align:left;
 font-size:var(--fs-micro);
 transition:border-color var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease-out);
}
.assistant-inline:hover{border-color:var(--ember-300);box-shadow:var(--sh-sm)}
.assistant-inline>svg:first-child{flex:none;color:var(--brand-deep)}
.assistant-inline strong{display:block;margin-top:3px;font-size:var(--fs-small);color:var(--ink-700)}
.assistant-inline>svg:last-child{width:18px;margin-left:auto;flex:none;transition:transform var(--t-base) var(--ease-spring)}
.assistant-inline:hover>svg:last-child{transform:translate(3px,-3px)}

.brief-form{
 display:grid;gap:var(--s-5);
 padding:clamp(22px,2.4vw,34px);border-radius:var(--r-xl);
 background:var(--n-25);border:1px solid var(--line);box-shadow:var(--sh-sm);
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}
.brief-form label{display:grid;gap:var(--s-2);font-size:var(--fs-label);font-weight:650;line-height:1.6}
.brief-form input,.brief-form textarea,.brief-form [data-slot=select-trigger]{
 width:100%;min-height:48px;padding-inline:14px;
 background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);
 box-shadow:none;font-size:var(--fs-body);color:var(--ink);
 transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease);
}
.brief-form textarea{padding:12px 14px;line-height:1.65}
.brief-form input:hover,.brief-form textarea:hover{border-color:var(--n-400)}
.brief-form input:focus-visible,.brief-form textarea:focus-visible{
 outline:none;border-color:var(--ember-500);
 box-shadow:0 0 0 3px color-mix(in srgb,var(--ember-500) 22%,transparent);
}
.brief-form [data-slot=select-trigger] svg{width:15px}
.form-privacy{font-size:var(--fs-micro);line-height:1.65;color:var(--ink-soft)}
.form-error{
 padding:var(--s-3) var(--s-4);border-radius:var(--r-sm);
 background:var(--bad-bg);border:1px solid var(--bad-line);color:var(--bad-ink);
 font-size:var(--fs-small);line-height:1.6;
}

/* Shown when a save fails: the same brief, by a route that does not need
   our server. Nothing the visitor typed is lost with the tab. */
.form-rescue{margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--bad-line)}
.form-rescue>p{margin-bottom:var(--s-3);font-size:var(--fs-small);line-height:1.6}
.form-rescue-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.form-rescue-actions a{
 display:inline-flex;align-items:center;gap:var(--s-2);min-height:44px;
 padding:10px 15px;border-radius:var(--r-pill);
 background:var(--surface);border:1px solid var(--bad-line);
 font-size:var(--fs-small);font-weight:650;color:var(--bad-ink);
 transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),
            transform var(--t-fast) var(--ease-out);
}
.form-rescue-actions a:hover{background:var(--ink-800);border-color:var(--ink-800);color:var(--n-0);transform:translateY(-2px)}
.form-rescue-actions svg{flex:none}
.brief-form .honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

.brief-success{
 align-self:center;padding:clamp(36px,4vw,56px) var(--s-7);
 border-radius:var(--r-xl);background:var(--ok-bg);border:1px solid var(--ok-line);
 animation:pop-in .5s var(--ease-spring) both;
}
.brief-success>svg{width:46px;height:46px;margin-bottom:var(--s-5);color:var(--ok-ink)}
.brief-success h3{font-size:var(--fs-h3);font-weight:700}
.brief-success p{margin:var(--s-4) 0 var(--s-6);color:var(--ok-ink);opacity:.86}

@keyframes pop-in{from{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:none}}

/* ==========================================================================
   ASSISTANT
   ========================================================================== */

.assistant-launch{
 position:fixed;right:var(--s-5);bottom:var(--s-5);z-index:35;
 display:flex;align-items:center;gap:var(--s-3);
 padding:15px 21px;border-radius:var(--r-pill);
 background:color-mix(in srgb,var(--ink-800) 96%,transparent);color:var(--n-0);
 border:1px solid color-mix(in srgb,var(--ember-500) 46%,transparent);
 box-shadow:0 16px 42px -12px rgb(6 11 21 / .6);
 font-size:var(--fs-small);font-weight:650;
 backdrop-filter:blur(10px);
 transition:transform var(--t-base) var(--ease-spring),box-shadow var(--t-base) var(--ease-out),
            background var(--t-base) var(--ease);
}
.assistant-launch::after{
 content:'';position:absolute;inset:-4px;border-radius:inherit;z-index:-1;
 background:var(--grad-ember);opacity:0;filter:blur(12px);
 transition:opacity var(--t-base) var(--ease);
}
.assistant-launch:hover{transform:translateY(-4px) scale(1.02)}
/* Out of the way while the hero is on screen. */
.assistant-launch.is-tucked{
 opacity:0;transform:translateY(18px) scale(.94);pointer-events:none;
}
.assistant-launch:hover::after{opacity:.5}
.assistant-launch>svg:first-child{width:21px;flex:none;color:var(--ember-400)}
.assistant-launch>svg:last-child{width:17px;flex:none}

/* A gentle pulse so the launcher is noticed once, then settles */
.assistant-launch>svg:first-child{animation:twinkle 3.4s var(--ease-in-out) infinite}
@keyframes twinkle{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.62;transform:scale(.9)}}

.assistant-sheet{
 display:flex;flex-direction:column;gap:0;padding:0;
 background:var(--paper);color:var(--ink);
}
.assistant-sheet [data-slot=sheet-header]{background:var(--ink-900);color:var(--n-0);padding:var(--s-6) var(--s-5) var(--s-5)}
.assistant-sheet [data-slot=sheet-title]{font:650 var(--fs-h3) var(--display);color:var(--n-0)}
.assistant-sheet [data-slot=sheet-description]{margin-top:var(--s-1);font-size:var(--fs-micro);color:var(--on-dark-muted)}
.assistant-sheet [data-slot=sheet-close]{color:var(--n-0)}
.assistant-emblem{
 width:44px;height:44px;margin-bottom:var(--s-3);border-radius:var(--r-md);
 display:grid;place-items:center;
 background:var(--grad-ember);color:var(--ink-900);
}

.chat-messages{
 flex:1;min-height:0;overflow-y:auto;
 display:flex;flex-direction:column;gap:var(--s-4);
 padding:var(--s-5);
}
.chat-message{max-width:95%;font-size:var(--fs-small);line-height:1.7;animation:msg-in .38s var(--ease-out) both}
.chat-message>span{display:block;margin-bottom:var(--s-1);font-size:var(--fs-micro);color:var(--ink-soft)}
.chat-message p{
 margin:0;padding:14px 16px;white-space:pre-wrap;
 background:var(--surface);border:1px solid var(--line);
 border-radius:3px var(--r-md) var(--r-md) var(--r-md);
 box-shadow:var(--sh-xs);
}
.chat-message.user{align-self:flex-end}
.chat-message.user>span{text-align:right}
.chat-message.user p{
 background:var(--ink-700);color:var(--n-0);border:0;
 border-radius:var(--r-md) 3px var(--r-md) var(--r-md);
}
.chat-loading{display:grid;gap:var(--s-3);padding:var(--s-5)}
@keyframes msg-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.chat-bottom{padding:var(--s-4) var(--s-5) var(--s-5);background:var(--surface);border-top:1px solid var(--line)}
.quick-questions{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-4)}
.quick-questions button{
 padding:8px 12px;border-radius:var(--r-pill);
 background:var(--surface);border:1px solid var(--line-strong);
 font-size:var(--fs-micro);color:var(--ink-muted);
 transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease);
}
.quick-questions button:hover:not(:disabled){background:var(--brand-tint);border-color:var(--ember-300);color:var(--brand-deep)}
.chat-input{display:flex;gap:var(--s-2)}
.chat-input input{min-height:46px;font-size:var(--fs-small);border:1px solid var(--line-strong);border-radius:var(--r-sm)}
.chat-input button{
 width:46px;flex:none;display:grid;place-items:center;border-radius:var(--r-sm);
 background:var(--grad-ember);color:var(--ink-900);
 transition:transform var(--t-fast) var(--ease-spring)
}
.chat-input button:hover:not(:disabled){transform:scale(1.06)}
.chat-privacy{margin:var(--s-3) 0;font-size:var(--fs-micro);line-height:1.6;color:var(--ink-soft)}
.chat-brief{
 display:flex;align-items:center;gap:var(--s-2);padding:0;
 font-size:var(--fs-micro);font-weight:650;color:var(--ink-700);
}
.chat-brief svg{width:14px;transition:transform var(--t-base) var(--ease-spring)}
.chat-brief:hover{color:var(--brand-deep)}
.chat-brief:hover svg{transform:translate(2px,-2px)}

/* ==========================================================================
   PORTFOLIO MODAL
   ========================================================================== */

.portfolio-modal{
 max-height:94dvh;overflow:auto;
 background:var(--surface);color:var(--ink);
}
.portfolio-modal-image{
 overflow:auto;padding:var(--s-3);border-radius:var(--r-md);
 background:var(--surface-sunken);
}
.portfolio-modal-image img{width:100%;height:auto;border-radius:var(--r-xs);box-shadow:var(--sh-sm)}
.portfolio-modal .button{justify-self:end}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width:1000px){
 .capability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .capability>p{min-height:0}
 .erp-grid,.brief-grid{grid-template-columns:1fr;gap:var(--s-7)}
 .mini-label{display:none}
}

@media (max-width:700px){
 .capability-grid{grid-template-columns:1fr}
 .public-site .service-filter{
  display:flex;width:100%;overflow-x:auto;justify-content:flex-start;
  border-radius:var(--r-md);scrollbar-width:none;
 }
 .public-site .service-filter::-webkit-scrollbar{display:none}
 .public-site .service-filter button{white-space:nowrap;min-height:44px;padding:10px 16px}
 .module-panel{padding:var(--s-5)}
 .form-grid{grid-template-columns:1fr}
 .assistant-inline{justify-content:space-between}
 .assistant-launch{right:var(--s-4);bottom:var(--s-4);padding:13px 18px}
 .assistant-launch>svg:last-child{display:none}
 .portfolio-modal-image img{min-width:620px;max-width:none}
}

/* ==========================================================================
   BOOK A CALL
   ========================================================================== */

/* The booking entry sits in the direct-contact list and must match it. */
.direct-contact button{
 display:flex;align-items:center;gap:var(--s-3);width:100%;
 min-height:48px;padding:var(--s-2) var(--s-3);
 margin-inline:calc(-1 * var(--s-3));border-radius:var(--r-sm);
 font-size:var(--fs-body);font-weight:500;text-align:left;
 transition:background var(--t-base) var(--ease),color var(--t-base) var(--ease);
}
.direct-contact button:hover{background:var(--brand-tint);color:var(--brand-deep)}
.direct-contact button svg{width:18px;height:18px;flex:none;color:var(--brand-deep)}

.booking-dialog{max-height:94dvh;overflow:auto;background:var(--surface);color:var(--ink)}
.booking-form{display:grid;gap:var(--s-5);margin-top:var(--s-4)}
.booking-form fieldset{margin:0;padding:0;border:0}
.booking-form legend{
 display:flex;align-items:center;gap:var(--s-2);padding:0;margin-bottom:var(--s-3);
 font-size:var(--fs-label);font-weight:700;letter-spacing:.02em;
}
.booking-form legend svg{color:var(--brand-deep)}
.booking-form label{display:grid;gap:var(--s-2);font-size:var(--fs-label);font-weight:650}
.booking-form label small{font-weight:400;color:var(--ink-soft)}
.booking-form input,.booking-form textarea,.booking-form select{
 width:100%;min-height:46px;padding:10px 14px;
 background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);
 font-size:var(--fs-body);color:var(--ink);
 transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease);
}
.booking-form textarea{line-height:1.6}
.booking-form input:focus-visible,.booking-form textarea:focus-visible,.booking-form select:focus-visible{
 outline:none;border-color:var(--ember-500);
 box-shadow:0 0 0 3px color-mix(in srgb,var(--ember-500) 22%,transparent);
}
.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}

/* The radios stay in the accessibility tree; the labels carry the state. */
.booking-day input,.booking-chip input{position:absolute;opacity:0;width:1px;height:1px}

.booking-days{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.booking-day{
 display:grid;justify-items:center;gap:2px;cursor:pointer;
 min-width:66px;padding:var(--s-3) var(--s-4);
 border:1px solid var(--line);border-radius:var(--r-md);
 transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),
            transform var(--t-fast) var(--ease-out);
}
.booking-day:hover{border-color:var(--ember-300);transform:translateY(-2px)}
.booking-day.is-on{border-color:var(--ember-500);background:var(--brand-tint)}
.booking-day:focus-within{outline:2px solid var(--ember-600);outline-offset:3px}
.booking-day small{font-size:var(--fs-micro);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}
.booking-day strong{font:700 var(--fs-h4)/1 var(--display);letter-spacing:-.03em}
.booking-day.is-on strong{color:var(--brand-deep)}

.booking-chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.booking-chip{
 display:inline-flex;align-items:center;gap:var(--s-2);cursor:pointer;
 min-height:44px;padding:10px 16px;
 border:1px solid var(--line);border-radius:var(--r-pill);
 font-size:var(--fs-small);
 transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease);
}
.booking-chip:hover{border-color:var(--ember-300)}
.booking-chip.is-on{border-color:var(--ember-500);background:var(--brand-tint);font-weight:650}
.booking-chip:focus-within{outline:2px solid var(--ember-600);outline-offset:3px}
.booking-chip svg{color:var(--brand-deep);flex:none}
.booking-chip em{font-style:normal;color:var(--ink-soft)}

.booking-note{font-size:var(--fs-micro);line-height:1.65;color:var(--ink-soft)}

.booking-done{padding:var(--s-7) var(--s-4);text-align:center;animation:pop-in .45s var(--ease-spring) both}
.booking-done>svg{width:46px;height:46px;margin:0 auto var(--s-5);color:var(--ok-ink)}
.booking-done h3{font-size:var(--fs-h3);font-weight:700}
.booking-done p{margin:var(--s-4) auto var(--s-6);max-width:44ch;color:var(--ink-muted);line-height:1.7}
.booking-done a{color:var(--brand-deep);font-weight:650}

@media (max-width:640px){
 .booking-grid{grid-template-columns:1fr}
 .booking-day{min-width:58px;padding:var(--s-2) var(--s-3)}
}
