/* =====================================================================================================================
   dashboardACE  -  the content pages: Done-for-you (/services), Enterprise (/enterprise), Partners (/partners).
   The legal pages (/dpa, /acceptable-use) use the shared .prose-page styles in style.css.
   ===================================================================================================================== */

.ct-packages { margin-bottom: 110px; }
.ct-head { margin-top: 0; }
#page-services .section-head.center > p, #page-enterprise .section-head.center > p, #page-partners .section-head.center > p { margin: 18px auto 0; }

/* Numbered steps on cards: three across (Partners) or four (Done-for-you) */
.ct-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-bottom: 110px; }
.ct-steps.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ct-step { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 32px 30px 34px; border-radius: 20px; background: var(--card); }
.ct-step-no { position: absolute; top: 28px; right: 28px; font: 600 14px/1 var(--mono); color: var(--ink-3); }
.ct-step > i { width: 64px; height: 64px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 14px; font-size: 22px; color: var(--accent); background: radial-gradient(circle at 30% 25%, #fff, #E1E3FF 72%); }
.ct-step h3 { font: 600 22px/1.25 var(--font); letter-spacing: -0.02em; }
.ct-step p { font-size: 15.5px; line-height: 1.6; }
.ct-step code { font: 500 13.5px/1.5 var(--mono); color: var(--accent); word-break: break-all; }

/* A heading on the left, questions on the right - as on the home page */
.ct-faq-wrap { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.4fr); gap: 70px; align-items: start; margin-bottom: 110px; }
.ct-faq-wrap .section-head { display: block; margin: 0; }
.ct-faq-wrap .section-head h2 { margin-top: 16px; }

/* Enquiry forms */
.ct-lead { scroll-margin-top: 110px; }
.contact-form .field select { background: transparent; border: 0; border-bottom: 1px dashed var(--line-2); border-radius: 0; padding-left: 0; height: 48px; color: var(--ink); }
.contact-form .field select:focus { box-shadow: none; border-bottom: 1.5px solid var(--accent); background: transparent; }
.contact-form .field select option { background: var(--card); color: var(--ink); }
.contact-form .field textarea::placeholder { color: var(--ink-3); }

/* Feature cards (Enterprise) */
.ct-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ct-card { display: flex; flex-direction: column; gap: 12px; padding: 32px 30px 34px; border-radius: 20px; background: var(--card); transition: transform 0.4s cubic-bezier(.2, .7, .2, 1), box-shadow 0.4s ease; }
.ct-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.ct-card > i { width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 12px; font-size: 20px; color: var(--accent); background: #DEE1FA; }
.ct-card h3 { font: 600 22px/1.25 var(--font); letter-spacing: -0.02em; }
.ct-card p { font-size: 15.5px; line-height: 1.6; }
.ct-actions { display: flex; justify-content: center; margin: 44px 0 110px; }

/* Copy on the left, a checked list on the right */
.ct-split { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.3fr); gap: 60px; align-items: start; margin-bottom: 110px; }
.ct-split h2 { font-size: clamp(30px, 3.2vw, 46px); margin: 16px 0 18px; }
.ct-split > div > p { font-size: 17px; line-height: 1.65; }
.ct-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.ct-checks li { display: flex; gap: 16px; align-items: flex-start; padding: 18px 22px; border-radius: 16px; background: var(--card); font-size: 15.5px; line-height: 1.6; color: var(--ink-2); }
.ct-checks li > i { flex-shrink: 0; width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; color: var(--accent); background: var(--accent-soft); }
.ct-checks strong { color: var(--ink); font-weight: 600; }

/* Embedded analytics: a dark panel with the embed code beside it */
.ct-embed { position: relative; isolation: isolate; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 50px; align-items: center; margin-bottom: 110px; padding: 60px; border-radius: 22px; background: var(--panel-bg); color: var(--panel-mute); scroll-margin-top: 110px; }
.ct-embed .eyebrow { color: var(--accent-light); }
.ct-embed h2 { color: #fff; font-size: clamp(32px, 3.6vw, 52px); margin: 16px 0 18px; }
.ct-embed-copy > p { color: var(--panel-mute); font-size: 17px; line-height: 1.65; margin-bottom: 26px; }
.ct-embed .ct-checks { margin-bottom: 30px; }
.ct-embed .ct-checks li { background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.08); color: var(--panel-mute); }
.ct-embed .ct-checks li > i { color: var(--amber); background: rgba(255, 178, 36, 0.12); }
.ct-embed .ct-checks strong { color: #fff; }
.ct-code { min-width: 0; border-radius: 16px; background: rgba(5, 7, 16, 0.75); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.7); }
.ct-code-bar { display: flex; align-items: center; gap: 7px; padding: 14px 18px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.ct-code-bar span { width: 10px; height: 10px; border-radius: 50%; background: rgba(255, 255, 255, 0.18); }
.ct-code-bar em { margin-left: 10px; font: 500 12.5px/1 var(--mono); font-style: normal; color: var(--panel-mute); }
.ct-code pre { margin: 0; padding: 24px 22px 26px; overflow-x: auto; }
.ct-code code { font: 500 14px/1.75 var(--mono); color: #C8C5FF; white-space: pre; }
.ct-code code b { color: var(--amber); font-weight: 500; }

/* Partners: the member's panel, or a sign-up prompt */
.ct-partner { margin-bottom: 110px; }
.ct-partner #PartnerPanel:empty { display: none; }
.ct-guest { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 46px 50px; margin: 0; }
.ct-guest h2 { font-size: clamp(28px, 2.8vw, 40px); margin: 14px 0 12px; }
.ct-guest p { max-width: 620px; }
.ct-guest-actions { display: flex; flex-direction: column; gap: 12px; flex-shrink: 0; }
.ct-guest-actions .btn { justify-content: center; }

[data-theme="dark"] .ct-step > i { background: var(--accent-soft); }
[data-theme="dark"] .ct-card > i { background: var(--accent-soft); }

@media (max-width: 1240px) {
    .ct-steps.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1100px) {
    .ct-steps, .ct-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ct-faq-wrap, .ct-split, .ct-embed { grid-template-columns: minmax(0, 1fr); gap: 34px; }
    .ct-guest { flex-direction: column; align-items: flex-start; }
    .ct-guest-actions { flex-direction: row; flex-wrap: wrap; }
}

@media (max-width: 720px) {
    .ct-packages, .ct-steps, .ct-faq-wrap, .ct-split, .ct-embed, .ct-partner { margin-bottom: 70px; }
    .ct-steps, .ct-steps.four, .ct-cards { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .ct-step, .ct-card { padding: 26px 22px 28px; }
    .ct-actions { margin: 30px 0 70px; }
    .ct-embed { padding: 34px 20px; border-radius: 18px; }
    .ct-code code { font-size: 12.5px; }
    .ct-checks li { padding: 16px 16px; gap: 12px; }
    .ct-guest { padding: 30px 22px; }
    .ct-guest-actions { flex-direction: column; width: 100%; }
    .ct-guest-actions .btn { width: 100%; }
}

/* The footer's legal row holds four links now: let it wrap on a phone. */
.footer-legal { flex-wrap: wrap; row-gap: 10px; }
