/* Gift certificate storefront. Loaded after site.css; uses its tokens and breakpoints. */

/* Return from Stripe Checkout */
.gc-return{padding:clamp(16px,2.5vw,28px) 0 0;background:var(--paper)}
.gc-return[hidden],.gc-return-card[hidden],.gc-status [hidden]{display:none}
.gc-return-card{position:relative;overflow:hidden;padding:clamp(22px,3.2vw,40px);border:1px solid rgba(0,106,138,.22);border-radius:var(--r-lg);background:var(--mist);isolation:isolate}
.gc-return-card:focus,.gc-return-card:focus-visible{outline:none}
.gc-return-icon{position:relative;display:grid;place-items:center;flex:none;width:48px;height:48px;border-radius:50%;background:#fff;color:var(--teal-ink)}
.gc-return-icon svg{width:24px;height:24px}
.gc-return-title{margin:0 0 .4em;max-width:22ch;font-size:clamp(1.6rem,1.12rem + 1.9vw,2.6rem);line-height:1.04;letter-spacing:-.035em;text-wrap:balance}
.gc-return-card p{max-width:62ch;margin:0 0 .75em;color:var(--ink-2)}
.gc-return-card a:not(.button){color:var(--teal-ink);font-weight:700}
.gc-return-card .gc-return-help{max-width:none;margin:20px 0 0;font-size:.95rem}
.gc-status-reference{margin:12px 0 0;font-weight:700;overflow-wrap:anywhere}
.gc-nowrap{white-space:nowrap}
.gc-status{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
.gc-status-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.gc-status .gc-status-kicker{margin:0;font:800 .8rem/1.25 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--teal-ink)}
.gc-status-icon svg{display:none}
.gc-status[data-tone="pending"] [data-icon="pending"],.gc-status[data-tone="progress"] [data-icon="progress"],.gc-status[data-tone="celebrate"] [data-icon="celebrate"],.gc-status[data-tone="attention"] [data-icon="attention"],.gc-status[data-tone="neutral"] [data-icon="neutral"]{display:block}
.gc-status[data-busy] .gc-status-icon::after{content:"";position:absolute;inset:-5px;border:3px solid transparent;border-top-color:var(--teal);border-radius:50%}
.gc-status-actions{display:flex;flex-wrap:wrap;gap:10px 12px;margin:24px 0 0}
.gc-status-actions:not(:has(>:not([hidden]))){display:none}
.gc-status-actions .button[disabled]{opacity:.65;cursor:progress;transform:none}

.gc-status-steps{display:grid;gap:14px;margin:24px 0 0;padding:0;list-style:none}
.gc-status-steps li{position:relative;display:flex;gap:14px;align-items:flex-start;min-width:0}
.gc-status-steps li:not(:last-child)::before{content:"";position:absolute;top:32px;bottom:-12px;left:14px;width:2px;border-radius:2px;background:var(--line-strong)}
.gc-status-steps li[data-state="done"]:not(:last-child)::before{background:var(--teal)}
.gc-status-dot{position:relative;display:grid;place-items:center;flex:none;width:30px;height:30px;border:2px solid var(--line-strong);border-radius:50%;background:#fff}
.gc-status-steps li[data-state="done"] .gc-status-dot{border-color:var(--teal);background:var(--teal)}
.gc-status-steps li[data-state="done"] .gc-status-dot::after{content:"";width:11px;height:6px;margin-top:-3px;border:solid #fff;border-width:0 0 2.6px 2.6px;transform:rotate(-45deg)}
.gc-status-steps li[data-state="active"] .gc-status-dot{border-color:var(--teal)}
.gc-status-steps li[data-state="active"] .gc-status-dot::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--teal)}
.gc-status-step-text{display:grid;gap:1px;padding-top:3px;min-width:0}
.gc-status-step-text strong{font:700 1.02rem/1.25 var(--font-display);letter-spacing:-.01em;color:var(--ink)}
.gc-status-step-text small{color:var(--muted);font-size:.9rem;line-height:1.4}
.gc-status-steps li[data-state="todo"] .gc-status-step-text strong{color:var(--muted)}

.gc-status[data-tone="attention"]{border-color:rgba(240,180,0,.6);background:var(--sun-soft)}
.gc-status[data-tone="attention"] .gc-status-icon{background:var(--sun);color:var(--ink)}
.gc-status[data-tone="attention"] .gc-status-kicker{color:var(--ink-2)}
.gc-status[data-tone="neutral"]{border-color:var(--line);background:var(--cream)}

.gc-status[data-tone="celebrate"]{border:0;background:radial-gradient(110% 90% at 100% 0,rgba(27,167,216,.55),transparent 58%),linear-gradient(150deg,var(--teal) 0,var(--teal-deep) 82%);color:#fff;box-shadow:0 30px 60px -34px rgba(4,80,106,.85)}
.gc-status[data-tone="celebrate"] .gc-return-title{color:#fff}
.gc-status[data-tone="celebrate"] .gc-return-title::after{content:"";display:block;width:64px;height:5px;margin-top:.32em;border-radius:5px;background:var(--sun)}
.gc-status[data-tone="celebrate"] p{color:rgba(255,255,255,.9)}
.gc-status[data-tone="celebrate"] a:not(.button){color:var(--sun)}
.gc-status[data-tone="celebrate"] .gc-status-kicker{color:var(--sun)}
.gc-status[data-tone="celebrate"] .gc-status-icon{background:var(--sun);color:var(--ink)}
.gc-status[data-tone="celebrate"] .gc-status-dot{border-color:rgba(255,255,255,.5);background:transparent}
.gc-status[data-tone="celebrate"] li[data-state="done"] .gc-status-dot{border-color:var(--sun);background:var(--sun)}
.gc-status[data-tone="celebrate"] li[data-state="done"] .gc-status-dot::after{border-color:var(--ink)}
.gc-status[data-tone="celebrate"] li[data-state="active"] .gc-status-dot{border-color:var(--sun)}
.gc-status[data-tone="celebrate"] li[data-state="active"] .gc-status-dot::after{background:var(--sun)}
.gc-status[data-tone="celebrate"] .gc-status-steps li:not(:last-child)::before{background:rgba(255,255,255,.3)}
.gc-status[data-tone="celebrate"] .gc-status-steps li[data-state="done"]:not(:last-child)::before{background:var(--sun)}
.gc-status[data-tone="celebrate"] .gc-status-step-text strong{color:#fff}
.gc-status[data-tone="celebrate"] .gc-status-step-text small{color:rgba(255,255,255,.78)}
.gc-status[data-tone="celebrate"] .button-dark{--bg:#fff;--fg:var(--ink)}
.gc-status[data-tone="celebrate"][data-busy] .gc-status-icon::after{border-top-color:var(--sun)}

.gc-status-art{display:none}
.gc-status-ticket{display:none}
.gc-status[data-tone="celebrate"] .gc-status-art{display:block;position:absolute;top:14px;right:12px;width:84px;z-index:-1}
.gc-status[data-tone="celebrate"] .gc-status-ticket{display:none}
.gc-status[data-tone="celebrate"] .gc-status-icon{display:none}
.gc-status[data-tone="celebrate"] .gc-status-head{min-height:78px;padding-right:92px}
.gc-status-sticker{display:block;width:100%;height:auto;filter:drop-shadow(0 12px 18px rgba(3,40,54,.35))}
.gc-status-sticker .sticker-ring{transform-box:view-box;transform-origin:50% 50%}
.gc-status-sticker text{font-family:var(--font-body);font-weight:800}
.gc-confetti{position:absolute;inset:-10%;pointer-events:none}
.gc-confetti i{position:absolute;width:9px;height:14px;border-radius:2px;background:var(--sun);opacity:.95;transform:rotate(var(--r,20deg))}
.gc-confetti i:nth-child(1){top:2%;left:6%;--r:-24deg}
.gc-confetti i:nth-child(2){top:-4%;left:58%;--r:38deg;background:#fff}
.gc-confetti i:nth-child(3){top:20%;right:-6%;--r:-12deg;background:var(--cyan)}
.gc-confetti i:nth-child(4){top:62%;right:-8%;--r:52deg}
.gc-confetti i:nth-child(5){bottom:-6%;left:66%;--r:-40deg;background:#fff}
.gc-confetti i:nth-child(6){bottom:4%;left:-6%;--r:18deg;background:var(--cyan)}
.gc-confetti i:nth-child(7){top:44%;left:-12%;--r:-58deg}
.gc-confetti i:nth-child(8){top:-8%;left:22%;width:7px;height:7px;border-radius:50%;background:#fff}

@media(min-width:760px){
  .gc-status[data-tone="celebrate"]{grid-template-columns:minmax(0,1fr) clamp(150px,18vw,210px);align-items:center;column-gap:clamp(24px,4vw,56px)}
  .gc-status[data-tone="celebrate"] .gc-status-art{position:relative;top:auto;right:auto;width:100%;margin-right:clamp(0px,1.5vw,18px);z-index:auto}
  .gc-status[data-tone="celebrate"] .gc-status-head{min-height:0;padding-right:0}
  .gc-status[data-tone="celebrate"] .gc-status-icon{display:grid}
  .gc-confetti i{width:12px;height:18px}
  .gc-status:is([data-tone="pending"],[data-tone="progress"]){grid-template-columns:minmax(0,1fr) clamp(170px,19vw,224px);align-items:center;column-gap:clamp(24px,4vw,56px)}
  .gc-status:is([data-tone="pending"],[data-tone="progress"]) .gc-status-art{display:block;position:relative;margin-right:clamp(0px,1.5vw,18px)}
  .gc-status:is([data-tone="pending"],[data-tone="progress"]) .gc-status-art .gc-status-sticker,.gc-status:is([data-tone="pending"],[data-tone="progress"]) .gc-confetti{display:none}
  .gc-status-ticket{position:relative;display:grid;gap:9px;padding:18px 18px 16px;border-radius:18px;background:radial-gradient(120% 90% at 100% 0,rgba(27,167,216,.55),transparent 58%),linear-gradient(150deg,var(--teal) 0,var(--teal-deep) 78%);box-shadow:0 22px 36px -24px rgba(4,80,106,.8);transform:rotate(-4deg);overflow:hidden}
  .gc-status-art::before{content:"";position:absolute;inset:8px -8px -8px 8px;border-radius:18px;background:var(--sun);transform:rotate(3deg)}
  .gc-status[data-tone="celebrate"] .gc-status-art::before{content:none}
  .gc-status-ticket-label{font:800 .64rem/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.78)}
  .gc-status-ticket-amount{width:58%;height:30px;border-radius:8px;background:var(--sun)}
  .gc-status-ticket-line{width:82%;height:8px;border-radius:8px;background:rgba(255,255,255,.4)}
  .gc-status-ticket-line-short{width:56%}
  .gc-status-ticket-code{margin-top:4px;padding:7px 10px;border:1px dashed rgba(255,255,255,.45);border-radius:10px;font:700 .82rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.08em;color:rgba(255,255,255,.85);text-align:center}
  .gc-status[data-tone="pending"] .gc-status-ticket-amount{background:rgba(255,255,255,.45)}
  .gc-confetti i:nth-child(8){width:9px;height:9px}
}
@media(min-width:900px){
  .gc-status-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .gc-status-steps li{flex-direction:column;gap:10px}
  .gc-status-steps li:not(:last-child)::before{top:14px;bottom:auto;left:40px;right:-6px;width:auto;height:2px}
  .gc-status-step-text{padding-top:0}
}
@media(prefers-reduced-motion:no-preference){
  .gc-status[data-busy] .gc-status-icon::after{animation:gc-spin 1s linear infinite}
  .gc-status-steps li[data-state="active"] .gc-status-dot::after{animation:gc-pulse 1.4s var(--ease) infinite}
  .gc-status-sticker .sticker-ring{animation:spin 28s linear infinite}
  .gc-status[data-tone="celebrate"] .gc-status-sticker{animation:gc-pop .7s var(--ease) both}
  .gc-status[data-tone="celebrate"] .gc-confetti i{animation:gc-confetti .9s var(--ease) both}
  .gc-status[data-tone="celebrate"] .gc-confetti i:nth-child(odd){animation-delay:.12s}
  .gc-status[data-busy] .gc-status-ticket::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);transform:translateX(-100%);animation:gc-shimmer 1.8s var(--ease) infinite}
}
@keyframes gc-pulse{50%{transform:scale(.6);opacity:.55}}
@keyframes gc-shimmer{to{transform:translateX(100%)}}
@keyframes gc-pop{from{transform:scale(.6) rotate(-14deg);opacity:0}}
@keyframes gc-confetti{from{transform:translateY(18px) rotate(0) scale(.4);opacity:0}}
.gc-notice.gc-notice-fresh{border-color:rgba(0,127,163,.35);background:var(--mist)}
html[data-gift-purchase="locked"] a[href="#gift-builder"],
html[data-gift-purchase="locked"] #gift-submit{display:none}
html[data-gift-purchase="locked"] #gift-purchase-locked{display:block}

/* Hero */
.gc-hero{padding:14px 0 clamp(40px,6vw,80px);background:linear-gradient(180deg,var(--paper) 0,var(--cream) 100%)}
.gc-hero-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"media" "copy" "steps";gap:22px}
.gc-hero-media{grid-area:media;position:relative}
.gc-hero-frame{margin:0;border-radius:22px;overflow:hidden;background:#cfe3e8;box-shadow:var(--shadow);aspect-ratio:16/10}
.gc-hero-frame img{width:100%;height:100%;object-fit:cover}
.gc-sticker{width:clamp(70px,17vw,128px)}
.gc-hero-copy{grid-area:copy;min-width:0}
.gc-hero h1{margin-bottom:.32em;font-size:clamp(2.45rem,1.15rem + 5.6vw,4.7rem);line-height:.95;letter-spacing:-.045em}
.gc-hero h1 em{display:block}
.gc-hero .lead{margin-bottom:1.5rem;max-width:44ch}
.gc-hero .button-row{gap:12px 18px}
.gc-hero .button-row .button{padding-inline:1.2em}
@media(min-width:600px){.gc-hero .button-row{gap:14px 22px}.gc-hero .button-row .button{padding-inline:1.45em}}
.gc-hero-steps{grid-area:steps;display:grid;gap:9px;margin:0;padding:16px 0 0;border-top:1px solid var(--line);list-style:none;counter-reset:gcstep}
.gc-hero-steps li{display:flex;align-items:center;gap:12px;min-width:0;font-size:.94rem;line-height:1.35;color:var(--ink-2);counter-increment:gcstep}
.gc-hero-steps li::before{content:counter(gcstep);flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--sun);color:var(--ink);font:750 .8rem/1 var(--font-display)}
.gc-hero-steps strong{color:var(--ink)}
@media(min-width:600px){
  .gc-hero{padding-top:22px}
  .gc-hero-frame{aspect-ratio:2/1}
  .gc-hero-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0;border:0}
  .gc-hero-steps li{padding:13px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.72)}
  .gc-hero-steps li::before{width:32px;height:32px;font-size:.92rem}
}
@media(min-width:900px){
  .gc-hero{padding-top:clamp(28px,3.4vw,52px)}
  .gc-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);grid-template-areas:"copy media" "steps steps";column-gap:clamp(32px,4.5vw,72px);row-gap:clamp(28px,3vw,44px);align-items:center}
  .gc-hero-frame{aspect-ratio:4/3;border-radius:var(--r-lg)}
  .gc-hero-steps li{padding:16px 18px}
}

/* Builder layout */
.gc-builder-section{padding-block:clamp(48px,6.5vw,96px);background:var(--cream)}
.gc-builder-head{max-width:760px;margin-bottom:clamp(22px,3.4vw,40px)}
.gc-builder-head h2{margin:0}
.gc-builder{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(18px,2.4vw,28px)}
.gc-steps{min-width:0;padding:clamp(20px,3.2vw,40px);border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;box-shadow:var(--shadow)}
.gc-summary{display:grid;gap:22px;min-width:0}
@media(min-width:700px) and (max-width:959px){
  .gc-summary{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
}
@media(min-width:960px){
  .gc-builder{grid-template-columns:minmax(0,1fr) minmax(340px,400px);align-items:start;gap:clamp(24px,3vw,40px)}
}
@media(min-width:960px) and (min-height:760px){
  .gc-summary{position:sticky;top:calc(var(--header-h) + 20px)}
}
.gc-builder-head h2[hidden]{display:none}
.gc-builder-section[data-payment="open"] .gc-builder-head{max-width:1120px;margin-inline:auto}
.gc-builder[data-payment="open"]{grid-template-columns:minmax(0,1fr);justify-content:stretch;max-width:1120px;width:100%;margin-inline:auto}
.gc-builder[data-payment="open"] .gc-steps,
.gc-builder[data-payment="open"] .gc-preview{display:none}
.gc-builder[data-payment="open"] .gc-summary{display:grid;grid-template-columns:minmax(0,1fr);gap:0;position:static;min-width:0;width:100%}
.gc-builder[data-payment="open"] .gc-review{min-width:0;width:100%}
.gc-checkout-aside{display:none;min-width:0}
.gc-checkout-aside .gc-cert{min-height:265px;align-content:space-between;gap:22px}
.gc-checkout-card-message{max-width:12ch;margin:0;color:var(--sun);font:800 clamp(2.2rem,2vw + 1rem,3.4rem)/1.01 var(--font-display);letter-spacing:-.04em}
.gc-checkout-aside h3{margin:26px 0 10px;font-size:clamp(1.6rem,1.2rem + 1vw,2rem);letter-spacing:-.02em}
.gc-checkout-aside>p{margin:0;max-width:42ch;color:var(--ink-2);font-size:1rem;line-height:1.55}
@media(min-width:900px){
  .gc-builder[data-payment="open"] .gc-summary{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(26px,4vw,52px);align-items:start}
  .gc-builder[data-payment="open"] .gc-checkout-aside{display:block}
}
@media(min-width:700px) and (max-width:899px){.gc-builder[data-payment="open"] .gc-summary{max-width:700px;margin-inline:auto}}

/* Notices */
.gc-notice{display:flex;gap:12px;align-items:flex-start;margin:0 0 clamp(20px,2.6vw,28px);padding:14px 16px;border:1px solid rgba(240,180,0,.55);border-radius:14px;background:var(--sun-soft);color:var(--ink-2);font-size:.95rem;line-height:1.5}
.gc-notice[hidden]{display:none}
.gc-notice p{margin:0}
.gc-notice strong{display:block;color:var(--ink)}
.gc-notice a{color:var(--teal-ink);font-weight:700}
.gc-notice-icon{flex:none;display:grid;place-items:center;width:28px;height:28px;color:var(--ink)}
.gc-notice-icon svg{width:22px;height:22px}
.gc-notice-offline{border-color:rgba(0,106,138,.25);background:var(--mist)}
.gc-builder-section>.container>noscript .gc-notice{display:block}

/* Steps */
.gc-step{min-width:0;margin:0;padding:0;border:0}
.gc-step~.gc-step{margin-top:clamp(26px,3.2vw,36px);padding-top:clamp(26px,3.2vw,36px);border-top:1px solid var(--line)}
.gc-step>legend{float:left;width:100%;margin:0 0 16px;padding:0}
.gc-step>legend~*{clear:both}
.gc-step-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0;font-size:clamp(1.13rem,.95rem + .75vw,1.5rem);letter-spacing:-.015em}
.gc-step-num{position:relative;flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--sun);color:var(--ink);font:750 .95rem/1 var(--font-display);letter-spacing:0;transition:background-color .25s var(--ease),color .25s}
.gc-step-num b{font-weight:750}
.gc-step-num svg{position:absolute;width:17px;height:17px;opacity:0;transform:scale(.6);transition:opacity .2s,transform .25s var(--ease)}
.gc-step.is-complete .gc-step-num{background:var(--teal);color:#fff}
.gc-step.is-complete .gc-step-num b{opacity:0}
.gc-step.is-complete .gc-step-num svg{opacity:1;transform:none}
.gc-optional{padding:5px 8px;border-radius:999px;background:var(--mist);color:var(--teal-deep);font:700 .7rem/1 var(--font-body);letter-spacing:.03em;text-transform:uppercase}

/* Amounts */
.gc-amounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.gc-amount{position:relative;display:block;min-width:0}
.gc-amount input{position:absolute;inset:0;z-index:1;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.gc-amount-face{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px 8px;min-height:72px;padding:10px;border:2px solid var(--line-strong);border-radius:18px;background:#fff;color:var(--ink);font:750 clamp(1.45rem,1.25rem + .7vw,1.75rem)/1 var(--font-display);letter-spacing:-.025em;text-align:center;transition:border-color .2s,background-color .2s,transform .22s var(--ease),box-shadow .22s var(--ease)}
.gc-amount:hover .gc-amount-face{border-color:var(--ink);transform:translateY(-2px)}
.gc-amount input:checked+.gc-amount-face{border-color:var(--ink);background:var(--sun);box-shadow:0 14px 26px -16px rgba(11,42,56,.6)}
.gc-amount input:checked+.gc-amount-face::after{content:"";position:absolute;top:-9px;right:-9px;width:26px;height:26px;border-radius:50%;background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffc600' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/14px no-repeat;box-shadow:0 0 0 3px #fff}
.gc-amount input:focus-visible+.gc-amount-face{outline:3px solid var(--teal);outline-offset:3px}
.gc-amount-other{grid-column:1/-1}
.gc-amount-other .gc-amount-face{min-height:54px;border-style:dashed;font:700 1rem/1.2 var(--font-body);letter-spacing:0}
.gc-amount-other small{font-size:.86rem;font-weight:600;color:var(--muted)}
.gc-amount-other input:checked+.gc-amount-face{border-style:solid}
.gc-amount-other input:checked+.gc-amount-face small{color:var(--ink-2)}
@media(min-width:480px){.gc-amounts{grid-template-columns:repeat(4,minmax(0,1fr))}}
.gc-custom{display:grid;gap:7px;margin-top:16px;padding:16px;border-radius:16px;background:var(--cream)}
.gc-custom[hidden]{display:none}
.gc-money{position:relative;display:flex;align-items:center;max-width:300px}
.gc-money-prefix,.gc-money-suffix{position:absolute;z-index:1;pointer-events:none}
.gc-money-prefix{left:16px;font:750 1.3rem/1 var(--font-display);color:var(--ink)}
.gc-money-suffix{right:16px;font-size:.84rem;font-weight:700;letter-spacing:.06em;color:var(--muted)}
.gc-money .gc-input{padding-left:34px;padding-right:58px;font:750 1.3rem/1 var(--font-display);letter-spacing:-.01em}
.gc-hint.gc-amount-note{margin-top:16px}
.gc-amount-note a{color:var(--teal-ink);font-weight:700;text-underline-offset:.2em}

/* Fields */
.gc-pair{display:grid;gap:18px}
@media(min-width:600px){.gc-pair{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gc-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.gc-field[hidden]{display:none}
.gc-field>label,.gc-label,.gc-label-row label{font-weight:700;font-size:.98rem;color:var(--ink)}
.gc-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.gc-input{width:100%;min-height:54px;padding:13px 15px;border:1.5px solid var(--line-strong);border-radius:14px;background:#fff;color:var(--ink);font:400 1rem/1.4 var(--font-body);transition:border-color .2s,box-shadow .2s}
.gc-input::placeholder{color:#6e828c;opacity:1}
.gc-input:hover{border-color:rgba(11,42,56,.42)}
.gc-input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(0,127,163,.32)}
.gc-input[aria-invalid="true"]{border-color:#b3261e}
.gc-input[aria-invalid="true"]:focus{box-shadow:0 0 0 3px rgba(179,38,30,.25)}
textarea.gc-input{min-height:108px;resize:vertical}
.gc-hint{margin:0;font-size:.9rem;line-height:1.5;color:var(--muted)}
.gc-field-error{display:flex;gap:7px;align-items:flex-start;margin:0;font-size:.92rem;font-weight:650;line-height:1.4;color:#a1251b}
.gc-field-error::before{content:"";flex:none;width:17px;height:17px;margin-top:.1em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a1251b' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5h.01'/%3E%3C/svg%3E") center/contain no-repeat}
.gc-field-error[hidden]{display:none}

/* Send to me */
.gc-check{position:relative;display:flex;gap:14px;align-items:flex-start;margin-top:18px;padding:15px 16px;border:1.5px solid var(--line);border-radius:16px;background:var(--paper);cursor:pointer;transition:border-color .2s,background-color .2s}
.gc-check:hover{border-color:var(--line-strong)}
.gc-check input{flex:none;width:22px;height:22px;margin:1px 0 0;accent-color:var(--teal);cursor:pointer}
.gc-check strong{display:block;font-size:.98rem;line-height:1.35}
.gc-check small{display:block;margin-top:3px;font-size:.9rem;line-height:1.45;color:var(--muted)}
.gc-check:has(input:checked){border-color:var(--teal);background:var(--mist)}

/* Note */
.gc-ideas{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px}
.gc-ideas[hidden]{display:none}
.gc-ideas-label{margin-right:2px;font-size:.9rem;color:var(--muted)}
.gc-idea{min-height:44px;padding:9px 14px;border:1.5px solid var(--line-strong);border-radius:999px;background:#fff;color:var(--ink);font:650 .92rem/1.1 var(--font-body);cursor:pointer;transition:border-color .2s,background-color .2s,color .2s,transform .2s var(--ease)}
.gc-idea:hover{border-color:var(--teal);background:var(--mist);color:var(--teal-deep);transform:translateY(-1px)}
.gc-count{flex:none;font-size:.86rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.gc-count.is-near{color:#8a4b00}

/* Honeypot */
.gc-hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}

/* Preview certificate: illustrative only, never shows a code */
.gc-preview{margin:0}
.gc-cert-stack{position:relative;margin-right:6px}
.gc-cert-stack::before{content:"";position:absolute;inset:10px -6px 6px 16px;border-radius:24px;background:var(--sun);transform:rotate(3deg);box-shadow:0 18px 30px -24px rgba(11,42,56,.6)}
.gc-cert{position:relative;display:grid;gap:12px;overflow:hidden;padding:22px 22px 20px;border-radius:24px;background:radial-gradient(120% 90% at 100% 0,rgba(27,167,216,.55),transparent 58%),linear-gradient(150deg,var(--teal) 0,var(--teal-deep) 78%);color:#fff;box-shadow:0 30px 50px -30px rgba(4,80,106,.75),0 2px 6px rgba(11,42,56,.12);isolation:isolate}
.gc-cert-route{position:absolute;top:56px;right:0;z-index:-1;width:34%;height:auto}
.gc-cert-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.gc-cert-logo{width:92px;height:auto;border-radius:8px;box-shadow:0 0 0 2px rgba(255,255,255,.28)}
.gc-cert-badge{padding:6px 11px;border-radius:999px;background:#fff;color:var(--ink);font:800 .7rem/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase}
.gc-cert-kind{margin:6px 0 -4px;font:700 .74rem/1.2 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:#fff}
.gc-cert-amount{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0;color:var(--sun);font:800 clamp(3.1rem,2.4rem + 3.2vw,4.3rem)/.92 var(--font-display);letter-spacing:-.05em;overflow-wrap:anywhere}
.gc-cert-amount small{font:700 .9rem/1 var(--font-body);letter-spacing:.1em;color:#fff}
.gc-cert-amount .is-placeholder{font-size:.55em;letter-spacing:-.02em;opacity:.85}
.gc-cert-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:2px 0 0}
.gc-cert-people dt{font:700 .7rem/1.2 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:#fff;opacity:.88}
.gc-cert-people dd{margin:3px 0 0;font:750 1.15rem/1.2 var(--font-display);letter-spacing:-.01em;overflow-wrap:anywhere}
.gc-cert-note{display:-webkit-box;margin:0;overflow:hidden;font-size:.97rem;line-height:1.45;font-style:italic;overflow-wrap:anywhere;-webkit-line-clamp:4;-webkit-box-orient:vertical;line-clamp:4}
.gc-cert-note:not(.is-placeholder)::before{content:"\201C"}
.gc-cert-note:not(.is-placeholder)::after{content:"\201D"}
.gc-cert .is-placeholder{opacity:.8}
.gc-cert-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;margin:2px 0 0;padding-top:12px;border-top:1.5px dashed rgba(255,255,255,.45);font-size:.8rem;line-height:1.35}
.gc-cert-code{font-weight:800}
.gc-preview figcaption{margin-top:18px;padding-left:2px;font-size:.86rem;line-height:1.45;color:var(--muted)}

/* Phones see the preview in the flow, after the note, so checkout follows the last field directly. */
.gc-preview-slot{display:none}
@media(max-width:699px){
  .gc-preview-slot{display:block;margin-top:28px}
  .gc-summary>.gc-preview{display:none}
  .gc-preview-slot .gc-cert{gap:9px;padding:18px 18px 16px;border-radius:20px}
  .gc-preview-slot .gc-cert-stack::before{border-radius:20px}
  .gc-preview-slot .gc-cert-logo{width:78px}
  .gc-preview-slot .gc-cert-amount{font-size:2.8rem}
  .gc-preview-slot .gc-cert-people dd{font-size:1.05rem}
  .gc-preview-slot figcaption{margin-top:14px;font-size:.84rem}
}

/* Review and checkout */
.gc-review{padding:clamp(18px,2.4vw,26px);border:1px solid var(--line);border-radius:var(--r-md);background:#fff;box-shadow:var(--shadow)}
.gc-review-title{margin:0 0 8px;font-size:1.2rem}
.gc-review-list{margin:0 0 14px}
.gc-review-list>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.94rem}
.gc-review-list dt{color:var(--muted)}
.gc-review-list dd{min-width:0;margin:0 0 0 auto;font-weight:700;text-align:right;overflow-wrap:anywhere}
.gc-review-list dd.is-placeholder{font-weight:500;color:var(--muted)}
.gc-review-total dd{font:750 1.15rem/1.3 var(--font-display);letter-spacing:-.01em}
.gc-scope{margin:0 0 16px;font-size:.88rem;line-height:1.5;color:var(--muted)}
.gc-scope a{color:var(--teal-ink);font-weight:700;text-underline-offset:.2em}
.gc-error{margin:0 0 14px;padding:12px 14px;border:1px solid #ebb7ad;border-radius:12px;background:#fdf1ef;color:#7a1f14;font-size:.94rem;font-weight:650;line-height:1.45}
.gc-error:empty{margin:0;padding:0;border:0}
.gc-submit{width:100%;min-height:58px;gap:10px;padding-inline:16px;font-size:1.05rem}
.gc-submit[hidden]{display:none}
.gc-submit svg{width:19px;height:19px}
.gc-spinner{display:none;width:19px;height:19px;border:2.5px solid rgba(11,42,56,.25);border-top-color:var(--ink);border-radius:50%;animation:gc-spin .8s linear infinite}
.gc-submit:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}
.gc-submit[aria-busy="true"]{opacity:1;cursor:progress;transform:none;box-shadow:none}
.gc-submit[aria-busy="true"] .gc-lock{display:none}
.gc-submit[aria-busy="true"] .gc-spinner{display:inline-block}
.gc-submit.is-paused{--bg:#ebe5d6;--fg:var(--ink-2);cursor:not-allowed}
.gc-submit.is-paused:hover{transform:none;box-shadow:none}
@keyframes gc-spin{to{transform:rotate(360deg)}}
.gc-secure{margin:12px 0 0;font-size:.86rem;line-height:1.5;color:var(--muted);text-align:center}
.gc-payment{display:grid;gap:16px;margin:0;min-width:0}
.gc-payment[hidden]{display:none}
.gc-payment h3{margin:0;font-size:clamp(1.3rem,1.1rem + .8vw,1.6rem)}
.gc-payment p{margin:0;font-size:.96rem;line-height:1.5;color:var(--ink-2)}
.gc-payment-frame{width:100%;min-width:0;min-height:420px}
.gc-payment-frame iframe{max-width:100%}
.gc-payment-leave{justify-self:start}
.gc-builder[data-payment="open"] .gc-step,
.gc-builder[data-payment="open"] .gc-preview-slot,
.gc-builder[data-payment="open"] .gc-review-title,
.gc-builder[data-payment="open"] .gc-review-list,
.gc-builder[data-payment="open"] .gc-scope,
.gc-builder[data-payment="open"] .gc-secure{display:none}
@media(max-width:699px){.gc-payment-frame{min-height:520px}}
@media(max-width:699px){
  .gc-review{padding:18px 18px 16px}
  .gc-review-list>div{padding:8px 0}
  .gc-scope{margin-bottom:14px}
}

/* How the gift works */
.gc-journey{background:var(--paper)}
.gc-journey-list{display:grid;gap:clamp(14px,2vw,20px);margin:0;padding:0;list-style:none;counter-reset:gcj}
@media(min-width:600px){.gc-journey-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.gc-journey-list{grid-template-columns:repeat(4,minmax(0,1fr))}}
.gc-journey-list li{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px 14px;min-width:0;padding:18px 20px 20px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;counter-increment:gcj}
.gc-journey-list li::before{content:counter(gcj,decimal-leading-zero);position:absolute;top:20px;right:20px;font:750 .82rem/1 var(--font-display);letter-spacing:.08em;color:var(--teal-ink)}
.gc-journey-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:var(--mist);color:var(--teal-ink)}
.gc-journey-icon svg{width:24px;height:24px}
.gc-journey-list h3{margin:0 2.2em 0 0}
.gc-journey-list p{grid-column:1/-1;margin:0;color:var(--muted);font-size:1rem}
@media(min-width:600px){
  .gc-journey-list li{display:block;padding:clamp(22px,2.4vw,28px)}
  .gc-journey-list li::before{top:clamp(22px,2.4vw,28px);right:clamp(22px,2.4vw,28px)}
  .gc-journey-icon{width:52px;height:52px;margin-bottom:18px}
  .gc-journey-icon svg{width:26px;height:26px}
  .gc-journey-list h3{margin:0 0 .45em}
}
.gc-know{display:grid;gap:14px 40px;margin-top:clamp(20px,3vw,32px);padding:clamp(22px,3vw,34px);border:1px solid rgba(240,180,0,.45);border-radius:var(--r-md);background:var(--sun-soft)}
.gc-know h3{margin:0}
.gc-know-list{display:grid;gap:12px 32px;margin:0;padding:0;list-style:none}
.gc-know-list li{position:relative;padding-left:30px;color:var(--ink-2)}
.gc-know-list li::before{content:"";position:absolute;left:0;top:.2em;width:20px;height:20px;border-radius:50%;background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffc600' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 11v6M12 7.5h.01'/%3E%3C/svg%3E") center/14px no-repeat}
@media(min-width:700px){.gc-know-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.gc-know{grid-template-columns:minmax(0,.62fr) minmax(0,2fr);align-items:start}}

/* Cities */
.gc-cities{background:var(--cream)}
.gc-city-grid{display:grid;gap:clamp(16px,2.5vw,28px)}
@media(min-width:760px){.gc-city-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gc-city{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff}
.gc-city-media{margin:0;aspect-ratio:16/10;overflow:hidden;background:#cfe3e8}
.gc-city-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.gc-city:hover .gc-city-media img{transform:scale(1.035)}
.gc-city-body{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:clamp(20px,2.8vw,32px)}
.gc-city-body h3{margin-bottom:.3em;font-size:clamp(1.8rem,1.35rem + 1.6vw,2.5rem);letter-spacing:-.03em}
.gc-city-body p{color:var(--ink-2)}
.gc-city-body .gc-city-meta{display:flex;gap:10px;font-size:.93rem;color:var(--muted)}
.gc-city-meta::before{content:"";flex:none;width:6px;height:6px;margin-top:.6em;border-radius:50%;background:var(--teal)}
.gc-city-body .text-link{margin-top:auto}
.gc-facts{margin-top:clamp(24px,3vw,36px)}

/* About */
.gc-about{background:var(--paper)}
.gc-about-grid{display:grid;gap:clamp(28px,5vw,72px);align-items:center}
.gc-about-photo{margin:0;border-radius:var(--r-lg);overflow:hidden;background:#cfe3e8;aspect-ratio:4/3}
.gc-about-photo img{width:100%;height:100%;object-fit:cover}
.gc-about .lead{margin-bottom:1.4rem}
.gc-about .checklist a{color:var(--teal-ink);font-weight:700;text-underline-offset:.2em}
.gc-contact{display:grid;gap:4px;margin:0 0 20px;padding:18px 20px;border-radius:var(--r-md);background:var(--mist)}
.gc-contact p{margin:0}
.gc-contact a{color:var(--teal-ink);font-weight:700;text-underline-offset:.2em}
@media(min-width:900px){
  .gc-about-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
  .gc-about-photo{aspect-ratio:4/5}
}

/* FAQ */
.gc-faq{background:var(--cream)}

@media(prefers-reduced-motion:reduce){
  .gc-amount-face,.gc-idea,.gc-city-media img{transition:none}
  .gc-amount:hover .gc-amount-face,.gc-idea:hover,.gc-city:hover .gc-city-media img{transform:none}
}
