/* Shared behavior styles only. Each concept owns its composition and palette. */
[hidden] { display:none!important; }
[data-fit-canvas] { position:relative; aspect-ratio:1280/760; overflow:hidden; }
[data-fit-canvas]>iframe,[data-fit-canvas]>.live-canvas { position:absolute; left:0; top:0; width:1280px; height:760px; max-width:none; border:0; transform-origin:top left; }
html.concept-modal-open { overflow:hidden; }
.waitlist-icon { display:inline-flex; align-items:center; justify-content:center; flex:none; width:21px; height:21px; }
.waitlist-icon svg { display:block; width:100%; height:100%; }
.concept-dialog { box-sizing:border-box; width:min(460px,calc(100% - 32px)); max-height:calc(100svh - 40px); overflow:auto; border:1px solid #d9d0c5; border-radius:10px; padding:34px; color:#171310; background:#fffdf8; color-scheme:light; font-family:'Source Sans 3',sans-serif; }
.concept-dialog,.concept-dialog * { -webkit-tap-highlight-color:transparent; }
.concept-dialog::backdrop { background:rgb(23 19 16 / .64); }
.concept-dialog img { width:40px; height:40px; display:block; margin-bottom:24px; }
.concept-dialog h2 { font-size:36px; line-height:1.06; letter-spacing:-1px; font-weight:650; margin:0 0 16px; }
.concept-dialog h2 span { color:#9d1c27; }
.concept-dialog p { font-size:16px; line-height:1.5; color:#6e655e; margin:0 0 24px; }
.concept-dialog label { display:block; margin-bottom:8px; font-size:14px; font-weight:600; }
.concept-dialog input { box-sizing:border-box; width:100%; min-height:48px; padding:10px 12px; border:1px solid #b9a99a; border-radius:6px; font:inherit; color:#171310; background:#fffdf8; caret-color:#9d1c27; }
.concept-dialog input:not([type="radio"]):focus { border-color:#9d1c27; outline:2px solid #9d1c27; outline-offset:2px; }
.concept-dialog .waitlist-profile { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; margin-bottom:22px; }
.concept-dialog .waitlist-profile>div { min-width:0; }
.concept-dialog .contact-method { padding:0; margin:0 0 22px; border:0; min-width:0; }
.concept-dialog .contact-method legend { padding:0; margin-bottom:10px; font-size:14px; font-weight:600; }
.contact-method-options { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.concept-dialog .contact-option { display:flex; align-items:center; gap:8px; min-height:48px; padding:10px 12px; margin:0; border:1px solid #d9d0c5; border-radius:6px; font-size:14px; cursor:pointer; }
.concept-dialog .contact-option:has(input:checked) { border-color:#9d1c27; color:#9d1c27; background:#f8f3e9; }
.concept-dialog .contact-option input { flex:none; width:16px; height:16px; min-height:0; margin:0; padding:0; accent-color:#9d1c27; }
.concept-dialog .contact-hint { font-size:13px; margin:7px 0 0; }
.concept-dialog .concept-submit { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:48px; margin-top:16px; border:0; border-radius:6px; background:#9d1c27; color:#fffdf8; font:600 16px 'Source Sans 3',sans-serif; cursor:pointer; }
.concept-dialog .concept-submit:hover { background:#881722; }
.concept-dialog .concept-submit:disabled { opacity:.65; cursor:wait; }
.concept-dialog .waitlist-trap { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.concept-dialog .concept-close { position:absolute; top:8px; right:8px; width:44px; height:44px; display:grid; place-items:center; border:0; border-radius:6px; background:transparent; color:#6e655e; font:28px/1 sans-serif; cursor:pointer; }
.concept-dialog .concept-close:hover { background:#f8f3e9; }
.concept-dialog .concept-result { margin:14px 0 0; }
.concept-dialog :focus-visible { outline:2px solid #9d1c27; outline-offset:3px; }
.concept-dialog h2:focus { outline:0; }
@media(max-width:480px) {
  .concept-dialog { padding:28px 22px; }
  .concept-dialog h2 { font-size:33px; }
  .concept-dialog .contact-option { padding-inline:10px; }
}
@media(max-width:380px) {
  .concept-dialog .waitlist-profile { grid-template-columns:1fr; gap:16px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}
