.sneng-form{
  --form-ink:var(--sn-color-ink);
  --form-muted:var(--sn-color-muted);
  --form-brand:var(--sn-color-brand-700);
  --form-line:var(--sn-color-border-strong);
  --form-danger:var(--sn-color-danger);
  margin:0;
}
.sneng-form fieldset{margin:0;padding:0;border:0}
.sneng-form .screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sneng-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.sneng-form-field{display:grid;align-content:start;gap:7px;margin:0}
.sneng-form-field--full{grid-column:1/-1}
.sneng-form-label,.sneng-form-field>label,.sneng-form-field>span:first-child{display:block;margin:0;color:var(--form-ink);font-size:.82rem;font-weight:800;line-height:1.45}
.sneng-form-control,
.sneng-form :is(input[type="text"],input[type="email"],input[type="tel"],input[type="date"],select,textarea){
  width:100%;
  min-height:46px;
  box-sizing:border-box;
  padding:11px 12px;
  border:1px solid var(--form-line);
  border-radius:8px;
  background:#fff;
  color:var(--form-ink);
  font:inherit;
  line-height:1.4;
  transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}
.sneng-form select{appearance:auto}
.sneng-form textarea{min-height:150px;resize:vertical;line-height:1.65}
.sneng-form-control:focus,
.sneng-form :is(input[type="text"],input[type="email"],input[type="tel"],input[type="date"],select,textarea):focus{
  border-color:var(--form-brand);
  box-shadow:0 0 0 3px rgba(122,23,48,.10);
  outline:0;
}
.sneng-form [aria-invalid="true"]{border-color:var(--form-danger)!important;background:#fffafa}
.required-label,.optional-label,.sneng-form-field b,.sneng-form-field em{margin-left:4px;font-size:.67rem;font-style:normal;font-weight:800}
.required-label,.sneng-form-field b{color:var(--form-brand)}
.optional-label,.sneng-form-field em{color:var(--form-muted);font-weight:600}
.field-help,.sneng-form-field small{display:block;margin:0;color:var(--form-muted);font-size:.75rem;line-height:1.55}
.field-error,.form-error{display:block;margin:0;color:#a12438;font-size:.75rem;font-weight:750;line-height:1.45}
.sneng-hp,.phone-hp{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important}

.contact-panel{display:grid;gap:18px}
.contact-optional-details{margin:0;border:1px solid var(--sn-color-border);border-radius:10px;background:#fbfaf9}
.contact-optional-details summary{cursor:pointer;padding:14px 16px;font-weight:800;list-style:none}
.contact-optional-details summary::-webkit-details-marker{display:none}
.contact-optional-details summary:after{content:'＋';float:right;color:var(--form-brand)}
.contact-optional-details[open] summary:after{content:'−'}
.contact-optional-details summary span{margin-left:6px;color:var(--form-muted);font-weight:500}
.contact-optional-details__body{display:grid;gap:18px;padding:4px 16px 16px}

.sneng-form-choice{display:flex;flex-wrap:wrap;gap:10px 18px;margin:0!important;padding:14px 0 0!important;border-top:1px solid var(--sn-color-border)!important}
.sneng-form-choice legend{width:100%;margin:0 0 2px;font-size:.84rem;font-weight:800}
.sneng-form-choice label{display:flex;align-items:flex-start;gap:7px;margin:0;font-size:.82rem;font-weight:500;line-height:1.5}
.sneng-form-choice input{width:17px!important;height:17px;min-height:0!important;margin:2px 0 0;padding:0}

.sneng-form-consent{display:flex!important;align-items:flex-start;gap:10px;margin:0!important;font-size:.82rem!important;font-weight:500!important;line-height:1.65}
.sneng-form-consent input{width:18px!important;height:18px;min-height:0!important;margin:3px 0 0!important;padding:0;flex:0 0 auto}
.sneng-form-submit{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0!important;padding-top:18px;border-top:1px solid var(--sn-color-border)}
.sneng-form-submit p{max-width:35em;margin:0;color:var(--form-muted);font-size:.75rem;line-height:1.55}
.sneng-form-submit .button{flex:0 0 auto;min-height:46px}

.contact-danger-note,.phone-reservation-danger{
  margin:0;
  padding:14px 16px;
  border:0;
  border-left:4px solid #9a5b00;
  border-radius:0;
  background:#fff8e8;
}
.contact-danger-note strong,.phone-reservation-danger strong{display:block;font-size:.84rem}
.contact-danger-note p,.phone-reservation-danger p{margin:4px 0 0;color:#6c5730;font-size:.76rem;line-height:1.6}

.form-status,.contact-error-summary,.phone-reservation-system-error{margin:0 0 16px;padding:13px 15px;border-radius:8px}
.form-status--success{background:#edf8f2;border:1px solid #b7ddc8}
.form-status--error,.contact-error-summary,.phone-reservation-system-error{background:#fff1f3;border:1px solid #d8a5ad;color:#8a2134}
.contact-complete h2{margin:0;font-size:1.65rem}
.contact-complete p{color:var(--form-muted)}
.contact-receipt strong{color:var(--form-ink)}

@media(max-width:720px){
  .sneng-form-grid{grid-template-columns:1fr}
  .sneng-form-field--full{grid-column:auto}
  .sneng-form :is(input,select,textarea){font-size:16px}
  .sneng-form-submit{display:grid}
  .sneng-form-submit .button{width:100%;justify-content:center}
}
