.gift-editor{border-top:1px solid #d9dccb;margin:2rem 0;padding:2rem 0;text-align:left}.gift-editor h2{font-size:1.8rem}.gift-editor .field-label{display:block;margin:1rem 0 .5rem}.gift-editor textarea{min-height:5rem}.gift-editor-notice,.gift-editor-summary,.gift-replace-warning{background:#f3ead2;padding:1rem;border-radius:8px;margin:1rem 0;display:block}.gift-replace-warning{color:#7b471e}.gift-editor .text-input{box-sizing:border-box;width:100%}.gift-clear-pin{display:block;margin:.5rem 0}.gift-dialog{box-sizing:border-box;border:1px solid #d7dacb;border-radius:14px;background:#f8f5ec;color:#23463a;max-width:480px;width:calc(100% - 28px);max-height:88dvh;padding:2rem;text-align:center;font-family:inherit}.gift-dialog::backdrop{background:#09261bc4}.gift-dialog h2{font-size:2rem;font-family:Georgia,serif}.gift-dialog label{display:block}.gift-dialog .text-input{box-sizing:border-box;width:100%;margin:.75rem 0 1rem;padding:.8rem}.gift-dialog .gift-code-form button{margin-bottom:1rem}.gift-close{float:right;border:0;background:none;color:inherit;font-size:1.8rem;cursor:pointer}.gift-symbol{font-size:3rem;color:#b88a4d}.gift-dialog p{line-height:1.65;overflow-wrap:anywhere}.gift-pin,.gift-instructions,.gift-message{white-space:pre-wrap}.gift-entry{box-sizing:border-box;padding:1rem;background:#f8f5ec;color:#23463a;border:1px solid #d7dacb;border-radius:14px;text-align:center;font-family:inherit;box-shadow:0 6px 30px #123b2420}.gift-entry p{margin:0 0 .6rem;font-size:1rem}.gift-entry-landing{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:min(400px,calc(100% - 28px));z-index:35}.gift-entry-ar{position:absolute;bottom:108px;left:50%;transform:translateX(-50%);width:min(400px,calc(100% - 28px));z-index:35}.gift-entry-normal{margin:1rem 0}.gift-example{max-width:780px;margin:2rem auto;padding:1.5rem;line-height:1.7}.gift-example .text-input{box-sizing:border-box;width:100%;overflow-wrap:anywhere}.gift-admin-card{border:1px solid #d7dacb;border-radius:12px;padding:1.5rem;margin:1rem 0}.gift-dialog [hidden],.gift-entry[hidden],.gift-editor[hidden],.gift-editor [hidden]{display:none!important}
.gift-editor form>label:has(input[type=checkbox]){display:block;margin:.75rem 0;line-height:1.5}

/* The wrapped present (gift-present.js): drops in, wiggles now and then, pops open. */
.gift-present{display:flex;flex-direction:column;align-items:center;gap:4px;font-family:inherit}
.gift-present-button{position:relative;border:0;background:none;padding:0;width:92px;height:92px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.gift-present-button:focus-visible{outline:2px solid #e3b562;outline-offset:4px;border-radius:14px}
.gift-present-art{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 6px 10px #0b261b40)}
.gift-present-lid,.gift-present-box{transform-box:fill-box;transform-origin:50% 100%}
.gift-present-label{margin:0;padding:5px 12px;border-radius:20px;background:#fbf8efe8;color:#23463a;box-shadow:0 4px 16px #0b261b30;text-align:center;line-height:1.35}
.gift-present-label strong{display:block;font:15px/1.3 Georgia,serif;font-weight:normal}
.gift-present-label span{display:block;font-size:11px;color:#6f7a68}
.gift-present-sparkles{position:absolute;left:50%;top:42%;width:0;height:0;pointer-events:none}
.gift-present-sparkles i{position:absolute;left:calc(var(--s)/-2);top:calc(var(--s)/-2);width:var(--s);height:var(--s);opacity:0;background:#f3d58e;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.gift-present-sparkles i:nth-child(3n){background:#fffaf0}.gift-present-sparkles i:nth-child(4n){background:#e98a73}
.gift-present.is-arriving .gift-present-button{animation:gift-drop .7s cubic-bezier(.3,1.5,.5,1) both}
.gift-present.is-arriving .gift-present-label{animation:gift-label .5s .45s ease-out both}
.gift-present.is-arriving .gift-present-art{animation:gift-wiggle 4s 1.6s ease-in-out infinite}
.gift-present.is-opening .gift-present-art{animation:gift-shake .35s ease-in-out}
.gift-present.is-opening .gift-present-lid{animation:gift-lid .6s .3s cubic-bezier(.2,.9,.3,1) forwards}
.gift-present.is-opening .gift-present-sparkles i{animation:gift-spark .75s .35s ease-out forwards}
.gift-present.is-opening .gift-present-label{opacity:.35;transition:opacity .3s}
@keyframes gift-drop{0%{opacity:0;transform:translateY(-46px) scale(.6)}60%{opacity:1}100%{opacity:1;transform:none}}
@keyframes gift-label{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes gift-wiggle{0%,80%,100%{transform:none}84%{transform:rotate(-7deg)}88%{transform:rotate(6deg)}92%{transform:rotate(-4deg)}96%{transform:rotate(2deg)}}
@keyframes gift-shake{0%,100%{transform:none}25%{transform:rotate(-6deg) scale(1.04)}50%{transform:rotate(6deg) scale(1.06)}75%{transform:rotate(-3deg) scale(1.04)}}
@keyframes gift-lid{to{transform:translate(18%,-85%) rotate(24deg);opacity:0}}
@keyframes gift-spark{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(.4)}70%{opacity:1}100%{opacity:0;transform:rotate(var(--a)) translateY(calc(var(--d)*-1)) scale(1)}}
@media (prefers-reduced-motion:reduce){
  .gift-present.is-arriving .gift-present-button,.gift-present.is-arriving .gift-present-label{animation:gift-fade .4s ease-out both}
  .gift-present.is-arriving .gift-present-art,.gift-present.is-opening .gift-present-art,.gift-present.is-opening .gift-present-sparkles i{animation:none}
  .gift-present.is-opening .gift-present-lid{animation:none;opacity:0;transition:opacity .15s}
}
@keyframes gift-fade{from{opacity:0}to{opacity:1}}
/* On the recipient's card the present floats over the view, not in a box. */
.gift-entry.gift-entry-present{background:none;border:0;box-shadow:none;padding:0}
.gift-entry-present.gift-entry-normal{display:flex;justify-content:center}
/* The present's label: a little evergreen-and-gold tag, like a gift card's own frame. */
.gift-present-label{position:relative;overflow:hidden;padding:8px 26px 9px;border-radius:12px;border:1px solid #e3b562;
  background:radial-gradient(120% 140% at 50% 0%,#36614f 0%,#22453a 55%,#183328 100%);color:#f7ead0;
  box-shadow:inset 0 0 0 3px #22453a,inset 0 0 0 4px #e3b56266,0 8px 22px #0b261b55}
.gift-present-label strong{color:#f7ead0;letter-spacing:.2px;text-shadow:0 1px 0 #0b261b80}
.gift-present-label span{color:#e9c983;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;margin-top:2px}
.gift-present-label::before,.gift-present-label::after{content:"✦";position:absolute;top:50%;transform:translateY(-50%);color:#e3b562;font-size:11px;line-height:1}
.gift-present-label::before{left:10px}.gift-present-label::after{right:10px}
.gift-present-label>strong::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#fff3d433 50%,transparent 65%);transform:translateX(-120%);animation:gift-shimmer 4s 1.4s ease-in-out infinite;pointer-events:none}
@keyframes gift-shimmer{0%,60%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
@media (prefers-reduced-motion:reduce){.gift-present-label>strong::after{animation:none;display:none}}
/* Step 4: brand picker, guide, fields */
.gift-brands{position:relative;margin:0 0 1rem}.gift-brands .field-label{margin-top:0}
.gift-brand-button{display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer}.gift-brand-button .gift-brand-name{flex:1;font-size:13px}
.gift-brand-caret{color:var(--muted,#7d8376);font-size:12px}.gift-brand-button[aria-expanded=true] .gift-brand-caret{transform:rotate(180deg)}.gift-brand-button:disabled{cursor:default;opacity:.6}
.gift-brand-list{position:absolute;z-index:30;left:0;right:0;top:100%;margin:4px 0 0;padding:4px;list-style:none;background:#fffef8;border:1px solid #cbd1c0;border-radius:8px;box-shadow:0 12px 30px #17382826;max-height:min(340px,60vh);overflow:auto}
.gift-brand-list:focus{outline:2px solid var(--accent,#a77e4c);outline-offset:2px}
.gift-brand-option{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:13px}
.gift-brand-option.is-active{background:#edf0e4}.gift-brand-option[aria-selected=true]{font-weight:600}.gift-brand-option[aria-selected=true]::after{content:"✓";margin-left:auto;color:var(--ink,#25473b)}
.gift-brand-logo{width:80px;height:32px;flex:none}
.gift-guide{background:#f3ead2;border-radius:8px;padding:1rem 1.2rem;margin:1rem 0}.gift-guide h3{margin:0 0 .5rem;font:normal 18px Georgia,serif}.gift-steps{margin:0;padding-left:1.2rem;line-height:1.7;font-size:12px}
.gift-steps li{margin:.35rem 0}.gift-step-warning strong{color:#8a3a20;text-transform:none}.gift-buy{font-weight:600}
.gift-code-row{display:flex;gap:8px;align-items:stretch}.gift-code-row .text-input{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.5px}
.gift-field-hint{display:block;margin-top:4px}.gift-contacts-intro{font-size:12px;color:var(--muted,#7d8376);margin:1.5rem 0 0}
.gift-clear{display:block;margin:.4rem 0;font-size:11px}.gift-disclaimer{font-size:11px;color:#7b471e;background:#f8f1e4;border-radius:6px;padding:.6rem .8rem;margin-top:1.2rem}
.gift-fields:disabled{opacity:.6}
/* The present's tag can carry the brand's logo */
.gift-present-logo{display:block;width:60px;height:24px;margin:0 auto 4px}
/* Recipient: choosing how to receive it */
.gift-claim-dialog{text-align:left}.gift-claim-head{display:flex;align-items:center;gap:14px;margin:0 0 1rem}.gift-claim-head h2{font-size:1.45rem;margin:0}
.gift-card-logo{width:90px;height:36px;flex:none}
.gift-channels{border:0;padding:0;margin:0 0 1rem}.gift-channels legend{font-size:13px;margin-bottom:.5rem}
.gift-channel{display:flex;gap:12px;align-items:center;border:1px solid #d7dacb;border-radius:10px;padding:12px 14px;margin:8px 0;cursor:pointer}
.gift-channel:has(input:checked){border-color:#25473b;background:#eef0e5}.gift-channel strong{display:block;font-size:14px}.gift-channel small{color:#6f7a68}
.gift-claim-form .button,.gift-code-form .button{width:100%}.gift-code-input{font-size:22px!important;letter-spacing:6px;text-align:center}
.gift-claim-actions{justify-content:flex-start;margin:.5rem 0}.gift-sent{font-size:14px}
/* The revealed gift card (claim page and after a text code) */
.gift-card-view{text-align:left}.gift-card-head{display:flex;gap:16px;align-items:center;margin-bottom:1.2rem}.gift-card-head .eyebrow{margin:0 0 4px}
.gift-card-title{margin:0}.gift-card-amount{margin:2px 0 0;color:#6f7a68}.gift-card-head .gift-card-logo{width:100px;height:40px}
.gift-card-fields{margin:0 0 1.2rem}.gift-card-field{border:1px solid #d7dacb;border-radius:10px;padding:10px 14px;margin:8px 0;background:#fffef8}
.gift-card-field dt{font-size:11px;color:#6f7a68}.gift-card-value-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gift-card-value{margin:0;flex:1;min-width:0;font:600 20px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1px;overflow-wrap:anywhere;user-select:all}
.gift-copy-status{font-size:11px;color:#6f7a68;width:100%}.gift-copy-status:empty{display:none}.gift-redeem-row{margin:0 0 1rem}.gift-redeem{width:100%}
.gift-how-title{font:normal 17px Georgia,serif;margin:1rem 0 .3rem}.gift-how{margin:0 0 1rem;line-height:1.6}
.gift-claim-main{max-width:560px;margin:2.5rem auto 4rem;padding:0 16px}.gift-claim-expired{text-align:center;padding:2rem 0}.gift-claim-expired h1{font-size:30px}
/* EN | FR */



/* Studio step 1: the card's language, a small flag toggle beside its title */
.card-language{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0 0 22px;padding:0 0 18px;border:0;border-bottom:1px solid var(--line,#dddccd)}
.card-language legend{float:left;padding:0;margin:0;font-size:12px;font-weight:550}
.card-language .helper{flex-basis:100%;margin:0;font-size:10px}
.card-language-options{display:inline-flex;gap:4px;padding:3px;border:1px solid #d8dacd;border-radius:22px;background:#fcfaf3}
.language-option{position:relative;display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 8px;border-radius:18px;cursor:pointer;font-size:12px;color:var(--muted,#7d8376);transition:background .15s,color .15s}
.language-option:hover{color:var(--ink,#25473b)}
.language-option input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.language-flag{display:inline-flex;line-height:0;border-radius:3px;overflow:hidden;box-shadow:0 0 0 1px #0000001f}
.language-option:has(input:checked){background:var(--ink,#25473b);color:var(--paper,#f8f6ee)}
.language-option:has(input:focus-visible){outline:2px solid var(--accent,#a77e4c);outline-offset:2px}
/* Wide brand logos sit above their headings */
.gift-card-head,.gift-claim-head{flex-direction:column;align-items:flex-start;gap:10px}
