*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root { --green:#25d366; --deep:#0b3d2e; --mid:#0f6b4f; --ink:#000; --graphite:#151515; --steel:#616161; --line:#e3ebe6; }
body {
  font-family: 'Manrope', sans-serif; color: var(--ink); line-height: 1.6; min-height: 100vh;
  background:
    radial-gradient(ellipse 70% 55% at 50% 100%, rgba(37,211,102,.18), transparent 70%),
    radial-gradient(ellipse 50% 40% at 88% 10%, rgba(37,211,102,.10), transparent 70%),
    linear-gradient(180deg, #ffffff 0%, #fbfdfb 35%, #eef9f1 100%);
  background-attachment: fixed;
}
a { color: inherit; text-decoration: none; }
.dm-head { max-width: 1180px; margin: 0 auto; padding: 22px 20px; display: flex; justify-content: space-between; align-items: center; }
.dm-brand { font-weight: 700; letter-spacing: -.01em; }
.dm-head-link { font-size: 14px; font-weight: 600; color: var(--mid); }

.dm-main { display: flex; flex-direction: column; align-items: center; padding: 24px 20px 40px; }
.dm-tag { display: inline-flex; align-items: center; gap: 8px; background: var(--green); color: #04210f; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; font-size: 13px; border-radius: 999px; padding: 8px 18px; }
.dm-tag-dot { width: 9px; height: 9px; border-radius: 50%; background: #04210f; }
.dm-sub { max-width: 620px; text-align: center; color: var(--steel); font-size: 18px; margin: 18px 0 28px; }
.dm-sub b { color: var(--ink); }
.dm-cal { width: 100%; max-width: 1080px; min-height: 640px; border-radius: 24px; overflow: auto; background: linear-gradient(180deg, #ffffff 0%, #fbfdfb 45%, #eef9f1 100%); border: 1px solid var(--line); box-shadow: 0 24px 60px rgba(11,61,46,.10); }
.dm-cal:empty { display: none; }
.dm-fallback { max-width: 520px; text-align: center; color: var(--steel); font-size: 17px; margin-top: 24px; }
.dm-fallback a { color: var(--mid); font-weight: 700; }

.dm-strip { max-width: 1080px; margin: 20px auto 56px; padding: 10px 16px; display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; background: linear-gradient(135deg, #0b3d2e, #0f6b4f); color: #fff; border-radius: 999px; font-size: 14px; }
.dm-btn { display: inline-block; background: var(--green); color: #04210f; font-weight: 700; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; border-radius: 999px; padding: 8px 18px; }
@media (max-width: 1120px) { .dm-strip { margin: 20px 12px 48px; border-radius: 22px; } }
