/* Page d'achat bon cadeau — isolée du thème (préfixe .sgp) */
.sgp{
  --w:#6e1f2b;--w2:#8a2f3c;--g:#cfa460;--g2:#b38845;
  --ink:#1e1a17;--tx:#4a433d;--mu:#857b72;--ln:#e7ddcf;
  --pp:#fffdf9;--cr:#f7f2ea;--soft:#f3eadc;
  background:var(--cr);color:var(--tx);
  font-family:Inter,"Helvetica Neue",Arial,sans-serif;font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.sgp *,.sgp *::before,.sgp *::after{box-sizing:border-box;}
/* Pleine largeur, comme les pages Elementor du site, quel que soit le conteneur du thème. */
.sgp{position:relative;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-top:0;margin-bottom:0;}
body.sghgc-page{overflow-x:hidden;}
body.sghgc-page .site-main,body.sghgc-page #main,body.sghgc-page .ct-container,body.sghgc-page .ct-container-full,body.sghgc-page [class*="ct-container"]{padding-top:0 !important;padding-bottom:0 !important;}
body.sghgc-page .entry-content,body.sghgc-page article{margin:0 !important;}
.sgp h1,.sgp h2{font-family:"Playfair Display",Georgia,serif;color:var(--ink);font-weight:700;margin:0;letter-spacing:0;}
.sgp p{margin:0;}
.sgp svg{display:block;}
.sgp [hidden]{display:none !important;}
.sgp-wrap{max-width:1160px;margin:0 auto;padding:0 24px;}

.sgp-testbar{background:var(--ink);color:#efe7dc;text-align:center;font-size:13px;padding:10px 16px;}

/* ── Hero ── */
.sgp-hero{position:relative;overflow:hidden;padding:clamp(48px,7vw,88px) 0 clamp(28px,4vw,44px);isolation:isolate;}
.sgp-hero h1{font-size:clamp(2.1rem,4.3vw,3.4rem);line-height:1.08;max-width:780px;}
.sgp-lead{margin-top:16px !important;max-width:640px;font-size:clamp(1rem,1.5vw,1.1rem);}
.sgp-trust{list-style:none;margin:24px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 26px;}
.sgp-trust li{display:flex;align-items:center;gap:9px;font-size:.92rem;color:var(--ink);font-weight:500;}
.sgp-trust svg{width:18px;height:18px;color:var(--g2);}

/* ── Achat ── */
.sgp-buy{padding:0 0 clamp(60px,8vw,100px);margin:0;}
.sgp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:clamp(28px,4vw,56px);align-items:start;}
.sgp-form{background:var(--pp);border:1px solid var(--ln);border-radius:22px;padding:clamp(22px,3vw,36px);box-shadow:0 16px 44px rgba(60,40,20,.07);}
.sgp-notices:empty{display:none;}
.sgp-notices{margin-bottom:18px;}
.sgp-notices .woocommerce-error,.sgp-notices .woocommerce-message,.sgp-notices .woocommerce-info{margin:0 0 10px;border-radius:12px;}

.sgp-step{border:0;margin:0;padding:0 0 26px;min-width:0;}
.sgp-step + .sgp-step{border-top:1px solid var(--ln);padding-top:26px;}
.sgp-step legend{display:flex;align-items:center;gap:12px;float:left;width:100%;margin:0 0 18px;padding:0;font-family:"Playfair Display",Georgia,serif;font-size:1.35rem;font-weight:700;color:var(--ink);}
.sgp-step legend + *{clear:both;}
.sgp-n{flex:0 0 30px;height:30px;border-radius:50%;background:var(--w);color:#fff;display:grid;place-items:center;font:600 .85rem Inter,Arial,sans-serif;}

.sgp-amounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:10px;}
.sgp-chip{position:relative;cursor:pointer;margin:0;}
.sgp-chip input,.sgp-opt-card input{position:absolute;opacity:0;pointer-events:none;}
.sgp-chip-in{display:flex;flex-direction:column;justify-content:center;min-height:60px;height:100%;padding:12px 14px;border:1.5px solid var(--ln);border-radius:14px;background:#fff;transition:border-color .15s,box-shadow .15s,background .15s;}
.sgp-chip-in strong{display:block;font-size:1.12rem;color:var(--ink);font-weight:600;line-height:1.25;}
.sgp-chip-in small{display:block;font-size:.82rem;color:var(--mu);margin-top:2px;}
.sgp-chip:hover .sgp-chip-in{border-color:#d8c3a0;}
.sgp-chip input:checked + .sgp-chip-in{border-color:var(--w);background:#fdf8f6;box-shadow:0 0 0 3px rgba(110,31,43,.1);}
.sgp-chip input:checked + .sgp-chip-in strong{color:var(--w);}
.sgp-chip input:focus-visible + .sgp-chip-in,.sgp-opt-card input:focus-visible + .sgp-opt-in{outline:2px solid var(--g);outline-offset:2px;}
.sgp-other{margin-top:14px;max-width:260px;}
.sgp-other label{display:block;font-size:.88rem;font-weight:500;color:var(--ink);margin-bottom:6px;}
.sgp-money{display:flex;align-items:center;border:1.5px solid var(--ln);border-radius:12px;background:#fff;overflow:hidden;}
.sgp-money input{flex:1;min-width:0;border:0 !important;box-shadow:none !important;outline:none;padding:12px 14px !important;font:600 1.05rem Inter,Arial,sans-serif;color:var(--ink);background:transparent !important;margin:0;}
.sgp-money span{padding:0 14px;color:var(--mu);font-size:.9rem;}
.sgp-money:focus-within{border-color:var(--g);box-shadow:0 0 0 3px rgba(207,164,96,.2);}
.sgp-prices{list-style:none;margin:0 0 16px;padding:12px 16px;border-radius:12px;background:var(--soft);display:grid;gap:4px;}
.sgp-prices li{margin:0;padding:0;color:var(--ink);font-size:.95rem;font-weight:500;line-height:1.45;}
.sgp-hint{margin-top:12px !important;font-size:.84rem;color:var(--mu);}

.sgp-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.sgp-field{position:relative;margin-bottom:14px;}
.sgp-field label,.sgp-label{display:block;font-size:.88rem;font-weight:500;color:var(--ink);margin-bottom:6px;}
.sgp-opt{font-weight:400;color:var(--mu);font-size:.8rem;}
.sgp-field input[type=text],.sgp-field textarea,.sgp-when input[type=date]{
  width:100%;margin:0;font:inherit;font-size:.97rem;color:var(--ink);background:#fff;
  border:1.5px solid var(--ln);border-radius:12px;padding:12px 14px;box-shadow:none;outline:none;
  transition:border-color .15s,box-shadow .15s;
}
.sgp-field textarea{resize:vertical;min-height:92px;line-height:1.5;}
.sgp-field input:focus,.sgp-field textarea:focus,.sgp-when input[type=date]:focus{border-color:var(--g);box-shadow:0 0 0 3px rgba(207,164,96,.2);}
.sgp-count{position:absolute;right:12px;bottom:10px;font-size:.75rem;color:var(--mu);background:#fff;padding:0 4px;}
.sgp-help{display:block;margin-top:6px;font-size:.8rem;color:var(--mu);}

.sgp-delivery{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;}
.sgp-opt-card{position:relative;cursor:pointer;margin:0;}
.sgp-opt-in{display:flex;gap:12px;align-items:flex-start;height:100%;padding:14px 16px;border:1.5px solid var(--ln);border-radius:14px;background:#fff;transition:border-color .15s,box-shadow .15s,background .15s;}
.sgp-opt-in svg{flex:0 0 20px;width:20px;height:20px;color:var(--g2);margin-top:2px;}
.sgp-opt-in strong{display:block;font-size:.95rem;color:var(--ink);font-weight:600;}
.sgp-opt-in small{display:block;font-size:.8rem;color:var(--mu);margin-top:2px;line-height:1.4;}
.sgp-opt-card input:checked + .sgp-opt-in{border-color:var(--w);background:#fdf8f6;box-shadow:0 0 0 3px rgba(110,31,43,.1);}
.sgp-opt-card input:checked + .sgp-opt-in svg{color:var(--w);}
.sgp-when{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;}
.sgp-when label{display:flex;align-items:center;gap:7px;margin:0;font-size:.93rem;color:var(--ink);cursor:pointer;}
.sgp-when input[type=radio]{accent-color:var(--w);margin:0;}
.sgp-when input[type=date]{width:auto;min-width:180px;padding:9px 12px;}

/* ── Colonne aperçu ── */
.sgp-sticky{position:sticky;top:24px;}
.sgp-side-title{font-size:.82rem;font-weight:600;color:var(--mu);margin:0 0 10px 4px !important;}
.sgp-side .sghb-wrap{margin-bottom:22px;}
/* Dans la colonne d'aperçu, le bon passe en format vertical pour rester lisible. */
.sgp-side .sghb{grid-template-columns:1fr;aspect-ratio:auto;font-size:3.05cqw;}
.sgp-side .sghb-photo{height:30cqw;}
.sgp-side .sghb-brand{bottom:1.3em;}
.sgp-side .sghb-body{padding:1.9em 2.2em 2em;}
.sgp-side .sghb-title{font-size:2.2em;}
.sgp-side .sghb-for{margin-top:1em;padding-top:0;}
.sgp-side .sghb-for:empty{display:none;}
.sgp-total{display:flex;justify-content:space-between;align-items:baseline;padding:16px 4px;border-top:1px solid var(--ln);}
.sgp-total span{font-size:.95rem;color:var(--tx);}
.sgp-total strong{font-family:"Playfair Display",Georgia,serif;font-size:1.7rem;color:var(--ink);}
.sgp-btn{display:flex;width:100%;align-items:center;justify-content:center;gap:10px;padding:16px 24px;margin:6px 0 0;border:0;border-radius:999px;background:var(--w);color:#fff;font:600 1.02rem Inter,Arial,sans-serif;cursor:pointer;box-shadow:0 12px 26px rgba(110,31,43,.25);transition:background .2s,transform .2s;}
.sgp-btn:hover{background:var(--w2);transform:translateY(-1px);color:#fff;}
.sgp-btn svg{width:19px;height:19px;}
.sgp-secure{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px !important;font-size:.8rem;color:var(--mu);}
.sgp-secure svg{width:14px;height:14px;}

/* ── Comment ça marche ── */
.sgp-how{background:var(--pp);border-top:1px solid var(--ln);padding:clamp(56px,7vw,92px) 0;}
.sgp-how-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:start;}
.sgp-how h2{font-size:clamp(1.7rem,3vw,2.3rem);}
.sgp-steps{list-style:none;margin:26px 0 0;padding:0;counter-reset:s;}
.sgp-steps li{counter-increment:s;position:relative;padding:0 0 22px 54px;font-size:.96rem;}
.sgp-steps li::before{content:counter(s);position:absolute;left:0;top:0;width:38px;height:38px;border-radius:50%;background:var(--soft);color:var(--w);font-weight:600;display:grid;place-items:center;}
.sgp-steps strong{display:block;color:var(--ink);font-size:1.02rem;margin-bottom:2px;}
.sgp-faq{border-top:1px solid var(--ln);}
.sgp-faq details{border-bottom:1px solid var(--ln);}
.sgp-faq summary{cursor:pointer;list-style:none;padding:18px 34px 18px 0;position:relative;font-weight:600;color:var(--ink);}
.sgp-faq summary::-webkit-details-marker{display:none;}
.sgp-faq summary::after{content:"+";position:absolute;right:4px;top:15px;width:24px;height:24px;border-radius:50%;border:1px solid var(--ln);display:grid;place-items:center;color:var(--w);font-weight:500;line-height:1;transition:transform .2s;}
.sgp-faq details[open] summary::after{transform:rotate(45deg);}
.sgp-faq details p{padding:0 0 18px;font-size:.95rem;}

@media (max-width:960px){
  .sgp-grid,.sgp-how-grid{grid-template-columns:1fr;}
  .sgp-sticky{position:static;}
  .sgp-side .sghb-wrap{max-width:560px;}
}
@media (max-width:560px){
  .sgp{font-size:15px;}
  .sgp-row,.sgp-delivery{grid-template-columns:1fr;}
  .sgp-amounts{grid-template-columns:1fr 1fr;}
  .sgp-form{padding:20px 18px;border-radius:18px;}
}
