/* gift-purchase.css — purchase modal for /carte-cadeau (Payment Element + Express
   Checkout). Own sheet (house rule). House tokens with fallbacks. */

.gp-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:rgba(27,38,59,.5);backdrop-filter:blur(3px);opacity:0;transition:opacity .25s ease;overflow-y:auto}
.gp-overlay.gp-open{opacity:1}
.gp-panel{position:relative;width:100%;max-width:500px;background:var(--bg,#F8F5F0);border-radius:14px;padding:2.3rem 2.2rem 2rem;box-shadow:0 24px 64px rgba(27,38,59,.28);margin:auto}
.gp-close{position:absolute;top:.9rem;right:.9rem;width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:var(--muted,#6B6B6B);font-size:1.35rem;line-height:1;cursor:pointer;transition:background .25s ease,color .25s ease}
.gp-close:hover{background:rgba(27,38,59,.07);color:var(--ink,#1B263B)}
.gp-eyebrow{font:300 .6rem/1 var(--fb,'Plus Jakarta Sans',sans-serif);letter-spacing:.24em;text-transform:uppercase;color:var(--muted,#6B6B6B);display:block;margin-bottom:.55rem}
.gp-title{font:400 1.65rem/1.15 var(--ft,'Cormorant Garamond',serif);color:var(--ink,#1B263B);margin:0 0 .35rem}
.gp-amount-line{font:300 .84rem/1.5 var(--fb,'Plus Jakarta Sans',sans-serif);color:var(--ink-light,#4A4A4A);margin:0 0 1.2rem}
.gp-amount-line strong{font-weight:600;color:var(--cta,#E8623D)}
.gp-form{display:flex;flex-direction:column;gap:.7rem}
.gp-label{font:500 .68rem/1 var(--fb,'Plus Jakarta Sans',sans-serif);letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#6B6B6B);margin:.3rem 0 -.3rem}
.gp-input,.gp-textarea{width:100%;padding:.8rem .95rem;font:400 .88rem/1.4 var(--fb,'Plus Jakarta Sans',sans-serif);color:var(--ink,#1B263B);background:var(--white,#fff);border:1px solid rgba(27,38,59,.18);border-radius:8px;transition:border-color .25s ease}
.gp-textarea{resize:vertical;min-height:72px}
.gp-input:focus,.gp-textarea:focus{outline:none;border-color:var(--cta,#E8623D)}
.gp-input[aria-invalid="true"]{border-color:#dc2626}
.gp-amount-row{display:flex;gap:.5rem;flex-wrap:wrap}
.gp-amount-chip{flex:1;min-width:80px;padding:.75rem .5rem;font:600 .9rem/1 var(--fb,'Plus Jakarta Sans',sans-serif);color:var(--ink,#1B263B);background:var(--white,#fff);border:1px solid rgba(27,38,59,.18);border-radius:8px;cursor:pointer;text-align:center;transition:border-color .25s ease,background .25s ease,color .25s ease}
.gp-amount-chip.gp-active{border-color:var(--cta,#E8623D);background:var(--cta,#E8623D);color:#fff}
.gp-custom-wrap{position:relative}
.gp-custom-wrap .gp-input{padding-right:2.2rem}
.gp-custom-eur{position:absolute;right:.95rem;top:50%;transform:translateY(-50%);font:500 .88rem/1 var(--fb,'Plus Jakarta Sans',sans-serif);color:var(--muted,#6B6B6B)}
.gp-error{display:none;font:400 .74rem/1.4 var(--fb,'Plus Jakarta Sans',sans-serif);color:#dc2626;margin:-.2rem 0 0}
.gp-error.gp-show{display:block}
.gp-cta{width:100%;padding:.9rem 1rem;font:600 .8rem/1 var(--fb,'Plus Jakarta Sans',sans-serif);letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--cta,#E8623D);border:1px solid var(--cta,#E8623D);border-radius:8px;cursor:pointer;transition:background .25s ease,border-color .25s ease}
.gp-cta:hover{background:var(--cta-hover,#C24E2A);border-color:var(--cta-hover,#C24E2A)}
.gp-cta[disabled]{opacity:.6;cursor:wait}
.gp-back{background:none;border:0;padding:0;margin:0 0 .8rem;font:400 .76rem/1 var(--fb,'Plus Jakarta Sans',sans-serif);color:var(--muted,#6B6B6B);cursor:pointer;text-align:left}
.gp-back:hover{color:var(--ink,#1B263B)}
.gp-legal{font:300 .68rem/1.55 var(--fb,'Plus Jakarta Sans',sans-serif);color:var(--muted,#6B6B6B);margin:.8rem 0 0}
.gp-express{margin:0 0 .2rem}
.gp-divider{display:flex;align-items:center;gap:.8rem;margin:.9rem 0;font:400 .7rem/1 var(--fb,'Plus Jakarta Sans',sans-serif);letter-spacing:.14em;color:var(--muted,#6B6B6B)}
.gp-divider::before,.gp-divider::after{content:"";flex:1;height:1px;background:rgba(27,38,59,.14)}
.gp-payment{margin-bottom:1rem}
.gp-secure{display:flex;align-items:center;gap:.45rem;justify-content:center;font:300 .7rem/1 var(--fb,'Plus Jakarta Sans',sans-serif);color:var(--muted,#6B6B6B);margin-top:.7rem}
.gp-secure svg{width:12px;height:12px;stroke:var(--muted,#6B6B6B);fill:none;stroke-width:2}
.gp-spin{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 0;font:300 .84rem/1.5 var(--fb,'Plus Jakarta Sans',sans-serif);color:var(--ink-light,#4A4A4A)}
.gp-spin::before{content:"";width:34px;height:34px;border-radius:50%;border:3px solid rgba(27,38,59,.12);border-top-color:var(--cta,#E8623D);animation:gp-rot .8s linear infinite}
@keyframes gp-rot{to{transform:rotate(360deg)}}
/* Success: the rendered gift card */
.gp-card{background:linear-gradient(135deg,var(--ink,#1B263B) 0%,#2F5D73 100%);border-radius:14px;padding:1.6rem 1.5rem 1.4rem;color:#fff;margin:.4rem 0 1.1rem;box-shadow:0 12px 32px rgba(27,38,59,.35)}
.gp-card__brand{font:400 1.15rem/1 var(--ft,'Cormorant Garamond',serif);margin-bottom:.15rem}
.gp-card__brand span{color:var(--cta,#E8623D)}
.gp-card__sub{font:300 .52rem/1 var(--fb,'Plus Jakarta Sans',sans-serif);letter-spacing:.22em;text-transform:uppercase;opacity:.75;display:block;margin-bottom:1.1rem}
.gp-card__amount{font:600 2rem/1 var(--fb,'Plus Jakarta Sans',sans-serif);margin-bottom:.9rem}
.gp-card__code-label{font:300 .58rem/1 var(--fb,'Plus Jakarta Sans',sans-serif);letter-spacing:.16em;text-transform:uppercase;opacity:.75;margin-bottom:.3rem}
.gp-card__code{font:600 1.15rem/1.2 'Courier New',monospace;letter-spacing:.06em;background:rgba(255,255,255,.12);border-radius:8px;padding:.55rem .7rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.gp-card__copy{border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;border-radius:6px;padding:.35rem .6rem;font:500 .68rem/1 var(--fb,'Plus Jakarta Sans',sans-serif);cursor:pointer;transition:background .25s ease}
.gp-card__copy:hover{background:rgba(255,255,255,.15)}
.gp-card__meta{font:300 .7rem/1.5 var(--fb,'Plus Jakarta Sans',sans-serif);opacity:.8;margin-top:.9rem}
.gp-card__msg{font:300 .78rem/1.5 var(--ft,'Cormorant Garamond',serif);font-style:italic;opacity:.9;margin-top:.7rem;border-left:2px solid var(--cta,#E8623D);padding-left:.7rem}
.gp-success-note{font:300 .8rem/1.6 var(--fb,'Plus Jakarta Sans',sans-serif);color:var(--ink-light,#4A4A4A);margin:0}
@media(max-width:540px){.gp-panel{padding:1.9rem 1.3rem 1.6rem}.gp-title{font-size:1.45rem}}
