/* Selected letter layout, scoped to the gift workflow. */
.gift-dialog { width:min(1240px, calc(100vw - 40px)); max-width:1240px; }
.gift-page { max-width:1240px; }
.gift-builder-grid { grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:38px; }
.gift-builder .gift-form { background:var(--color-warm-surface); border-radius:14px; }
.gift-form .gift-steps { margin:-28px -28px 26px; padding:18px; background:var(--color-brand-yellow-soft); border-radius:14px 14px 0 0; }
.gift-steps button { display:flex; align-items:center; gap:6px; min-height:44px; border:0; border-radius:8px; padding:5px; background:transparent; color:var(--color-text-muted-dark); font:500 12px var(--font-family-base); cursor:pointer; }
.gift-steps button:hover { background:var(--color-white); }
.gift-steps button[aria-current] { color:var(--color-brand-brown); font-weight:700; }
.gift-steps button[aria-current] span { box-shadow:0 0 0 3px var(--color-white); }
.gift-letter { background:var(--color-white); border:1px solid var(--color-warm-border); border-top:5px solid var(--color-brand-yellow); border-radius:14px; color:var(--color-brand-brown); box-shadow:0 12px 34px rgba(84,53,22,.07); min-width:0; overflow-wrap:anywhere; }
.gift-letter-top { display:flex; justify-content:space-between; align-items:start; padding:26px 30px 0; gap:14px; }
.gift-letter-logo { display:block; width:150px; height:auto; max-width:45%; min-width:0; margin-top:8px; object-fit:contain; }
.gift-letter-qr { display:block; width:148px; height:148px; flex-shrink:0; text-decoration:none; }
.gift-letter-qr svg { display:block; width:100%; height:100%; }
.gift-letter-body { padding:0 34px 28px; margin-top:-19px; }
.gift-letter-body > .gift-eyebrow { max-width:calc(100% - 150px); font-size:8px; line-height:1.65; min-height:18px; text-transform:uppercase; margin:0; }
.gift-letter h2 { margin:22px 0; font-size:clamp(28px,2.7vw,35px); font-weight:600; line-height:1.2; letter-spacing:-.045em; white-space:pre-wrap; color:var(--color-brand-brown); }
.gift-heading-ending { white-space:nowrap; }
.gift-heading-ending .dot { color:var(--color-brand-orange); }
.gift-letter .gift-letter-message { font-size:14px; line-height:1.85; white-space:pre-wrap; padding:0; border:0; margin:0; }
.gift-letter-signature { font-size:13px; line-height:1.8; margin:22px 0 27px; white-space:pre-wrap; }
.gift-letter strong { font-weight:750; }
.gift-letter-memory { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); gap:24px; padding-top:24px; border-top:1px solid var(--color-warm-border); align-items:center; }
.gift-letter-photo { margin:0; padding:9px 9px 11px; border:1px solid var(--color-warm-border); background:var(--color-white); box-shadow:0 5px 15px rgba(84,53,22,.055); transform:rotate(-3deg); min-width:0; }
.gift-letter-photo img { display:block; width:100%; height:auto; object-fit:contain; }
.gift-letter-photo figcaption { font-size:8px; line-height:1.5; margin-top:10px; text-align:center; }
.gift-letter-photo figcaption span { color:var(--color-brand-orange); }
.gift-letter-story h3 { font-size:19px; line-height:1.35; font-weight:600; margin:8px 0 14px; color:var(--color-brand-brown); }
.gift-letter-story p { font-size:11px; line-height:1.6; color:var(--color-text-muted-dark); margin:0 0 8px; }
.gift-letter-story a { display:inline-block; color:var(--color-brand-brown); font-size:12px; padding:10px 0; text-underline-offset:4px; }
.gift-letter-story .gift-letter-story-detail { font-size:13px; line-height:1.75; margin-top:14px; }
.gift-letter-footer { margin:30px -34px -28px; padding:26px 34px; background:var(--color-warm-surface); border-top:1px solid var(--color-warm-border); border-radius:0 0 13px 13px; }
.gift-letter-project { margin:0; font-size:14px; line-height:1.8; }
.gift-letter-project a { color:var(--color-brand-brown); font-weight:650; text-underline-offset:4px; }
.gift-letter-footer a:focus-visible { outline:2px solid var(--color-brand-orange); outline-offset:4px; }
.gift-letter-keepsake { margin-top:22px; padding-top:22px; border-top:1px solid var(--color-warm-border); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; }
.gift-letter-keepsake h3 { margin:0; font-size:15px; line-height:1.5; font-weight:600; }
.gift-letter-keepsake p { margin:4px 0 0; font-size:12px; line-height:1.6; color:var(--color-text-muted-dark); }
.gift-letter-downloads { display:flex; flex-wrap:wrap; gap:10px; }
.gift-letter-downloads .btn { min-height:44px; padding:10px 14px; font-size:12px; line-height:1.5; background:var(--color-white); }
.gift-letter.is-landscape .gift-letter-memory { grid-template-columns:1fr; }
.gift-letter.is-landscape .gift-letter-photo { max-width:370px; width:100%; margin:auto; }
.gift-letter .is-missing::before { content:'Фото пока недоступно'; display:block; padding:30px 10px; font-size:12px; }
.gift-letter [hidden] { display:none !important; }
.gift-form .title-label { margin-bottom:8px; }
.gift-form #heading { display:block; width:100%; border:1px solid var(--color-neutral-border-soft); background:var(--color-white); border-radius:var(--radius-lg); padding:15px 17px; font:500 16px/1.55 var(--font-family-base); min-height:79px; resize:vertical; box-sizing:border-box; }
.gift-form .field-meta { display:flex; justify-content:space-between; gap:12px; align-items:start; margin-top:7px; font-size:11px; color:var(--color-text-muted-dark); line-height:1.6; }
.gift-form .field-meta small { font-size:11px; max-width:220px; }
.gift-form .field-meta output { text-align:right; flex-shrink:0; font-variant-numeric:tabular-nums; background:var(--color-brand-yellow-soft); padding:4px 8px; border-radius:8px; color:var(--color-brand-brown); }
.gift-form .field-meta output span { display:block; color:var(--color-text-muted-dark); }
.gift-form .field-meta output.near-limit { color:var(--color-brand-orange-dark); font-weight:600; }
.gift-form .rich-field { margin-top:21px; }
.gift-form .rich-field > label { display:block; font-size:14px; font-weight:600; margin-bottom:8px; }
.gift-form .rich-box { display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--color-neutral-border-soft); border-radius:var(--radius-lg); background:var(--color-white); }
.gift-form .rich-box:focus-within, .gift-form #heading:focus-visible { outline:2px solid var(--color-brand-yellow); outline-offset:2px; }
.gift-form .rich-toolbar.ql-toolbar.ql-snow { order:2; border:0; border-top:1px solid var(--color-warm-border); padding:7px 10px; display:flex; align-items:center; gap:12px; font-family:var(--font-family-base); }
.gift-form .rich-toolbar.ql-toolbar.ql-snow button { width:auto; min-width:102px; min-height:44px; height:auto; display:flex; align-items:center; justify-content:center; gap:9px; padding:9px 13px; border:1px solid var(--color-warm-border); border-radius:9px; background:var(--color-brand-yellow-soft); color:var(--color-brand-brown); font:600 11px var(--font-family-base); }
.gift-form .rich-toolbar.ql-toolbar.ql-snow button b { font-size:17px; font-weight:800; }
.gift-form .rich-toolbar.ql-toolbar.ql-snow button:hover, .gift-form .rich-toolbar.ql-toolbar.ql-snow button.ql-active { background:var(--color-brand-yellow); color:var(--color-brand-brown); }
.gift-form .rich-toolbar > span { font-size:10px; line-height:1.5; color:var(--color-text-muted-dark); }
.gift-form .rich-box .ql-container.ql-snow { border:0; font-family:var(--font-family-base); font-size:14px; }
.gift-form .rich-box .ql-editor { min-height:126px; padding:15px 17px; line-height:1.75; overflow-wrap:anywhere; }
.gift-form .signature-box .ql-editor { min-height:56px; }
.gift-form .ql-editor strong { font-weight:700; }
.gift-form .limit-status { color:var(--color-brand-orange-dark); font-size:12px; margin:10px 0 0; }
.gift-form .limit-status:empty { display:none; }
.gift-recipient > .gift-letter { max-width:740px; margin:auto; }
.gift-letter--donation { container-type:inline-size; }
.gift-letter--donation .gift-letter-memory, .gift-letter--donation.is-landscape .gift-letter-memory { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:30px; padding-top:30px; }
.gift-letter--donation .gift-letter-story { min-width:0; padding:24px; border-radius:14px; background:var(--color-brand-yellow-soft); }
.gift-letter--donation .gift-letter-dedication { color:var(--color-brand-orange-dark); font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.gift-letter--donation .gift-letter-amount { font-size:clamp(36px,7cqw,56px); font-weight:650; letter-spacing:-.055em; line-height:1.15; margin:12px 0 18px; font-variant-numeric:tabular-nums; }
.gift-letter--donation .gift-letter-donation-fact { font-size:14px; line-height:1.8; color:var(--color-brand-brown); font-weight:550; }
.gift-letter-purpose { border-top:1px solid var(--color-warm-border); margin-top:20px; padding-top:18px; }
.gift-letter--donation .gift-letter-purpose > p { font-size:10px; }
.gift-letter--donation .gift-letter-purpose h3 { font-size:17px; line-height:1.5; margin:6px 0; }
.gift-letter--donation .gift-letter-story a { min-height:44px; padding:12px 0; margin-top:10px; font-size:13px; }
@container (max-width:600px) {
 .gift-letter--donation .gift-letter-memory { grid-template-columns:1fr; gap:26px; }
 .gift-letter--donation.is-landscape .gift-letter-memory { grid-template-columns:1fr; }
 .gift-letter--donation .gift-letter-photo { max-width:290px; width:calc(100% - 12px); margin:auto; }
 .gift-letter--donation .gift-letter-amount { font-size:clamp(36px,13cqw,58px); }
}
@media (max-width:1000px) { .gift-builder-grid { gap:24px; } .gift-letter-top { padding:22px 20px 0; } .gift-letter-body { padding-left:24px; padding-right:24px; } .gift-form .field-meta { flex-wrap:wrap; gap:4px; } .gift-form .field-meta output { margin-left:auto; } }
@media (max-width:800px) { .gift-builder-grid { grid-template-columns:1fr; } .gift-live-preview { position:static; } }
@media (min-width:481px) and (max-width:1000px) { .gift-letter-footer { margin-left:-24px; margin-right:-24px; padding-left:24px; padding-right:24px; } }
@media (max-width:480px) {
 .gift-dialog { width:calc(100vw - 16px); padding:24px 12px; }
 .gift-form .gift-steps { margin:-20px -18px 22px; padding:12px 8px; gap:2px; }
 .gift-steps button { font-size:10px; gap:3px; padding:3px; }
 .gift-steps span { width:22px; height:22px; flex-shrink:0; }
 .gift-letter-top { padding:20px 14px 0; gap:8px; } .gift-letter-logo { width:110px; }
 .gift-letter-body { padding:0 20px 24px; margin-top:-16px; }
 .gift-letter-footer { margin:26px -20px -24px; padding:22px 20px; }
 .gift-letter-downloads { width:100%; }
 .gift-letter-downloads .btn { flex:1 1 100%; }
 .gift-letter-body > .gift-eyebrow { max-width:calc(100% - 145px); font-size:7px; }
 .gift-letter h2 { font-size:28px; } .gift-letter-memory { grid-template-columns:1fr; gap:22px; }
 .gift-letter-photo { max-width:240px; width:calc(100% - 12px); margin:auto; }
 .gift-letter-story h3 { font-size:17px; } .gift-letter-story p { font-size:10px; }
 .gift-form .rich-box .ql-container.ql-snow { font-size:16px; }
 .gift-form .rich-toolbar > span { font-size:9px; }
 .gift-form .field-meta small { max-width:170px; }
}
