/* AGENCY — bespoke layout: bold creative, magenta + cream, big case studies */
body[data-niche="agency"] {
  --magenta:#FF2E63; --magenta-deep:#C71E48; --magenta-soft:#FFD7E2;
  --cream:#F8F4EE; --paper:#FFFFFF; --bone:#F1EAE0;
  --char:#0E0A0A; --char-2:#26201F; --slate:#52464A;
  --hairline:#E5DBCE; --teal:#0FB5BA;
  --surface-page:var(--cream); --surface-card:var(--paper); --surface-soft:var(--bone);
  --text-primary:var(--char); --text-secondary:var(--slate); --border-soft:var(--hairline);
  --accent:var(--magenta); --accent-dark:var(--magenta-deep);
  background:var(--cream); color:var(--char); font-family:var(--font-sans);
}
body[data-niche="agency"] h1, body[data-niche="agency"] h2, body[data-niche="agency"] h3 {
  font-family:'Manrope',var(--font-sans); font-weight:800; letter-spacing:-0.03em; color:var(--char); line-height:1.0;
}
.ag-topbar { position:sticky; top:0; z-index:30; background:rgba(248,244,238,.86); backdrop-filter:saturate(160%) blur(14px); border-bottom:1px solid var(--hairline); padding:14px 0; }
.ag-topbar-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.ag-brand { display:inline-flex; align-items:center; gap:8px; font-weight:800; font-size:18px; letter-spacing:-0.01em; }
.ag-brand .dot { display:inline-block; width:10px; height:10px; border-radius:50%; background:var(--magenta); animation:ag-blink 1.4s ease-in-out infinite; }
@keyframes ag-blink { 0%,100% { transform:scale(1); } 50% { transform:scale(1.4); opacity:.6; } }
.ag-nav { display:flex; gap:28px; }
.ag-nav a { color:var(--char-2); font-size:14px; font-weight:600; }
.ag-nav a:hover { color:var(--magenta); }
.ag-cta { display:inline-flex; padding:11px 22px; background:var(--char); color:#fff; font-weight:700; font-size:13px; transition:background .2s; }
.ag-cta:hover { background:var(--magenta); }
@media (max-width:760px) { .ag-nav { display:none; } }

.ag-hero { padding:clamp(48px, 7vw, 96px) 0 clamp(40px, 6vw, 72px); }
.ag-hero h1 { font-size:clamp(54px, 9vw, 156px); line-height:.92; margin:0 0 32px; max-width:14ch; }
.ag-hero h1 .m { color:var(--magenta); }
.ag-hero h1 .strike { background:var(--char); color:#fff; padding:0 12px; margin:0 4px; display:inline-block; transform:rotate(-1deg); }
.ag-hero-row { display:grid; grid-template-columns:1.4fr 1fr; gap:48px; align-items:end; }
.ag-hero-lead { font-size:clamp(18px, 1.6vw, 22px); color:var(--char-2); line-height:1.5; max-width:42ch; margin:0; }
.ag-hero-stats { display:grid; grid-template-columns:1fr 1fr 1fr; gap:32px; margin-top:36px; padding-top:24px; border-top:1px solid var(--char); }
.ag-hero-stat strong { display:block; font-family:'Manrope',sans-serif; font-size:clamp(40px, 5vw, 72px); font-weight:900; line-height:1; color:var(--char); letter-spacing:-0.04em; margin-bottom:6px; }
.ag-hero-stat strong i { font-style:italic; color:var(--magenta); }
.ag-hero-stat span { color:var(--slate); font-size:13px; letter-spacing:.04em; text-transform:uppercase; font-weight:600; max-width:24ch; }
@media (max-width:900px) { .ag-hero-row { grid-template-columns:1fr; } .ag-hero-stats { grid-template-columns:1fr 1fr; } }

.ag-marq { background:var(--char); color:var(--cream); padding:18px 0; overflow:hidden; font-weight:800; font-size:clamp(20px, 2.4vw, 32px); letter-spacing:-0.02em; text-transform:uppercase; }
.ag-marq-track { display:inline-flex; gap:48px; align-items:center; animation:ag-mq 28s linear infinite; padding-right:48px; white-space:nowrap; }
.ag-marq-track span::after { content:'★'; color:var(--magenta); margin-left:48px; }
@keyframes ag-mq { 0% { transform:translateX(0); } 100% { transform:translateX(-50%); } }

.ag-sec { padding:clamp(72px, 9vw, 120px) 0; }
.ag-sec.ink { background:var(--char); color:var(--cream); }
.ag-sec.ink h2 { color:#fff; }
.ag-eye { color:var(--magenta); font-size:11px; letter-spacing:.26em; text-transform:uppercase; font-weight:800; margin-bottom:14px; display:inline-block; }
.ag-h2 { font-size:clamp(36px, 5vw, 72px); line-height:1.0; letter-spacing:-0.03em; margin:0 0 14px; }
.ag-lead { color:var(--slate); font-size:clamp(16px, 1.3vw, 19px); line-height:1.55; max-width:60ch; }
.ag-sec.ink .ag-lead { color:rgba(248,244,238,.7); }

/* CASES */
.ag-cases { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:40px; }
.ag-case { background:var(--paper); border:1px solid var(--hairline); padding:36px 32px; display:flex; flex-direction:column; gap:18px; transition:transform .3s, box-shadow .3s; min-height:420px; position:relative; overflow:hidden; }
.ag-case:hover { transform:translateY(-4px); box-shadow:0 28px 56px -20px rgba(14,10,10,.18); }
.ag-case::before { content:''; position:absolute; top:0; left:0; right:0; height:6px; background:var(--g, var(--magenta)); }
.ag-case-num { font-size:11px; letter-spacing:.2em; text-transform:uppercase; font-weight:800; color:var(--slate); }
.ag-case-num b { color:var(--char); }
.ag-case h3 { font-size:clamp(24px, 2.6vw, 36px); margin:0; line-height:1.05; max-width:18ch; }
.ag-case-desc { color:var(--char-2); font-size:15px; line-height:1.55; margin:0; }
.ag-case-photo { aspect-ratio:16/10; background-size:cover; background-position:center; background-color:var(--bone); border-radius:8px; }
.ag-case-stats { display:grid; grid-template-columns:1fr 1fr 1fr; gap:18px; padding-top:18px; border-top:1px solid var(--hairline); margin-top:auto; }
.ag-case-stats div b { display:block; font-family:'Manrope',sans-serif; font-size:clamp(28px, 3vw, 40px); font-weight:900; color:var(--char); line-height:1; letter-spacing:-0.03em; }
.ag-case-stats div b.m { color:var(--magenta); }
.ag-case-stats div span { color:var(--slate); font-size:11px; letter-spacing:.04em; text-transform:uppercase; font-weight:700; margin-top:4px; display:block; }
@media (max-width:900px) { .ag-cases { grid-template-columns:1fr; } }

/* SERVICES */
.ag-svc { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:40px; border-top:1px solid var(--char); }
.ag-svc-row { padding:32px 0; display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px; border-bottom:1px solid var(--hairline); align-items:start; }
.ag-svc-row .num { font-family:'Manrope',sans-serif; font-size:42px; font-weight:900; color:var(--magenta); line-height:1; letter-spacing:-0.03em; }
.ag-svc-row h3 { font-size:24px; margin:0 0 10px; }
.ag-svc-row p { color:var(--slate); font-size:14px; line-height:1.6; margin:0; }
.ag-svc-row .meta { font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:700; color:var(--char-2); padding-top:10px; }
.ag-svc-row .meta b { display:block; font-size:24px; font-weight:900; color:var(--char); margin-top:6px; letter-spacing:-0.02em; text-transform:none; }
@media (max-width:800px) { .ag-svc-row { grid-template-columns:1fr; gap:8px; } }

/* CLIENTS */
.ag-cli { display:grid; grid-template-columns:repeat(6,1fr); gap:0; margin-top:36px; border:1px solid var(--char); }
.ag-cli-tile { padding:32px 24px; border-right:1px solid var(--char); border-bottom:1px solid var(--char); display:flex; align-items:center; justify-content:center; font-family:'Manrope',sans-serif; font-weight:800; font-size:18px; color:var(--char-2); letter-spacing:-0.005em; transition:background .25s, color .25s; }
.ag-cli-tile:hover { background:var(--char); color:var(--magenta); }
.ag-cli-tile:nth-child(6n) { border-right:0; }
.ag-cli-tile:nth-last-child(-n+6) { border-bottom:0; }
@media (max-width:800px) { .ag-cli { grid-template-columns:1fr 1fr 1fr; } .ag-cli-tile:nth-child(3n) { border-right:0; } .ag-cli-tile:nth-child(6n) { border-right:1px solid var(--char); } }

/* TEAM */
.ag-team { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:36px; }
.ag-team-card { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.12); padding:24px; }
.ag-team-photo { aspect-ratio:1/1; background-size:cover; background-position:center; margin-bottom:16px; filter:grayscale(.6); transition:filter .25s; background-color:rgba(255,255,255,.05); }
.ag-team-card:hover .ag-team-photo { filter:grayscale(0); }
.ag-team-card h3 { color:#fff; font-size:18px; margin:0 0 4px; }
.ag-team-card p { color:var(--magenta); font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; margin:0 0 12px; }
.ag-team-card span { color:rgba(248,244,238,.7); font-size:12px; line-height:1.5; }
@media (max-width:900px) { .ag-team { grid-template-columns:1fr 1fr; } }

/* CTA */
.ag-cta-block { background:var(--magenta); color:#fff; padding:clamp(56px, 7vw, 96px); border-radius:0; margin-top:40px; }
.ag-cta-block h2 { color:#fff; font-size:clamp(36px, 5vw, 64px); margin:0 0 16px; line-height:1.0; }
.ag-cta-block p { color:rgba(255,255,255,.86); font-size:18px; max-width:54ch; margin:0 0 28px; }
.ag-cta-block .ag-cta { background:#fff; color:var(--char); }
.ag-cta-block .ag-cta:hover { background:var(--char); color:#fff; }

/* FAQ */
.ag-faq { max-width:760px; margin:36px auto 0; }
.ag-faq details { border-bottom:1px solid var(--hairline); padding:22px 0; }
.ag-faq summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:18px; font-size:18px; font-weight:700; }
.ag-faq summary::-webkit-details-marker { display:none; }
.ag-faq summary::after { content:'+'; color:var(--magenta); font-size:22px; font-weight:800; transition:transform .25s; }
.ag-faq details[open] summary::after { transform:rotate(45deg); }
.ag-faq details > div { padding-top:12px; color:var(--slate); line-height:1.7; font-size:15px; }

/* FOOTER */
.ag-foot { background:var(--char); color:var(--cream); padding:60px 0 28px; }
.ag-foot-top { display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:36px; }
.ag-foot-brand b { font-size:42px; font-weight:900; letter-spacing:-0.03em; line-height:1; color:#fff; }
.ag-foot-brand b .m { color:var(--magenta); }
.ag-foot-brand p { color:rgba(248,244,238,.6); margin:14px 0 0; max-width:36ch; line-height:1.6; }
.ag-foot h5 { color:var(--magenta); font-size:11px; letter-spacing:.26em; text-transform:uppercase; margin:0 0 14px; font-weight:800; }
.ag-foot a { color:rgba(248,244,238,.78); display:block; padding:4px 0; font-size:13px; }
.ag-foot a:hover { color:var(--magenta); }
.ag-foot-bot { padding-top:20px; border-top:1px solid rgba(255,255,255,.1); display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; color:rgba(248,244,238,.4); font-size:12px; }
@media (max-width:800px) { .ag-foot-top { grid-template-columns:1fr; } }

body[data-niche="agency"] .reveal { opacity:0; transform:translateY(14px); transition:opacity 600ms var(--ease-smooth), transform 600ms var(--ease-smooth); }
body[data-niche="agency"] .reveal.in { opacity:1; transform:none; }
