
.form-card {
  width: 100%; max-width: 480px; margin-inline: auto;
  box-sizing: border-box; position: relative; overflow: visible;
  background: #fff; border-radius: var(--r-xl); box-shadow: var(--sh-form);
  text-align: left;
}
@media (min-width: 1025px) {
  .form-card { max-width: 420px; }
}

.form-card .form-head { background: linear-gradient(135deg, var(--forest) 0%, var(--emerald) 100%); padding: 22px 28px 18px; text-align: center; border-radius: var(--r-xl) var(--r-xl) 0 0; }
.form-card .form-title { font-family: var(--fd); font-size: 1.25rem; font-weight: 800; color: #fff; letter-spacing: 0; line-height: 1.3; margin: 0 0 3px; }
.form-card .form-sub { font-size: .8rem; color: rgba(255,255,255,.6); margin: 0; }
.form-card .form-prog { display: flex; align-items: flex-start; justify-content: center; gap: 0; margin-top: 18px; }
.form-card .pd { width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.14); border: 2px solid rgba(255,255,255,.25); display: flex; align-items: center; justify-content: center; font-family: var(--fd); font-size: .78rem; font-weight: 800; color: rgba(255,255,255,.4); transition: .22s; }
.form-card .pd.on { background: var(--orange); border-color: var(--orange); color: #fff; }
.form-card .pd.dn { background: var(--mint); border-color: var(--mint); color: #fff; }
.form-card .pl { font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: rgba(255,255,255,.38); white-space: nowrap; transition: .22s; margin-top: 5px; }
.form-card .pl.on { color: rgba(255,255,255,.9); }
.form-card .pline { width: 38px; height: 2px; background: rgba(255,255,255,.15); margin: 0 3px 20px; flex-shrink: 0; }

.form-card .form-body { padding: 24px 26px; text-align: left; }
.form-card .fstep { display: none; }
.form-card .fstep.on { display: block; }
.form-card .step-h { font-family: var(--fd); font-size: 1.2rem; font-weight: 800; color: var(--ink); letter-spacing: 0; line-height: 1.3; margin: 0 0 4px; }
.form-card .step-s { font-size: .84rem; color: var(--muted); margin: 0 0 16px; }
.form-card .addr-ok { display: flex; align-items: center; gap: 8px; padding: 9px 13px; background: var(--mint-lt); border: 1px solid rgba(0,196,140,.25); border-radius: var(--r-sm); margin-bottom: 13px; font-size: .82rem; font-weight: 600; color: var(--emerald); }

.form-card #addr-element-wrap {
  position: relative; display: block; width: 100%;
  margin: 0 0 11px; padding: 0; z-index: 20;
  background: none; border: 0; border-radius: var(--r-md);
  box-shadow: none; overflow: visible; min-height: 0; animation: none;
}
.form-card #addr-input {
  display: block; width: 100%; min-height: 52px; box-sizing: border-box;
  padding: 14px 44px 14px 15px; margin: 0;
  font-family: var(--fd); font-size: 1rem; line-height: 1.4; letter-spacing: -.01em;
  color: var(--ink); background: #FFFFFF; color-scheme: light;
  border: 2px solid #94B0A2; border-radius: var(--r-md); outline: none;
  box-shadow: inset 0 1px 3px rgba(0,0,0,.06); transition: border-color .18s, box-shadow .18s;
  -webkit-appearance: none; appearance: none;
}
.form-card #addr-input[hidden] { display: none; }
.form-card #addr-input::placeholder { color: var(--muted); opacity: 1; }
.form-card #addr-input:focus { border-color: var(--forest); box-shadow: inset 0 1px 3px rgba(0,0,0,.06), 0 0 0 3px rgba(11,61,46,.07); }
.form-card #addr-input.err { border-color: #ef4444; box-shadow: 0 0 0 3px rgba(239,68,68,.1); }
.form-card gmp-place-autocomplete {
  display: block; width: 100%; min-height: 52px; box-sizing: border-box;
  color-scheme: light; background-color: #FFFFFF; color: var(--ink);
  border: 2px solid #94B0A2; border-radius: var(--r-md);
  font-family: var(--fd); letter-spacing: -.01em;
}

.form-card gmp-place-autocomplete.cwc-pac-pending { position: absolute; top: 0; left: 0; opacity: 0; pointer-events: none; }
.form-card gmp-place-autocomplete:focus-within { border-color: var(--forest); box-shadow: 0 0 0 3px rgba(11,61,46,.07); }
.form-card gmp-place-autocomplete.err { border-color: #ef4444; box-shadow: 0 0 0 3px rgba(239,68,68,.1); }
.form-card .addr-clear {
  display: none; position: absolute; top: 50%; right: 10px; transform: translateY(-50%);
  width: 28px; height: 28px; padding: 0; margin: 0; border: none; border-radius: 50%;
  background: rgba(0,0,0,.06); color: var(--muted); cursor: pointer; z-index: 2;
  align-items: center; justify-content: center; transition: background .15s, color .15s;
  -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.form-card .addr-clear:hover, .form-card .addr-clear:active { background: rgba(0,0,0,.12); color: var(--ink); }
.form-card .addr-clear svg { pointer-events: none; }
.form-card .addr-err { font-size: .8rem; color: #ef4444; font-weight: 600; margin: 6px 0 0; line-height: 1.4; }
@keyframes aw-nudge { 0%,100% { box-shadow: none; } 30% { box-shadow: 0 0 0 4px rgba(255,92,40,.3); } 60% { box-shadow: 0 0 0 4px rgba(255,92,40,.2); } 90% { box-shadow: none; } }
.form-card #addr-element-wrap.nudge { animation: aw-nudge .8s ease; }

.form-card .fw { margin-bottom: 13px; }
.form-card .fl { display: block; font-family: var(--fd); font-size: .78rem; font-weight: 700; color: var(--ink); margin: 0 0 5px; letter-spacing: -.01em; text-transform: none; }
.form-card .freq { color: #ef4444; margin-left: 2px; }
.form-card .fi { width: 100%; box-sizing: border-box; padding: 12px 13px; font-family: inherit; font-size: .95rem; border: 2px solid var(--bdr-lt); border-radius: var(--r-sm); background: var(--page); color: var(--ink); outline: none; transition: .18s; box-shadow: none; -webkit-appearance: none; appearance: none; }
.form-card .fi:focus { border-color: var(--forest); background: #fff; box-shadow: 0 0 0 3px rgba(11,61,46,.07); }
.form-card .fi.err { border-color: #ef4444; }
.form-card .fi.ok { border-color: var(--mint); }
.form-card textarea.fi { resize: vertical; min-height: 70px; line-height: 1.5; }
.form-card .fsel { appearance: none; background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%235C7A6A' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 13px center; padding-right: 38px; }
.form-card .hp-trap { position: absolute; left: -9999px; top: -9999px; width: 1px; height: 1px; opacity: 0; overflow: hidden; pointer-events: none; z-index: -1; }

.form-card .choices { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.form-card .ch { position: relative; }
.form-card .ch input { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.form-card .chl { display: flex; align-items: center; gap: 7px; padding: 10px 11px; background: var(--page); border: 2px solid var(--bdr-lt); border-radius: var(--r-sm); font-size: .82rem; font-weight: 600; color: var(--body); cursor: pointer; transition: .14s; line-height: 1.3; }
.form-card .chl:hover { border-color: var(--forest); background: #fff; }
.form-card .ch input:checked + .chl { border-color: var(--forest); background: rgba(11,61,46,.05); color: var(--forest); font-weight: 700; }
.form-card .cho { font-size: .9rem; flex-shrink: 0; line-height: 1; }
.form-card .offer-chks { display: flex; flex-direction: column; gap: 5px; }
.form-card .oc { position: relative; }
.form-card .oc input { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.form-card .ocl { display: flex; align-items: flex-start; gap: 9px; padding: 10px 12px; background: var(--page); border: 2px solid var(--bdr-lt); border-radius: var(--r-sm); cursor: pointer; transition: .14s; }
.form-card .ocl:hover { border-color: var(--forest); background: #fff; }
.form-card .oc input:checked + .ocl { border-color: var(--mint); background: var(--mint-lt); }
.form-card .oc-box { width: 17px; height: 17px; border-radius: 4px; border: 2px solid var(--bdr); background: #fff; flex-shrink: 0; margin-top: 2px; display: flex; align-items: center; justify-content: center; transition: .14s; }
.form-card .oc-box svg { display: none; }
.form-card .oc input:checked + .ocl .oc-box { background: var(--mint); border-color: var(--mint); color: #fff; }
.form-card .oc input:checked + .ocl .oc-box svg { display: block; }
.form-card .oc-main { font-size: .83rem; font-weight: 700; color: var(--ink); letter-spacing: -.01em; font-family: var(--fd); }
.form-card .oc-sub { font-size: .73rem; color: var(--muted); line-height: 1.4; margin-top: 1px; }

.form-card .optin-wrap { margin-top: 16px; margin-bottom: 6px; position: relative; }
.form-card .optin-label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; padding: 12px 14px; background: var(--page); border: 2px solid var(--bdr-lt); border-radius: var(--r-sm); transition: border-color .14s, background .14s; }
.form-card .optin-label:hover { border-color: var(--forest); background: #fff; }
.form-card .optin-label.err { border-color: #ef4444; box-shadow: 0 0 0 3px rgba(239,68,68,.1); }
.form-card .optin-box { width: 20px; height: 20px; min-width: 20px; border-radius: 5px; border: 2px solid var(--bdr); background: #fff; display: flex; align-items: center; justify-content: center; margin-top: 1px; transition: .14s; flex-shrink: 0; }
.form-card .optin-box svg { display: none; }
.form-card .optin-wrap input { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.form-card .optin-wrap input:checked + .optin-label { border-color: var(--mint); background: var(--mint-lt); }
.form-card .optin-wrap input:checked + .optin-label .optin-box { background: var(--mint); border-color: var(--mint); color: #fff; }
.form-card .optin-wrap input:checked + .optin-label .optin-box svg { display: block; }
.form-card .optin-text { font-size: .72rem; color: var(--muted); line-height: 1.55; margin: 0; }
.form-card .optin-text a { color: var(--forest); text-decoration: underline; font-weight: 600; }
.form-card .optin-text a:hover { color: var(--emerald); }

.form-card .fnav { display: flex; gap: 8px; margin-top: 14px; }
.form-card .fbk { padding: 11px 16px; font-family: var(--fd); font-weight: 700; font-size: .83rem; color: var(--muted); background: var(--page); border: 2px solid var(--bdr-lt); border-radius: var(--r-sm); transition: .14s; letter-spacing: -.01em; cursor: pointer; }
.form-card .fbk:hover { border-color: var(--forest); color: var(--forest); }
.form-card .fnt { flex: 1; padding: 11px 16px; font-family: var(--fd); font-weight: 800; font-size: .92rem; color: #fff; background: var(--orange); border: none; border-radius: var(--r-sm); display: flex; align-items: center; justify-content: center; gap: 7px; letter-spacing: -.01em; transition: .15s var(--ease); cursor: pointer; }
.form-card .fnt:hover { background: var(--orange-dk); transform: translateY(-2px); }
.form-card .faddrb { width: 100%; padding: 15px; font-family: var(--fd); font-weight: 800; font-size: .98rem; color: #fff; background: var(--orange); border: none; border-radius: var(--r-md); display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 11px; opacity: 1; box-shadow: 0 4px 20px var(--orange-glow); transition: background .15s, transform .15s var(--ease), box-shadow .15s; cursor: pointer; }
.form-card .faddrb:hover { background: var(--orange-dk); transform: translateY(-2px); }
.form-card .fsub { width: 100%; padding: 15px; font-family: var(--fd); font-weight: 800; font-size: .98rem; color: #fff; background: var(--forest); border: none; border-radius: var(--r-md); display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 14px; box-shadow: 0 4px 20px rgba(11,61,46,.28); transition: .15s var(--ease); cursor: pointer; }
.form-card .fsub:hover { background: var(--forest-deep); transform: translateY(-2px); }
.form-card .fdsc { font-size: .72rem; color: var(--muted); text-align: center; margin: 8px 0 0; line-height: 1.5; }

@media (max-width: 640px) {
  .form-card .form-body { padding: 18px 14px; }
  .form-card .form-head { padding: 18px 14px 14px; }
  .form-card .choices { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .form-card .form-body { padding: 14px 12px; }
  .form-card .form-head { padding: 14px 12px 12px; }
}
@media (max-width: 380px) {
  .form-card .form-body { padding: 12px 10px; }
  .form-card .form-head { padding: 12px 10px 10px; }
}
