.giftcards{padding:6rem 5vw;background:var(--white);scroll-margin-top:1rem}
.giftcards[hidden],#giftcard-nav[hidden],.giftcard-form[hidden]{display:none!important}
.giftcard-presentation .giftcard-intro{display:block}
.giftcard-presentation .giftcard-form{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--gold)}
.giftcard-presentation .giftcard-availability{font-size:.875rem;padding:.75rem 1rem}
#giftcard-open{cursor:pointer}
.giftcard-intro,.giftcard-availability,.giftcard-layout{max-width:1180px;margin-left:auto;margin-right:auto}
.giftcard-intro h2{font-family:"Libre Caslon Display",serif;font-weight:400;font-size:clamp(2.75rem,5vw,4.8rem);line-height:1.02;margin:0}
.giftcard-intro>p:last-child{font-size:1.0625rem;line-height:1.75;max-width:38rem;margin:1.5rem 0 2rem}
.giftcard-availability{padding:1rem 1.25rem;background:var(--cream);border-left:3px solid var(--gold);font-size:1rem;line-height:1.6;margin-bottom:2rem}
.giftcard-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.giftcard-form,.giftcard-preview-wrap{min-width:0}
.giftcard-form fieldset{border:0;padding:0;margin:0;min-width:0}
.giftcard-form legend,.giftcard-personal h3{font-family:"Libre Caslon Display",serif;font-size:1.8rem;font-weight:400;margin:0 0 1rem;padding:0}
.giftcard-amounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.giftcard-amounts label{position:relative}
.giftcard-amounts input{position:absolute;opacity:0;width:1px;height:1px}
.giftcard-amounts span{display:flex;align-items:center;justify-content:center;min-height:54px;padding:.8rem;border:1px solid var(--navy);background:transparent;color:var(--ink);font-size:1rem;cursor:pointer}
.giftcard-amounts input:checked+span{background:var(--navy);color:var(--white);box-shadow:inset 0 0 0 2px var(--navy),inset 0 0 0 3px var(--gold)}
.giftcard-amounts input:focus-visible+span,.giftcard-form :is(input,textarea):focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.giftcard-custom{margin-top:1.25rem}
.giftcard-custom[hidden]{display:none}
.giftcard-form :is(input[type="text"],input[type="email"],select,textarea){display:block;width:100%;min-width:0;min-height:50px;margin-top:.5rem;padding:.8rem 1rem;font:inherit;color:var(--ink);border:1px solid rgba(23,59,74,.35);background:white;border-radius:0}
.giftcard-form label{font-size:1rem;line-height:1.5}
.giftcard-form textarea{resize:vertical}
.giftcard-form input[aria-invalid="true"]{border-color:#983e31}
.giftcard-error{font-size:.875rem;line-height:1.5;color:#983e31;margin:.6rem 0 0}
.giftcard-personal{margin-top:2.25rem;padding-top:2rem;border-top:1px solid var(--line)}
.giftcard-personal h3{margin-bottom:.5rem}
.giftcard-personal>p{font-size:.875rem;line-height:1.6;margin:0 0 1.2rem}
.giftcard-names{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}
.giftcard-personal .giftcard-character-count{text-align:right;margin:.5rem 0 0;font-size:.875rem}
.giftcard-checkout{width:100%;margin-top:1.5rem;font-size:.875rem;line-height:1.5;letter-spacing:.06em}
.giftcard-checkout:disabled,.giftcard-checkout:disabled:hover{background:var(--navy);border-color:var(--navy);color:white;opacity:.6;cursor:not-allowed}
.giftcard-safety{font-size:.875rem;line-height:1.65;margin:1rem 0 0}
.giftcard-form [hidden]{display:none!important}
.giftcard-steps{font-size:.875rem;line-height:1.7;color:var(--navy);margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.giftcard-steps span{opacity:.7}
.giftcard-email-label{display:block;margin-top:1.5rem}
.giftcard-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.75rem}
.giftcard-actions .button{flex:1;min-height:50px;text-align:center}
.giftcard-back{font:inherit;color:var(--navy);border:0;background:transparent;min-height:50px;cursor:pointer;padding:.75rem 0}
.giftcard-form :is(button,select):focus-visible{outline:3px solid var(--gold);outline-offset:3px}
#gift-step-delivery>p,#gift-step-review>p{line-height:1.7}
#gift-step-review h3{font-family:var(--heading-font,"Libre Caslon Display",serif);font-weight:400;font-size:2rem;line-height:1.2;margin:0 0 1.5rem}
.giftcard-review{margin:0}.giftcard-review>div{display:grid;grid-template-columns:1fr 1.5fr;gap:1rem;border-bottom:1px solid var(--line);padding:1rem 0;line-height:1.6}
.giftcard-review dd{margin:0;text-align:right;overflow-wrap:anywhere}.giftcard-review-total{font-weight:600}
.giftcard-preview-label{font-size:.875rem;margin:0 0 .75rem;color:var(--ink)}
.giftcard-preview{background:var(--navy-deep);color:var(--white);border:1px solid var(--gold);overflow:hidden}
.giftcard-preview-content{padding:1.5rem 2rem;overflow-wrap:anywhere}
.giftcard-preview-type{text-transform:uppercase;letter-spacing:.16em;font-size:.875rem;color:#e1c18b;margin:1rem 0 .4rem}
.giftcard-preview-amount{display:block;font-family:"Libre Caslon Display",serif;font-size:clamp(2.5rem,4.5vw,4.25rem);line-height:1.1;font-variant-numeric:tabular-nums}
.giftcard-preview-recipient{font-size:1rem;margin:1rem 0 .5rem}
.giftcard-preview-message{font-size:1rem;line-height:1.6;white-space:pre-wrap;margin:.5rem 0}
.giftcard-preview-sender{font-size:1rem;margin:.5rem 0 0;color:#e1c18b}
.giftcard-preview-photo{display:block;width:100%;height:170px;object-fit:cover;object-position:50% 42%}
.giftcard-preview-watermark{margin:0;padding:.8rem 1rem;background:var(--cream);color:var(--navy);font-size:.875rem;line-height:1.5;text-align:center;font-weight:600}
.type--bold .giftcard-intro h2,.type--bold .giftcard-personal h3,.type--bold .giftcard-form legend{font-family:var(--heading-font);font-weight:700;letter-spacing:-.015em}
.type--bold .giftcard-preview-amount{font-family:var(--heading-font);font-weight:700}
@media(max-width:900px){.giftcard-layout{grid-template-columns:minmax(0,1fr);gap:2.5rem}.giftcards{padding:4rem 5vw}.giftcard-preview{max-width:36rem;margin:auto}.giftcard-preview-label{max-width:36rem;margin-left:auto;margin-right:auto}}
@media(max-width:420px){.giftcard-names{grid-template-columns:minmax(0,1fr)}.giftcard-preview-content{padding:1.5rem}.giftcard-preview-amount{font-size:2.75rem}}
.giftcard-presentation .giftcard-intro>p:last-child{margin-top:1.5rem}
#giftcard-open[aria-expanded="true"]{background:transparent;color:var(--navy);border:0;border-bottom:1px solid var(--gold);padding:.5rem 0;min-height:44px;text-transform:none;letter-spacing:normal;font-size:1rem}
#giftcard-open[aria-expanded="true"]:hover{color:var(--navy-deep);border-bottom-color:var(--navy)}
#giftcard-open:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.giftcard-mobile-tools{display:none}
.giftcard-quantity{display:grid;gap:.5rem;max-width:12rem;font-size:1rem}
.giftcard-quantity input{font:inherit;color:var(--navy);padding:.75rem;border:1px solid var(--navy);background:white;min-height:48px;width:100%}
.giftcard-order-total{font-size:1.0625rem;line-height:1.6;padding:1rem;background:var(--cream);border-left:2px solid var(--gold)}
.giftcard-preview [hidden]{display:none!important}
.giftcard-mobile-tools[hidden]{display:none!important}
@media(min-width:901px){.giftcard-layout>.giftcard-preview-wrap{position:sticky;top:1.5rem;max-height:calc(100dvh - 3rem);overflow:auto;align-self:start}}
@media(max-width:900px){.giftcard-mobile-tools{display:flex;justify-content:flex-end;position:sticky;top:.75rem;z-index:5;margin:1rem 0}.giftcard-mobile-tools button{font:inherit;font-size:.9375rem;background:var(--navy);color:white;border:1px solid var(--gold);padding:.75rem 1rem;min-height:44px;box-shadow:0 3px 12px #0002;cursor:pointer}}
#giftcard-preview-dialog{width:min(36rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);padding:1rem;border:1px solid var(--gold);background:var(--cream);color:var(--navy);overflow:auto}
#giftcard-preview-dialog::backdrop{background:rgba(6,26,33,.65)}
.giftcard-dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.giftcard-dialog-heading h2{font-family:"Libre Caslon Display",serif;font-weight:400;font-size:1.75rem;margin:0}
.giftcard-dialog-heading button{font:inherit;background:transparent;border:0;border-bottom:1px solid var(--gold);padding:.5rem;min-height:44px;cursor:pointer;color:var(--navy)}
.giftcard-mobile-tools button:focus-visible,.giftcard-dialog-heading button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
