/* GratisAI Plus layer — assets/site/plus.css
   Visceral, photorealistic, animated — within the house law: motion is
   transform/opacity only, 150–400ms, ease-out, and off for reduced motion;
   targets ≥44px; focus ring ≥3:1; no layout shift from imagery (aspect-ratio
   boxes reserved before paint). Works without this sheet: content first. */
:root{--gp-ink:#17231f;--gp-paper:#f6f4ee;--gp-accent:#b4552d;--gp-deep:#103d72;--gp-focus:#103d72;--gp-radius:18px}
.gp-wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.gp-hero{position:relative;border-radius:var(--gp-radius);overflow:hidden;isolation:isolate;color:#fff;aspect-ratio:16/7;min-height:280px;display:flex;align-items:flex-end}
.gp-hero-art{position:absolute;inset:0;background-size:cover;background-position:center;z-index:-2;transform:scale(1.02)}
.gp-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,18,28,.06),rgba(10,18,28,.72))}
.gp-hero-copy{padding:28px;max-width:640px}
.gp-hero-copy h2{font-size:clamp(1.8rem,4.5vw,3rem);line-height:1.02;margin:.2em 0}
.gp-eyebrow{letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;font-weight:700}
.gp-flow{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0;padding:0;list-style:none}
.gp-flow li{flex:1 1 180px;background:#fffefa;border:1px solid #c9d0c9;border-radius:14px;padding:14px 16px}
.gp-flow b{display:block;font-size:1.05rem}
.gp-flow span{color:#4b5a53}
.gp-share{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}
.gp-share-phrase{font-weight:700;margin-right:4px}
.gp-share-btn{min-height:44px;display:inline-flex;align-items:center;padding:8px 14px;border-radius:999px;border:1px solid var(--gp-deep);color:var(--gp-deep);background:#fffefa;text-decoration:none;font-weight:600;cursor:pointer;transition:transform 200ms ease-out,opacity 200ms ease-out}
.gp-share-btn:hover{transform:translateY(-2px)}
.gp-share-btn:focus-visible,.gp-btn:focus-visible{outline:3px solid var(--gp-focus);outline-offset:2px}
.gp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:16px}
.gp-card{background:#fffefa;border:1px solid #c9d0c9;border-radius:var(--gp-radius);padding:20px;transition:transform 250ms ease-out,opacity 250ms ease-out}
.gp-card h3{margin:.1em 0;font-size:1.25rem}
.gp-card .gp-phrase{font-style:italic;color:#7a3a1e}
.gp-photo{border-radius:var(--gp-radius);width:100%;aspect-ratio:16/9;background-size:cover;background-position:center}
[data-gp-tilt]{transition:transform 250ms ease-out;will-change:transform}
.gp-reveal{opacity:0;transform:translateY(14px)}
.gp-reveal.gp-in{opacity:1;transform:none;transition:opacity 350ms ease-out,transform 350ms ease-out}
.gp-btn{min-height:44px;padding:10px 18px;border-radius:999px;border:0;background:var(--gp-accent);color:#fff;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.gp-btn.secondary{background:var(--gp-deep)}
.gp-stat{font-size:clamp(2rem,6vw,3.2rem);font-weight:800;line-height:1}
.gp-canvas{width:100%;height:180px;display:block;background:#fffefa;border:1px solid #c9d0c9;border-radius:14px}
input.gp-range{width:100%;min-height:44px}
table.gp-compare{width:100%;border-collapse:collapse}
table.gp-compare th,table.gp-compare td{border-bottom:1px solid #c9d0c9;padding:10px;text-align:left}
table.gp-compare tr[data-differs="1"] td{background:#fdf0e7}
@media (max-width:640px){.gp-hero{aspect-ratio:auto}.gp-hero-copy{padding:20px}}
@media (prefers-reduced-motion:reduce){.gp-reveal{opacity:1;transform:none}.gp-share-btn:hover{transform:none}[data-gp-tilt]{transition:none}}
