.welcome-wrap{max-width:1140px;margin:auto;display:grid;grid-template-columns:1fr 1.05fr;gap:64px;padding:58px 32px 48px;align-items:start}
.welcome-intro{padding-top:16px}.welcome-intro h1{font-size:clamp(48px,5vw,70px);margin:18px 0 24px}.welcome-intro h1 em{color:#647957}.welcome-intro>p{font-size:18px;max-width:390px;color:#66715f}.welcome-code-preview{display:inline-flex;gap:15px;align-items:center;margin-top:24px;color:#5a6e4a;font-size:14px}.welcome-code-preview strong{letter-spacing:.1em;color:#293b22;font-size:19px}
.welcome-card{border:1px solid #d4d9cc;background:#fffefb;border-radius:12px;padding:30px}.welcome-card h2{font-size:36px;margin:14px 0}.welcome-card p{font-size:16px;color:#64705a;line-height:1.6}.welcome-card label{display:block;font-size:14px;margin:17px 0 6px}.welcome-card label span{color:#75806d}.welcome-card input,.welcome-card select{width:100%;min-height:50px;padding:11px 12px;border:1px solid #cdd3c4;border-radius:5px;background:#fff;font-size:16px;color:#25311e}.welcome-card input[readonly]{background:#f0f2eb;color:#64705a}.welcome-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.welcome-card .button{margin-top:24px;width:100%;border-radius:5px;font-size:16px}.welcome-card p.welcome-small{font-size:13px;line-height:1.6;margin-top:14px}.welcome-card [hidden]{display:none!important}#welcome-status{font-size:14px;color:#536c3e;margin-top:18px;min-height:24px}.welcome-footer{max-width:1140px;margin:auto;padding:20px 32px 36px;display:flex;gap:24px;justify-content:space-between;color:#66715f;font-size:14px}
.promo-widget{border:1px solid #cdd7bd;background:#eef2e7;padding:18px 20px;border-radius:8px;margin:22px 0}.promo-widget h3{font-size:17px;font-weight:500;margin:0 0 6px}.promo-widget>p{font-size:14px;line-height:1.5;color:#5e7050}.promo-widget .promo-code-row{display:flex;align-items:stretch;gap:8px;margin-top:12px}.promo-widget input{min-width:0;flex:1;width:100%;min-height:48px;font-size:16px;padding:10px 12px;background:#fff;border:1px solid #c1cdb3;border-radius:5px;text-transform:uppercase}.promo-widget button{min-height:48px;font-size:14px;padding:10px 16px;background:#26351e;color:#f4f6ef;border-radius:5px;flex:none}.promo-widget .promo-feedback{font-size:14px;line-height:1.6;color:#4a6338;margin:10px 0 0}.promo-widget .promo-profile-link{display:inline-flex;align-items:center;font-size:13px;text-decoration:underline;text-underline-offset:3px;min-height:38px;color:#506b3c}.promo-widget .promo-cancel{background:transparent;color:#526b3e;border:1px solid #b9c8aa;font-size:13px;width:100%;margin-top:8px}.promo-widget label{font-size:13px;display:block;margin-top:12px;color:#4a6039}.promo-widget [hidden]{display:none!important}.promo-payment-status{font-size:14px;color:#4c6936}.appointment-item .welcome-pay{background:#d8e4c9;color:#26351e;border:1px solid #bdcfa8;border-radius:5px;padding:12px 16px;min-height:48px;font-size:14px}
@media(max-width:800px){.welcome-wrap{grid-template-columns:1fr;gap:26px;padding:30px 20px}.welcome-intro{padding-top:0}.welcome-intro h1{font-size:48px;margin:15px 0 18px}.welcome-intro>p{font-size:16px}.welcome-code-preview{margin-top:16px}.welcome-card{padding:24px 20px}.welcome-fields{gap:12px}.welcome-footer{padding:18px 20px 32px;flex-direction:column;gap:12px}.promo-widget{padding:16px;margin:18px 0}.promo-widget .promo-code-row{gap:8px}.promo-widget button{padding-inline:14px}}
@media(max-width:380px){.welcome-fields{grid-template-columns:1fr;gap:0}}

.promo-widget .promo-issued{font-size:15px;font-weight:500;color:#334b27;margin-top:12px}

/* A quiet code-entry field for the booking form. */
.promo-widget.promo-compact{background:transparent;border-color:#d8d9d0;padding:16px;margin:18px 0}
.promo-widget.promo-compact label{margin:0;font-size:15px;font-weight:500;color:#283322}
.promo-widget.promo-compact .promo-code-row{margin-top:10px}
.promo-widget.promo-compact .promo-profile-link{margin-top:6px;min-height:32px}
.promo-widget.promo-compact .promo-feedback:empty{display:none}
