/* Self-contained contact sheet: no implicit min-content tracks or overflow-prone
   date/time rows. The header and primary action stay outside the scroll pane. */
.booking-dialog.contact-v20{--contact-gap-top:max(12px,env(safe-area-inset-top,0px));--contact-gap-bottom:max(12px,env(safe-area-inset-bottom,0px));position:fixed;inset:12px;margin:auto;top:calc(var(--contact-view-top,0px) + var(--contact-gap-top));bottom:calc(100% - var(--contact-view-top,0px) - var(--contact-view-height,100dvh) + var(--contact-gap-bottom));width:min(440px,calc(100% - 24px));max-width:calc(100% - 24px);min-width:0;height:fit-content;max-height:calc(100vh - 24px);max-height:calc(var(--contact-view-height,100dvh) - var(--contact-gap-top) - var(--contact-gap-bottom));padding:0;border:1px solid #b4bfaa;border-radius:20px;background:var(--paper-light);overflow:hidden;overscroll-behavior:contain;scrollbar-gutter:auto}
.booking-dialog.contact-v20[open]{display:flex;flex-direction:column;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.contact-v20 *{box-sizing:border-box;min-width:0}
.contact-v20 .contact-header{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:12px;padding:19px 20px 13px;flex:none;border-bottom:1px solid #d0d5c5}
.contact-v20 .contact-header .eyebrow{font-size:9px;line-height:1.4;letter-spacing:1px;margin:0 0 5px;color:#536359}
.contact-v20 .contact-header h2{font:400 28px/1.17 Georgia,serif;letter-spacing:-.5px;margin:0;overflow-wrap:normal;text-wrap:balance}
.contact-v20 #booking-title:focus{outline:none}
.contact-v20 .dialog-close{position:static;display:grid;place-items:center;width:44px;height:44px;min-width:44px;padding:10px;border:1px solid #bdc8b1;border-radius:50%;background:transparent;flex-shrink:0}
.contact-v20 .dialog-close .ui-icon{width:20px;height:20px}
.contact-v20 #booking-form{display:flex;flex-direction:column;gap:0;min-height:0;min-width:0;max-width:100%;margin:0;overflow:hidden;flex:1 1 auto}
.contact-v20 .contact-body{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:13px;min-width:0;min-height:0;max-width:100%;padding:15px 20px;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scroll-padding-block:14px;-webkit-overflow-scrolling:touch}
.contact-v20 .contact-body>*{min-width:0;max-width:100%}
.contact-v20 .intent-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:3px;border:1px solid #c1cbb6;border-radius:11px;background:#e0e5d6;margin:0}
.contact-v20 .intent-options button{display:flex;align-items:center;justify-content:center;min-width:0;max-width:100%;min-height:42px;padding:7px 9px;border:0;border-radius:7px;background:transparent;box-shadow:none;font-size:13px;line-height:1.4;text-align:center;white-space:normal;color:var(--ink)}
.contact-v20 .intent-options button[aria-pressed=true]{background:var(--paper-light);color:var(--navy);font-weight:600;box-shadow:0 1px 4px #243b3712}
.contact-v20 .contact-intro{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.contact-v20 label{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;max-width:100%;font-size:12px;line-height:1.5}
.contact-v20 input,.contact-v20 select,.contact-v20 textarea{display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:44px;padding:9px 11px;border:1px solid #bdc8b1;border-radius:9px;background:#faf7f0;color:var(--ink);font:400 16px/1.4 Arial,Helvetica,sans-serif;letter-spacing:normal}
.contact-v20 textarea{height:66px;min-height:66px;max-height:160px;resize:vertical}
.contact-v20 .booking-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;min-width:0;max-width:100%}
.contact-v20 .booking-kind{padding:0;font-size:11px;line-height:1.5;color:#485c40}
.contact-v20 .contact-format{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:0;padding:0}
.contact-v20 .contact-format button,.contact-v20 .contact-channel button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;max-width:100%;min-width:0;min-height:44px;padding:8px;border:1px solid #bdc8b1;border-radius:9px;background:transparent;color:var(--ink);font-size:12px;line-height:1.4;white-space:normal;text-align:center}
.contact-v20 .contact-format button[aria-pressed=true],.contact-v20 .contact-channel button[aria-pressed=true]{background:#e0e7d6;border-color:#53674e;color:var(--navy);font-weight:600;box-shadow:inset 0 0 0 1px #53674e}
.contact-v20 .contact-format .ui-icon,.contact-v20 .contact-channel .ui-icon{width:17px;height:17px;flex-shrink:0}
.contact-v20 .contact-schedule,.contact-v20 .contact-options{max-width:100%;min-width:0;border-block:1px solid #c9d1bf}
.contact-v20 summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;min-height:44px;padding:10px 0;font-size:12px;line-height:1.5;list-style:none;cursor:pointer}
.contact-v20 summary::-webkit-details-marker{display:none}
.contact-v20 summary>.ui-icon,.contact-v20 .delivery-method>.ui-icon{width:16px;height:16px;flex-shrink:0;transition:transform .2s var(--ease)}
.contact-v20 details[open]>summary>.ui-icon,.contact-v20 .contact-options[open] .delivery-method>.ui-icon{transform:rotate(180deg)}
.contact-v20 .contact-schedule strong{display:block;font-size:12px;font-weight:500;line-height:1.5}
.contact-v20 .contact-schedule small{display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}
.contact-v20 .schedule-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;max-width:100%;padding:3px 0 12px}
.contact-v20 .field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;max-width:100%}
.contact-v20 input[type=date],.contact-v20 input[type=time]{appearance:none;-webkit-appearance:none;width:100%;max-width:100%;min-width:0;text-align:left;color-scheme:light;min-height:46px}
.contact-v20 input::-webkit-date-and-time-value{min-width:0;text-align:left;margin:0}
.contact-v20 input::-webkit-datetime-edit{min-width:0;padding:0}
.contact-v20 input::-webkit-calendar-picker-indicator{opacity:1;cursor:pointer;flex-shrink:0}
.contact-v20 .field-input{display:block;position:relative;min-width:0;width:100%;max-width:100%}
.contact-v20 .field-input select{appearance:none;-webkit-appearance:none;padding-right:37px}
.contact-v20 .field-input>.ui-icon{right:11px;width:16px;height:16px;pointer-events:none}
.contact-v20 .clear-schedule{justify-self:start;min-height:44px;max-width:100%;padding:6px 0;border:0;background:transparent;color:#485c40;font-size:12px;line-height:1.5;text-align:left;text-decoration:underline;text-underline-offset:3px}
.contact-v20 .field-note{font-size:11px;line-height:1.55;color:var(--muted);margin:0}
.contact-v20 .delivery-method{display:inline-flex;align-items:center;gap:8px;font-size:12px;line-height:1.5;color:var(--navy)}
.contact-v20 .contact-channel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0;padding:2px 0 10px}
.contact-v20 .message-preview{border:0;border-top:1px solid #d1d7c8;margin:0;padding:0}
.contact-v20 .message-preview summary{font-size:11px;min-height:44px;padding-block:9px}
.contact-v20 #request-message{width:100%;max-width:100%;min-width:0;min-height:125px;height:125px;max-height:190px;padding:9px;border:1px solid #c5cfb9;border-radius:8px;background:#faf7f0;font:400 16px/1.5 Arial,Helvetica,sans-serif}
.contact-v20 .copy-link{font-size:11px;margin:0;min-height:44px}
.contact-v20 .contact-actions{flex:none;min-width:0;max-width:100%;padding:12px 20px 15px;border-top:1px solid #d0d5c5;background:var(--paper-light)}
.contact-v20 #contact-send-link{display:flex;justify-content:space-between;gap:12px;width:100%;max-width:100%;min-height:46px;padding:10px 17px;font-size:13px;line-height:1.45;border-radius:11px}
.contact-v20 #contact-send-link>.ui-icon{width:18px;height:18px;flex-shrink:0}
.contact-v20 #contact-status{margin:7px 0 0;font-size:11px;line-height:1.5;text-align:center}
.contact-v20 #booking-result{font-size:11px;line-height:1.5;padding:8px 10px;margin-top:8px;border-radius:8px}
/* The same minimum-track rule protects translated cards outside the sheet. */
.about-copy,.about-story,.about-text,.pricing-layout,.weekly-planner,.trial-copy,.section-heading>*,.lesson-map-heading>*{min-width:0}
.section-heading h2,.trial-copy h3,.about-text h2{hyphens:none;word-break:normal;overflow-wrap:normal}
.weekly-options button>span{overflow-wrap:normal;word-break:normal}
@media(max-width:600px){.booking-dialog.contact-v20{width:calc(100% - 24px);max-width:440px;border-radius:17px}.contact-v20 .contact-header{padding:15px 17px 11px}.contact-v20 .contact-header h2{font-size:26px}.contact-v20 .contact-body{padding:12px 17px;gap:12px}.contact-v20 .contact-actions{padding:11px 17px 13px}.contact-v20 .field-pair{grid-template-columns:minmax(0,1fr);gap:10px}.contact-v20 .contact-schedule summary{min-height:49px}.contact-v20 .schedule-fields{gap:10px}}
@media(max-width:360px){.contact-v20 .contact-header{padding-inline:15px;gap:8px}.contact-v20 .contact-header h2{font-size:25px}.contact-v20 .contact-body,.contact-v20 .contact-actions{padding-inline:15px}.contact-v20 .intent-options button{font-size:12px}.contact-v20 .contact-format button{gap:5px;font-size:12px}}
@media(max-height:520px){.contact-v20 .contact-header{padding-block:9px;grid-template-columns:minmax(0,1fr) 44px}.contact-v20 .contact-header .eyebrow{display:none}.contact-v20 .contact-header h2{font-size:24px}.contact-v20 .contact-body{padding-block:10px}.contact-v20 .contact-actions{padding-block:9px}.contact-v20 #contact-status{margin-top:4px}}
@media(prefers-reduced-motion:reduce){.contact-v20 summary>.ui-icon,.contact-v20 .delivery-method>.ui-icon{transition:none}}
