.hdm-aff { --aff-navy:#1a1a2e; --aff-coral:#E16D48; --aff-coral2:#D45A38; --aff-coral3:#B64B2F; --aff-cream:#f8f6f3; --aff-card:#fafafa; --aff-border:#eee; }
.hdm-aff *, .hdm-aff *::before, .hdm-aff *::after { box-sizing: border-box; }
.hdm-aff { font-family: "Inter", "Fira Sans", "Helvetica Neue", Arial, sans-serif; color: var(--aff-navy); }
.hdm-aff p { margin: 0 0 1em; }

.hdm-aff__lead { font-size: 1.08rem; color: #444; margin: 0 0 32px; line-height: 1.6; }

.hdm-aff__hero { background: var(--aff-navy); color: #fff; padding: 48px 36px; border-radius: 10px; }
.hdm-aff__hero .eyebrow { font-size: 11px; color: var(--aff-coral); letter-spacing: 4px; text-transform: uppercase; font-weight: 700; margin-bottom: 16px; }
.hdm-aff__hero h2 { font-size: 2.1rem; font-weight: 800; line-height: 1.08; letter-spacing: -0.02em; color: #fff; margin: 0 0 16px; }
.hdm-aff__hero h2 span { color: var(--aff-coral); }
.hdm-aff__hero p { color: rgba(255,255,255,0.78); font-size: 0.98rem; margin: 0; line-height: 1.6; max-width: 520px; }

.hdm-aff__spotlight { background: linear-gradient(135deg, var(--aff-coral) 0%, var(--aff-coral2) 100%); color: #fff; padding: 38px 28px; text-align: center; border-radius: 10px; margin-top: 14px; }
.hdm-aff__spotlight .flag { font-size: 10px; letter-spacing: 3px; text-transform: uppercase; opacity: 0.9; font-weight: 700; margin-bottom: 12px; }
.hdm-aff__spotlight .icon { font-size: 46px; line-height: 1; margin-bottom: 10px; }
.hdm-aff__spotlight h3 { font-size: 1.65rem; font-weight: 800; color: #fff; margin: 0 0 8px; }
.hdm-aff__spotlight p { color: rgba(255,255,255,0.95); font-style: italic; font-size: 0.95rem; margin: 0; }

.hdm-aff__strip { background: var(--aff-cream); padding: 16px 18px; text-align: center; font-size: 11px; color: #666; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 500; border-radius: 8px; margin-top: 14px; }
.hdm-aff__strip b { color: var(--aff-navy); font-weight: 700; }
.hdm-aff__strip span + span::before { content: "·"; margin: 0 10px; color: #bbb; }

.hdm-aff__section-head { text-align: center; margin: 44px 0 22px; }
.hdm-aff__eyebrow { font-size: 11px; color: var(--aff-coral); letter-spacing: 4px; text-transform: uppercase; font-weight: 700; margin-bottom: 8px; }
.hdm-aff__section-head h2 { font-size: 1.7rem; color: var(--aff-navy); font-weight: 800; letter-spacing: -0.015em; margin: 0; line-height: 1.2; }
.hdm-aff__section-head .sub { font-size: 0.92rem; color: #666; margin-top: 8px; }

.hdm-aff__v-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 8px; }
.hdm-aff__v-card { background: var(--aff-card); border: 1px solid var(--aff-border); border-radius: 8px; padding: 20px 14px; text-align: center; }
.hdm-aff__v-card .icon { font-size: 26px; line-height: 1; margin-bottom: 10px; }
.hdm-aff__v-card h4 { font-size: 0.98rem; font-weight: 700; color: var(--aff-navy); margin: 0 0 4px; }
.hdm-aff__v-card p { font-size: 0.78rem; color: #777; margin: 0; line-height: 1.45; }

.hdm-aff__promise { background: var(--aff-card); border: 1px solid var(--aff-border); padding: 38px 28px; text-align: center; border-radius: 10px; margin: 36px 0 0; }
.hdm-aff__promise .hdm-aff__eyebrow { margin-bottom: 14px; }
.hdm-aff__promise blockquote { font-size: 1.18rem; color: var(--aff-navy); font-weight: 500; max-width: 540px; margin: 0 auto 12px; line-height: 1.5; letter-spacing: -0.01em; border: none; padding: 0; font-style: normal; }
.hdm-aff__promise cite { display: block; font-size: 11px; color: #999; letter-spacing: 1.5px; text-transform: uppercase; font-style: normal; font-weight: 600; }

.hdm-aff__cta { padding: 50px 32px; text-align: center; background: linear-gradient(135deg, var(--aff-coral) 0%, var(--aff-coral3) 100%); border-radius: 10px; margin-top: 28px; }
.hdm-aff__cta h2 { color: #fff; font-size: 1.85rem; font-weight: 800; letter-spacing: -0.02em; margin: 0 0 10px; }
.hdm-aff__cta p { color: rgba(255,255,255,0.94); font-size: 0.98rem; margin: 0 auto 24px; max-width: 460px; }
.hdm-aff__btn { display: inline-block; background: #fff; color: var(--aff-coral) !important; padding: 14px 38px; text-decoration: none; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; font-weight: 800; border-radius: 4px; transition: transform 0.15s ease; }
.hdm-aff__btn:hover { transform: translateY(-1px); color: var(--aff-coral2) !important; }

@media (max-width: 600px) {
  .hdm-aff__hero { padding: 38px 26px; }
  .hdm-aff__hero h2 { font-size: 1.7rem; }
  .hdm-aff__v-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .hdm-aff__cta h2 { font-size: 1.5rem; }
  .hdm-aff__strip span + span::before { display: block; content: ""; }
}
