/* ============================================================
   Practitioners page styles — "GlowGuide Suites" design.
   Loaded after home.css, so it reuses the :root tokens
   (--c-ink, --c-terracotta, --ff-sans, --ff-serif, --ff-mono)
   and the shared FAQ accordion (.faq-*) styles.

   Mobile-first; desktop overrides live in the min-width:1024px
   blocks beneath each section.

   Section order:
     1. Hero            — eyebrow, two-tone headline, body, badge, CTAs, arched image
     2. Stats band      — three dark stat cards
     3. Lead-in         — "technology on tap" centered intro
     4. Steps card      — white rounded card, 3 numbered steps
     5. Feature grid    — dark panel, intro + 6 feature cards
     6. Why technology  — editorial image + text
     7. FAQ             — shared .faq-* accordion (markup only)
     8. Closing CTA     — dark centered band
   ============================================================ */

/* ============================================================
   1. HERO
   Mobile: eyebrow → arched image → headline → body → badge → CTAs.
   Desktop: two columns — text left (eyebrow above), arched image
   bleeding to the right edge.
   ============================================================ */
.prac-hero {
    background: #FFFDF8;
    display: flex;
    flex-direction: column;
    padding: 20px 20px 48px;
    overflow: hidden;
}

.prac-eyebrow {
    color: #C4704A;
    font-family: var(--ff-mono);
    font-size: 12px;
    font-weight: 400;
    line-height: 18px;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    margin: 0;
}

/* Arched image — the radius is on the top-left corner only; the
   #9B8F7D shape backs the image and shows through the corner. */
.prac-media {
    margin-top: 18px;
    aspect-ratio: 411 / 313;
    border-radius: 150px 0 0 0;
    background: #9B8F7D;
    overflow: hidden;
}
.prac-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 45% 30%;
    display: block;
}

.prac-text {
    margin-top: 24px;
}

/* Two-tone headline */
.prac-title {
    margin: 0;
    font-family: var(--ff-sans);
    font-weight: 400;
    letter-spacing: 0.325px;
}
.prac-title-1,
.prac-title-2 {
    display: block;
}
.prac-title-1 {
    color: #7A6B50;
    font-size: 28px;
    line-height: 32px;
}
.prac-title-2 {
    color: #CB734B;
    font-size: 36px;
    line-height: 40px;
}

.prac-body {
    margin-top: 20px;
}
.prac-body p {
    color: #6B6761;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 22px;
    letter-spacing: -0.15px;
    margin: 0;
}
.prac-body p + p {
    margin-top: 16px;
}
.prac-body-lead {
    font-weight: 600 !important;
}

/* "$0 up front" device badge */
.prac-badge {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 24px;
    padding: 14px 16px;
    border: 1px solid #F2EAD8;
    border-radius: 6px;
    background: #FFFDF8;
}
.prac-badge-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #F2EAD8;
    flex: 0 0 36px;
}
.prac-badge-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.prac-badge-title {
    color: #7A6B50;
    font-family: var(--ff-mono);
    font-size: 16px;
    line-height: 20px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}
.prac-badge-list {
    color: #8B7355;
    font-family: 'Jost', sans-serif;
    font-size: 13px;
    font-weight: 500;
    line-height: 18px;
}
.prac-badge-more {
    color: #CB734B;
}

/* CTAs */
.prac-cta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}
.prac-btn-dark,
.prac-btn-outline {
    display: inline-flex;
    height: 28px;
    padding: 0 28px;
    justify-content: center;
    align-items: center;
    gap: 8px;
    box-sizing: border-box;
    white-space: nowrap;
    font-family: var(--ff-sans);
    font-size: 12px;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.2px;
    text-decoration: none;
    transition: opacity 0.15s ease;
}
.prac-btn-dark {
    background: var(--c-ink, #2E2A27);
    color: #FFF;
    border-radius: 32px;
}
.prac-btn-outline {
    color: #B8754D;
    border: 1px solid #C4A87A;
    background: #F2EAD8;
    border-radius: 32px;
}
.prac-btn-dark:hover,
.prac-btn-outline:hover {
    opacity: 0.9;
}
/* Larger dark pill (steps card CTA) */
.prac-btn-dark--lg {
    height: 50px;
    padding: 0 32px;
    font-size: 13px;
}

@media (min-width: 1024px) {
    .prac-hero {
        display: grid;
        grid-template-columns: 1.05fr 0.95fr;
        grid-template-rows: auto auto;
        grid-template-areas:
            "eyebrow media"
            "text    media";
        column-gap: 56px;
        align-items: start;
        padding: 56px 0 64px 56px;
    }
    .prac-eyebrow {
        grid-area: eyebrow;
        font-size: 15px;
    }
    .prac-media {
        grid-area: media;
        align-self: stretch;
        height: 100%;
        margin-top: 0;
        aspect-ratio: auto;
        border-radius: 220px 0 0 0;
    }
    .prac-media img {
        object-position: center;
    }
    .prac-text {
        grid-area: text;
        max-width: 620px;
        margin-top: 24px;
    }
    .prac-title-1 { font-size: 30px; line-height: 36px; }
    .prac-title-2 { font-size: 50px; line-height: 54px; }
    .prac-body p { font-size: 15px; line-height: 24px; }
    .prac-badge-title { font-size: 18px; }
    .prac-badge-list { font-size: 14px; }
}

/* ============================================================
   2. STATS BAND — heading + italic subhead + three dark stat
   cards. Mobile: horizontal snap-scroll slider. Desktop: three
   cards centered, 20px apart.
   ============================================================ */
.prac-stats {
    background: #F5F3EE;
    padding: 48px 0;
    text-align: center;
}
.prac-stats-title {
    color: #5C5449;
    font-family: var(--ff-sans);
    font-size: 30px;
    font-weight: 400;
    line-height: 40px;
    margin: 0;
    padding: 0 20px;
}
.prac-stats-sub {
    color: #8B7355;
    font-family: var(--ff-serif);
    font-style: italic;
    font-size: 20px;
    font-weight: 400;
    line-height: 24px;
    margin: 6px 0 0;
    padding: 0 20px;
}

/* Mobile: cards stacked full-width, number left + label right
   (per mobile frame 109:311/316/321). Desktop: three centered
   cards, number above label. */
.prac-stats-track {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 0 20px;
    margin-top: 28px;
}

.prac-stat-card {
    width: 100%;
    box-sizing: border-box;
    border-radius: 10px;
    background: #3F3C34;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 24px 28px;
}
.prac-stat-number {
    color: #CBC1ED;
    font-family: var(--ff-mono);
    font-size: 40px;
    font-weight: 400;
    line-height: 44px;
}
.prac-stat-label {
    color: #FFF;
    font-family: var(--ff-mono);
    font-size: 11px;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 1px;
    text-transform: uppercase;
}

@media (min-width: 1024px) {
    .prac-stats {
        padding: 58px 56px 80px;
    }
    .prac-stats-title {
        font-size: 40px;
        line-height: 40px;
    }
    .prac-stats-sub {
        font-size: 30px;
        line-height: 24px;
        margin-top: 8px;
    }
    .prac-stats-track {
        flex-direction: row;
        justify-content: center;
        gap: 20px;
        padding: 0;
        margin-top: 45px;
    }
    .prac-stat-card {
        flex: 0 0 368px;
        max-width: 340px;
        width: auto;
        height: 163px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 0;
    }
    .prac-stat-number { font-size: 60px; line-height: 60px; }
    .prac-stat-label { margin-top: 22px; }
}

/* ============================================================
   3. LEAD-IN — "technology on tap" centered intro band.
   ============================================================ */
.prac-leadin {
    background: #FFFDF8;
    text-align: center;
    padding: 40px 20px 0;
}
.prac-leadin-eyebrow {
    color: #C4704A;
    font-family: var(--ff-mono);
    font-size: 18px;
    font-weight: 400;
    line-height: 20px;
    letter-spacing: 0.55px;
    text-transform: uppercase;
    margin: 0;
}
.prac-leadin-title {
    color: #5C5449;
    font-family: var(--ff-sans);
    font-size: 22px;
    font-weight: 400;
    line-height: 28px;
    letter-spacing: 0.3px;
    margin: 14px auto 0;
    max-width: 560px;
}
.prac-leadin-body {
    color: #6B6761;
    font-family: var(--ff-sans);
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
    margin: 14px auto 0;
    max-width: 600px;
}

@media (min-width: 1024px) {
    .prac-leadin {
        padding: 64px 56px 0;
    }
    .prac-leadin-title {
        font-size: 30px;
        line-height: 36px;
    }
}

/* ============================================================
   4. STEPS CARD — white rounded card with a peach/cream radial
   glow. Three numbered steps. Mobile: stacked with horizontal
   dividers. Desktop: three columns with vertical dividers, CTA
   centered below.
   ============================================================ */
.prac-steps-wrap {
    background: #FFFDF8;
    padding: 28px 16px 8px;
}
.prac-steps {
    position: relative;
    background:
        radial-gradient(ellipse 70% 55% at 80% 100%, #EDCFC1 0%, rgba(237, 207, 193, 0) 100%),
        radial-gradient(ellipse 70% 55% at 20% 100%, #EDE5C1 0%, rgba(237, 229, 193, 0) 100%),
        #FFFFFF;
    border-radius: 20px;
    padding: 40px 27px 36px;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.prac-step-num {
    color: #CB734B;
    font-family: var(--ff-mono);
    font-size: 18px;
    font-weight: 400;
    line-height: 20px;
    letter-spacing: 0.55px;
    text-transform: uppercase;
    margin: 0;
}
.prac-step-heading {
    color: #7A6B50;
    font-family: var(--ff-sans);
    font-size: 30px;
    font-weight: 400;
    line-height: 36px;
    letter-spacing: 0.396px;
    margin: 12px 0 0;
}
.prac-step-body {
    color: #6B6761;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 22px;
    letter-spacing: -0.15px;
    margin: 12px 0 0;
}
.prac-step-divider {
    width: 196px;
    height: 0;
    border-top: 1px solid #E4DBCD;
    margin: 28px 0;
}
.prac-steps-cta {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-top: 28px;
}

@media (min-width: 1024px) {
    .prac-steps-wrap {
        padding: 40px 56px 8px;
    }
    .prac-steps {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: flex-start;
        padding: 56px 64px;
    }
    .prac-step {
        flex: 1;
        min-width: 0;
        padding: 0 44px;
    }
    .prac-step:first-of-type { padding-left: 0; }
    .prac-step-divider {
        width: 1px;
        height: auto;
        align-self: stretch;
        border-top: none;
        border-left: 1px solid #E4DBCD;
        margin: 0;
    }
    .prac-step-body { font-size: 14px; }
    .prac-steps-cta {
        flex-basis: 100%;
        margin-top: 44px;
    }
}

/* ============================================================
   5. FEATURE GRID — dark warm-brown panel. Intro column +
   six feature cards. Mobile: stacked, icon-left rows. Desktop:
   intro left, 2-col feature grid right.
   ============================================================ */
.prac-get {
    background: #3F3C34;
    padding: 48px 0 0;
    overflow: hidden;
}
.prac-get-inner {
    padding: 0 20px;
    max-width: 1200px;
    margin: 0 auto;
}
.prac-get-eyebrow {
    color: #CB734B;
    font-family: var(--ff-mono);
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    margin: 0;
}
.prac-get-title {
    color: #FFF;
    font-family: var(--ff-sans);
    font-size: 32px;
    font-weight: 400;
    line-height: 38px;
    letter-spacing: 0.264px;
    margin: 14px 0 0;
}
.prac-get-lead {
    color: #F5EDE3;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: -0.2px;
    margin: 14px 0 0;
}

.prac-get-grid {
    display: flex;
    flex-direction: column;
    gap: 28px;
    margin-top: 36px;
}
.prac-feature {
    display: grid;
    grid-template-columns: 40px 1fr;
    column-gap: 16px;
    align-items: start;
}
.prac-feature-icon {
    grid-row: 1 / 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 2px solid #CBC1ED;
    border-radius: 9999px;
}
.prac-feature-heading {
    grid-column: 2;
    color: #FFF;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 22px;
    letter-spacing: -0.2px;
    margin: 0;
}
.prac-feature-body {
    grid-column: 2;
    color: #F5EDE3;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 21px;
    letter-spacing: -0.2px;
    margin: 6px 0 0;
}

.prac-get-media {
    margin: 24px 0 0;
    padding: 0 20px 32px;
}
/* The chair render sits on a white field; multiply blends that white
   into the dark panel so the chair appears to float. */
.prac-get-media img {
    display: block;
    width: 100%;
    max-width: 260px;
    height: auto;
    mix-blend-mode: multiply;
}

@media (min-width: 1024px) {
    .prac-get {
        padding: 88px 0 0;
    }
    .prac-get-inner {
        padding: 0 56px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
        column-gap: 80px;
        align-items: start;
    }
    .prac-get-intro { grid-column: 1; }
    .prac-get-title { font-size: 60px; line-height: 64px; }
    .prac-get-lead { font-size: 20px; line-height: 30px; }
    .prac-get-grid {
        grid-column: 2;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 48px;
        row-gap: 48px;
        margin-top: 0;
    }
    .prac-feature {
        display: block;
    }
    .prac-feature-icon {
        margin-bottom: 16px;
    }
    .prac-feature-heading { font-size: 18px; }
    .prac-feature-body { font-size: 14px; }
    .prac-get-media {
        padding: 0 56px 56px;
        margin-top: 56px;
    }
    .prac-get-media img { max-width: 320px; }
}

/* ============================================================
   6. WHY TECHNOLOGY — editorial image + text. Mobile: image on
   top. Desktop: image left, text right.
   ============================================================ */
.prac-why {
    background: #FFFDF8;
    padding: 40px 0 48px;
    display: flex;
    flex-direction: column;
    gap: 28px;
}
.prac-why-media {
    width: 100%;
    padding: 0 20px;
}
.prac-why-media img {
    width: 100%;
    height: 280px;
    object-fit: cover;
    border-radius: 14px;
    display: block;
}
.prac-why-body {
    padding: 0 20px;
}
.prac-why-eyebrow {
    color: #C4704A;
    font-family: var(--ff-mono);
    font-size: 13px;
    font-weight: 400;
    line-height: 20px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    margin: 0;
}
.prac-why-heading {
    color: #5C5449;
    font-family: var(--ff-sans);
    font-size: 26px;
    font-weight: 400;
    line-height: 32px;
    letter-spacing: 0.264px;
    margin: 16px 0 0;
}
.prac-why-copy {
    margin-top: 16px;
}
.prac-why-copy p {
    color: #3F3C34;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: -0.312px;
    margin: 0;
}
.prac-why-copy p + p {
    margin-top: 16px;
}

@media (min-width: 1024px) {
    .prac-why {
        flex-direction: row;
        align-items: center;
        gap: 64px;
        padding: 80px 56px 96px;
        max-width: 1312px;
        margin: 0 auto;
    }
    .prac-why-media {
        flex: 1 1 50%;
        min-width: 0;
        padding: 0;
    }
    .prac-why-media img {
        height: auto;
        aspect-ratio: 668 / 495;
    }
    .prac-why-body {
        flex: 1 1 50%;
        min-width: 0;
        max-width: 620px;
        padding: 0;
    }
    .prac-why-heading {
        font-size: 48px;
        line-height: 54px;
        margin-top: 18px;
    }
    .prac-why-copy p {
        font-size: 20px;
        line-height: 30px;
    }
}

/* ============================================================
   8. CLOSING CTA — dark centered band with two-tone headline,
   body, two CTAs, and fine print. Mobile: stacked CTAs.
   Desktop: side-by-side CTAs.
   ============================================================ */
.prac-final {
    background: #3F3C34;
    text-align: center;
    padding: 48px 20px;
}
.prac-final-eyebrow {
    color: #C4704A;
    font-family: var(--ff-mono);
    font-size: 13px;
    font-weight: 400;
    line-height: 18px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    margin: 0;
}
.prac-final-title {
    margin: 16px 0 0;
    font-family: var(--ff-sans);
    font-weight: 400;
    letter-spacing: 0.3px;
}
.prac-final-title-1,
.prac-final-title-2 {
    display: block;
}
.prac-final-title-1 {
    color: #FFF;
    font-size: 32px;
    line-height: 38px;
}
.prac-final-title-2 {
    color: #CBC1ED;
    font-size: 38px;
    line-height: 44px;
}
.prac-final-body {
    color: #FFF;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: -0.2px;
    margin: 18px auto 0;
    max-width: 560px;
}
.prac-final-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin-top: 28px;
}
.prac-final-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 240px;
    max-width: 240px;
    height: 50px;
    border-radius: 9999px;
    box-sizing: border-box;
    font-family: var(--ff-sans);
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.2px;
    white-space: nowrap;
    text-decoration: none;
    transition: opacity 0.15s ease;
}
.prac-final-btn--solid {
    background: #FFF;
    color: #2E2A27;
}
.prac-final-btn--outline {
    border: 1px solid #FFF;
    color: #FFF;
    background: transparent;
}
.prac-final-btn:hover { opacity: 0.9; }
.prac-final-note {
    color: rgba(255, 253, 248, 0.5);
    font-family: var(--ff-sans);
    font-size: 10px;
    font-weight: 400;
    line-height: 14px;
    letter-spacing: 0.2px;
    text-transform: uppercase;
    margin: 18px 0 0;
}

@media (min-width: 1024px) {
    .prac-final {
        padding: 88px 56px;
    }
    .prac-final-title-1 { font-size: 50px; line-height: 56px; }
    .prac-final-title-2 { font-size: 70px; line-height: 76px; }
    .prac-final-body {
        font-size: 20px;
        line-height: 30px;
    }
    .prac-final-cta {
        flex-direction: row;
        justify-content: center;
        gap: 16px;
    }
}
