/* Gift artwork adds color while the page retains Diamond Grin's shared theme. */
.gift-page .gift-intro { padding:38px 0 26px; }
.gift-page .gift-intro .eyebrow { font-size:.8125rem; margin-bottom:12px; }
.gift-page .gift-intro h1 { font-size:clamp(2.3rem,4.4vw,3.65rem); margin-bottom:18px; }
.gift-page .gift-intro .hero-lede { max-width:680px; line-height:1.65; margin-bottom:0; }
.gift-page .gift-builder-grid { grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:38px; }
.gift-page .gift-preview-column { padding-top:0; }
.gift-page .gift-form-panel { padding:30px; }
.gift-page .form-intro { color:var(--muted); }
.gift-gallery-heading { display:flex; align-items:baseline; flex-wrap:wrap; justify-content:space-between; gap:8px 16px; margin-bottom:15px; }
.gift-gallery-heading h2 { font-family:var(--sans); font-size:1.05rem; font-weight:600; letter-spacing:0; line-height:1.5; margin:0; }
.gift-gallery-heading>span { font-size:.875rem; color:var(--muted); }
.gift-art-stage { margin:0; aspect-ratio:8/5; border-radius:14px; background:white; overflow:hidden; box-shadow:0 12px 28px #20575912; border:1px solid #20575915; }
.gift-art-stage img { width:100%; height:100%; display:block; object-fit:contain; touch-action:pan-y; user-select:none; }
.gift-gallery-navigation { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:18px 0 10px; }
.gift-gallery-control { background:white; color:var(--accent-dark); border:1px solid var(--line); border-radius:8px; min-height:44px; padding:8px 12px; font-weight:600; font-size:.875rem; flex-shrink:0; }
.gift-gallery-control:hover { background:var(--blush); border-color:var(--accent); }
.gift-design-caption { flex:1; text-align:center; font-size:.875rem; line-height:1.5; }
.gift-design-caption strong,.gift-design-caption span { display:block; }
.gift-design-caption span { color:var(--muted); margin-top:2px; }
.gift-design-thumbnails { display:flex; gap:10px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; padding:6px 4px 14px; scrollbar-width:thin; scrollbar-color:#96b4af transparent; }
.gift-design-thumbnail { display:block; flex:0 0 108px; min-width:0; text-decoration:none; border:2px solid transparent; border-radius:9px; padding:4px; scroll-snap-align:center; color:var(--ink); }
.gift-design-thumbnail img { width:100%; aspect-ratio:8/5; height:auto; display:block; border-radius:5px; }
.gift-design-thumbnail span { display:block; font-size:.875rem; line-height:1.4; padding:6px 1px 2px; text-align:center; }
.gift-design-thumbnail[aria-current="true"] { border-color:var(--accent); background:white; }
.gift-design-thumbnail:hover { background:white; }
.gift-design-note { margin:4px 0 0; }
.gift-request-preview { border:1px solid var(--line); background:var(--cream); border-radius:10px; padding:18px; margin:24px 0; font-size:.875rem; overflow-wrap:anywhere; }
.gift-request-preview-heading { display:flex; justify-content:space-between; align-items:baseline; gap:12px; border-bottom:1px solid var(--line); padding-bottom:10px; margin-bottom:12px; }
.gift-request-preview-heading strong { color:var(--accent-dark); font-size:1.45rem; }
.gift-request-preview p { margin:8px 0; }
.gift-request-preview p:last-child { color:var(--muted); }
.gift-page .gift-steps { margin-top:26px; }
.gift-page .gift-steps li,.gift-page .field-hint,.gift-page .gift-amount-options legend,.gift-page .gift-amount-options small { font-size:.875rem; }
.gift-page .gift-steps li { line-height:1.65; }
.gift-page .gift-amount-options label>span { padding:14px 6px; font-size:1.2rem; }
.square-gift-chooser { border:0; padding:0; margin:24px 0 16px; min-width:0; }
.square-gift-chooser legend { font-size:1rem; font-weight:600; }
.square-gift-chooser legend span { font-weight:400; color:var(--muted); }
.square-gift-values { margin:14px 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.square-gift-values label { position:relative; cursor:pointer; min-width:0; }
.square-gift-values label:last-child { grid-column:1 / -1; }
.square-gift-values input { position:absolute; width:1px; height:1px; opacity:0; }
.square-gift-values label>span { display:block; padding:14px 8px; text-align:center; border:2px solid var(--line); border-radius:10px; background:white; }
.square-gift-values input:checked+span { border-color:var(--accent); background:#e9f5f2; }
.square-gift-values input:focus-visible+span { outline:3px solid var(--accent-dark); outline-offset:3px; }
.square-gift-values strong { display:block; color:var(--accent-dark); font-size:1.25rem; }
.square-gift-values small { display:block; color:var(--muted); font-size:.875rem; line-height:1.45; }
.square-amount-note { padding:14px 16px; border-left:3px solid var(--accent); background:#f2f8f6; font-size:.9375rem; }
@media (max-width:850px) {
  .gift-page .gift-builder-grid { grid-template-columns:minmax(0,1fr); gap:28px; max-width:640px; }
  .gift-page .gift-preview-column { position:static; }
  .gift-page .gift-intro { padding:25px 0 22px; }
  .gift-page .gift-intro h1 { font-size:clamp(2.2rem,7vw,3.2rem); }
  .gift-page .gift-intro h1 em { display:block; }
  .gift-page .gift-form-panel { padding:28px; }
  .gift-page .gift-steps { margin-top:20px; }
}
@media (max-width:450px) {
  .gift-page .gift-builder { padding-top:12px; }
  .gift-gallery-navigation { gap:7px; }
  .gift-gallery-control { padding-inline:9px; }
  .gift-design-thumbnail { flex-basis:100px; }
  .gift-page .gift-form-panel { padding:24px 20px; }
}
