/* V2.6 — scoped to the gift configurator and its WooCommerce session summary. */
.mp-gift-dialog, .mp-gift-cart, .mp26-gift-single { --mg-ink:#263c32; --mg-muted:#58675d; --mg-paper:#faf7ef; --mg-sage:#e6ebe1; --mg-cream:#f1eadf; --mg-clay:#a45136; --mg-line:#d5dacf; }
.mp-gift-dialog *, .mp-gift-cart *, .mp26-gift-single * { box-sizing:border-box; }
.mp-gift-dialog[open] { display:block; }
.mp-gift-dialog { position:fixed; inset:0; width:min(660px,calc(100vw - 48px)); max-width:660px; max-height:calc(100dvh - 56px); margin:auto; padding:0; border:1px solid var(--mg-line); border-radius:8px; background:var(--mg-paper); color:var(--mg-ink); box-shadow:0 22px 90px #17271e38; font:15px/1.55 system-ui,sans-serif; overflow:auto; overscroll-behavior:contain; }
.mp-gift-dialog::backdrop { background:#182b23a8; }
html.mp-gift-is-open { overflow:hidden; }
.mp-gift-shell { padding:30px 34px 28px; }
.mp-gift-header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:20px; }
.mp-gift-dialog h2, .mp-gift-dialog h3, .mp-gift-cart h2, .mp-gift-cart h3 { color:var(--mg-ink); font-family:Georgia,'Times New Roman',serif; font-weight:400; text-transform:none; letter-spacing:-.035em; }
.mp-gift-dialog h2 { font-size:32px; line-height:1.16; margin:0; }
.mp-gift-dialog .mp-gift-eyebrow, .mp-gift-cart .mp-gift-eyebrow { margin:0 0 9px; color:var(--mg-muted); font:600 10px/1.5 system-ui,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.mp-gift-dialog button, .mp-gift-cart button { cursor:pointer; text-transform:none; letter-spacing:normal; box-shadow:none; }
.mp-gift-dialog .mp-gift-close { flex:0 0 44px; width:44px; height:44px; min-height:44px; padding:0; border:1px solid var(--mg-line); border-radius:50%; background:transparent; color:var(--mg-ink); font:28px/1 system-ui,sans-serif; }
.mp-gift-dialog :focus-visible, .mp-gift-cart :focus-visible, .mp26-gift-single :focus-visible { outline:3px solid var(--mg-clay); outline-offset:4px; }
.mp-gift-dialog h2:focus, .mp-gift-dialog h3:focus { outline:none; }
.mp-gift-progress { display:flex; gap:12px; padding-bottom:16px; margin-bottom:16px; border-bottom:1px solid var(--mg-line); color:var(--mg-muted); font-size:12px; }
.mp-gift-progress [aria-current] { color:var(--mg-ink); font-weight:650; }
.mp-gift-intro { color:var(--mg-muted); margin:0 0 20px; }
.mp-gift-dialog .mp-gift-types { display:grid; grid-template-columns:1fr 1fr; gap:12px; border:0; padding:0; margin:0 0 22px; }
.mp-gift-types legend { width:100%; margin:0 0 10px; color:var(--mg-ink); font-size:14px; font-weight:600; }
.mp-gift-types label { display:flex; align-items:flex-start; gap:9px; min-width:0; margin:0; padding:15px 12px; border:1px solid #aab5a6; border-radius:5px; background:transparent; cursor:pointer; }
.mp-gift-types label:has(input:checked) { background:var(--mg-sage); border-color:var(--mg-ink); box-shadow:inset 0 0 0 1px var(--mg-ink); }
.mp-gift-types input { flex:0 0 auto; accent-color:var(--mg-ink); margin:4px 0 0; width:16px; height:16px; }
.mp-gift-types strong { display:block; font-size:14px; font-weight:650; }
.mp-gift-types small { display:block; margin-top:5px; color:var(--mg-muted); font-size:12px; line-height:1.45; }
.mp-gift-field { margin-bottom:19px; }
.mp-gift-field > label { display:block; margin:0 0 7px; font-size:14px; line-height:1.5; font-weight:600; color:var(--mg-ink); }
.mp-gift-field label span { font-weight:400; color:var(--mg-muted); font-size:12px; }
.mp-gift-dialog .mp-gift-field input:not([type="checkbox"]), .mp-gift-dialog .mp-gift-field select, .mp-gift-dialog .mp-gift-field textarea { display:block; width:100%; max-width:100%; min-height:48px; padding:11px 13px; border:1px solid #a5b19e; border-radius:4px; background:#fffdf9; color:var(--mg-ink); font:16px/1.45 system-ui,sans-serif; box-shadow:none; }
.mp-gift-dialog .mp-gift-field select { padding-right:32px; text-overflow:ellipsis; }
.mp-gift-dialog .mp-gift-field textarea { min-height:93px; resize:vertical; }
.mp-gift-dialog .mp-gift-field [aria-invalid="true"] { border:2px solid #9e3a26; }
.mp-gift-hint { margin:7px 0 0; color:var(--mg-muted); font-size:12px; line-height:1.5; }
.mp-gift-amount-input { position:relative; }
.mp-gift-amount-input span { position:absolute; right:15px; top:12px; color:var(--mg-muted); }
.mp-gift-dialog .mp-gift-amount-input input { padding-right:40px !important; }
.mp-gift-choice-summary { display:flex; justify-content:space-between; align-items:center; gap:15px; margin:0 0 20px; padding:13px 15px; border:1px solid var(--mg-line); border-radius:4px; background:var(--mg-sage); font-size:14px; }
.mp-gift-field .mp-gift-checkbox { display:flex; align-items:flex-start; gap:9px; margin:9px 0 0; padding:6px 0; font-size:13px; font-weight:400; cursor:pointer; }
.mp-gift-checkbox input { width:17px; height:17px; margin:2px 0 0; accent-color:var(--mg-ink); flex:0 0 auto; }
.mp-gift-footer { padding-top:18px; margin-top:24px; border-top:1px solid var(--mg-line); }
.mp-gift-total { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:16px; }
.mp-gift-total > span { color:var(--mg-muted); font-size:14px; }
.mp-gift-total > strong { font:28px/1.25 Georgia,serif; white-space:nowrap; }
.mp-gift-dialog .mp-gift-button, .mp-gift-cart .mp-gift-button, .mp26-gift-single .mp-gift-button { display:inline-flex; justify-content:center; align-items:center; gap:13px; min-height:49px; padding:13px 20px; margin:0; border:1px solid var(--mg-ink); border-radius:5px; background:var(--mg-ink); color:#fff; font:600 14px/1.45 system-ui,sans-serif; text-align:center; text-decoration:none; white-space:normal; cursor:pointer; }
.mp-gift-dialog .mp-gift-button { width:100%; }
.mp-gift-dialog button.mp-gift-button[type="submit"], .mp-gift-dialog button.mp-gift-button[type="button"], .mp-gift-cart button.mp-gift-button[type="submit"], .mp-gift-cart button.mp-gift-button[type="button"] { text-transform:none; letter-spacing:normal; }
.mp-gift-dialog.mp-gift-confirm { width:min(480px,calc(100vw - 32px)); }
.mp-gift-confirm h2 { font-size:28px; }
.mp-gift-confirm p { margin:17px 0 24px; color:var(--mg-muted); font-size:15px; }
.mp-gift-confirm-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.mp-gift-dialog .mp-gift-button:hover, .mp-gift-cart .mp-gift-button:hover, .mp26-gift-single .mp-gift-button:hover { background:#365242; color:#fff; }
.mp-gift-dialog .mp-gift-button-outline, .mp-gift-cart .mp-gift-button-outline { background:transparent; color:var(--mg-ink); border-color:#9ca99c; }
.mp-gift-dialog .mp-gift-button-outline:hover, .mp-gift-cart .mp-gift-button-outline:hover { background:var(--mg-sage); color:var(--mg-ink); }
.mp-gift-dialog .mp-gift-text-button, .mp-gift-cart .mp-gift-text-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin:0; padding:6px 0; border:0; border-radius:0; background:transparent; color:var(--mg-ink); font:500 12px/1.45 system-ui,sans-serif; text-decoration:underline; text-underline-offset:4px; }
.mp-gift-dialog .mp-gift-text-button:hover, .mp-gift-cart .mp-gift-text-button:hover { color:var(--mg-clay); background:transparent; }
.mp-gift-footer-links { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 18px; margin-top:7px; }
.mp-gift-dialog button:disabled { opacity:.5; cursor:wait; }
.mp-gift-status { margin:0; font-size:13px; color:var(--mg-muted); }
.mp-gift-status:not(:empty) { margin:0 0 14px; }
.mp-gift-error { margin:0 0 17px; padding:12px 14px; border:1px solid #b15a43; border-radius:4px; background:#fbede7; color:#7f3023; font-size:14px; overflow-wrap:anywhere; }
.mp-gift-success { text-align:center; padding:18px 0 6px; }
.mp-gift-success-icon { display:flex; align-items:center; justify-content:center; width:56px; height:56px; margin:0 auto 20px; border-radius:50%; background:var(--mg-sage); font-size:25px; }
.mp-gift-success h3 { margin:0 auto 15px; max-width:390px; font-size:29px; line-height:1.25; }
.mp-gift-success > p { margin:0 auto 25px; color:var(--mg-muted); overflow-wrap:anywhere; }
.mp-gift-success-actions { display:grid; gap:11px; }
.mp-gift-dialog [hidden], .mp-gift-cart [hidden] { display:none !important; }
.mp-gift-cart { max-width:1120px; margin:0 auto 36px; color:var(--mg-ink); font:15px/1.6 system-ui,sans-serif; }
.mp-gift-cart-title { margin:0 0 22px; font-size:36px; line-height:1.2; }
.mp-gift-cart-intro { margin:0 0 22px; color:var(--mg-muted); }
.mp-gift-cart-list { display:grid; gap:16px; }
.mp-gift-cart-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:30px; padding:25px 28px; border:1px solid var(--mg-line); border-radius:5px; background:var(--mg-paper); }
.mp-gift-cart-card h3 { margin:0 0 16px; font-size:25px; line-height:1.25; overflow-wrap:anywhere; }
.mp-gift-metadata { display:grid; grid-template-columns:auto 1fr; gap:5px 16px; margin:0; font-size:14px; }
.mp-gift-metadata dt { color:var(--mg-muted); font-weight:400; }
.mp-gift-metadata dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.mp-gift-cart-actions { display:flex; flex-wrap:wrap; gap:12px 24px; margin:8px 0 -7px; }
.mp-gift-cart-price { text-align:right; }
.mp-gift-cart-price strong { display:block; white-space:nowrap; font:27px/1.3 Georgia,serif; }
.mp-gift-cart-price > span { display:block; margin-top:6px; font-size:12px; color:var(--mg-muted); }
.mp-gift-cart-bottom { display:flex; flex-wrap:wrap; align-items:center; gap:20px 25px; padding-top:25px; }
.mp-gift-cart-total { display:grid; gap:3px; margin-left:auto; text-align:right; }
.mp-gift-cart-total span { font-size:12px; color:var(--mg-muted); }
.mp-gift-cart-total strong { font:27px/1.3 Georgia,serif; }
.mp-gift-cart-notification { color:#7f3023; font-size:14px; }
.mp-gift-cart-notification:empty { display:none; }
.mp-gift-totals-breakdown { display:grid; grid-template-columns:1fr auto; gap:8px 20px; max-width:440px; margin:24px 0 0 auto; padding-top:20px; border-top:1px solid var(--mg-line); font-size:14px; }
.mp-gift-totals-breakdown dt { color:var(--mg-muted); font-weight:400; }
.mp-gift-totals-breakdown dd { margin:0; text-align:right; }
.mp-gift-coupon { margin-top:24px; padding-top:18px; border-top:1px solid var(--mg-line); }
.mp-gift-coupon summary { display:list-item; width:max-content; max-width:100%; cursor:pointer; color:var(--mg-muted); font-size:13px; }
.mp-gift-coupon-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 12px; max-width:450px; margin-top:15px; }
.mp-gift-coupon-form label { grid-column:1 / -1; margin:0; color:var(--mg-ink); font-size:13px; }
.mp-gift-coupon-form input { min-width:0; width:100%; min-height:49px; padding:10px 12px; border:1px solid #a5b19e; border-radius:4px; background:#fffdf9; color:var(--mg-ink); font:16px/1.5 system-ui,sans-serif; }
.mp-gift-coupon-applied { display:flex; align-items:center; gap:20px; font-size:13px; }
.mp-gift-empty { padding:40px 25px; border:1px solid var(--mg-line); border-radius:5px; background:var(--mg-paper); text-align:center; }
.mp-gift-empty img { display:block; width:230px; max-width:80%; height:auto; margin:0 auto 27px; }
.mp-gift-empty h2 { margin:0 auto 15px; max-width:600px; font-size:36px; line-height:1.2; }
.mp-gift-empty p { margin:0 auto 25px; max-width:490px; color:var(--mg-muted); }
/* Homepage enhancement. Root keeps existing section IDs, delivery information and steps. */
.mp26 .mp26-gift-single { max-width:780px; margin:0 auto; text-align:center; }
.mp26 .mp26-gift-single .mp26-gift-preview { display:block; width:100%; max-width:650px; margin:0 auto 26px; padding:30px 42px; border:1px solid #d2dac9; border-radius:5px; background:var(--mg-cream); cursor:pointer; }
.mp26 .mp26-gift-single .mp26-gift-preview img { display:block; width:100%; max-width:510px; height:auto; margin:0 auto; transition:transform .2s ease; }
.mp26 .mp26-gift-single .mp26-gift-preview:hover img { transform:translateY(-3px); }
.mp26 .mp26-gift-single p { max-width:530px; margin:0 auto 22px; color:var(--mg-muted); font-size:16px; line-height:1.65; }
@media (max-width:640px) {
  .mp-gift-dialog { top:auto; width:100%; max-width:none; max-height:calc(100dvh - 10px); margin:0; border:0; border-radius:12px 12px 0 0; }
  .mp-gift-dialog.mp-gift-confirm { width:100%; }
  .mp-gift-shell { padding:23px 20px max(20px,env(safe-area-inset-bottom)); }
  .mp-gift-dialog h2 { font-size:29px; }
  .mp-gift-header { gap:10px; margin-bottom:17px; }
  .mp-gift-dialog .mp-gift-types { gap:9px; }
  .mp-gift-types label { padding:13px 10px; gap:7px; }
  .mp-gift-types strong { font-size:13px; }
  .mp-gift-types small { font-size:11px; }
  .mp-gift-dialog .mp-gift-close { flex-basis:42px; width:42px; height:44px; }
  .mp-gift-choice-summary { gap:10px; padding:10px 12px; }
  .mp-gift-field { margin-bottom:16px; }
  .mp-gift-footer { margin-top:20px; }
  .mp-gift-cart-card { padding:20px; gap:16px; }
  .mp-gift-cart-card h3 { font-size:23px; }
  .mp-gift-cart-price strong { font-size:24px; }
  .mp-gift-cart-bottom { display:grid; grid-template-columns:1fr; gap:18px; }
  .mp-gift-cart-total { display:flex; justify-content:space-between; align-items:center; margin-left:0; }
  .mp-gift-cart .mp-gift-cart-bottom .mp-gift-button { width:100%; }
  .mp-gift-cart-title { font-size:31px; }
  .mp-gift-metadata { grid-template-columns:1fr; gap:0; }
  .mp-gift-metadata dd { margin-bottom:6px; }
  .mp-gift-empty { padding:30px 20px; }
  .mp-gift-empty h2 { font-size:30px; }
  .mp26 .mp26-gift-single .mp26-gift-preview { padding:22px; margin-bottom:22px; }
  .mp26 .mp26-gift-single p { font-size:14px; }
}
@media (max-width:350px) { .mp-gift-shell { padding-inline:15px; } .mp-gift-dialog h2 { font-size:26px; } .mp-gift-cart-card { grid-template-columns:minmax(0,1fr); } .mp-gift-cart-price { display:flex; align-items:center; gap:15px; text-align:left; } }
@media (prefers-reduced-motion:reduce) { .mp26 .mp26-gift-single .mp26-gift-preview img { transition:none; } }
