/* Gifts inherit the approved homepage palette, typography and controls. */
.site-main.site-main--gifts-page { width:100%; max-width:none; margin:0; padding:0; }
.vv-gifts { background:var(--vv-paper); color:var(--vv-ink); }
.vv-gifts h1, .vv-gifts h2, .vv-gifts h3 { color:var(--vv-ink); }
.gifts-intro { padding:clamp(2.75rem,5vw,4.5rem) 0 2.25rem; }
.gifts-intro h1 { max-width:18ch; margin:.65rem 0 1rem; font-size:clamp(2.5rem,5vw,4.65rem); letter-spacing:-.055em; line-height:1.02; text-wrap:balance; }
.gifts-intro__lead { max-width:49rem; margin:0; font-size:clamp(1.08rem,1.6vw,1.22rem); color:var(--vv-muted); }
.gifts-announcement { border-left:3px solid var(--vv-red); padding:.6rem 1rem; margin-top:1.5rem; }
.gift-choices { display:grid; position:relative; isolation:isolate; border:1px solid var(--vv-line); }
.gift-choice { display:flex; flex-direction:column; min-width:0; padding:1.75rem 1.25rem; }
.gift-choice--card { background:var(--vv-white); border-top:1px solid var(--vv-line); }
.gift-choice--box { background:var(--vv-sage); }
.gift-choice h2 { max-width:17ch; margin:.55rem 0 .85rem; font-size:clamp(1.9rem,2.9vw,2.75rem); letter-spacing:-.045em; line-height:1.08; text-wrap:balance; }
.gift-choice__copy > p:last-child { margin:0; max-width:34rem; color:var(--vv-muted); line-height:1.65; }
.gift-choice__photo { position:relative; flex:none; margin:1.5rem 0; aspect-ratio:4/3; overflow:hidden; }
.gift-choice__photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gift-choice__photo--card img { object-position:50% 50%; }
.gift-choice__photo--box img { object-fit:contain; object-position:50% 50%; }
.gift-choice__bottom { margin-top:auto; display:flex; flex-direction:column; gap:1rem; }
.gift-choice__practical { max-width:34rem; margin:0; font-size:.95rem; line-height:1.6; }
.gift-choice__price { margin:0; font-size:1.55rem; font-weight:850; letter-spacing:-.04em; }
.gift-choice__actions { display:flex; flex-wrap:wrap; align-items:center; gap:.9rem 1.25rem; }
.gift-choice__actions .button { white-space:normal; text-align:center; }
.gift-choices__ribbon { position:absolute; z-index:1; left:calc(50% - 1.5rem); top:calc(50% - 1.5rem); width:3rem; height:3rem; padding:.35rem; color:var(--vv-red-dark); background:var(--vv-paper); border:1px solid var(--vv-line); border-radius:50%; pointer-events:none; }
.gift-choices__ribbon svg { width:100%; height:100%; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.gift-packages { padding:clamp(3.5rem,6vw,5.25rem) 0; }
.gifts-section-intro { max-width:45rem; }
.gifts-section-intro h2, .gift-subscriptions h2, .gift-custom h2, .gifts-faq h2 { margin:.6rem 0 1rem; font-size:clamp(2rem,3.4vw,3.25rem); letter-spacing:-.05em; line-height:1.08; text-wrap:balance; }
.gifts-section-intro > p:last-child { margin:0; color:var(--vv-muted); }
.gift-filter-bar { display:flex; flex-wrap:wrap; gap:.85rem 1.5rem; justify-content:space-between; align-items:center; margin:1.8rem 0 1.5rem; }
.gift-filter-choice { display:flex; flex-wrap:wrap; gap:.65rem 1rem; align-items:center; }
.gift-filter-label { font-size:.9rem; font-weight:750; color:var(--vv-green); }
.gift-filters { display:flex; flex-wrap:wrap; gap:.5rem; }
.gift-filters button { min-height:2.75rem; padding:.55rem 1.15rem; border:1px solid var(--vv-line); background:var(--vv-white); color:var(--vv-ink); font-weight:750; border-radius:2rem; }
.gift-filters button[aria-pressed="true"] { background:var(--vv-green); border-color:var(--vv-green); color:var(--vv-white); }
.gift-filters button:hover { border-color:var(--vv-green); }
.gift-count { margin:0; color:var(--vv-muted); font-size:.88rem; }
.gift-catalog { display:grid; gap:1rem; margin-top:1rem; align-items:start; }
.gift-package { display:flex; flex-direction:column; min-width:0; background:var(--vv-white); border:1px solid var(--vv-line); border-top:2px solid var(--vv-green); }
.gift-package__photo { aspect-ratio:16/9; margin:0; border-bottom:1px solid var(--vv-line); }
.gift-package__photo img { width:100%; height:100%; object-fit:contain; }
.gift-package__body { flex:1; display:flex; flex-direction:column; padding:1.25rem; }
.gift-package__heading { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.8rem; align-items:start; }
.gift-package h3 { margin:0; font-size:1.3rem; letter-spacing:-.035em; line-height:1.2; overflow-wrap:break-word; }
.gift-package__price { margin:0; color:var(--vv-red-dark); white-space:nowrap; font-size:1.25rem; font-weight:850; }
.gift-package__lead { margin:.75rem 0; color:var(--vv-muted); font-size:.94rem; line-height:1.55; }
.gift-package__details { margin-bottom:.85rem; }
.gift-package__details summary { display:flex; justify-content:space-between; align-items:center; gap:.75rem; min-height:2.75rem; padding:.4rem 0; color:var(--vv-green); font-size:.88rem; font-weight:750; cursor:pointer; list-style:none; }
.gift-package__details summary::-webkit-details-marker { display:none; }
.gift-package__details svg { flex:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.gift-package__details[open] svg { transform:rotate(180deg); }
.gift-package ul { padding-left:1.05rem; margin:.35rem 0 .75rem; color:var(--vv-muted); font-size:.94rem; line-height:1.6; }
.gift-package li + li { margin-top:.25rem; }
.gift-package li::marker { color:var(--vv-red-dark); }
.gift-order-info { display:grid; gap:1.25rem; margin-top:2rem; padding:1.5rem; border-top:1px solid var(--vv-line); background:var(--vv-white); }
.gift-order-info h3 { margin:0 0 .5rem; font-size:1.2rem; }
.gift-order-info p { margin:0; max-width:43rem; color:var(--vv-muted); }
.gift-order-info__contacts { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1rem; min-width:0; }
.gift-order-email { overflow-wrap:anywhere; font-size:.95rem; font-weight:800; color:var(--vv-green); }
.gift-copy { min-height:2.75rem; border:1px solid var(--vv-line); background:var(--vv-paper); padding:.4rem .7rem; color:var(--vv-ink); font-size:.8rem; }
.gift-subscriptions { padding:clamp(2.5rem,5vw,4rem) 0; background:var(--vv-sage); }
.gift-subscriptions__inner { display:grid; gap:1.5rem; align-items:center; }
.gift-subscriptions h2 { max-width:22ch; }
.gift-subscriptions p:not(.eyebrow) { max-width:44rem; margin:.75rem 0 0; }
.gift-subscriptions .gift-subscriptions__note { font-size:.88rem; font-weight:700; }
.gift-subscriptions .button { width:fit-content; }
.gift-custom { padding:clamp(3rem,5vw,4.5rem) 0; background:var(--vv-green); color:var(--vv-white); }
.gift-custom__inner { display:grid; gap:1.5rem; align-items:center; }
.gift-custom h2 { max-width:22ch; color:var(--vv-white); }
.gift-custom p:not(.eyebrow) { margin:0 0 1.5rem; max-width:39rem; color:var(--vv-white); }
.gift-custom .button { white-space:normal; text-align:center; }
.gifts-faq { padding:clamp(3rem,6vw,5rem) 0; }
.gifts-faq__grid { display:grid; gap:2rem; }
.gifts-faq__grid > div:first-child p:last-child { max-width:27rem; color:var(--vv-muted); font-size:.94rem; }
.gifts-faq__items { border-top:1px solid var(--vv-line); }
.gifts-faq details { border-bottom:1px solid var(--vv-line); }
.gifts-faq summary { display:flex; justify-content:space-between; gap:1rem; padding:1.15rem 0; cursor:pointer; font-weight:800; list-style:none; }
.gifts-faq summary::-webkit-details-marker { display:none; }
.gifts-faq summary span { position:relative; width:1rem; height:1rem; flex:0 0 1rem; margin-top:.25rem; }
.gifts-faq summary span::before, .gifts-faq summary span::after { position:absolute; top:50%; left:0; width:100%; height:1px; background:currentColor; content:""; }
.gifts-faq summary span::after { transform:rotate(90deg); transition:transform .2s ease; }
.gifts-faq details[open] summary span::after { transform:rotate(0); }
.gifts-faq details p { margin:0; padding:0 1.5rem 1.25rem 0; color:var(--vv-muted); }
@media (min-width:48rem) {
  .gift-choices { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gift-choice { padding:2rem; }
  .gift-choice--card { order:-1; border-top:0; }
  .gift-choice--box { border-top:0; border-left:1px solid var(--vv-line); }
  .gift-choice__copy { min-height:12.5rem; }
  .gift-choice__bottom { min-height:10rem; justify-content:space-between; }
  .gift-choices__ribbon { top:2rem; }
  .gift-catalog { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gift-subscriptions__inner { grid-template-columns:minmax(0,1fr) auto; gap:3rem; }
  .gift-custom__inner { grid-template-columns:1fr 1fr; gap:3rem; }
  .gifts-faq__grid { grid-template-columns:minmax(0,.7fr) minmax(0,1fr); gap:4rem; }
}
@media (min-width:64rem) {
  .gift-catalog { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .gift-order-info { grid-template-columns:minmax(0,1fr) minmax(18rem,.65fr); gap:2rem; }
}
@media (max-width:47.999rem) {
  .gift-choices__ribbon { display:none; }
  .gift-choice__actions { align-items:stretch; flex-direction:column; }
  .gift-choice__actions .text-link { align-self:flex-start; }
  .gift-choice__photo { margin-block:1.25rem; }
  .gift-order-info { padding:1.25rem 1rem; }
}
@media (prefers-reduced-motion:reduce) { .gifts-faq summary span::after { transition:none; } }

/* Central gift-request flow. Static summary avoids covering cookie/accessibility controls. */
.gift-modes { display:flex; flex-wrap:wrap; gap:.5rem; margin:2rem 0 1rem; border-bottom:1px solid var(--vv-line); padding-bottom:1rem; }
.gift-modes button { min-height:2.9rem; border:1px solid var(--vv-line); padding:.65rem 1rem; background:var(--vv-white); color:var(--vv-green); font-weight:800; border-radius:.25rem; }
.gift-modes button[aria-selected="true"] { border-color:var(--vv-green); background:var(--vv-green); color:var(--vv-white); }
.gift-package.is-selected { border-color:var(--vv-green); outline:2px solid var(--vv-green); outline-offset:-2px; }
.gift-package__select { margin-top:auto; border-top:1px solid var(--vv-line); padding-top:.55rem; }
.gift-package__select .gift-select-label { font-size:.9rem; }
.gift-select-label { display:flex; align-items:center; gap:.7rem; cursor:pointer; min-height:2.75rem; font-weight:800; color:var(--vv-green); }
.gift-select-label input { flex:none; width:1.2rem; height:1.2rem; margin:0; accent-color:var(--vv-green); }
.gift-quantity { display:inline-grid; grid-template-columns:2.75rem 3.5rem 2.75rem; align-items:stretch; margin:.5rem .5rem .25rem 0; border:1px solid var(--vv-line); background:var(--vv-white); }
.gift-quantity button { min-height:2.75rem; border:0; background:var(--vv-paper); color:var(--vv-green); font-size:1.4rem; font-weight:750; }
.gift-quantity input { min-width:0; width:100%; min-height:2.75rem; padding:.25rem; border:0; border-inline:1px solid var(--vv-line); text-align:center; font:inherit; color:var(--vv-ink); appearance:textfield; }
.gift-quantity input::-webkit-inner-spin-button, .gift-quantity input::-webkit-outer-spin-button { margin:0; appearance:none; }
.gift-remove { min-height:2.75rem; padding:.35rem .4rem; color:var(--vv-red-dark); border:0; background:transparent; text-decoration:underline; text-underline-offset:.2em; font-size:.85rem; }
.gift-line-total { margin:.5rem 0 0; font-size:.9rem; font-weight:750; }
.gift-field-error { display:block; color:var(--vv-red-deep); font-size:.88rem; line-height:1.5; }
.gift-field-error:empty { display:none; }
.gift-builder-heading { max-width:46rem; padding:1rem 0; }
.gift-builder-heading h3 { margin:.5rem 0; font-size:clamp(1.65rem,2.5vw,2.2rem); line-height:1.15; }
.gift-builder { display:grid; gap:1.5rem; align-items:start; }
.gift-builder-group { margin:0 0 1.5rem; padding:0; border:0; min-width:0; }
.gift-builder-group legend { margin-bottom:.75rem; font-size:1.2rem; font-weight:850; }
.gift-builder-item { padding:1rem 1.1rem; margin-bottom:.65rem; background:var(--vv-white); border:1px solid var(--vv-line); }
.gift-builder-item.is-selected { border-color:var(--vv-green); background:var(--vv-sage); }
.gift-builder-hint { color:var(--vv-muted); font-size:.85rem; line-height:1.5; margin:.4rem 0; }
.gift-builder-item__details { padding-top:.5rem; }
.gift-builder-item__details > label { display:block; font-weight:750; }
.gift-builder-item__details > input { display:block; width:min(100%,12rem); min-height:2.75rem; padding:.5rem; margin:.5rem 0; font:inherit; border:1px solid var(--vv-line); }
.gift-builder-item__details > p { margin:.5rem 0 0; font-size:.9rem; font-weight:700; }
.gift-builder__summary { min-width:0; padding:1.4rem; background:var(--vv-sage); border-top:3px solid var(--vv-green); }
.gift-builder__summary h3 { margin:0 0 1rem; font-size:1.4rem; }
.gift-builder__summary ul { margin:0; padding-left:1.1rem; font-size:.95rem; }
.gift-builder__summary li + li { margin-top:.5rem; }
.gift-builder__summary label { display:block; margin-top:1rem; font-size:.95rem; font-weight:800; }
.gift-builder__summary textarea { width:100%; margin-top:.5rem; padding:.6rem; border:1px solid var(--vv-line); background:var(--vv-white); color:var(--vv-ink); font:inherit; resize:vertical; }
.gift-custom-price-note { font-weight:750; color:var(--vv-green); line-height:1.55; }
.gift-selection-summary { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; margin-top:1.5rem; padding:1.5rem; border:1px solid var(--vv-green); background:var(--vv-sage); }
.gift-selection-summary p { margin:.25rem 0; font-size:.94rem; }
.vv-gifts .button:disabled { opacity:.6; cursor:not-allowed; }
.gift-dialog { width:min(calc(100% - 2rem),52rem); max-height:calc(100dvh - 2rem); padding:1.5rem; border:1px solid var(--vv-line); background:var(--vv-paper); color:var(--vv-ink); overflow:auto; overscroll-behavior:contain; }
.gift-dialog::backdrop { background:rgb(20 31 28 / .65); }
body.gift-dialog-open { overflow:hidden; }
.gift-dialog__heading { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; }
.gift-dialog__heading h2 { margin:.5rem 0 1rem; color:var(--vv-ink); font-size:clamp(1.6rem,3vw,2.3rem); line-height:1.12; letter-spacing:-.035em; }
.gift-dialog__close { flex:none; width:2.75rem; min-height:2.75rem; background:var(--vv-white); border:1px solid var(--vv-line); color:var(--vv-ink); font-size:1.6rem; }
.gift-dialog__summary { padding:1rem 1.15rem; margin-bottom:1rem; background:var(--vv-white); border:1px solid var(--vv-line); font-size:.95rem; }
.gift-dialog__summary h3 { margin:.5rem 0; font-size:1.15rem; }
.gift-dialog__summary h4 { margin:.75rem 0 .35rem; font-size:1rem; }
.gift-dialog__summary section { padding:.5rem 0 1rem; border-bottom:1px solid var(--vv-line); }
.gift-dialog__summary section + section { margin-top:.5rem; }
.gift-dialog__summary p { margin:.4rem 0; }
.gift-dialog__summary ul { padding-left:1.2rem; margin:.4rem 0; }
.gift-edit { min-height:2.75rem; padding:.3rem 0; border:0; background:none; color:var(--vv-red-dark); cursor:pointer; }
.gift-request-form h3 { margin:1.5rem 0 1rem; }
.gift-form-grid { display:grid; gap:1rem; }
.gift-field { min-width:0; margin-bottom:1rem; }
.gift-field label { display:block; font-weight:750; margin-bottom:.35rem; }
.gift-field input, .gift-field select, .gift-field textarea { width:100%; min-height:2.75rem; max-width:100%; padding:.6rem .65rem; border:1px solid var(--vv-muted); background:var(--vv-white); color:var(--vv-ink); font:inherit; border-radius:0; }
.gift-field textarea { resize:vertical; }
.gift-field small { display:block; margin-top:.4rem; color:var(--vv-muted); font-size:.85rem; line-height:1.45; }
.gift-request-form [aria-invalid="true"], .gift-quantity [aria-invalid="true"] { border:2px solid var(--vv-red-dark); }
.gift-privacy { font-size:.88rem; color:var(--vv-muted); }
.gift-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.gift-receipt { padding:1rem 0; }
.gift-receipt h3 { color:var(--vv-green); font-size:1.75rem; line-height:1.2; }
.gift-receipt strong { overflow-wrap:anywhere; }
@media (min-width:48rem) { .gift-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .gift-dialog { padding:2rem; } }
@media (min-width:64rem) { .gift-builder { grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr); gap:2rem; } }
@media (max-width:47.999rem) { .gift-selection-summary { padding:1rem; } .gift-selection-summary .button { width:100%; white-space:normal; text-align:center; } .gift-dialog { padding:1rem; padding-bottom:max(1rem,env(safe-area-inset-bottom)); } .gift-modes { display:grid; grid-template-columns:1fr; } }
