.halloween-page {
  --h-text:#20242a; --h-muted:#68707c; --h-line:#eadff0;
  --h-primary:#7b3f98; --h-dark:#54286b; --h-accent:#ee8b2d; --h-soft:#fbf5ff;
  color:var(--h-text); font-family:"Open Sans",sans-serif;
}
.halloween-page *, .halloween-page *::before, .halloween-page *::after { box-sizing:border-box; }
.halloween-wrap { width:min(1180px,calc(100% - 32px)); margin:0 auto; }

.halloween-hero {
  padding:62px 0 72px; overflow:hidden;
  background:radial-gradient(circle at 82% 15%,rgba(238,139,45,.24),transparent 30%),
             linear-gradient(180deg,#faf4ff 0%,#fff 94%);
}
.halloween-hero-grid { display:grid; grid-template-columns:1.08fr .92fr; gap:54px; align-items:center; }
.halloween-back { display:inline-block; margin-bottom:16px; color:var(--h-dark); font-weight:700; text-decoration:none; }
.halloween-eyebrow { margin-bottom:10px; color:var(--h-primary); font-family:"Baloo 2",sans-serif; font-size:15px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.halloween-hero h1 { max-width:690px; margin:0; font-size:clamp(42px,5.2vw,68px); line-height:1.03; letter-spacing:-.025em; font-weight:800; }
.halloween-hero h1 span { color:var(--h-accent); font-family:"Baloo 2",sans-serif; }
.halloween-hero p { max-width:650px; margin:22px 0 28px; color:#4f5661; font-size:18px; line-height:1.7; }
.halloween-actions { display:flex; flex-wrap:wrap; gap:12px; }
.halloween-primary,.halloween-secondary { display:inline-flex; align-items:center; justify-content:center; padding:14px 20px; border-radius:13px; font-family:"Baloo 2",sans-serif; font-size:16px; font-weight:800; text-decoration:none; }
.halloween-primary { background:var(--h-primary); color:#fff; }
.halloween-primary:hover { background:var(--h-dark); }
.halloween-secondary { border:1px solid #ddcce5; background:#fff; color:var(--h-dark); }
.halloween-cover { display:grid; place-items:center; }
.halloween-cover img { display:block; width:min(350px,80%); max-height:500px; object-fit:contain; border:6px solid #fff; border-radius:18px; box-shadow:0 22px 48px rgba(70,34,84,.18); }

.halloween-intro { padding:46px 0 16px; }
.halloween-intro-card { padding:28px 32px; border:1px solid var(--h-line); border-radius:20px; background:var(--h-soft); }
.halloween-intro-card h2,.halloween-gallery h2 { margin:0 0 10px; font-family:"Baloo 2",sans-serif; font-size:clamp(30px,3.6vw,42px); line-height:1.1; }
.halloween-intro-card p { margin:0; color:#505661; font-size:16px; line-height:1.75; }

.halloween-gallery { padding:48px 0 74px; }
.halloween-gallery > .halloween-wrap > h2 { text-align:center; }
.halloween-gallery-lead { max-width:720px; margin:8px auto 34px; text-align:center; color:var(--h-muted); line-height:1.6; }
.halloween-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }

.halloween-card { display:flex; align-items:center; justify-content:center; min-width:0; overflow:hidden; padding:14px; border:1px solid var(--h-line); border-radius:20px; background:#fff; box-shadow:0 8px 24px rgba(0,0,0,.055); }
.halloween-card > img { display:block; width:100%; height:auto; max-height:520px; object-fit:contain; border-radius:10px; }
.halloween-ad-slot { min-height:420px; }

.coloriage-ad { display:flex; width:100%; height:100%; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.coloriage-ad a { display:block; width:100%; text-decoration:none; }
.coloriage-ad img { display:block; width:auto; max-width:90%; max-height:300px; margin:0 auto; object-fit:contain; border-radius:8px; }
.coloriage-ad p { margin:14px 8px 0; color:#2F4F4F; font-family:Arial,sans-serif; font-size:13px; line-height:1.45; }

.halloween-download-bottom { display:flex; justify-content:center; margin-top:40px; }

@media(max-width:900px){.halloween-hero-grid{grid-template-columns:1fr}.halloween-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.halloween-grid{grid-template-columns:1fr}.halloween-actions{flex-direction:column}.halloween-primary,.halloween-secondary{width:100%}.halloween-intro-card{padding:22px}}
