/* Exact Carnicero gift surface. Inherits AngarTheme typography and controls. */
:root {
  --modal-open-dur: 250ms;
  --modal-close-dur: 150ms;
  --modal-scale: 0.96;
  --modal-scale-close: 0.96;
  --modal-ease: cubic-bezier(0.22, 1, 0.36, 1);
}
.axgift { --axgift-accent:var(--atomx-accent,#ffcc00); margin:16px 0; font:inherit; color:inherit; }
.axgift, .axgift * { box-sizing:border-box; }
.axgift [hidden], .axgift-dialog:not([open]) { display:none !important; }
.axgift-details { border:1px solid #ddd; border-left:3px solid var(--axgift-accent); background:#fff; }
.axgift-summary { display:flex; align-items:center; gap:12px; position:relative; padding:14px 12px; cursor:pointer; list-style:none; }
.axgift-summary::-webkit-details-marker { display:none; }
.axgift-summary::marker { content:''; }
.axgift-thumb { display:flex; align-items:center; justify-content:center; width:88px; height:96px; flex:0 0 88px; background:#f6f6f6; }
.axgift-thumb img { width:100%; height:100%; object-fit:cover; object-position:50% 60%; }
.axgift-copy { display:flex; flex-direction:column; min-width:0; gap:3px; }
.axgift-badge { display:inline-flex; align-self:flex-start; margin:0 0 3px; padding:3px 6px; background:var(--axgift-accent); color:#111; font-size:10px; font-weight:800; line-height:1.4; letter-spacing:.06em; }
.axgift-copy strong { font-size:15px; line-height:1.35; }
.axgift-edition { font-size:12px; line-height:1.4; }
.axgift-condition { font-size:11px; line-height:1.4; color:#555; }
.axgift-discover { margin-top:5px; font-size:12px; font-weight:700; line-height:1.5; text-decoration:underline; text-underline-offset:3px; }
.axgift-close-label, .axgift-details[open] .axgift-open-label { display:none; }
.axgift-details[open] .axgift-close-label { display:inline; }
.axgift-plus { width:24px; height:24px; margin-left:auto; flex:0 0 24px; position:relative; }
.axgift-plus::before, .axgift-plus::after { content:''; position:absolute; top:11px; left:6px; width:12px; height:2px; background:currentColor; }
.axgift-plus::after { transform:rotate(90deg); }
.axgift-details[open] .axgift-plus::after { transform:rotate(0); }
.axgift-content { padding:0 16px 16px; border-top:1px solid #eee; }
.axgift-figure { margin:12px 0; background:#f7f7f7; }
.axgift-figure img { display:block; width:100%; height:300px; object-fit:cover; object-position:50% 63%; }
.axgift-description { font-size:13px; line-height:1.6; margin:12px 0 8px; }
.axgift-terms { font-size:12px; line-height:1.6; color:#555; margin:8px 0 0; }
.axgift .axgift-zoom { margin-top:14px; min-height:44px; font:inherit; font-size:12px; }
.axgift summary:focus-visible, .axgift button:focus-visible { outline:2px solid #111; outline-offset:4px; }
.axgift-dialog { width:calc(100% - 32px); max-width:540px; max-height:90vh; max-height:90dvh; padding:28px; border:1px solid #ddd; margin:auto; overflow:auto; background:#fff; color:#111; font:inherit; }
.axgift-dialog::backdrop { background:rgba(0,0,0,.6); }
.axgift-dialog h2 { margin:8px 44px 4px 0; font:inherit; font-weight:700; font-size:22px; line-height:1.3; }
.axgift-dialog-edition { margin:0; font-size:14px; }
.axgift-dialog > img { display:block; width:100%; height:auto; max-height:50vh; object-fit:contain; margin:20px 0; background:#f7f7f7; }
.axgift-dismiss { position:absolute; top:10px; right:10px; width:44px; height:44px; border:0; background:transparent; font:inherit; color:inherit; font-size:28px; cursor:pointer; }
.t-modal {
  transform-origin: center;
  transform: scale(var(--modal-scale));
  opacity: 0;
  pointer-events: none;
  transition:
    transform var(--modal-open-dur) var(--modal-ease),
    opacity   var(--modal-open-dur) var(--modal-ease);
  will-change: transform, opacity;
}
.t-modal.is-open {
  transform: scale(1);
  opacity: 1;
  pointer-events: auto;
}
.t-modal.is-closing {
  transform: scale(var(--modal-scale-close));
  opacity: 0;
  pointer-events: none;
  transition:
    transform var(--modal-close-dur) var(--modal-ease),
    opacity   var(--modal-close-dur) var(--modal-ease);
}
@media (max-width:360px) { .axgift-summary { gap:8px; padding:12px 8px; } .axgift-thumb { width:64px; height:80px; flex-basis:64px; } .axgift-copy strong { font-size:14px; } }
@media (prefers-reduced-motion: reduce) {
  .t-modal { transition: none !important; }
}
