/* ---------- claims page (mock-up): proposed layout for the live Gravity Form GF 16 ---------- */
.claims-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.claims-hero .section__lede { margin-bottom: 30px; }
.claims-hero__grid { align-items: start; }

.policy { padding: clamp(22px, 3vw, 34px); border-radius: 22px; background: rgba(244,239,231,.04); box-shadow: inset 0 0 0 1px var(--line); }
.policy__title { font-size: 20px; letter-spacing: -.01em; margin-bottom: 18px; }
.policy__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.policy__list li { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 16px 0; border-top: 1px solid var(--line); }
.policy__list p { margin: 0; line-height: 1.5; }
.policy__k { font: 500 12px/1.6 var(--ff-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--amber); }
.policy__full { border-top: 1px solid var(--line); padding-top: 14px; }
.policy__full summary { cursor: pointer; font-weight: 600; min-height: 32px; }

.claims-body { padding-block: clamp(56px, 7vw, 110px); }
.claims-body__grid { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.ready { position: sticky; top: calc(var(--nav-h) + 24px); padding: 24px; border-radius: 18px; background: var(--paper-2); }
.ready__title { font-size: 20px; letter-spacing: -.01em; margin-bottom: 14px; }
.ready__list { margin: 0 0 16px; padding: 0; list-style: none; display: grid; gap: 10px; }
.ready__list li { position: relative; padding-left: 26px; line-height: 1.4; }
.ready__list li::before { content: ""; position: absolute; left: 0; top: .2em; width: 16px; height: 16px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--ochre); background: radial-gradient(circle, var(--ochre) 0 3px, transparent 3.5px); }
.ready__note { margin: 0; font-size: 14px; color: #5a554d; }

/* the form on paper */
.claim { display: grid; gap: 22px; }
.claim__flag { margin: 0; justify-self: start; font: 500 11px var(--ff-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--confirm-ink); background: var(--confirm-bg); padding: 5px 10px; border-radius: 99px; }
.claim__step { margin: 0; padding: clamp(20px, 2.6vw, 30px); border: 0; border-radius: 20px; background: #fffaf2; box-shadow: 0 1px 0 rgba(32,35,38,.06), inset 0 0 0 1px rgba(32,35,38,.1); display: grid; gap: 18px; min-width: 0; }
.claim__step legend { float: left; width: 100%; display: flex; align-items: center; gap: 12px; font-weight: 700; font-size: 20px; letter-spacing: -.01em; margin-bottom: 4px; }
.claim__step legend + * { clear: both; }
.claim__n { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--ink); color: var(--paper); font: 600 14px var(--ff-mono); flex: none; }
.claim__row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.claim__row--3 { grid-template-columns: 1.4fr .8fr .8fr; }
.claims-page .field label { color: var(--ink); }
.claims-page .field .opt { color: #6e6a63; font-weight: 400; }
.claims-page .field input, .claims-page .field textarea, .claims-page .field select {
  width: 100%; min-height: 48px; padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(32,35,38,.24); background: #fff; color: var(--ink); font: 400 16px/1.4 var(--ff); }
.claims-page .field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 36px; }
.claims-page .field textarea { min-height: 150px; resize: vertical; }
.claims-page .field input:focus-visible, .claims-page .field textarea:focus-visible, .claims-page .field select:focus-visible { outline: 2px solid var(--ochre); outline-offset: 2px; border-color: transparent; }
.claims-page .field [aria-invalid="true"] { border-color: #c2410c; box-shadow: 0 0 0 1px #c2410c; }
.field__hint { margin: 0; font-size: 13px; color: #6e6a63; }
.claim__warn { margin: 0; padding: 12px 14px; border-radius: 12px; background: var(--confirm-bg); color: var(--confirm-ink); font-size: 15px; line-height: 1.45; }

/* photo pickers */
.drop { display: grid; place-items: center; gap: 4px; text-align: center; min-height: 120px; padding: 18px; border-radius: 14px; border: 1.5px dashed rgba(32,35,38,.35); background: #fff; cursor: pointer; }
.drop--small { min-height: 84px; }
.drop:hover { border-color: var(--ochre); background: #fffdf8; }
.drop__big { font-weight: 700; color: var(--ochre-deep); }
.drop__small { font-size: 13px; color: #6e6a63; }
.claims-page .field { position: relative; }
.drop__input { position: absolute; left: 0; top: 0; width: 1px; height: 1px; padding: 0; border: 0; opacity: 0; overflow: hidden; clip-path: inset(50%); } /* real file input, visually hidden; the dashed box is its label */
.drop__input:focus-visible + .drop, .field:focus-within .drop { outline: 2px solid var(--ochre); outline-offset: 2px; }
.drop__files { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.drop__files li { font: 400 13px var(--ff-mono); padding: 4px 10px; border-radius: 99px; background: var(--paper-2); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.drop__files li.is-bad { background: #fde2d4; color: #8a2a06; }
.drop.is-invalid { border-color: #c2410c; }

.claim__trap { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.claim__submit { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.claim__status { margin: 0; min-height: 1.4em; font-size: 15px; }
.claim__status.is-error { color: #a3340a; }
.claim__status.is-ok { color: var(--live-light); }
.claim__small { margin: 0; font-size: 14px; color: #6e6a63; }
.claims-page .nav__claims[aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; }

@media (max-width: 900px) {
  .claims-hero__grid, .claims-body__grid { grid-template-columns: 1fr; }
  .ready { position: static; }
}
@media (max-width: 640px) {
  .claim__row, .claim__row--3 { grid-template-columns: 1fr; }
  .policy__list li { grid-template-columns: 1fr; gap: 4px; }
}
