/* Additions for Front01_promo / Front01_offer. No external dependencies. */
.gm-visual{--gm-violet:var(--violet,#674ea7);--gm-sand:var(--sand,#f2ede4);--gm-surface:var(--surface,#fbf8f2);--gm-ink:var(--graphite,#1a1a1a);--gm-muted:var(--muted,#6b6259);--gm-line:var(--border,#e0d8c9);box-sizing:border-box;color:var(--gm-ink);font-family:inherit}
.gm-visual *{box-sizing:border-box}
.gm-visual img{display:block;width:100%;height:auto}
.gm-hero{margin:30px 0 0;position:relative;border-radius:18px;overflow:hidden;background:#f2ede4;aspect-ratio:3/2}
.gm-hero>img{width:100%;height:100%;object-fit:cover}
.gm-hero figcaption{position:absolute;inset:auto 16px 16px;margin:0;display:flex;gap:8px;flex-wrap:wrap;text-align:left}
.gm-chip{display:inline-flex;align-items:center;gap:7px;background:#fbf8f2;color:#322c28;padding:8px 12px;border-radius:999px;font-size:13px;font-weight:700;line-height:1.35;box-shadow:0 2px 12px #1a1a1a0a}
.gm-chip svg{width:17px;height:17px;flex:none;color:#674ea7}
.gm-build{margin:40px 0;background:var(--gm-surface);border:1px solid var(--gm-line);border-radius:20px;overflow:hidden}
.gm-build-photo{margin:0;position:relative;aspect-ratio:3/2;overflow:hidden;background:#f2ede4}
.gm-build-photo>img{width:100%;height:100%;object-fit:cover}
.gm-arrow{position:absolute;top:43%;left:49%;width:38px;height:38px;display:grid;place-items:center;background:#fbf8f2;color:#674ea7;border:1px solid #e0d8c9;border-radius:50%;transform:translate(-50%,-50%)}
.gm-arrow svg{width:21px;height:21px}
.gm-build-text{padding:24px}
.gm-kicker{display:block;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10px;letter-spacing:.13em;line-height:1.6;text-transform:uppercase;color:var(--gm-violet);margin:0 0 9px}
.gm-visual .gm-title{font-size:clamp(21px,3.5vw,27px);line-height:1.22;letter-spacing:-.035em;font-weight:750;margin:0 0 22px;color:var(--gm-ink)}
.gm-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none}
.gm-metrics li{margin:0;padding:0;min-width:0;border-left:1px solid var(--gm-line);padding-left:16px}
.gm-metrics li:first-child{border:0;padding:0}
.gm-metrics strong{display:block;color:var(--gm-violet);font-weight:650;font-size:clamp(22px,4vw,32px);letter-spacing:-.045em;line-height:1.2;font-variant-numeric:tabular-nums}
.gm-metrics span{display:block;margin-top:7px;font-size:12px;line-height:1.5;color:var(--gm-muted)}
.gm-visual .gm-small{font-size:11px;line-height:1.5;margin:18px 0 0;color:var(--gm-muted)}
.gm-package{padding:28px 24px;margin:34px 0;background:var(--gm-surface);border:1px solid var(--gm-line);border-radius:20px;overflow:hidden}
.gm-covers{display:grid;grid-template-columns:1.08fr 1fr 1fr;gap:13px;align-items:center;padding:10px 2px 25px}
.gm-cover{border-radius:3px 10px 10px 3px;box-shadow:0 9px 15px #211a3117;overflow:hidden;transform:rotate(-4deg);aspect-ratio:3/4}
.gm-cover:nth-child(2){transform:rotate(2deg) translateY(12px)}
.gm-cover:nth-child(3){transform:rotate(6deg) translateY(2px)}
.gm-package-summary{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.gm-package-summary span{border:1px solid var(--gm-line);border-radius:999px;padding:6px 10px;font-size:12px;line-height:1.4}
.gm-package-summary span:first-child{background:var(--violet-soft,#ede8f7);border-color:transparent;color:var(--gm-violet)}
.gm-reading-progress{position:fixed;inset:0 0 auto;height:3px;pointer-events:none;z-index:9999;background:var(--violet,#674ea7);transform:scaleX(0);transform-origin:left center}
.gm-reading-progress[hidden]{display:none}
.gm-motion .cta:focus-visible{outline:3px solid var(--violet,#674ea7);outline-offset:4px}
@media (prefers-reduced-motion:no-preference){
 .gm-motion .cta{transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
 .gm-motion .cta:active{transform:translateY(1px)}
 @media(hover:hover){.gm-motion .cta:hover{transform:translateY(-2px);box-shadow:0 7px 18px #674ea733}}
}
@media(max-width:430px){
 .gm-build-text,.gm-package{padding:20px 17px}
 .gm-metrics{gap:10px}.gm-metrics li{padding-left:10px}
 .gm-covers{gap:9px}.gm-hero figcaption{inset:auto 12px 12px;gap:6px}
 .gm-chip{font-size:11px;padding:7px 10px}.gm-arrow{width:29px;height:29px}
}
