/* P015 approved form components. Page layouts and submission remain at the call site. */
.kt-form { --form-empty-background:#fff8e5; --form-field-border:#88ab9b; }
.kt-form input[type=radio],.kt-form input[type=checkbox] { width:1.25rem; height:1.25rem; flex-shrink:0; margin:0; accent-color:var(--color-brand-green-darker); }
.kt-form :is(input,textarea,select,button,a,summary):focus-visible { outline:3px solid var(--color-brand-green-darker); outline-offset:3px; }
.kt-form [aria-invalid=true] { border-color:var(--color-state-danger); }
.kt-form [hidden] { display:none !important; }

.kt-form-section { margin:0 0 var(--space-3xl); padding:0 var(--space-xl) var(--space-lg); border-radius:var(--radius-small); border-color:var(--form-field-border); }
.kt-form-section-title { display:flex; align-items:center; gap:var(--space-md); font-size:1.375rem; color:var(--color-surface-base); background:var(--color-brand-green-darker); border-radius:var(--radius-small) var(--radius-small) 0 0; padding:1.25rem 1.75rem; margin:0 calc(-1 * var(--space-xl)) var(--space-lg); }
.kt-form-section-title[data-step]::before { content:attr(data-step); display:grid; place-items:center; width:2.25rem; height:2.25rem; flex-shrink:0; border:1px solid currentColor; border-radius:50%; font-size:1rem; }
.kt-form-section-title .kt-form-badge--optional { margin-left:auto; }
.kt-form-field:last-child { border-bottom:0; }
.kt-form-field { display:grid; grid-template-columns:14rem minmax(0,1fr); gap:var(--space-lg); padding:var(--space-lg) 0; border-bottom:1px solid var(--color-border-muted); }
.kt-form-label { display:flex; align-items:baseline; justify-content:space-between; gap:var(--space-xs); padding-top:.8rem; font-weight:700; font-size:var(--font-size-body); }
.kt-form-badge { display:inline-block; flex-shrink:0; padding:.15rem .45rem; border-radius:var(--radius-xs); background:var(--color-sale-red); color:white; font-size:var(--font-size-caption); font-weight:700; line-height:1.5; vertical-align:middle; }
.kt-form-badge--optional { color:var(--color-text-secondary); background:var(--color-surface-light-gray); }
.kt-form > .kt-form-label { margin-bottom:var(--space-xs); }
.kt-form-control { min-width:0; }
.kt-form-control--short { max-width:18rem; }
.kt-form-control input,.kt-form-control select,.kt-form-control textarea { display:block; width:100%; max-width:100%; min-height:3.25rem; padding:.75rem 1rem; border:1px solid var(--form-field-border); border-radius:var(--radius-xs); background:white; color:var(--color-text-primary); font:inherit; font-size:1rem; line-height:1.5; }
.kt-form-control textarea { resize:vertical; }
.kt-form-hint { margin:.5rem 0 0; font-size:var(--font-size-small); color:var(--color-text-secondary); overflow-wrap:anywhere; }
.kt-form-inquiry { padding:0 0 var(--space-lg); margin:0; border:0; min-width:0; }
.kt-form-inquiry legend { padding:0; margin-bottom:var(--space-md); font-weight:700; }
.kt-form-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-sm); }
.kt-form-choice { display:flex; align-items:center; gap:var(--space-sm); min-height:3.75rem; border:1px solid var(--form-field-border); border-radius:var(--radius-xs); padding:var(--space-md); cursor:pointer; }
.kt-form-choice:has(:checked) { background:var(--color-surface-soft); outline:2px solid var(--color-brand-green-darker); outline-offset:-2px; }
.kt-form-photo { display:flex; flex-direction:column; min-width:0; border:1px solid var(--color-border-muted); border-radius:var(--radius-small); overflow:hidden; }
.kt-form-photo-heading { align-self:stretch; padding:var(--space-lg); display:flex; flex-direction:column; justify-content:center; gap:var(--space-sm); background:var(--color-surface-light-gray); }
.kt-form-photo h4 { margin:0; color:var(--color-text-primary); font-size:1.125rem; line-height:1.6; }
.kt-form-photo-guide summary { cursor:pointer; color:var(--color-brand-green-darker); text-decoration:underline; text-underline-offset:.2em; font-size:var(--font-size-small); }
.kt-form-photo-guide p { margin:var(--space-sm) 0 0; font-size:var(--font-size-small); }
.kt-form-photo-example { align-self:stretch; margin:var(--space-lg) var(--space-md); padding:var(--space-md); background:var(--color-surface-soft); text-align:center; }
.kt-form-photo-example figcaption { margin-top:var(--space-sm); font-size:var(--font-size-small); line-height:1.6; }
.kt-form-photo-upload { align-self:stretch; min-width:0; padding:0 var(--space-md) var(--space-lg); margin-top:auto; text-align:center; }
.kt-form-photo-upload .kt-form-file-button { width:100%; min-height:3.5rem; padding:.75rem; gap:.5rem; font-size:1rem; background:var(--form-empty-background); color:var(--color-text-primary); border-color:var(--form-field-border); opacity:1; }
.kt-form-file-button .material-symbols-outlined { font-size:24px; color:var(--color-brand-green-darker); }
.kt-form-photo-upload .kt-form-hint { font-size:var(--font-size-small); }
.kt-form-consent { display:flex; flex-direction:column; align-items:center; gap:var(--space-md); padding:var(--space-xl) var(--space-md); border-top:1px solid var(--color-border-muted); text-align:center; }
.kt-form-consent p { margin:0; }
.kt-form-consent label { display:flex; align-items:center; gap:var(--space-sm); text-align:left; min-height:3rem; cursor:pointer; }
.kt-form-policy { font-size:var(--font-size-small); color:var(--color-brand-green-darker); }
.kt-form-error { color:var(--color-state-danger); font-size:var(--font-size-small); margin:.5rem 0 0; font-weight:700; }
@media (max-width:767px) {
 .kt-form-section { padding:0 var(--space-md) var(--space-lg); } }
@media (max-width:767px) {
 .kt-form-field { grid-template-columns:minmax(0,1fr); gap:var(--space-sm); } }
@media (max-width:767px) {
 .kt-form-label { justify-content:flex-start; gap:var(--space-sm); padding:0; } }
@media (max-width:767px) {
 .kt-form-control--short { max-width:none; } }
@media (max-width:767px) {
 .kt-form-choices { grid-template-columns:minmax(0,1fr); } }
@media (max-width:767px) {
 .kt-form-section-title { font-size:1.25rem; padding:var(--space-md); margin-inline:calc(-1 * var(--space-md)); gap:var(--space-sm); } }
@media (max-width:767px) {
 .kt-form-consent { padding-inline:0; } }
.kt-form-section-title[tabindex] { scroll-margin-top:8rem; }
.kt-form-section-title[tabindex]:focus-visible { outline:3px solid var(--color-brand-green-darker); outline-offset:4px; }
.kt-form-control :is(input,select,textarea).is-empty { background:var(--form-empty-background); }
.kt-form-choice { background:var(--color-surface-base); border-radius:var(--radius-small); box-shadow:var(--shadow-button); transition:background var(--motion-fast), transform var(--motion-fast); }
.kt-form-inquiry:not(:has(input:checked)) .kt-form-choice { background:var(--form-empty-background); }
.kt-form-choice:has(:checked) { background:var(--color-surface-soft); box-shadow:var(--shadow-button-pressed); }
.kt-form-choice:active { transform:translateY(2px); }
.kt-form-choice:has(:focus-visible) { outline:3px solid var(--color-brand-green-darker); outline-offset:3px; }
.kt-form-consent label { padding:var(--space-md); border:1px solid var(--color-border-strong); border-radius:var(--radius-small); background:var(--form-empty-background); }
.kt-form-consent label:has(:checked) { background:var(--color-surface-soft); }
@media (hover:hover) { .kt-form-choice:hover { border-color:var(--color-brand-green-darker); background:var(--color-surface-soft); } }
.kt-form .kt-form-control select{appearance:none;-webkit-appearance:none;padding-right:3.5rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 9 7 7 7-7' fill='none' stroke='%23006b45' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:24px 24px;background-position:right 16px center}
.kt-form-photo-example > img {display:block;width:100%;max-width:200px;height:auto;margin-inline:auto;}
.kt-form .kt-form-control :is(input,select,textarea):disabled { background:var(--color-surface-light-gray);color:var(--color-text-secondary);cursor:not-allowed; }
.kt-form-choice:has(:disabled),.kt-form-consent label:has(:disabled) {cursor:not-allowed;opacity:.6;}
.kt-form-file-button:disabled {cursor:not-allowed;}
@media(prefers-reduced-motion:reduce){.kt-form-choice{transition:none}.kt-form-choice:active{transform:none}}
