:root {
    --mpb-beige-clair: #f5efe8;
    --mpb-beige-medium: #e8d9c8;
    --mpb-beige-dore: #c9a882;
    --mpb-brun-doux: #a0825e;
    --mpb-brun: #7d5f44;
    --mpb-brun-fonce: #4e3a28;
    --mpb-blanc: #ffffff;
    --mpb-gris: #6b6560;
    --paper: #f5efe8;
    --surface: #ffffff;
    --ivory-2: #e8d9c8;
    --ink: #4e3a28;
    --text: #4e3a28;
    --muted: #6b6560;
    --line: #e8d9c8;
    --clay: #7d5f44;
    --berry: #7d5f44;
    --teal: #7d5f44;
    --mint: #f5efe8;
    --champagne: #c9a882;
    --gold: #c9a882;
    --shadow: 0 26px 70px rgba(78, 58, 40, .10);
    --shadow-sm: 0 12px 30px rgba(78, 58, 40, .08);
    --page-gutter: clamp(18px, 3vw, 56px);
    --content-width: 100%;
}

/* Final request-tunnel guardrails; kept last to outrank legacy request panels. */
.request-form-clean {
    grid-template-columns: minmax(230px, 300px) minmax(0, 1fr);
}

.request-form-clean .request-selection,
.request-form-clean .request-fields,
.request-form-clean .request-stage-card {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.request-form-clean .request-fields {
    display: grid;
    gap: 0;
    padding: 0;
}

.request-form-clean .request-stage-card {
    padding-inline: 0;
}

.request-form-clean .request-stage-card + .request-stage-card {
    border-top: 1px solid #ded2c2;
}

.request-form-clean .request-submit-row {
    justify-content: flex-end;
}

@media (max-width: 860px) {
    .request-form-clean {
        grid-template-columns: minmax(0, 1fr);
    }

    .request-form-clean .request-selection {
        position: static;
    }
}

/* Request tunnel — one focused action, fixed recipients and an unframed form. */
.request-tunnel-header {
    align-items: center;
    background: #f5efe8;
    border-bottom: 1px solid rgba(201, 168, 130, .32);
    display: flex;
    justify-content: center;
    min-height: 82px;
    padding: 14px var(--page-gutter);
}

.request-tunnel-logo {
    display: block;
    width: clamp(190px, 18vw, 250px);
}

.request-tunnel-logo img {
    display: block;
    filter: none;
    height: auto;
    width: 100%;
}

.request-page {
    gap: clamp(28px, 4vw, 52px);
    margin-inline: auto;
    max-width: 1480px;
    padding-bottom: clamp(56px, 7vw, 96px);
    padding-top: clamp(38px, 5vw, 72px);
}

.request-page .request-header {
    display: block;
    margin: 0 auto;
    max-width: 920px;
    text-align: center;
}

.request-page .request-header h1 {
    margin-inline: auto;
}

.request-page .request-header p {
    color: #625c56;
    margin: 18px auto 0;
    max-width: 850px;
}

.request-form-clean {
    align-items: start;
    display: grid;
    gap: clamp(32px, 4vw, 64px);
    grid-template-columns: minmax(230px, 300px) minmax(0, 1fr);
}

.request-form-clean .request-selection,
.request-form-clean .request-fields,
.request-form-clean .request-stage-card {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.request-form-clean .request-selection {
    max-height: none;
    overflow: visible;
    padding: 0;
    position: sticky;
    top: 104px;
}

.request-selection-head {
    border-bottom: 1px solid #ded2c2;
    gap: 10px;
    margin-bottom: 18px;
    padding-bottom: 18px;
}

.request-selection-head h2 {
    font-family: var(--font-serif);
    font-size: clamp(26px, 2.4vw, 34px);
}

.request-selection-count {
    color: #625c56;
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
}

.request-selection-count strong {
    color: #27231f;
    font-size: inherit;
}

.request-selection-list {
    display: grid;
    gap: 12px;
}

.request-selection-person {
    align-items: center;
    display: grid;
    gap: 13px;
    grid-template-columns: 58px minmax(0, 1fr);
    min-width: 0;
}

.request-selection-person > strong {
    color: #27231f;
    font-size: 15px;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.request-selection-portrait {
    align-items: center;
    background: #ded2c2;
    border: 3px solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 5px 18px rgba(78, 58, 40, .12);
    color: #4e3a28;
    display: inline-flex;
    font-weight: 800;
    height: 58px;
    justify-content: center;
    overflow: hidden;
    width: 58px;
}

.request-selection-portrait img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.request-form-clean .request-fields {
    display: grid;
    gap: 0;
    min-width: 0;
    padding: 0;
}

.request-form-clean .request-stage-card {
    display: grid;
    gap: 22px;
    padding: clamp(26px, 3vw, 40px) 0;
}

.request-form-clean .request-stage-card:first-child {
    padding-top: 0;
}

.request-form-clean .request-stage-card + .request-stage-card {
    border-top: 1px solid #ded2c2;
}

.request-choice-fieldset {
    border: 0;
    display: grid;
    gap: 18px;
    margin: 0;
    padding: 0;
}

.request-choice-fieldset legend,
.request-form-clean .visual-radio-group legend,
.request-simple-title {
    color: #27231f;
    font-family: var(--font-serif);
    font-size: clamp(23px, 2vw, 30px);
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.2;
    margin: 0;
    padding: 0;
    text-transform: none;
}

.request-form-clean .project-options,
.request-form-clean .visual-radio-list {
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.request-form-clean .request-contact-preference-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.request-form-clean .project-choice,
.request-form-clean .visual-radio-card {
    align-items: center;
    background: #ffffff;
    border: 1px solid #ded2c2;
    border-radius: 12px;
    gap: 0;
    justify-content: center;
    min-height: 64px;
    padding: 15px 18px;
    text-align: center;
}

.request-form-clean .project-choice:has(input:checked),
.request-form-clean .visual-radio-card:has(input:checked) {
    background: #f0e5d9;
    border-color: #9f8162;
    box-shadow: inset 0 0 0 1px #9f8162;
}

.request-form-clean .field {
    background: #ffffff;
    border: 1px solid #ded2c2;
    border-radius: 10px;
    box-shadow: none;
    padding: 13px 15px;
}

.request-form-clean .field:focus-within {
    border-color: #7d5f44;
    box-shadow: 0 0 0 3px rgba(125, 95, 68, .09);
}

.request-form-clean .request-contact-preference {
    margin-top: 8px;
}

.request-form-clean .request-contact-choice {
    min-height: 64px;
}

.request-form-clean .request-message-field textarea {
    min-height: 190px;
}

.request-form-clean .field-helper {
    color: #625c56;
    font-size: 13px;
    line-height: 1.55;
    margin-top: 6px;
}

.request-form-clean .request-review-panel {
    background: #f5efe8;
    border: 0;
    border-radius: 12px;
    box-shadow: none;
    gap: 14px;
    padding: 20px;
}

.request-form-clean .request-review-panel > h3 {
    font-size: 21px;
    margin: 0;
}

.request-form-clean .request-review-selected {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
}

.request-form-clean .consent-row {
    align-items: flex-start;
    font-size: 14px;
    line-height: 1.55;
}

.request-form-clean .consent-row input {
    flex: 0 0 auto;
    margin-top: 2px;
}

.request-form-clean .request-submit-row {
    justify-content: flex-end;
}

.request-form-clean .request-submit-row .button-accent {
    min-height: 56px;
    min-width: min(100%, 340px);
}

@media (max-width: 860px) {
    .request-tunnel-header {
        min-height: 70px;
        padding-block: 11px;
    }

    .request-tunnel-logo {
        width: clamp(165px, 46vw, 205px);
    }

    .request-form-clean {
        grid-template-columns: minmax(0, 1fr);
    }

    .request-form-clean .request-selection {
        position: static;
    }

    .request-selection-list {
        display: flex;
        flex-wrap: wrap;
        gap: 14px 20px;
    }

    .request-selection-person {
        grid-template-columns: 48px minmax(0, 1fr);
        width: min(100%, 220px);
    }

    .request-selection-portrait {
        height: 48px;
        width: 48px;
    }

    .request-form-clean .request-question-grid,
    .request-form-clean .request-contact-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 620px) {
    .request-page .request-header {
        text-align: left;
    }

    .request-form-clean .project-options,
    .request-form-clean .visual-radio-list,
    .request-form-clean .request-contact-preference-list {
        grid-template-columns: minmax(0, 1fr);
    }

    .request-form-clean .request-review-selected {
        grid-template-columns: minmax(0, 1fr);
    }

    .request-form-clean .request-submit-row .button-accent {
        width: 100%;
    }
}

/* Training workspace overrides kept near the end so compiled assets keep the full pro training layout. */
.training-page,
.training-course-page,
.training-locked-page {
    display: grid;
    gap: 28px;
    padding-bottom: 76px;
    padding-top: 42px;
}

.training-hero,
.training-card,
.training-course-hero,
.training-course-layout,
.training-locked-card {
    display: grid;
    gap: 22px;
}

.training-hero {
    grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr);
}

.training-hero-copy,
.training-live-card,
.training-stat-grid article,
.training-card,
.training-course-hero,
.training-course-progress-card,
.training-locked-card {
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
}

.training-hero-copy {
    background: #251913;
    color: #fff;
    min-height: 360px;
    padding: clamp(28px, 4vw, 52px);
}

.training-hero-copy h1,
.training-hero-copy p {
    color: inherit;
}

.training-hero-copy h1 {
    font-size: clamp(48px, 6vw, 84px);
}

.training-hero-copy p:not(.eyebrow) {
    color: rgba(255, 255, 255, .78);
    font-size: 18px;
    max-width: 680px;
}

.training-hero-actions,
.training-card-actions,
.training-course-proof,
.training-topic-nav,
.training-badge-stack {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.training-live-card {
    align-content: space-between;
    background: #fff;
    padding: clamp(24px, 3vw, 34px);
}

.training-live-card h2,
.training-library-head h2,
.training-course-hero h1,
.training-locked-card h1 {
    font-family: var(--font-heading);
}

.training-course-hero h1,
.training-locked-card h1 {
    font-family: var(--font-display);
}

.training-live-card h2 {
    font-size: clamp(34px, 3.2vw, 48px);
}

.training-stat-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.training-stat-grid article {
    background: #fff;
    display: grid;
    gap: 8px;
    padding: 18px;
}

.training-stat-grid span,
.training-card-cover span,
.training-card-meta dt,
.training-live-card > span,
.training-masterclass-row small {
    color: var(--muted);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.training-stat-grid strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 42px;
    line-height: .95;
}

.training-library-head {
    align-items: end;
    display: flex;
    gap: 18px;
    justify-content: space-between;
}

.training-library-head h2 {
    font-size: clamp(34px, 3.4vw, 54px);
}

.training-topic-nav {
    justify-content: flex-end;
}

.training-topic-nav a {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    font-size: 13px;
    font-weight: 900;
    padding: 10px 14px;
    text-decoration: none;
}

.training-topic-nav a.is-active {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.training-course-grid,
.training-sidebar,
.training-course-aside {
    display: grid;
    gap: 18px;
}

.training-card {
    background: #fff;
    grid-template-columns: minmax(170px, .35fr) minmax(0, 1fr);
    overflow: hidden;
}

.training-card-cover {
    align-content: space-between;
    background: #e9ded5;
    display: grid;
    min-height: 260px;
    padding: 22px;
}

.training-card-cover strong {
    color: #9e5a45;
    font-family: var(--font-serif);
    font-size: 94px;
    line-height: .82;
}

.training-card-body {
    display: grid;
    gap: 16px;
    padding: 24px;
}

.training-card-title,
.training-progress-row,
.training-masterclass-row,
.training-resource-link {
    align-items: center;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto;
}

.training-card-title h3 {
    font-family: var(--font-sans);
    font-size: clamp(22px, 2vw, 30px);
    letter-spacing: 0;
    line-height: 1.08;
}

.training-card-body p,
.training-live-card p,
.training-locked-card p {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.56;
}

.training-card-meta {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
}

.training-card-meta div,
.training-course-proof span,
.training-chapter-list li,
.training-resource-link {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 12px;
}

.training-card-meta dd {
    color: var(--ink);
    font-weight: 900;
    margin: 4px 0 0;
}

.training-status-done,
.training-status-active,
.training-status-locked,
.training-badge-stack span {
    border-radius: 999px;
    font-weight: 900;
}

.training-status-done,
.training-badge-stack span {
    background: rgba(130, 147, 123, .18);
    color: #53604c;
}

.training-status-active {
    background: rgba(201, 111, 83, .14);
    color: #9e5a45;
}

.training-status-locked {
    background: #251913;
    color: #fff;
}

.training-masterclass-row,
.training-resource-link {
    border-top: 1px solid var(--line);
    padding-top: 14px;
    text-decoration: none;
}

.training-course-hero {
    background: #fff;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .38fr);
    padding: clamp(24px, 4vw, 42px);
}

.training-course-hero h1,
.training-locked-card h1 {
    font-size: clamp(42px, 5vw, 72px);
}

.training-course-progress-card {
    align-content: start;
    background: #fbfaf7;
    display: grid;
    gap: 14px;
    padding: 18px;
}

.training-course-layout {
    grid-template-columns: minmax(0, 1fr) minmax(320px, .35fr);
}

.training-course-content {
    overflow: hidden;
    padding: clamp(22px, 3vw, 34px);
}

.training-chapter-list {
    display: grid;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.training-chapter-list li {
    grid-template-columns: auto minmax(0, 1fr);
}

.training-chapter-list span {
    color: rgba(201, 111, 83, .5);
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 800;
}

.training-locked-card {
    background: #fff;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .42fr);
    padding: clamp(24px, 4vw, 46px);
}

.training-locked-card aside {
    background: #251913;
    border-radius: 22px;
    color: #fff;
    display: grid;
    gap: 14px;
    padding: 22px;
}

@media (max-width: 980px) {
    .training-hero,
    .training-layout,
    .training-course-hero,
    .training-course-layout,
    .training-locked-card {
        grid-template-columns: 1fr;
    }

    .training-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .training-library-head {
        align-items: start;
        flex-direction: column;
    }

    .training-topic-nav {
        justify-content: flex-start;
    }

    .training-card {
        grid-template-columns: 1fr;
    }

    .training-card-cover {
        min-height: 150px;
    }

    .training-card-meta,
    .training-stat-grid {
        grid-template-columns: 1fr;
    }
}

/* Photographer profile V3: decision-first public template */
.site-header {
    padding-left: var(--page-gutter);
    padding-right: var(--page-gutter);
}

.profile-v3-page {
    display: grid;
    gap: clamp(22px, 2.4vw, 36px);
    padding-bottom: clamp(56px, 6vw, 92px);
    padding-top: clamp(24px, 3vw, 42px);
}

.profile-v3-hero {
    align-items: center;
    display: grid;
    gap: clamp(24px, 3.4vw, 56px);
    grid-template-columns: minmax(0, .9fr) minmax(460px, 1.1fr);
    min-height: min(520px, calc(100svh - 210px));
}

.profile-v3-copy {
    display: grid;
    gap: clamp(12px, 1.4vw, 20px);
    min-width: 0;
}

.profile-v3-copy h1 {
    font-size: clamp(48px, 5.2vw, 86px);
    letter-spacing: 0;
    line-height: .9;
    margin: 0;
    max-width: 660px;
}

.profile-v3-intro {
    color: #5c524c;
    font-size: clamp(16px, 1.1vw, 18px);
    line-height: 1.58;
    margin: 0;
    max-width: 620px;
}

.profile-v3-proof,
.profile-v3-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.profile-v3-proof span {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 13px;
    font-weight: 950;
    min-height: 38px;
    padding: 9px 13px;
}

.profile-v3-proof span::before {
    background: #8f9b82;
    border-radius: 999px;
    content: "";
    height: 7px;
    margin-right: 9px;
    width: 7px;
}

.profile-v3-actions .button {
    min-height: 50px;
    padding-left: 20px;
    padding-right: 20px;
}

.profile-v3-gallery {
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) minmax(160px, .5fr);
    grid-template-rows: repeat(2, minmax(150px, 1fr));
    height: clamp(360px, 31vw, 500px);
    min-height: 0;
    position: relative;
}

.profile-v3-frame {
    background: #eee7df;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 24px;
    box-shadow: 0 20px 58px rgba(36, 25, 21, .12);
    margin: 0;
    min-height: 0;
    overflow: hidden;
}

.profile-v3-frame-main {
    grid-row: 1 / span 2;
}

.profile-v3-frame img,
.profile-v3-frame .photo-placeholder {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.profile-v3-price-chip {
    align-items: center;
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(232, 222, 214, .9);
    border-radius: 20px;
    bottom: 20px;
    box-shadow: 0 18px 44px rgba(36, 25, 21, .14);
    display: flex;
    gap: 10px;
    left: 20px;
    padding: 12px 15px;
    position: absolute;
}

.profile-v3-price-chip span {
    color: #7a6d65;
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
}

.profile-v3-price-chip strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 30px;
    line-height: .9;
}

.profile-v3-nav {
    justify-self: center;
    max-width: min(720px, calc(100vw - (var(--page-gutter) * 2)));
    position: sticky;
    top: 112px;
    width: min(720px, calc(100vw - (var(--page-gutter) * 2)));
    z-index: 12;
}

.profile-v3-layout {
    align-items: start;
    display: grid;
    gap: clamp(24px, 3vw, 44px);
    grid-template-columns: minmax(0, 1fr) minmax(290px, 350px);
}

.profile-v3-main {
    display: grid;
    gap: clamp(16px, 2vw, 26px);
    min-width: 0;
}

.profile-v3-section {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: clamp(18px, 2vw, 28px);
    padding: clamp(22px, 2.5vw, 34px);
}

.profile-v3-section-head {
    align-items: end;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, .8fr) minmax(240px, .42fr);
}

.profile-v3-section-head .eyebrow {
    grid-column: 1 / -1;
    margin: 0;
}

.profile-v3-section-head h2 {
    font-size: clamp(28px, 2.75vw, 44px);
    line-height: 1.02;
    margin: 0;
    max-width: 720px;
}

.profile-v3-section-head p:not(.eyebrow) {
    color: #625852;
    font-size: 15px;
    line-height: 1.58;
    margin: 0;
}

.profile-v3-decision-grid,
.profile-v3-session-row,
.profile-v3-price-grid,
.profile-v3-option-panel {
    display: grid;
    gap: 12px;
}

.profile-v3-decision-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.profile-v3-session-row,
.profile-v3-price-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.profile-v3-option-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.profile-v3-decision-grid article,
.profile-v3-session-row article,
.profile-v3-price-grid article,
.profile-v3-option-panel article {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 8px;
    min-height: 138px;
    padding: clamp(16px, 1.6vw, 20px);
}

.profile-v3-decision-grid span,
.profile-v3-session-row span,
.profile-v3-price-grid span,
.profile-v3-option-panel span,
.profile-v3-sidebar-list dt {
    color: #a8533d;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.profile-v3-decision-grid strong,
.profile-v3-session-row strong,
.profile-v3-price-grid strong,
.profile-v3-option-panel strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(21px, 1.55vw, 27px);
    line-height: 1.04;
}

.profile-v3-decision-grid p,
.profile-v3-session-row p,
.profile-v3-price-grid p,
.profile-v3-option-panel p {
    color: #645a53;
    line-height: 1.55;
    margin: 0;
}

.profile-v3-price-grid article.is-featured {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.profile-v3-price-grid article.is-featured span,
.profile-v3-price-grid article.is-featured strong,
.profile-v3-price-grid article.is-featured p {
    color: inherit;
}

.profile-v3-portfolio-grid {
    column-count: 3;
    column-gap: clamp(22px, 2.4vw, 34px);
    display: block;
}

.profile-v3-portfolio-grid figure {
    break-inside: avoid;
    border-radius: 26px;
    display: inline-block;
    margin: 0 0 clamp(22px, 2.4vw, 34px);
    min-height: 0;
    overflow: hidden;
    position: relative;
    vertical-align: top;
    width: 100%;
}

.profile-v3-portfolio-grid img {
    aspect-ratio: auto;
    display: block;
    height: auto;
    object-fit: contain;
    width: 100%;
}

/* Two photos should use the available width without creating empty masonry columns. */
.profile-v3-portfolio-grid:has(> figure:nth-child(2):last-child) {
    align-items: start;
    column-count: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.profile-v3-portfolio-grid:has(> figure:nth-child(2):last-child) > figure {
    margin-bottom: 0;
}

@media (max-width: 680px) {
    .profile-v3-portfolio-grid:has(> figure:nth-child(2):last-child) {
        grid-template-columns: minmax(0, 1fr);
    }
}

.profile-v3-portfolio-grid figcaption {
    background: rgba(255, 255, 255, .9);
    border-radius: 999px;
    bottom: 12px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 900;
    left: 12px;
    max-width: calc(100% - 24px);
    overflow: hidden;
    padding: 8px 11px;
    position: absolute;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.profile-v3-contests {
    background: linear-gradient(135deg, #fff 0%, #fffaf6 100%);
}

.profile-contest-distinction-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.profile-contest-distinction-grid.is-single {
    grid-template-columns: minmax(0, 720px);
    justify-content: start;
}

.profile-contest-distinction-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-card, 18px);
    box-shadow: 0 14px 34px rgba(78, 58, 40, .08);
    display: grid;
    gap: 0;
    min-width: 0;
    overflow: hidden;
}

.profile-contest-distinction-grid.is-single .profile-contest-distinction-card.has-image {
    grid-template-columns: minmax(210px, 260px) minmax(0, 1fr);
    grid-template-rows: 1fr auto;
}

.profile-contest-distinction-card figure {
    aspect-ratio: 4 / 3;
    background: #eee7df;
    margin: 0;
    overflow: hidden;
}

.profile-contest-distinction-grid.is-single .profile-contest-distinction-card.has-image figure {
    grid-row: 1 / 3;
}

.profile-contest-distinction-card img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.profile-contest-distinction-copy {
    display: grid;
    gap: 9px;
    padding: 16px 16px 0;
}

.profile-contest-distinction-rank {
    align-items: center;
    background: var(--ink);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 11px;
    font-weight: 950;
    justify-self: start;
    min-height: 28px;
    padding: 7px 10px;
    text-transform: uppercase;
}

.profile-contest-distinction-copy h3 {
    font-size: clamp(22px, 2vw, 30px);
    line-height: 1;
    margin: 0;
}

.profile-contest-distinction-copy p {
    color: #5f544d;
    font-weight: 900;
    line-height: 1.4;
    margin: 0;
}

.profile-contest-distinction-copy small {
    color: #776b63;
    display: block;
    line-height: 1.45;
}

.profile-contest-distinction-link {
    justify-content: center;
    margin: 16px;
    min-height: 44px;
}

.profile-contest-distinction-grid.is-single .profile-contest-distinction-link {
    justify-self: start;
    min-width: 180px;
}

.profile-v3-trust {
    background: var(--ink);
    color: #fff;
    grid-template-columns: minmax(220px, .3fr) minmax(0, .7fr);
}

.profile-v3-trust .eyebrow,
.profile-v3-trust p,
.profile-v3-trust small {
    color: rgba(255, 255, 255, .72);
}

.profile-v3-review-score {
    align-content: start;
    display: grid;
    gap: 8px;
}

.profile-v3-review-score strong {
    color: #fff;
    font-family: var(--font-serif);
    font-size: clamp(44px, 4.4vw, 66px);
    line-height: .92;
}

.profile-v3-review-score span {
    color: rgba(255, 255, 255, .78);
    font-weight: 900;
}

.profile-v3-reviews {
    display: grid;
    gap: 10px;
}

.profile-v3-reviews article {
    border-top: 1px solid rgba(255, 255, 255, .16);
    display: grid;
    gap: 8px;
    padding-top: 14px;
}

.profile-v3-reviews strong {
    color: #fff;
}

.profile-v3-badges {
    display: grid;
    gap: 10px;
    grid-column: 1 / -1;
}

.profile-v3-trust .profile-badge-detail {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .14);
}

.profile-v3-trust .profile-badge-detail summary strong,
.profile-v3-trust .profile-badge-detail summary::after {
    color: #fff;
}

.profile-v3-trust .profile-badge-detail summary small,
.profile-v3-trust .profile-badge-explanation p,
.profile-v3-trust .profile-badge-explanation small {
    color: rgba(255, 255, 255, .7);
}

.profile-v3-sidebar {
    position: sticky;
    top: 128px;
}

.profile-v3-sticky-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: 0 20px 58px rgba(36, 25, 21, .11);
    display: grid;
    gap: 12px;
    padding: clamp(18px, 1.8vw, 24px);
}

.profile-v3-sidebar-price {
    display: grid;
    gap: 8px;
}

.profile-v3-sidebar-price span {
    color: #7a6d65;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.profile-v3-sidebar-price strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(38px, 3.5vw, 56px);
    line-height: .92;
}

.profile-v3-sidebar-price p {
    color: #645a53;
    line-height: 1.55;
    margin: 0;
}

.profile-v3-sticky-card .button {
    justify-content: center;
    min-height: 48px;
    width: 100%;
}

.profile-v3-sidebar-list {
    border-top: 1px solid var(--line);
    display: grid;
    gap: 0;
    margin: 8px 0 0;
    padding-top: 6px;
}

.profile-v3-sidebar-list div {
    border-bottom: 1px solid var(--line);
    display: grid;
    gap: 4px;
    padding: 12px 0;
}

.profile-v3-sidebar-list div:last-child {
    border-bottom: 0;
}

.profile-v3-sidebar-list dd {
    color: var(--ink);
    font-weight: 900;
    margin: 0;
}

@media (max-width: 1180px) {
    .profile-v3-hero,
    .profile-v3-layout {
        grid-template-columns: 1fr;
    }

    .profile-v3-hero {
        min-height: 0;
    }

    .profile-v3-sidebar {
        position: static;
    }

    .profile-v3-sticky-card {
        grid-template-columns: minmax(0, 1fr) minmax(260px, .46fr);
    }

    .profile-v3-sidebar-list {
        grid-column: 1 / -1;
    }
}

@media (max-width: 900px) {
    .profile-v3-gallery {
        grid-template-columns: 1fr 1fr;
        min-height: 0;
    }

    .profile-v3-frame-main {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    .profile-v3-frame-main img,
    .profile-v3-frame-main .photo-placeholder {
        aspect-ratio: 4 / 3;
    }

    .profile-v3-portfolio-grid {
        column-count: 2;
    }

    .profile-v3-section-head,
    .profile-v3-decision-grid,
    .profile-v3-session-row,
    .profile-v3-price-grid,
    .profile-v3-option-panel,
    .profile-v3-trust,
    .profile-v3-sticky-card {
        grid-template-columns: 1fr;
    }

    .profile-v3-section-head .eyebrow {
        grid-column: auto;
    }

    .profile-v3-sidebar {
        display: none;
    }
}

@media (max-width: 680px) {
    .profile-v3-page {
        gap: 24px;
        padding-bottom: 110px;
        padding-top: 22px;
    }

    .profile-v3-copy h1 {
        font-size: clamp(42px, 13vw, 62px);
    }

    .profile-v3-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .profile-v3-actions .button {
        width: 100%;
    }

    .profile-v3-gallery {
        gap: 10px;
    }

    .profile-v3-frame {
        border-radius: 22px;
    }

    .profile-v3-price-chip {
        bottom: 12px;
        left: 12px;
    }

    .profile-v3-nav {
        display: none;
    }

    .profile-v3-section {
        border-radius: 24px;
        padding: 20px;
    }

    .profile-v3-section-head h2 {
        font-size: clamp(27px, 8vw, 38px);
    }

    .profile-v3-portfolio-grid {
        column-count: 1;
    }

    .profile-contest-distinction-grid.is-single,
    .profile-contest-distinction-grid.is-single .profile-contest-distinction-card.has-image {
        grid-template-columns: 1fr;
    }

    .profile-contest-distinction-grid.is-single .profile-contest-distinction-card.has-image figure {
        grid-row: auto;
    }

    .profile-contest-distinction-grid.is-single .profile-contest-distinction-link {
        justify-self: stretch;
    }
}

* {
    box-sizing: border-box;
}

html {
    background: var(--paper);
}

body {
    background: var(--paper);
    color: var(--text);
    font-family: var(--font-sans);
    margin: 0;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    max-width: 100%;
}

[hidden] {
    display: none !important;
}

.container {
    margin: 0;
    max-width: 100%;
    padding: 0 var(--page-gutter);
    width: var(--content-width);
}

.site-header {
    align-items: center;
    background: rgba(246, 243, 237, .92);
    border-bottom: 1px solid rgba(21, 23, 25, .08);
    display: flex;
    gap: 28px;
    justify-content: space-between;
    padding: 16px clamp(20px, 4vw, 60px);
    position: sticky;
    top: 0;
    z-index: 30;
}

.brand {
    align-items: center;
    color: var(--ink);
    display: flex;
    font-weight: 900;
    gap: 10px;
    min-width: 0;
}

.brand-logo {
    display: inline-grid;
    flex: 0 0 40px;
    height: 40px;
    place-items: center;
    width: 40px;
}

.brand-logo svg {
    display: block;
    height: 100%;
    width: 100%;
}

.brand-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.brand-title {
    line-height: 1;
    white-space: nowrap;
}

.brand small {
    background: var(--mint);
    border-radius: 999px;
    color: var(--teal);
    font-size: 12px;
    font-weight: 850;
    padding: 6px 10px;
}

.main-nav {
    display: flex;
    gap: 22px;
}

.main-nav a {
    color: var(--muted);
    font-size: 14px;
    font-weight: 780;
}

.main-nav a:hover,
.main-nav a.is-active {
    color: var(--ink);
}

.button,
button {
    align-items: center;
    background: var(--ink);
    border: 0;
    border-radius: 8px;
    color: var(--surface);
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-size: 15px;
    font-weight: 850;
    justify-content: center;
    min-height: 46px;
    padding: 13px 18px;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.button:hover,
button:hover {
    transform: translateY(-1px);
}

button:disabled,
button:disabled:hover {
    cursor: not-allowed;
    opacity: .56;
    transform: none;
}

.button-secondary {
    background: var(--surface);
    border: 1px solid var(--line);
    color: var(--ink);
}

.button-accent {
    background: var(--berry);
    color: var(--surface);
}

.button-accent:hover {
    background: #792640;
}

.button-accent.is-selection-incompatible,
.directory-map-list-item button.is-selection-incompatible {
    background: #f7f0ea;
    border: 1px solid var(--line);
    color: #8d7569;
}

.button-accent.is-selection-incompatible:hover,
.directory-map-list-item button.is-selection-incompatible:hover {
    background: #efe4dc;
    color: var(--ink);
}

.eyebrow {
    color: var(--teal);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .08em;
    margin: 0;
    text-transform: uppercase;
}

h1,
h2,
h3 {
    color: var(--ink);
    letter-spacing: 0;
    line-height: 1.02;
    margin: 0;
}

h1 {
    font-family: var(--font-display);
    font-size: clamp(40px, 6vw, 74px);
}

h2 {
    font-family: var(--font-serif);
    font-size: clamp(30px, 4vw, 44px);
}

h3 {
    font-size: 24px;
    line-height: 1.12;
}

p {
    color: var(--muted);
    font-size: 16px;
    line-height: 1.65;
    margin: 0;
}

.lead {
    color: rgba(255, 255, 255, .90);
    font-size: 19px;
    line-height: 1.58;
    max-width: 690px;
}

.stack {
    display: grid;
    gap: 18px;
}

.grid {
    display: grid;
    gap: 24px;
}

.grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.home-hero {
    background-image: linear-gradient(90deg, rgba(11, 13, 14, .78), rgba(11, 13, 14, .38) 48%, rgba(11, 13, 14, .10)), var(--hero-image);
    background-position: center;
    background-size: cover;
    color: var(--surface);
    min-height: min(760px, calc(100vh - 150px));
    padding: clamp(64px, 8vw, 104px) clamp(22px, 5vw, 72px) 82px;
}

.home-hero-content {
    display: grid;
    gap: 24px;
    max-width: 780px;
}

.home-hero h1 {
    color: var(--surface);
    max-width: 760px;
}

.home-hero .eyebrow {
    color: #a8dfd8;
}

.hero-search,
.search-box {
    align-items: stretch;
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(255, 255, 255, .45);
    border-radius: 8px;
    box-shadow: var(--shadow);
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    margin-top: 10px;
    max-width: 760px;
    padding: 10px;
}

.hero-proof {
    color: rgba(255, 255, 255, .88);
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.hero-proof span {
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    padding: 8px 11px;
}

.featured-section,
.home-process-section,
.home-guides-section,
.directory-page,
.profile-portfolio,
.profile-trust,
.request-page,
.page-section,
.form-flow,
.training-layout,
.dashboard {
    padding-bottom: 64px;
    padding-top: 48px;
}

.section-heading,
.directory-header,
.card-row {
    align-items: end;
    display: flex;
    gap: 18px;
    justify-content: space-between;
}

.directory-header {
    border-bottom: 1px solid var(--line);
    padding-bottom: 24px;
}

.filter-bar {
    align-items: stretch;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(21, 23, 25, .06);
    display: grid;
    gap: 10px;
    grid-template-columns: 1.2fr 1fr 1fr 1fr auto;
    padding: 10px;
}

.field {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
    padding: 12px 13px;
}

.field:focus-within {
    border-color: var(--teal);
    box-shadow: 0 0 0 3px rgba(47, 111, 106, .14);
}

.field label {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
}

.field input,
.field textarea,
.field select {
    background: transparent;
    border: 0;
    color: var(--ink);
    font: inherit;
    font-weight: 780;
    min-width: 0;
    outline: 0;
    width: 100%;
}

.field textarea {
    resize: vertical;
}

.file-upload-field {
    gap: 8px;
}

.file-upload-control {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 10px;
    grid-template-columns: auto minmax(0, 1fr);
    min-height: 54px;
    padding: 8px;
}

.file-upload-control input[type="file"] {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.file-upload-button {
    align-items: center;
    background: var(--ink);
    border-radius: 999px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font-size: 12px;
    font-weight: 950;
    justify-content: center;
    margin: 0;
    min-height: 38px;
    padding: 9px 14px;
    text-align: center;
}

.file-upload-control input[type="file"]:focus-visible + .file-upload-button {
    outline: 3px solid rgba(134, 102, 70, .26);
    outline-offset: 2px;
}

.file-upload-name {
    color: var(--muted);
    font-size: 13px;
    font-weight: 850;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.photographer-card,
.panel,
.dashboard-card,
.choice-list {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 12px 34px rgba(21, 23, 25, .07);
}

.photographer-card {
    display: grid;
    overflow: hidden;
    transition: box-shadow .18s ease, transform .18s ease;
}

.photographer-card:hover {
    box-shadow: var(--shadow);
    transform: translateY(-2px);
}

.photographer-card.is-selected {
    border-color: rgba(201, 111, 83, .78);
    box-shadow: 0 0 0 4px rgba(201, 111, 83, .12), var(--shadow-sm);
}

.card-media {
    aspect-ratio: 4 / 5;
    background: #d8dde0;
    display: block;
    overflow: hidden;
    position: relative;
}

.card-photo,
.contest-photo,
.profile-gallery img,
.portfolio-grid img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.card-photo {
    transition: transform .35s ease;
}

.photographer-card:hover .card-photo {
    transform: scale(1.035);
}

.card-image-carousel {
    background: #ded6cc;
    isolation: isolate;
    touch-action: pan-y;
}

.card-carousel-track {
    --carousel-index: 0;
    display: flex;
    height: 100%;
    transform: translateX(calc(var(--carousel-index) * -100%));
    transition: transform .32s ease;
    width: 100%;
}

.card-carousel-slide {
    display: block;
    flex: 0 0 100%;
    height: 100%;
    min-width: 0;
    position: relative;
}

.card-carousel-slide img,
.card-carousel-slide .photo-placeholder {
    height: 100%;
    width: 100%;
}

.card-carousel-control {
    align-items: center;
    background: rgba(255, 255, 255, .9);
    border: 1px solid rgba(255, 255, 255, .62);
    border-radius: 999px;
    box-shadow: 0 12px 30px rgba(31, 23, 19, .18);
    color: var(--ink);
    cursor: pointer;
    display: inline-flex;
    font-size: 24px;
    font-weight: 850;
    height: 38px;
    justify-content: center;
    line-height: 1;
    opacity: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    transition: opacity .18s ease, transform .18s ease, background .18s ease;
    width: 38px;
    z-index: 3;
}

.card-image-carousel:hover .card-carousel-control,
.card-carousel-control:focus-visible {
    opacity: 1;
}

.card-carousel-control:focus-visible {
    outline: 2px solid rgba(201, 111, 83, .72);
    outline-offset: 2px;
}

.card-carousel-control:hover {
    background: #fff;
    transform: translateY(-50%) scale(1.04);
}

.card-carousel-control:disabled {
    cursor: default;
    opacity: .35;
    transform: translateY(-50%);
}

.card-carousel-control.is-previous {
    left: 14px;
}

.card-carousel-control.is-next {
    right: 14px;
}

.card-carousel-dots {
    align-items: center;
    background: rgba(31, 23, 19, .34);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    bottom: 14px;
    display: flex;
    gap: 4px;
    padding: 5px 6px;
    position: absolute;
    right: 14px;
    z-index: 3;
}

.card-carousel-dots button {
    background: rgba(255, 255, 255, .58);
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    display: block;
    flex: 0 0 auto;
    font-size: 0;
    height: 6px;
    min-height: 6px;
    min-width: 6px;
    padding: 0;
    transition: background .18s ease, width .18s ease;
    width: 6px;
}

.card-carousel-dots button.is-active {
    background: #fff;
    min-width: 16px;
    width: 16px;
}

.card-image-carousel:not(.has-multiple-slides) .card-carousel-control,
.card-image-carousel:not(.has-multiple-slides) .card-carousel-dots {
    display: none;
}

.photo-placeholder {
    background: linear-gradient(135deg, #cfdeda, #d7d2c7 56%, #c8d6dd);
    min-height: 240px;
}

.photo-badge {
    background: rgba(21, 23, 25, .74);
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 999px;
    color: var(--surface);
    font-size: 12px;
    font-weight: 850;
    left: 12px;
    padding: 7px 10px;
    position: absolute;
    top: 12px;
}

.photographer-card .body,
.dashboard-card,
.panel {
    padding: 20px;
}

.card-title-row,
.card-actions,
.lead-row,
.result-row {
    align-items: center;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto;
}

.card-actions {
    grid-template-columns: 1fr 1fr;
}

.card-meta-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.card-meta-strip span {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 850;
    line-height: 1.2;
    padding: 8px 11px;
}

.card-actions .button {
    width: 100%;
}

.rating-pill,
.badge,
.result-rank {
    align-items: center;
    display: inline-flex;
    justify-content: center;
}

.rating-pill {
    background: var(--ink);
    border-radius: 999px;
    color: var(--surface);
    font-size: 13px;
    min-width: 44px;
    padding: 7px 9px;
}

.badge {
    background: var(--mint);
    border: 1px solid rgba(47, 111, 106, .18);
    border-radius: 999px;
    color: var(--teal);
    font-size: 12px;
    font-weight: 850;
    padding: 7px 10px;
}

.badge-outline {
    background: transparent;
    border-color: var(--line);
    color: var(--muted);
}

.badge-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.meta,
.lead-row small,
.message-bubble small,
.result-row small,
.review-item small {
    color: var(--muted);
    display: block;
    font-size: 13px;
    font-weight: 750;
}

.selection-tray {
    align-items: center;
    background: var(--ink);
    border-radius: 8px;
    bottom: 18px;
    box-shadow: var(--shadow);
    color: var(--surface);
    display: flex;
    gap: 18px;
    justify-content: space-between;
    margin: 8px auto 0;
    max-width: 760px;
    padding: 10px 12px 10px 18px;
    position: static;
    z-index: 15;
}

.selection-tray span {
    font-weight: 820;
}

.profile-gallery {
    display: grid;
    gap: 8px;
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
    padding-top: 32px;
}

.profile-gallery-main,
.profile-gallery-side img,
.profile-gallery-side .photo-placeholder {
    border-radius: 8px;
    min-height: 100%;
    object-fit: cover;
}

.profile-gallery-main {
    aspect-ratio: 1.35 / 1;
    width: 100%;
}

.profile-gallery-side {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.profile-gallery-side img,
.profile-gallery-side .photo-placeholder {
    aspect-ratio: 1 / 1;
}

.profile-layout,
.profile-trust-grid,
.lead-detail-grid,
.dashboard,
.training-layout,
.request-layout {
    align-items: start;
    display: grid;
    gap: 28px;
}

.profile-layout {
    grid-template-columns: minmax(0, 1fr) 340px;
    padding-top: 28px;
}

.profile-main {
    min-width: 0;
}

.profile-identity {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 8px;
    display: grid;
    gap: 14px;
    padding: 26px;
}

.profile-identity .lead {
    color: var(--muted);
}

.profile-section {
    display: grid;
    gap: 14px;
    max-width: 820px;
}

.profile-cta {
    position: sticky;
    top: 92px;
}

.profile-cta strong {
    color: var(--ink);
    display: block;
    font-size: 32px;
    line-height: 1.1;
}

.portfolio-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.portfolio-grid figure {
    margin: 0;
}

.portfolio-grid img {
    aspect-ratio: 4 / 5;
    border-radius: 8px;
}

.portfolio-grid figcaption {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    margin-top: 7px;
}

.profile-trust-grid,
.lead-detail-grid {
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
}

.review-list,
.result-list,
.lead-list,
.message-list {
    display: grid;
    gap: 12px;
}

.review-item,
.lead-row,
.result-row,
.offer-row {
    border-top: 1px solid var(--line);
    padding-top: 13px;
}

.review-item p,
.message-bubble p {
    margin-top: 6px;
}

.result-rank {
    background: var(--teal);
    border-radius: 999px;
    color: var(--surface);
    font-weight: 900;
    height: 42px;
    width: 42px;
}

.contest-results {
    border-left: 5px solid var(--teal);
}

.contest-card {
    overflow: hidden;
}

.request-page {
    display: grid;
    gap: 28px;
}

.request-header {
    display: grid;
    gap: 16px;
    max-width: 900px;
}

.request-stepper {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.request-stepper span {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 850;
    padding: 8px 12px;
}

.request-layout {
    grid-template-columns: 360px minmax(0, 1fr);
}

.request-selection {
    max-height: calc(100vh - 120px);
    overflow: auto;
    position: sticky;
    top: 92px;
}

.request-fields {
    min-width: 0;
}

.form-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.choice-list {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 18px;
}

.choice-list legend {
    color: var(--ink);
    font-weight: 900;
    padding: 0 6px;
}

.choice-list label {
    align-items: center;
    border-top: 1px solid var(--line);
    display: grid;
    gap: 10px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding-top: 10px;
}

.choice-list label:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.choice-list input[type="checkbox"],
.consent-row input[type="checkbox"] {
    accent-color: var(--berry);
    height: 18px;
    width: 18px;
}

.consent-row {
    align-items: center;
    color: var(--text);
    display: flex;
    gap: 10px;
    font-weight: 750;
}

.alert {
    background: #fff1f1;
    border: 1px solid rgba(143, 49, 82, .26);
    border-radius: 8px;
    color: #7b233f;
    grid-column: 1 / -1;
    padding: 14px 16px;
}

.alert p {
    color: inherit;
}

.flash-list {
    display: grid;
    gap: 8px;
    padding-top: 18px;
}

.flash {
    border-radius: 8px;
    font-weight: 780;
    padding: 12px 14px;
}

.flash-error {
    background: #fff1f1;
    color: #7b233f;
}

.flash-success {
    background: #edf7f3;
    color: #1f5f54;
}

.button-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.detail-list {
    display: grid;
    gap: 12px;
    margin: 0;
}

.detail-list div {
    border-top: 1px solid var(--line);
    display: grid;
    gap: 4px;
    padding-top: 10px;
}

.detail-list dt {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.detail-list dd {
    color: var(--ink);
    font-weight: 800;
    margin: 0;
}

.lead-slot-list {
    display: grid;
    gap: 6px;
}

.lead-slot-list span {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.25;
    padding: 8px 11px;
    width: fit-content;
}

.lead-detail-muted {
    color: var(--muted);
    font-weight: 800;
}

.message-bubble {
    border-radius: 8px;
    padding: 14px;
}

.conversation-empty-state,
.consumer-empty-state {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 22px;
    display: grid;
    gap: 8px;
    padding: 18px;
}

.consumer-empty-state {
    box-shadow: var(--shadow-sm);
}

.conversation-empty-state span,
.consumer-empty-state span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.conversation-empty-state strong,
.consumer-empty-state strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(24px, 2.3vw, 32px);
    line-height: 1.08;
}

.conversation-empty-state p,
.consumer-empty-state p {
    color: var(--muted);
    font-size: 14px;
    font-weight: 760;
    line-height: 1.5;
    margin: 0;
}

.consumer-empty-state .button {
    justify-self: start;
    margin-top: 4px;
}

.message-consumer {
    background: #fbfaf7;
    border: 1px solid var(--line);
}

.message-photographer {
    background: var(--mint);
    border: 1px solid rgba(47, 111, 106, .18);
}

.consumer-portal-page {
    gap: 26px;
}

.consumer-portal-hero {
    align-items: end;
    display: flex;
    gap: 24px;
    justify-content: space-between;
    padding: clamp(26px, 4vw, 44px);
}

.consumer-portal-hero h1 {
    max-width: 780px;
}

.consumer-portal-grid {
    align-items: start;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
}

.consumer-portal-stats {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.consumer-portal-stats article {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 6px;
    padding: 20px;
}

.consumer-portal-stats span,
.consumer-recipient-meta dt {
    color: var(--muted);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.consumer-portal-stats strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 42px;
    line-height: 1;
}

.consumer-portal-stats p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.consumer-portal-stats article.is-positive {
    background: var(--mint);
    border-color: rgba(130, 147, 123, .34);
}

.consumer-portal-next {
    align-items: center;
    background: var(--ink);
    color: #fff;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: clamp(24px, 4vw, 38px);
}

.consumer-portal-next h2 {
    color: #fff;
    font-size: clamp(34px, 4vw, 48px);
    margin: 0 0 8px;
}

.consumer-portal-next p:not(.eyebrow) {
    color: rgba(255, 255, 255, .72);
    max-width: 760px;
}

.consumer-portal-next .button {
    background: #fff;
    border-color: rgba(255, 255, 255, .84);
    color: var(--ink);
    justify-self: end;
    white-space: nowrap;
}

.consumer-comparison-panel {
    display: grid;
    gap: 18px;
}

.section-heading.compact {
    margin-bottom: 0;
}

.section-heading.compact h2 {
    font-size: clamp(30px, 3.2vw, 42px);
}

.consumer-comparison-table {
    display: grid;
    gap: 8px;
}

.consumer-comparison-head,
.consumer-comparison-row {
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(220px, 1.4fr) repeat(4, minmax(120px, 1fr));
}

.consumer-comparison-head {
    color: var(--muted);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    padding: 0 16px 2px;
    text-transform: uppercase;
}

.consumer-comparison-row {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    color: var(--ink);
    padding: 14px 16px;
    text-decoration: none;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.consumer-comparison-row:hover {
    border-color: rgba(201, 111, 83, .42);
    box-shadow: var(--shadow-sm);
    transform: translateY(-1px);
}

.consumer-comparison-row strong,
.consumer-comparison-row span {
    font-weight: 900;
}

.consumer-comparison-row small {
    color: var(--muted);
    display: block;
    font-size: 12px;
    font-weight: 800;
    margin-top: 3px;
}

.consumer-comparison-row mark {
    background: #f1e4dc;
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-weight: 950;
    line-height: 1;
    padding: 8px 10px;
}

.consumer-comparison-row.is-replied mark {
    background: var(--mint);
    color: #53634f;
}

.consumer-comparison-row.is-closed {
    opacity: .72;
}

.consumer-recipient-list {
    display: grid;
    gap: 16px;
}

.consumer-recipient-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 18px;
    padding: clamp(20px, 3vw, 28px);
}

.consumer-recipient-card.has-reply {
    border-color: rgba(130, 147, 123, .44);
}

.consumer-recipient-head {
    align-items: start;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) auto;
}

.consumer-recipient-head h2 {
    font-size: clamp(30px, 3vw, 42px);
    margin-top: 10px;
}

.consumer-recipient-head .button {
    white-space: nowrap;
}

.consumer-recipient-meta {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
}

.consumer-recipient-meta div {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    min-width: 0;
    padding: 12px;
}

.consumer-recipient-meta dd {
    color: var(--ink);
    font-size: 13px;
    font-weight: 900;
    margin: 4px 0 0;
}

.consumer-message-preview {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 22px;
    display: grid;
    gap: 6px;
    padding: 18px;
}

.consumer-message-preview span,
.consumer-message-preview small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.consumer-message-preview p {
    color: var(--text);
}

.consumer-next-hint {
    color: var(--muted);
    font-size: 14px;
    font-weight: 780;
    margin: -4px 0 0;
}

.consumer-portal-summary {
    position: sticky;
    top: 98px;
}

.consumer-followup-note {
    background: var(--mint);
    border: 1px solid rgba(130, 147, 123, .30);
    border-radius: 22px;
    display: grid;
    gap: 6px;
    padding: 18px;
}

.consumer-followup-note strong {
    color: var(--ink);
}

.consumer-followup-note p {
    color: #53604c;
    font-size: 14px;
    font-weight: 760;
    margin: 0;
}

.dashboard {
    grid-template-columns: 1.4fr .8fr;
}

.training-layout {
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
}

.progress-bar {
    background: #e5e0d8;
    border-radius: 999px;
    height: 12px;
    overflow: hidden;
    width: 100%;
}

.progress-bar span {
    background: var(--teal);
    display: block;
    height: 100%;
}

.training-page,
.training-course-page,
.training-locked-page {
    padding-bottom: 76px;
    padding-top: 42px;
}

.training-page {
    display: grid;
    gap: 28px;
}

.training-hero {
    align-items: stretch;
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr);
}

.training-hero-copy,
.training-live-card,
.training-locked-card {
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
}

.training-hero-copy {
    background: #251913;
    color: #fff;
    display: grid;
    gap: 18px;
    min-height: 360px;
    padding: clamp(28px, 4vw, 52px);
}

.training-hero-copy h1,
.training-hero-copy p {
    color: inherit;
}

.training-hero-copy h1 {
    font-size: clamp(48px, 6vw, 84px);
    max-width: 760px;
}

.training-hero-copy p:not(.eyebrow) {
    color: rgba(255, 255, 255, .78);
    font-size: 18px;
    max-width: 680px;
}

.training-hero-actions,
.training-card-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.training-live-card {
    align-content: space-between;
    background: #fff;
    border: 1px solid var(--line);
    display: grid;
    gap: 18px;
    padding: clamp(24px, 3vw, 34px);
}

.training-live-card > span,
.training-card-cover span,
.training-stat-grid span,
.training-card-meta dt,
.training-masterclass-row small,
.training-course-progress-card > strong {
    color: var(--muted);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.training-live-card h2 {
    font-family: var(--font-serif);
    font-size: clamp(34px, 3.2vw, 48px);
}

.training-stat-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.training-stat-grid article {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    display: grid;
    gap: 8px;
    padding: 18px;
}

.training-stat-grid strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 42px;
    line-height: .95;
}

.training-stat-grid small {
    color: var(--muted);
    font-weight: 800;
}

.training-library-head {
    align-items: end;
    display: flex;
    gap: 18px;
    justify-content: space-between;
}

.training-library-head h2 {
    font-size: clamp(34px, 3.4vw, 54px);
}

.training-topic-nav {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.training-topic-nav a {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    font-size: 13px;
    font-weight: 900;
    padding: 10px 14px;
    text-decoration: none;
}

.training-topic-nav a.is-active {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.training-topic-nav small {
    opacity: .66;
}

.training-course-grid,
.training-sidebar,
.training-course-aside {
    display: grid;
    gap: 18px;
}

.training-empty-state {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 26px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 10px;
    min-height: 260px;
    padding: clamp(24px, 4vw, 38px);
    place-content: center;
}

.training-empty-state span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.training-empty-state strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(28px, 3vw, 42px);
    line-height: 1.06;
    max-width: 620px;
}

.training-empty-state p {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.55;
    margin: 0;
    max-width: 560px;
}

.training-empty-state .button {
    justify-self: start;
    margin-top: 6px;
}

.training-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 26px;
    box-shadow: var(--shadow-sm);
    display: grid;
    grid-template-columns: minmax(170px, .35fr) minmax(0, 1fr);
    overflow: hidden;
}

.training-card.is-locked {
    background: #fbfaf7;
}

.training-card-cover {
    align-content: space-between;
    background: #e9ded5;
    display: grid;
    min-height: 260px;
    padding: 22px;
}

.training-card-cover strong {
    color: #9e5a45;
    font-family: var(--font-serif);
    font-size: 94px;
    line-height: .82;
}

.training-card-body {
    display: grid;
    gap: 16px;
    padding: 24px;
}

.training-card-title {
    align-items: start;
    display: flex;
    gap: 14px;
    justify-content: space-between;
}

.training-card-title h3 {
    font-family: var(--font-sans);
    font-size: clamp(22px, 2vw, 30px);
    letter-spacing: 0;
    line-height: 1.08;
}

.training-card-title .badge {
    white-space: nowrap;
}

.training-card-body p,
.training-live-card p,
.training-course-progress-card p,
.training-locked-card p {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.56;
}

.training-card-meta {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
}

.training-card-meta div {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 12px;
}

.training-card-meta dd {
    color: var(--ink);
    font-weight: 900;
    margin: 4px 0 0;
}

.training-progress-row {
    align-items: center;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto;
}

.training-progress-row strong {
    color: var(--ink);
    font-size: 13px;
    font-weight: 950;
}

.training-status-done {
    background: rgba(130, 147, 123, .18);
    color: #53604c;
}

.training-status-active {
    background: rgba(201, 111, 83, .14);
    color: #9e5a45;
}

.training-status-locked {
    background: #251913;
    color: #fff;
}

.training-masterclass-row,
.training-resource-link {
    align-items: center;
    border-top: 1px solid var(--line);
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding-top: 14px;
    text-decoration: none;
}

.training-masterclass-row strong,
.training-resource-link span {
    color: var(--ink);
}

.training-badge-stack {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.training-badge-stack span {
    background: rgba(130, 147, 123, .14);
    border: 1px solid rgba(130, 147, 123, .22);
    border-radius: 999px;
    color: #53604c;
    font-size: 12px;
    font-weight: 900;
    padding: 8px 10px;
}

.training-course-page {
    display: grid;
    gap: 22px;
}

.training-course-hero {
    align-items: stretch;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .38fr);
    padding: clamp(24px, 4vw, 42px);
}

.training-course-hero h1 {
    font-size: clamp(42px, 5vw, 72px);
    max-width: 860px;
}

.training-course-hero > div:first-child > p:not(.eyebrow) {
    color: var(--muted);
    font-size: 17px;
    line-height: 1.6;
    max-width: 720px;
}

.training-course-proof {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 18px;
}

.training-course-proof span {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    font-size: 13px;
    font-weight: 900;
    padding: 9px 12px;
}

.training-course-progress-card {
    align-content: start;
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 22px;
    display: grid;
    gap: 14px;
    padding: 18px;
}

.training-course-progress-card > strong {
    color: var(--ink);
}

.training-course-layout {
    align-items: start;
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .35fr);
}

.training-course-content {
    overflow: hidden;
    padding: clamp(22px, 3vw, 34px);
}

.training-course-content .cms-block + .cms-block {
    margin-top: 22px;
}

.training-chapter-list {
    display: grid;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.training-chapter-list li {
    align-items: center;
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 14px;
    display: grid;
    gap: 10px;
    grid-template-columns: auto minmax(0, 1fr);
    padding: 12px;
}

.training-chapter-list span {
    color: rgba(201, 111, 83, .5);
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
}

.training-chapter-list strong {
    color: var(--ink);
    font-size: 14px;
}

.training-resource-link {
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 12px;
}

.training-resource-link strong {
    color: #9e5a45;
    font-size: 13px;
}

.training-locked-page {
    display: grid;
}

.training-locked-card {
    align-items: stretch;
    background: #fff;
    border: 1px solid var(--line);
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .42fr);
    padding: clamp(24px, 4vw, 46px);
}

.training-locked-card h1 {
    font-size: clamp(42px, 5vw, 72px);
}

.training-locked-card aside {
    align-content: start;
    background: #251913;
    border-radius: 22px;
    color: #fff;
    display: grid;
    gap: 14px;
    padding: 22px;
}

.training-locked-card aside p {
    color: rgba(255, 255, 255, .74);
}

@media (max-width: 980px) {
    .training-hero,
    .training-layout,
    .training-course-hero,
    .training-course-layout,
    .training-locked-card {
        grid-template-columns: 1fr;
    }

    .training-live-card,
    .training-course-progress-card,
    .training-course-aside {
        max-width: none;
    }

    .training-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .training-library-head,
    .training-card-title {
        align-items: start;
        flex-direction: column;
    }

    .training-topic-nav {
        justify-content: flex-start;
    }

    .training-card {
        grid-template-columns: 1fr;
    }

    .training-card-cover {
        min-height: 150px;
    }

    .training-card-meta,
    .training-stat-grid {
        grid-template-columns: 1fr;
    }

    .training-course-progress-card .button-row,
    .training-live-card .button-row,
    .training-locked-card .button-row {
        align-items: stretch;
        flex-direction: column;
    }
}

.member-dashboard,
.member-profile-editor {
    padding-bottom: 76px;
    padding-top: 42px;
}

.member-hero {
    align-items: center;
    background: var(--ink);
    border-radius: 34px;
    color: #fff;
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: 28px;
    overflow: hidden;
    padding: clamp(28px, 4vw, 52px);
    position: relative;
}

.member-hero::after {
    background: rgba(255, 255, 255, .08);
    border-radius: 50%;
    content: "";
    height: 360px;
    position: absolute;
    right: -110px;
    top: -160px;
    width: 360px;
}

.member-hero > * {
    position: relative;
    z-index: 1;
}

.member-hero h1,
.member-hero p {
    color: #fff;
}

.member-hero h1 {
    margin: 0 0 16px;
    max-width: 820px;
}

.member-hero p:not(.eyebrow) {
    color: rgba(255, 255, 255, .72);
    max-width: 680px;
}

.member-hero-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}

.member-hero-actions .button-secondary {
    background: #fff;
    color: var(--ink);
}

.member-hero-compact {
    margin-bottom: 24px;
}

.member-hero-compact h1 {
    font-size: clamp(42px, 5vw, 64px);
}

.score-ring {
    align-items: center;
    aspect-ratio: 1;
    background:
        radial-gradient(circle closest-side, var(--ink) 68%, transparent 69%),
        conic-gradient(var(--clay) var(--score), rgba(255, 255, 255, .16) 0);
    border-radius: 50%;
    display: grid;
    justify-items: center;
    min-width: 154px;
    padding: 30px;
    text-align: center;
}

.score-ring strong {
    color: #fff;
    font-family: var(--font-serif);
    font-size: 42px;
    line-height: 1;
}

.score-ring span {
    color: rgba(255, 255, 255, .72);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    margin-top: 6px;
    text-transform: uppercase;
}

.member-action-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    margin-bottom: 28px;
}

.member-action-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 8px;
    min-height: 170px;
    padding: 20px;
    text-decoration: none;
}

.member-action-card:hover {
    border-color: rgba(195, 118, 84, .45);
    transform: translateY(-1px);
}

.member-action-card span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.member-action-card strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(24px, 2.6vw, 34px);
    line-height: 1;
}

.member-action-card small {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.5;
}

.member-onboarding-panel {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 20px;
    margin-bottom: 28px;
    padding: clamp(20px, 3vw, 30px);
}

.member-onboarding-head {
    align-items: start;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) auto;
}

.member-onboarding-head h2 {
    font-size: clamp(32px, 3.4vw, 48px);
    margin: 2px 0 0;
}

.member-onboarding-head p:not(.eyebrow) {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.58;
    margin-top: 8px;
    max-width: 760px;
}

.member-onboarding-meter {
    align-items: center;
    background: var(--ink);
    border-radius: 22px;
    color: #fff;
    display: grid;
    min-width: 150px;
    padding: 16px 18px;
    text-align: center;
}

.member-onboarding-meter strong {
    color: #fff;
    font-family: var(--font-serif);
    font-size: 34px;
    line-height: 1;
}

.member-onboarding-meter span {
    color: rgba(255, 255, 255, .72);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-top: 6px;
    text-transform: uppercase;
}

.member-onboarding-rail {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.member-onboarding-rail li {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 20px;
    display: grid;
    gap: 10px;
    min-width: 0;
    padding: 14px;
}

.member-onboarding-rail li.is-current {
    border-color: rgba(201, 111, 83, .5);
    box-shadow: 0 0 0 4px rgba(201, 111, 83, .09);
}

.member-onboarding-rail li.is-complete {
    background: var(--mint);
    border-color: rgba(130, 147, 123, .28);
}

.member-onboarding-rail span {
    align-items: center;
    background: var(--ink);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 11px;
    font-weight: 950;
    height: 28px;
    justify-content: center;
    width: 42px;
}

.member-onboarding-rail li.is-complete span {
    background: var(--teal);
}

.member-onboarding-rail strong,
.member-onboarding-rail small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.member-onboarding-rail strong {
    color: var(--ink);
    font-size: 14px;
    font-weight: 950;
}

.member-onboarding-rail small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 820;
    margin-top: 3px;
}

.member-onboarding-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.button.is-static {
    cursor: default;
    pointer-events: none;
}

.inline-action-form {
    display: inline-flex;
}

.inline-action-form button {
    width: auto;
}

.member-action-card-status {
    background: #fffaf7;
}

.member-dashboard-tabs {
    align-items: stretch;
    background: rgba(255, 255, 255, .92);
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 6px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin-bottom: 28px;
    padding: 8px;
    position: sticky;
    top: 104px;
    z-index: 9;
}

.member-dashboard-tabs a {
    border-radius: 20px;
    color: var(--muted);
    display: grid;
    gap: 2px;
    min-height: 58px;
    padding: 10px 12px;
    text-decoration: none;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}

.member-dashboard-tabs a:hover {
    background: #fffaf7;
    color: var(--ink);
    transform: translateY(-1px);
}

.member-dashboard-tabs a.is-active {
    background: var(--ink);
    color: #fff;
}

.member-dashboard-tabs span {
    font-weight: 950;
    line-height: 1.2;
}

.member-dashboard-tabs small {
    color: inherit;
    font-size: 11px;
    font-weight: 850;
    line-height: 1.2;
    opacity: .72;
}

.member-dashboard [data-tab-section] {
    display: none;
}

.member-dashboard[data-active-tab="vue"] [data-tab-section~="vue"],
.member-dashboard[data-active-tab="publication"] [data-tab-section~="publication"],
.member-dashboard[data-active-tab="demandes"] [data-tab-section~="demandes"],
.member-dashboard[data-active-tab="portfolio"] [data-tab-section~="portfolio"],
.member-dashboard[data-active-tab="offres"] [data-tab-section~="offres"],
.member-dashboard[data-active-tab="formations"] [data-tab-section~="formations"] {
    display: grid;
}

.member-dashboard[data-active-tab="vue"] .dashboard,
.member-dashboard[data-active-tab="demandes"] .dashboard,
.member-dashboard[data-active-tab="portfolio"] .dashboard,
.member-dashboard[data-active-tab="formations"] .dashboard,
.member-dashboard[data-active-tab="offres"] .dashboard {
    grid-template-columns: 1fr;
}

.member-dashboard[data-active-tab="vue"] .member-sidebar,
.member-dashboard[data-active-tab="demandes"] .member-sidebar,
.member-dashboard[data-active-tab="portfolio"] .member-sidebar,
.member-dashboard[data-active-tab="formations"] .member-sidebar {
    display: none;
}

.member-dashboard[data-active-tab="offres"] .dashboard > .stack:not(.member-sidebar) {
    display: none;
}

.member-dashboard[data-active-tab="offres"] .member-sidebar {
    align-items: start;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(280px, .42fr) minmax(0, 1fr);
    position: static;
}

.member-dashboard[data-active-tab="offres"] .billing-plan-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.member-billing-layout .billing-plan-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.member-contests-page {
    padding-bottom: 82px;
    padding-top: 42px;
}

.member-contest-stat-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    margin-bottom: 28px;
}

.member-contest-stat-grid article,
.member-contest-edition-card,
.member-contest-submission-card,
.member-contest-award-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: var(--shadow-sm);
}

.member-contest-stat-grid article {
    display: grid;
    gap: 8px;
    min-height: 150px;
    padding: 20px;
}

.member-contest-stat-grid span,
.member-contest-edition-card dt {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.member-contest-stat-grid strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(36px, 4vw, 52px);
    line-height: 1;
}

.member-contest-stat-grid small,
.member-contest-edition-card p,
.member-contest-submission-body p,
.member-contest-award-card p {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.5;
}

.member-contest-section {
    display: grid;
    gap: 18px;
    margin-top: 30px;
}

.member-contest-edition-grid,
.member-contest-award-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.member-contest-edition-card {
    display: grid;
    gap: 18px;
    padding: 20px;
}

.member-contest-edition-card h3,
.member-contest-submission-body h3,
.member-contest-award-card h3 {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(25px, 2.4vw, 34px);
    letter-spacing: 0;
    line-height: 1.05;
}

.member-contest-edition-card dl {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    margin: 0;
}

.member-contest-edition-card dl div {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 12px;
}

.member-contest-edition-card dd {
    color: var(--ink);
    font-weight: 950;
    margin: 3px 0 0;
}

.member-contest-deadline {
    align-items: center;
    background: linear-gradient(135deg, #fffaf7, #f5eee7);
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 18px;
    color: var(--ink);
    display: grid;
    gap: 6px 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 14px;
    text-decoration: none;
}

.member-contest-deadline span {
    color: var(--clay);
}

.member-contest-deadline small {
    color: var(--muted);
}

.member-contest-deadline em {
    border: 1px solid var(--line);
}

.member-contest-deadline.is-success {
    background: linear-gradient(135deg, rgba(130, 147, 123, .14), #fffaf7);
    border-color: rgba(130, 147, 123, .3);
}

.member-contest-deadline.is-pending {
    background: linear-gradient(135deg, rgba(195, 148, 86, .16), #fffaf7);
    border-color: rgba(195, 148, 86, .28);
}

.member-contest-deadline.is-danger {
    background: linear-gradient(135deg, rgba(185, 83, 63, .1), #fffaf7);
    border-color: rgba(185, 83, 63, .24);
}

.member-contest-milestones {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.member-contest-next-step {
    background: linear-gradient(135deg, #fffaf7, #f5eee7);
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 18px;
    display: grid;
    gap: 5px;
    padding: 14px;
}

.member-contest-next-step span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.member-contest-next-step strong {
    color: var(--ink);
    font-size: 15px;
    font-weight: 950;
    line-height: 1.25;
}

.member-contest-next-step p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.42;
    margin: 0;
}

.member-contest-next-step small {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-weight: 950;
    justify-self: start;
    line-height: 1;
    min-height: 30px;
    padding: 8px 10px;
}

.member-contest-next-step.is-success {
    background: linear-gradient(135deg, rgba(130, 147, 123, .14), #fffaf7);
    border-color: rgba(130, 147, 123, .3);
}

.member-contest-next-step.is-pending {
    background: linear-gradient(135deg, rgba(195, 148, 86, .16), #fffaf7);
    border-color: rgba(195, 148, 86, .28);
}

.member-contest-next-step.is-danger {
    background: linear-gradient(135deg, rgba(185, 83, 63, .1), #fffaf7);
    border-color: rgba(185, 83, 63, .24);
}

.member-contest-health {
    background: linear-gradient(135deg, #fffdfb, #f7efe7);
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 18px;
    display: grid;
    gap: 12px;
    padding: 14px;
}

.member-contest-health span {
    color: var(--clay);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.member-contest-health strong {
    color: var(--ink);
    display: block;
    font-size: 15px;
    font-weight: 950;
    line-height: 1.25;
}

.member-contest-health p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.42;
    margin: 5px 0 0;
}

.member-contest-health-metrics,
.member-contest-health-proof-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.member-contest-health-metrics b,
.member-contest-health-metrics small,
.member-contest-health-proof-list em {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-style: normal;
    font-weight: 950;
    line-height: 1;
    min-height: 30px;
    padding: 8px 10px;
}

.member-contest-health-metrics small,
.member-contest-health-proof-list em {
    color: var(--muted);
    font-weight: 850;
}

.member-contest-health.is-success {
    background: linear-gradient(135deg, rgba(130, 147, 123, .14), #fffaf7);
    border-color: rgba(130, 147, 123, .3);
}

.member-contest-health.is-pending {
    background: linear-gradient(135deg, rgba(195, 148, 86, .16), #fffaf7);
    border-color: rgba(195, 148, 86, .28);
}

.member-contest-health.is-danger {
    background: linear-gradient(135deg, rgba(185, 83, 63, .1), #fffaf7);
    border-color: rgba(185, 83, 63, .24);
}

.member-contest-engagement {
    background: #fffdfb;
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 18px;
    display: grid;
    gap: 12px;
    padding: 14px;
}

.member-contest-engagement span {
    color: var(--clay);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.member-contest-engagement strong {
    color: var(--ink);
    display: block;
    font-size: 15px;
    font-weight: 950;
    line-height: 1.25;
}

.member-contest-engagement p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.42;
    margin: 5px 0 0;
}

.member-contest-engagement > div:last-child {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.member-contest-engagement em {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
    min-height: 30px;
    padding: 8px 10px;
}

.member-contest-engagement.is-success {
    background: linear-gradient(135deg, rgba(130, 147, 123, .12), #fffdfb);
    border-color: rgba(130, 147, 123, .3);
}

.member-contest-engagement.is-pending {
    background: linear-gradient(135deg, rgba(195, 148, 86, .14), #fffdfb);
    border-color: rgba(195, 148, 86, .28);
}

.member-contest-engagement.is-danger {
    background: linear-gradient(135deg, rgba(185, 83, 63, .09), #fffdfb);
    border-color: rgba(185, 83, 63, .24);
}

.member-contest-brief {
    background: #fffdfb;
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 18px;
    display: grid;
    gap: 12px;
    padding: 14px;
}

.member-contest-brief span {
    color: var(--clay);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.member-contest-brief strong {
    color: var(--ink);
    display: block;
    font-size: 15px;
    font-weight: 950;
    line-height: 1.25;
}

.member-contest-brief p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.42;
    margin: 5px 0 0;
}

.member-contest-brief > div:last-of-type {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.member-contest-brief em {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
    min-height: 30px;
    padding: 8px 10px;
}

.member-contest-brief small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 820;
    line-height: 1.45;
}

.member-contest-brief.is-success {
    background: linear-gradient(135deg, rgba(130, 147, 123, .12), #fffdfb);
    border-color: rgba(130, 147, 123, .3);
}

.member-contest-brief.is-pending {
    background: linear-gradient(135deg, rgba(195, 148, 86, .14), #fffdfb);
    border-color: rgba(195, 148, 86, .28);
}

.member-contest-brief.is-danger {
    background: linear-gradient(135deg, rgba(185, 83, 63, .09), #fffdfb);
    border-color: rgba(185, 83, 63, .24);
}

.member-contest-showcase {
    background: #fffdfb;
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 18px;
    display: grid;
    gap: 12px;
    padding: 14px;
}

.member-contest-showcase span {
    color: var(--clay);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.member-contest-showcase strong {
    color: var(--ink);
    display: block;
    font-size: 15px;
    font-weight: 950;
    line-height: 1.25;
}

.member-contest-showcase p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.42;
    margin: 5px 0 0;
}

.member-contest-showcase > div:last-of-type {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.member-contest-showcase em {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
    min-height: 30px;
    padding: 8px 10px;
}

.member-contest-showcase small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 820;
    line-height: 1.45;
}

.member-contest-showcase.is-success {
    background: linear-gradient(135deg, rgba(130, 147, 123, .12), #fffdfb);
    border-color: rgba(130, 147, 123, .3);
}

.member-contest-showcase.is-pending {
    background: linear-gradient(135deg, rgba(195, 148, 86, .14), #fffdfb);
    border-color: rgba(195, 148, 86, .28);
}

.member-contest-showcase.is-danger {
    background: linear-gradient(135deg, rgba(185, 83, 63, .09), #fffdfb);
    border-color: rgba(185, 83, 63, .24);
}

.member-contest-criteria,
.member-contest-compliance {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 10px;
    padding: 14px;
}

.member-contest-criteria > span,
.member-contest-compliance > span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.member-contest-criteria > div,
.member-contest-compliance > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.member-contest-criteria strong,
.member-contest-compliance strong {
    background: #fff;
    border: 1px solid rgba(126, 95, 68, .14);
    border-radius: 999px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    padding: 8px 10px;
}

.member-contest-category-spotlights {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 10px;
    padding: 14px;
}

.member-contest-category-spotlights > span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.member-contest-category-spotlights > div {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
}

.member-contest-category-spotlights article {
    background: #fff;
    border: 1px solid rgba(126, 95, 68, .12);
    border-radius: 14px;
    display: grid;
    gap: 4px;
    padding: 10px;
}

.member-contest-category-spotlights strong {
    color: var(--ink);
    font-size: 13px;
    font-weight: 950;
    line-height: 1.25;
}

.member-contest-category-spotlights small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
}

.contest-member-status,
.contest-member-rank {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    line-height: 1;
    min-height: 31px;
    padding: 9px 11px;
    text-transform: uppercase;
}

.contest-member-status {
    background: rgba(201, 111, 83, .13);
    color: #874a36;
}

.contest-member-status.is-open,
.contest-member-status.is-approved,
.contest-member-status.is-trusted {
    background: rgba(130, 147, 123, .17);
    color: #52634c;
}

.contest-member-status.is-voting,
.contest-member-status.is-pending,
.contest-member-status.is-draft {
    background: rgba(195, 148, 86, .18);
    color: #755421;
}

.contest-member-status.is-results {
    background: rgba(77, 58, 42, .1);
    color: var(--ink);
}

.contest-member-status.is-rejected,
.contest-member-status.is-hidden {
    background: rgba(185, 83, 63, .14);
    color: #8a3f31;
}

.contest-member-rank {
    background: var(--ink);
    color: #fff;
}

.contest-member-rank.is-rights-confirmed {
    background: rgba(130, 147, 123, .16);
    color: #53604c;
}

.contest-member-rank.is-rights-warning {
    background: rgba(195, 148, 86, .18);
    color: #755421;
}

.member-contest-submission-list {
    display: grid;
    gap: 16px;
}

.member-contest-submission-card {
    display: grid;
    gap: 0;
    grid-template-columns: minmax(210px, .32fr) minmax(0, 1fr);
    overflow: hidden;
}

.member-contest-submission-media {
    background: #eadfd4;
    min-height: 260px;
}

.member-contest-submission-media img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.member-contest-submission-body {
    align-content: center;
    display: grid;
    gap: 12px;
    padding: 22px;
}

.member-contest-submission-head {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.member-contest-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.member-contest-metrics span {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 850;
    padding: 8px 10px;
}

.member-contest-vote-status {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px;
}

.member-contest-vote-status span,
.member-contest-vote-status strong {
    border-radius: 999px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    padding: 8px 10px;
}

.member-contest-vote-status span {
    background: rgba(195, 148, 86, .15);
    color: #755421;
}

.member-contest-vote-status strong {
    background: #fff;
    border: 1px solid rgba(126, 95, 68, .16);
    color: var(--ink);
}

.member-contest-vote-status.is-danger span {
    background: rgba(185, 83, 63, .13);
    color: #8a3f31;
}

.member-contest-ranking-proof {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 16px;
    display: grid;
    gap: 10px;
    padding: 12px;
}

.member-contest-ranking-proof span {
    color: var(--clay);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 4px;
    text-transform: uppercase;
}

.member-contest-ranking-proof strong {
    color: var(--ink);
    display: block;
    font-size: 15px;
    font-weight: 950;
    line-height: 1.25;
}

.member-contest-ranking-proof p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.42;
    margin: 5px 0 0;
}

.member-contest-ranking-proof > div:last-child {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.member-contest-ranking-proof em {
    background: #fff;
    border: 1px solid rgba(126, 95, 68, .14);
    border-radius: 999px;
    color: var(--ink);
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
    padding: 8px 10px;
}

.member-contest-ranking-proof.is-success {
    background: linear-gradient(135deg, rgba(130, 147, 123, .14), #fffaf7);
    border-color: rgba(130, 147, 123, .3);
}

.member-contest-ranking-proof.is-pending {
    background: linear-gradient(135deg, rgba(195, 148, 86, .15), #fffaf7);
    border-color: rgba(195, 148, 86, .28);
}

.member-contest-submission-insight,
.contest-submission-insight {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 5px;
    padding: 14px;
}

.contest-submission-insight {
    grid-column: 1 / -1;
}

.member-contest-submission-insight span,
.contest-submission-insight span {
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.member-contest-submission-insight strong,
.contest-submission-insight strong {
    color: var(--ink);
    font-size: 15px;
    font-weight: 950;
    line-height: 1.25;
}

.member-contest-submission-insight p,
.contest-submission-insight p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.45;
    margin: 0;
}

.member-contest-submission-insight .contest-moderation-note,
.contest-submission-insight .contest-moderation-note {
    background: rgba(255, 255, 255, .58);
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 12px;
    color: var(--ink);
    margin-top: 4px;
    padding: 9px 10px;
}

.member-contest-submission-insight.is-success,
.contest-submission-insight.is-success {
    background: rgba(130, 147, 123, .12);
    border-color: rgba(130, 147, 123, .28);
}

.member-contest-submission-insight.is-success span,
.contest-submission-insight.is-success span {
    color: #52634c;
}

.member-contest-submission-insight.is-pending,
.contest-submission-insight.is-pending {
    background: rgba(195, 148, 86, .13);
    border-color: rgba(195, 148, 86, .25);
}

.member-contest-submission-insight.is-pending span,
.contest-submission-insight.is-pending span {
    color: #755421;
}

.member-contest-submission-insight.is-danger,
.contest-submission-insight.is-danger {
    background: rgba(185, 83, 63, .1);
    border-color: rgba(185, 83, 63, .24);
}

.member-contest-submission-insight.is-danger span,
.contest-submission-insight.is-danger span {
    color: #8a3f31;
}

.member-contest-submission-insight.is-muted,
.contest-submission-insight.is-muted {
    background: #f3eee8;
}

.member-contest-submission-journey,
.contest-submission-journey {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 10px;
    padding: 14px;
}

.contest-submission-journey {
    grid-column: 1 / -1;
}

.contest-card-journey {
    padding: 12px;
}

.contest-submission-journey-head {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.contest-submission-journey-head span,
.contest-submission-journey-head em {
    border-radius: 999px;
    display: inline-flex;
    font-size: 11px;
    font-style: normal;
    font-weight: 950;
    letter-spacing: 0;
    line-height: 1;
    padding: 8px 10px;
    text-transform: uppercase;
}

.contest-submission-journey-head span {
    background: #fff;
    border: 1px solid rgba(126, 95, 68, .16);
    color: var(--clay);
}

.contest-submission-journey-head strong {
    color: var(--ink);
    flex: 1 1 170px;
    font-size: 15px;
    font-weight: 950;
    line-height: 1.25;
}

.contest-submission-journey-head em {
    background: var(--ink);
    color: #fff;
}

.contest-submission-journey p,
.member-contest-submission-journey p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.45;
    margin: 0;
}

.contest-submission-journey-meter {
    background: rgba(126, 95, 68, .1);
    border-radius: 999px;
    height: 7px;
    overflow: hidden;
}

.contest-submission-journey-meter span {
    background: linear-gradient(90deg, var(--clay), #82937b);
    border-radius: inherit;
    display: block;
    height: 100%;
}

.contest-submission-journey-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.contest-submission-journey-steps span {
    align-items: center;
    background: #fff;
    border: 1px solid rgba(126, 95, 68, .14);
    border-radius: 999px;
    color: var(--muted);
    display: inline-flex;
    font-size: 11px;
    font-weight: 900;
    gap: 5px;
    line-height: 1;
    min-height: 30px;
    padding: 8px 9px;
}

.contest-submission-journey-steps span.is-complete {
    background: rgba(130, 147, 123, .14);
    color: #52634c;
}

.contest-submission-journey-steps span.is-current {
    background: rgba(195, 148, 86, .16);
    color: #755421;
}

.contest-submission-journey-steps span.is-blocked {
    background: rgba(185, 83, 63, .13);
    color: #8a3f31;
}

.contest-submission-journey-steps small {
    background: rgba(255, 255, 255, .72);
    border-radius: 999px;
    color: inherit;
    font-size: 10px;
    font-weight: 950;
    line-height: 1;
    padding: 4px 6px;
}

.member-contest-submission-journey.is-success,
.contest-submission-journey.is-success {
    background: rgba(130, 147, 123, .1);
    border-color: rgba(130, 147, 123, .26);
}

.member-contest-submission-journey.is-pending,
.contest-submission-journey.is-pending {
    background: rgba(195, 148, 86, .12);
    border-color: rgba(195, 148, 86, .26);
}

.member-contest-submission-journey.is-danger,
.contest-submission-journey.is-danger {
    background: rgba(185, 83, 63, .09);
    border-color: rgba(185, 83, 63, .24);
}

.member-contest-share-card {
    align-items: center;
    background: linear-gradient(135deg, #fffaf7, #f4ece2);
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 18px;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 14px;
}

.member-contest-share-card strong {
    color: var(--clay);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 4px;
    text-transform: uppercase;
}

.member-contest-share-card p {
    color: var(--ink);
    font-size: 13px;
    font-weight: 820;
    line-height: 1.45;
    margin: 0;
    overflow-wrap: anywhere;
}

.member-contest-award-card {
    display: grid;
    gap: 10px;
    padding: 20px;
}

.member-contest-award-card > span {
    align-items: center;
    background: var(--ink);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 12px;
    font-weight: 950;
    height: 34px;
    justify-content: center;
    width: 48px;
}

.member-contest-award-share {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 10px;
    padding: 14px;
}

.member-contest-award-share strong {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.member-contest-award-share p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.45;
    margin: 0;
}

.member-contest-award-share > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.member-publication-focus-card {
    background: linear-gradient(135deg, #fff, #fffaf7);
}

.publication-focus-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.publication-focus-grid > div {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    display: grid;
    gap: 8px;
    padding: 16px;
}

.publication-focus-grid > div.is-complete {
    background: var(--mint);
    border-color: rgba(130, 147, 123, .3);
}

.publication-focus-grid span {
    align-items: center;
    background: var(--ink);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 11px;
    font-weight: 950;
    height: 28px;
    justify-content: center;
    width: 42px;
}

.publication-focus-grid > div.is-complete span {
    background: var(--teal);
}

.publication-focus-grid strong {
    color: var(--ink);
    font-size: 15px;
    font-weight: 950;
}

.publication-focus-grid small {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.45;
}

.billing-credit-card.is-muted {
    background: #fffaf7;
}

.member-locked-feature {
    background: #fff;
    border: 1px dashed rgba(139, 126, 117, .34);
    border-radius: 20px;
    display: grid;
    gap: 5px;
    padding: 16px;
}

.member-locked-feature strong {
    color: var(--ink);
    font-size: 15px;
    font-weight: 950;
}

.member-locked-feature span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.45;
}

.review-request-card {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 24px;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 18px;
}

.review-request-card.is-ready {
    background: var(--mint);
    border-color: rgba(130, 147, 123, .32);
}

.review-request-card span {
    color: var(--clay);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.review-request-card strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(24px, 2.5vw, 34px);
    line-height: 1;
}

.review-request-card p {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.55;
    margin-top: 8px;
    max-width: 760px;
}

.publication-blocker-list {
    display: grid;
    gap: 8px;
    list-style: none;
    margin: 14px 0 0;
    max-width: 880px;
    padding: 0;
}

.publication-blocker-list li {
    background: rgba(255, 255, 255, .72);
    border: 1px solid rgba(232, 222, 214, .9);
    border-radius: 16px;
    display: grid;
    gap: 4px;
    padding: 12px 13px;
}

.publication-blocker-list strong {
    color: var(--ink);
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 950;
    line-height: 1.25;
}

.publication-blocker-list small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 760;
    line-height: 1.45;
}

.publication-blocker-list-compact {
    margin-top: 4px;
}

.publication-blocker-list-inline {
    flex: 1 1 100%;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 8px;
}

.review-request-card form,
.review-request-card .button,
.review-request-card .button-accent {
    justify-self: end;
    width: auto;
}

.portfolio-publication-card {
    margin-top: -4px;
}

.member-empty-state {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 22px;
    display: grid;
    gap: 8px;
    padding: 18px;
}

.member-empty-state span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.member-empty-state strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(23px, 2.2vw, 31px);
    line-height: 1.08;
}

.member-empty-state p {
    color: var(--muted);
    font-size: 14px;
    font-weight: 760;
    line-height: 1.5;
    margin: 0;
}

.member-empty-state .button {
    justify-self: start;
    margin-top: 4px;
}

.member-empty-state-portfolio {
    align-content: center;
    grid-column: 1 / -1;
    min-height: 190px;
}

.member-sidebar {
    position: sticky;
    top: 104px;
}

.billing-status-card,
.billing-credit-card,
.billing-plan-card {
    gap: 16px;
}

.billing-status-panel {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 20px;
    display: grid;
    gap: 5px;
    padding: 18px;
}

.billing-status-panel span,
.billing-plan-head span,
.billing-note,
.billing-included,
.credit-pack-card small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.billing-status-panel strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 34px;
    line-height: 1;
}

.billing-status-panel small {
    color: var(--muted);
    font-weight: 800;
}

.billing-note {
    letter-spacing: 0;
    line-height: 1.45;
    text-transform: none;
}

.billing-plan-list {
    display: grid;
    gap: 14px;
}

.billing-plan-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    display: grid;
    padding: 22px;
}

.billing-plan-card.is-featured {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.billing-plan-head {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: space-between;
}

.billing-plan-head small {
    background: var(--mint);
    border-radius: 999px;
    color: #54634f;
    font-size: 11px;
    font-weight: 950;
    padding: 7px 9px;
}

.billing-plan-card h3 {
    font-family: var(--font-serif);
    font-size: 34px;
    letter-spacing: 0;
}

.billing-price {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.billing-price strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 42px;
    line-height: 1;
}

.billing-price span {
    color: var(--muted);
    font-weight: 850;
}

.billing-plan-card.is-featured h3,
.billing-plan-card.is-featured .billing-price strong,
.billing-plan-card.is-featured .billing-plan-head span {
    color: #fff;
}

.billing-plan-card.is-featured .billing-price span,
.billing-plan-card.is-featured .feature-list li,
.billing-plan-card.is-featured .billing-included {
    color: rgba(255, 255, 255, .76);
}

.billing-plan-card form,
.billing-plan-card button,
.billing-plan-card .button,
.credit-pack-grid form,
.credit-pack-card {
    width: 100%;
}

.billing-plan-card button:disabled {
    cursor: default;
    opacity: .72;
    transform: none;
}

.billing-subscription-form {
    display: grid;
    gap: 14px;
}

.billing-promo-field {
    display: grid;
    gap: 7px;
}

.billing-promo-field label {
    color: inherit;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.billing-promo-field label span {
    font-weight: 700;
    opacity: .68;
}

.billing-promo-field input {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    color: var(--ink);
    font: inherit;
    font-weight: 800;
    min-height: 50px;
    padding: 12px 14px;
    text-transform: uppercase;
    width: 100%;
}

.billing-promo-field input:focus {
    border-color: var(--pink);
    box-shadow: 0 0 0 3px rgba(232, 180, 180, .22);
    outline: 0;
}

.billing-promo-field small,
.billing-promo-explanation {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.55;
}

.billing-promo-explanation {
    margin: 0;
}

.billing-plan-card.is-featured .billing-promo-field label,
.billing-plan-card.is-featured .billing-promo-field small,
.billing-plan-card.is-featured .billing-promo-explanation {
    color: rgba(255, 255, 255, .78);
}

.credit-pack-card:disabled {
    cursor: default;
    opacity: .72;
    transform: none;
}

.billing-included {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    display: inline-flex;
    justify-content: center;
    padding: 12px 14px;
}

.billing-balance {
    align-items: center;
    background: var(--mint);
    border: 1px solid rgba(130, 147, 123, .24);
    border-radius: 999px;
    color: #53604c;
    display: inline-flex;
    flex: 0 0 auto;
    font-weight: 900;
    gap: 6px;
    min-height: 44px;
    padding: 10px 14px;
}

.billing-balance strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 26px;
    line-height: 1;
}

.credit-pack-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.credit-pack-card {
    align-items: start;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 20px;
    color: var(--ink);
    display: grid;
    gap: 6px;
    justify-items: start;
    min-height: 132px;
    padding: 18px;
    text-align: left;
}

.credit-pack-card strong {
    font-size: 17px;
}

.credit-pack-card span {
    font-family: var(--font-serif);
    font-size: 34px;
    font-weight: 850;
    line-height: 1;
}

.profile-command-card {
    gap: 18px;
}

.progress-bar-large {
    height: 14px;
}

.completion-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.completion-grid-single {
    grid-template-columns: 1fr;
}

.completion-item {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 5px;
    padding: 15px;
}

.completion-item span {
    color: #a8533d;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.completion-item strong {
    color: var(--ink);
}

.completion-item small {
    color: var(--muted);
    font-weight: 700;
    line-height: 1.45;
}

.completion-item.is-complete {
    background: var(--mint);
    border-color: rgba(130, 147, 123, .32);
}

.completion-item.is-complete span {
    color: #54634f;
}

.editor-layout {
    align-items: start;
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(0, 1fr) 360px;
}

.profile-edit-form {
    padding: 30px;
}

.profile-edit-form .form-grid {
    align-items: start;
}

.profile-edit-onboarding {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: 24px;
    padding: clamp(20px, 3vw, 30px);
}

.profile-edit-onboarding h2 {
    font-size: clamp(30px, 3vw, 42px);
    margin: 2px 0 0;
}

.profile-edit-onboarding p:not(.eyebrow) {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.58;
    margin-top: 8px;
    max-width: 720px;
}

.profile-edit-priorities {
    display: grid;
    gap: 8px;
    justify-items: end;
}

.profile-edit-priorities span {
    background: var(--mint);
    border: 1px solid rgba(130, 147, 123, .28);
    border-radius: 999px;
    color: #53634f;
    font-size: 12px;
    font-weight: 950;
    padding: 8px 11px;
    white-space: nowrap;
}

.profile-edit-section {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 24px;
    display: grid;
    gap: 16px;
    padding: clamp(16px, 2.4vw, 22px);
}

.profile-edit-section > div:first-child {
    display: grid;
    gap: 6px;
}

.profile-edit-section > div:first-child span {
    align-items: center;
    background: var(--ink);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 11px;
    font-weight: 950;
    height: 28px;
    justify-content: center;
    width: 42px;
}

.profile-edit-section h2 {
    font-family: var(--font-serif);
    font-size: clamp(28px, 3vw, 38px);
    margin: 0;
}

.profile-edit-section p {
    color: var(--muted);
    font-size: 14px;
    font-weight: 760;
    line-height: 1.55;
    max-width: 720px;
}

.profile-review-panel {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 22px;
    display: grid;
    gap: 10px;
    padding: 18px;
}

.profile-review-panel.is-ready {
    background: var(--mint);
    border-color: rgba(130, 147, 123, .32);
}

.profile-review-panel span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.profile-review-panel strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 28px;
    line-height: 1;
}

.profile-review-panel p {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.5;
}

.profile-review-panel form,
.profile-review-panel .button,
.profile-review-panel .button-accent {
    width: 100%;
}

.field-full {
    display: grid;
    grid-column: 1 / -1;
}

.profile-company-lookup {
    gap: 10px;
}

.field.profile-company-lookup:focus-within {
    border-color: rgba(130, 147, 123, .42);
    box-shadow: 0 0 0 3px rgba(130, 147, 123, .13);
}

.field.profile-company-lookup .field.company-search-field:focus-within {
    border-color: rgba(130, 147, 123, .42);
    box-shadow: 0 0 0 3px rgba(130, 147, 123, .13);
}

.profile-company-lookup .company-results,
.profile-company-lookup .company-identity,
.profile-company-lookup .siren-status {
    margin-top: 0;
}

.specialty-editor {
    background: #fffaf7;
    box-shadow: none;
    padding: 20px;
}

.specialty-editor legend {
    color: var(--ink);
    font-weight: 900;
    margin-bottom: 12px;
}

.filter-chip {
    cursor: pointer;
    display: inline-flex;
}

.filter-chip input {
    position: absolute;
    opacity: 0;
}

.filter-chip span {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--text);
    display: inline-flex;
    font-size: 13px;
    font-weight: 900;
    min-height: 38px;
    padding: 0 15px;
}

.filter-chip input:checked + span {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.lead-board-page {
    display: grid;
    gap: 24px;
}

.lead-board-kpis {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(90px, 1fr));
    min-width: 360px;
}

.lead-board-kpis div {
    background: rgba(255, 255, 255, .10);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 22px;
    display: grid;
    gap: 4px;
    padding: 18px;
}

.lead-board-kpis strong {
    color: #fff;
    font-family: var(--font-serif);
    font-size: 38px;
    line-height: 1;
    overflow-wrap: anywhere;
}

.lead-board-kpis span {
    color: rgba(255, 255, 255, .70);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.lead-board-toolbar {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
}

.lead-gate-status {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    box-shadow: var(--shadow-sm);
    display: inline-flex;
    gap: 10px;
    max-width: 100%;
    min-height: 48px;
    padding: 8px 16px;
}

.lead-gate-status span {
    align-items: center;
    background: var(--mint);
    border-radius: 999px;
    color: #53604c;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 950;
    padding: 7px 10px;
    text-transform: uppercase;
}

.lead-gate-status strong {
    align-items: center;
    color: var(--ink);
    display: inline-flex;
    font-weight: 900;
    min-width: 0;
}

.lead-publication-gate {
    align-items: start;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .62fr);
    padding: clamp(22px, 3.4vw, 36px);
}

.lead-publication-gate.is-ready {
    background: linear-gradient(135deg, #fff 0%, #fff 48%, #eef3e8 100%);
}

.lead-publication-gate h2 {
    font-size: clamp(34px, 4vw, 54px);
    margin: 2px 0 0;
    max-width: 820px;
}

.lead-publication-gate p:not(.eyebrow) {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.58;
    margin-top: 10px;
    max-width: 760px;
}

.publication-gate-steps {
    display: grid;
    gap: 10px;
}

.publication-gate-steps div {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 20px;
    display: grid;
    gap: 5px;
    padding: 15px;
}

.publication-gate-steps div.is-complete {
    background: var(--mint);
    border-color: rgba(130, 147, 123, .32);
}

.publication-gate-steps span {
    align-items: center;
    background: var(--ink);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 11px;
    font-weight: 950;
    height: 28px;
    justify-content: center;
    margin-bottom: 4px;
    width: 42px;
}

.publication-gate-steps div.is-complete span {
    background: var(--teal);
}

.publication-gate-steps strong {
    color: var(--ink);
    font-size: 15px;
    font-weight: 950;
}

.publication-gate-steps small {
    color: var(--muted);
    font-weight: 820;
}

.lead-publication-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    grid-column: 1 / -1;
}

.lead-publication-actions form,
.lead-publication-actions .button,
.lead-publication-actions .button-accent {
    width: auto;
}

.lead-board-grid {
    align-items: start;
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lead-board-grid.is-filtered {
    grid-template-columns: minmax(320px, 430px);
}

.lead-board-column {
    background: rgba(255, 255, 255, .66);
    border: 1px solid var(--line);
    border-radius: 28px;
    display: grid;
    gap: 14px;
    padding: 16px;
}

.lead-column-head {
    align-items: start;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.lead-column-head h2 {
    font-family: var(--font-sans);
    font-size: 18px;
    line-height: 1.1;
    margin: 0;
}

.lead-column-head p {
    color: var(--muted);
    font-size: 12px;
    font-weight: 750;
    margin-top: 4px;
}

.lead-column-head span {
    align-items: center;
    background: var(--ink);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 12px;
    font-weight: 900;
    height: 30px;
    justify-content: center;
    min-width: 30px;
    padding: 0 9px;
}

.lead-column-list {
    display: grid;
    gap: 12px;
}

.lead-board-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    box-shadow: 0 8px 20px rgba(36, 25, 21, .05);
    display: grid;
    gap: 14px;
    padding: 16px;
}

.lead-board-card.is-preview {
    background: #fffaf7;
}

.lead-card-top {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: space-between;
}

.lead-card-top small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 850;
    white-space: nowrap;
}

.lead-board-card h3 {
    font-size: 18px;
    line-height: 1.14;
    margin: 0;
}

.lead-pipeline-pill {
    background: var(--ivory-2);
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    display: inline-flex;
    font-size: 11px;
    font-weight: 900;
    justify-self: start;
    letter-spacing: .06em;
    padding: 6px 10px;
    text-transform: uppercase;
}

.lead-board-card p {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.lead-board-card dl {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
}

.lead-board-card dt {
    color: var(--muted);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.lead-board-card dd {
    color: var(--ink);
    font-size: 13px;
    font-weight: 850;
    margin: 3px 0 0;
}

.lead-board-card .button {
    width: 100%;
}

.lead-board-empty {
    background: linear-gradient(145deg, #fff 0%, #fffaf7 100%);
    border: 1px solid var(--line);
    border-radius: 22px;
    box-shadow: 0 12px 28px rgba(36, 25, 21, .045);
    display: grid;
    gap: 10px;
    min-height: 178px;
    padding: 18px;
}

.lead-board-empty span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.lead-board-empty strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 26px;
    line-height: 1.05;
}

.lead-board-empty p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.5;
}

.lead-board-empty .button {
    justify-self: start;
    margin-top: 4px;
}

.pro-lead-detail-page {
    gap: 22px;
}

.pro-lead-back {
    justify-self: start;
}

.pro-lead-hero {
    align-items: end;
    grid-template-columns: minmax(0, 1fr) minmax(440px, .72fr);
}

.pro-lead-kpis {
    grid-template-columns: repeat(3, minmax(130px, 1fr));
    min-width: 0;
    width: 100%;
}

.pro-lead-kpis div {
    min-width: 0;
}

.pro-lead-kpis strong {
    font-family: var(--font-sans);
    font-size: clamp(18px, 1.9vw, 26px);
    letter-spacing: 0;
    line-height: 1.05;
    overflow-wrap: normal;
    word-break: normal;
}

.pro-lead-action-bar {
    align-items: center;
    background: rgba(255, 255, 255, .86);
    border: 1px solid var(--line);
    border-radius: 999px;
    box-shadow: var(--shadow-sm);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: space-between;
    padding: 8px;
    position: sticky;
    top: 82px;
    z-index: 8;
}

.pro-lead-action-bar a {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    flex: 1 1 auto;
    font-size: 13px;
    font-weight: 900;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    text-align: center;
    text-decoration: none;
}

.pro-lead-action-bar a:hover,
.pro-lead-action-bar a:focus-visible {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
    outline: none;
}

.pro-lead-contact-card,
.pro-lead-conversation-card,
.pro-lead-unlock-card {
    border-radius: 28px;
}

.pro-lead-contact-card > div:first-child p:not(.eyebrow),
.pro-lead-conversation-card > div:first-child p:not(.eyebrow) {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.5;
}

.pro-lead-contact-actions {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pro-lead-contact-actions .button,
.pro-lead-contact-actions .button-accent {
    width: 100%;
}

.lead-crm-panel {
    border-top: 1px solid var(--line);
    display: grid;
    gap: 16px;
    padding-top: 18px;
}

.lead-crm-panel p {
    color: var(--muted);
    font-size: 13px;
}

.reply-template-grid {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.reply-template-button {
    background: var(--ivory-2);
    border: 1px solid var(--line);
    border-radius: 14px;
    color: var(--ink);
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 900;
    min-height: 42px;
    padding: 10px 12px;
    text-align: center;
    width: 100%;
}

.reply-template-button:hover,
.reply-template-button:focus-visible {
    background: var(--mint);
    border-color: rgba(47, 111, 106, .25);
    outline: none;
}

.pro-continuation-action {
    align-items: center;
    border-top: 1px solid var(--line);
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding-top: 16px;
}

.pro-continuation-action span {
    color: var(--muted);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pro-continuation-action strong {
    color: var(--ink);
    display: block;
    font-size: 16px;
    line-height: 1.25;
    margin-top: 5px;
}

.pro-continuation-action p {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
    margin-top: 5px;
}

.pro-continuation-action .button {
    min-width: 220px;
}

@media (max-width: 720px) {
    .pro-continuation-action {
        grid-template-columns: 1fr;
    }

    .pro-continuation-action .button {
        min-width: 0;
        width: 100%;
    }
}

.portfolio-manager-page {
    display: grid;
    gap: 24px;
}

.portfolio-manager-actions {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: flex-end;
}

.portfolio-curation-command {
    align-items: stretch;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: clamp(18px, 3vw, 34px);
    grid-template-columns: minmax(260px, .42fr) minmax(0, 1fr);
    overflow: hidden;
    padding: clamp(16px, 2.4vw, 24px);
}

.portfolio-hero-preview {
    border-radius: 24px;
    display: grid;
    min-height: 360px;
    overflow: hidden;
    position: relative;
}

.portfolio-hero-preview img,
.portfolio-hero-preview .photo-placeholder {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.portfolio-hero-preview span {
    background: rgba(255, 255, 255, .90);
    border: 1px solid rgba(232, 222, 214, .90);
    border-radius: 999px;
    bottom: 16px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 950;
    left: 16px;
    padding: 9px 12px;
    position: absolute;
}

.portfolio-curation-copy {
    align-content: center;
    display: grid;
    gap: 16px;
    padding: clamp(8px, 2vw, 18px);
}

.portfolio-curation-copy h2 {
    font-size: clamp(36px, 4vw, 56px);
    line-height: .98;
    margin: 0;
    max-width: 780px;
}

.portfolio-curation-copy p:not(.eyebrow) {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.58;
    max-width: 760px;
}

.portfolio-curation-rail {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 6px;
}

.portfolio-curation-rail div {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 20px;
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 16px;
}

.portfolio-curation-rail div.is-complete {
    background: var(--mint);
    border-color: rgba(130, 147, 123, .30);
}

.portfolio-curation-rail strong {
    color: var(--ink);
    font-size: 16px;
    font-weight: 950;
    overflow-wrap: anywhere;
}

.portfolio-curation-rail span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.portfolio-manager-layout {
    align-items: start;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) 360px;
}

.portfolio-manager-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.portfolio-manager-tile {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 22px;
    box-shadow: 0 8px 20px rgba(36, 25, 21, .05);
    display: grid;
    gap: 12px;
    overflow: hidden;
    padding: 12px;
    position: relative;
}

.portfolio-manager-tile img,
.portfolio-manager-tile .photo-placeholder {
    aspect-ratio: 4 / 5;
    border-radius: 18px;
    object-fit: cover;
    width: 100%;
}

.portfolio-manager-tag {
    background: rgba(255, 255, 255, .88);
    border: 1px solid rgba(232, 222, 214, .92);
    border-radius: 999px;
    color: var(--ink);
    font-size: 11px;
    font-weight: 900;
    left: 22px;
    padding: 7px 10px;
    position: absolute;
    top: 22px;
}

.portfolio-manager-state {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.portfolio-manager-state span {
    background: var(--ivory-2);
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    padding: 7px 9px;
}

.portfolio-manager-edit {
    display: grid;
    gap: 10px;
}

.portfolio-manager-edit .field {
    min-height: 54px;
}

.portfolio-delete-button {
    color: #a8533d;
    width: 100%;
}

.portfolio-empty-state {
    background: var(--ivory-2);
    border: 1px dashed var(--line);
    border-radius: 24px;
    display: grid;
    gap: 8px;
    grid-column: 1 / -1;
    min-height: 220px;
    place-content: center;
    padding: 30px;
    text-align: center;
}

.portfolio-empty-state strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 28px;
}

.portfolio-empty-state p {
    margin: 0 auto;
    max-width: 520px;
}

.portfolio-inspector {
    position: sticky;
    top: 104px;
}

.portfolio-inspector h2 {
    font-size: clamp(30px, 3vw, 38px);
}

.portfolio-curation-note {
    background: var(--mint);
    border: 1px solid rgba(130, 147, 123, .28);
    border-radius: 24px;
    display: grid;
    gap: 12px;
    padding: 20px;
}

.portfolio-curation-note p {
    color: #4f5c49;
    font-weight: 750;
    line-height: 1.55;
}

.cms-text,
.cms-faq,
.cms-cta,
.cms-photographer-grid,
.cms-image-gallery,
.cms-pricing,
.cms-testimonial,
.page-hero {
    margin: 34px auto;
    max-width: 860px;
}

.cms-cta,
.page-hero {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 28px;
}

.cms-index-page {
    padding-bottom: 76px;
}

.cms-hero {
    align-items: center;
    display: grid;
    gap: clamp(28px, 5vw, 72px);
    grid-template-columns: minmax(0, 1.02fr) minmax(360px, .98fr);
    min-height: 0;
    padding-bottom: clamp(38px, 4vw, 54px);
    padding-top: clamp(38px, 4vw, 54px);
}

.cms-hero-copy {
    display: grid;
    gap: 24px;
    max-width: 710px;
}

.cms-hero-copy h1 {
    max-width: 690px;
}

.cms-hero-copy > p:not(.eyebrow) {
    font-size: 18px;
    line-height: 1.7;
    max-width: 650px;
}

.cms-search-panel {
    align-items: stretch;
    background: rgba(255, 255, 255, .92);
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) minmax(0, .9fr) auto;
    padding: 10px;
}

.cms-search-panel .field {
    background: #fff;
}

.cms-hero-visual {
    aspect-ratio: auto;
    border-radius: 42px;
    box-shadow: var(--shadow);
    height: clamp(390px, 35vw, 560px);
    margin: 0;
    min-height: 0;
    overflow: hidden;
    position: relative;
}

.cms-hero-visual::after {
    background: linear-gradient(180deg, rgba(36, 25, 21, 0) 48%, rgba(36, 25, 21, .34));
    content: "";
    inset: 0;
    position: absolute;
}

.cms-hero-visual img,
.cms-feature-media img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.cms-topic-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding-bottom: 34px;
}

.cms-topic-row a,
.cms-guide-tag {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    font-size: 13px;
    font-weight: 900;
    padding: 9px 13px;
}

.cms-topic-row a:hover,
.cms-topic-row a.is-active {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.cms-decision-strip {
    display: grid;
    gap: 24px;
    padding-bottom: 66px;
}

.cms-decision-heading {
    align-items: end;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, .86fr) minmax(320px, .58fr);
}

.cms-decision-heading .eyebrow,
.cms-decision-heading h2 {
    grid-column: 1;
}

.cms-decision-heading .eyebrow {
    align-self: end;
}

.cms-decision-heading h2 {
    font-size: clamp(34px, 4.2vw, 58px);
    max-width: 780px;
}

.cms-decision-heading p:not(.eyebrow) {
    align-self: end;
    color: #625852;
    font-size: 17px;
    grid-column: 2;
    grid-row: 1 / span 2;
    line-height: 1.65;
    margin: 0;
    max-width: 620px;
}

.cms-decision-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cms-decision-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 15px;
    min-height: 280px;
    padding: clamp(22px, 2.6vw, 30px);
}

.cms-decision-card span {
    color: #d8b0a1;
    font-family: var(--font-serif);
    font-size: clamp(42px, 5.5vw, 70px);
    font-weight: 760;
    line-height: .86;
}

.cms-decision-card h3 {
    font-size: clamp(24px, 2.2vw, 32px);
}

.cms-decision-card p {
    color: #625852;
    line-height: 1.62;
    margin: 0;
}

.cms-decision-card a {
    align-self: end;
    color: var(--clay);
    font-weight: 950;
    justify-self: start;
}

.cms-decision-card-accent {
    background: var(--ink);
    border-color: var(--ink);
}

.cms-decision-card-accent h3,
.cms-decision-card-accent a {
    color: #fff;
}

.cms-decision-card-accent p {
    color: rgba(255, 255, 255, .76);
}

.cms-feature-layout {
    align-items: stretch;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1.45fr) minmax(320px, .55fr);
    padding-bottom: 66px;
}

.cms-feature-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 32px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 0;
    grid-template-columns: minmax(270px, .82fr) minmax(0, 1fr);
    overflow: hidden;
}

.cms-feature-card-empty {
    grid-template-columns: 1fr;
}

.cms-feature-media {
    min-height: 360px;
}

.cms-feature-body,
.cms-side-cta,
.cms-guide-card {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.cms-feature-body {
    justify-content: center;
    padding: clamp(26px, 4vw, 46px);
}

.cms-feature-body h2,
.cms-side-cta h2 {
    font-size: clamp(30px, 3.2vw, 48px);
}

.cms-feature-body p:not(.eyebrow),
.cms-side-cta p:not(.eyebrow),
.cms-guide-card p {
    color: #625852;
}

.cms-side-cta {
    background: var(--ink);
    border-radius: 32px;
    box-shadow: var(--shadow-sm);
    justify-content: space-between;
    padding: clamp(24px, 3vw, 34px);
}

.cms-side-cta h2,
.cms-side-cta p {
    color: #fff;
}

.cms-side-cta .eyebrow {
    color: #e8c5b5;
}

.cms-side-cta p:not(.eyebrow) {
    color: rgba(255, 255, 255, .72);
}

.cms-side-cta .button-secondary {
    background: #fff;
    width: fit-content;
}

.cms-guide-section {
    display: grid;
    gap: 24px;
}

.cms-guide-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cms-guide-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 28px;
    min-height: 290px;
    padding: 26px;
}

.cms-guide-card h3 {
    font-family: var(--font-serif);
    font-size: clamp(25px, 2.4vw, 34px);
}

.cms-guide-card a,
.cms-guide-section .section-heading a {
    color: var(--clay);
    font-weight: 900;
}

.cms-guide-card-muted {
    background: rgba(255, 255, 255, .58);
}

.cms-guide-card-muted .cms-guide-tag {
    color: var(--muted);
}

.cms-page {
    padding-bottom: 24px;
    padding-top: 42px;
}

.cms-page .page-hero {
    background: var(--ink);
    color: #fff;
    max-width: 1000px;
    padding: clamp(34px, 6vw, 66px);
}

.cms-page .page-hero.has-media {
    align-items: center;
    display: grid;
    gap: clamp(22px, 4vw, 48px);
    grid-template-columns: minmax(0, 1fr) minmax(220px, .48fr);
}

.cms-page .page-hero-copy {
    min-width: 0;
}

.cms-page .page-hero-media {
    align-self: stretch;
    border-radius: 8px;
    margin: 0;
    min-height: 260px;
    overflow: hidden;
}

.cms-page .page-hero-media img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.cms-page .page-hero h1,
.cms-page .page-hero p {
    color: #fff;
}

.cms-page .page-hero .eyebrow {
    color: #e8c5b5;
}

.cms-page .cms-text h2 {
    font-size: clamp(28px, 3vw, 42px);
}

.cms-page .cms-text p {
    color: #554c46;
    font-size: 18px;
}

.cms-page .cms-faq {
    display: grid;
    gap: 12px;
}

.cms-page .cms-faq details {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 22px;
    padding: 18px 20px;
}

.cms-page .cms-faq summary {
    color: var(--ink);
    cursor: pointer;
    font-weight: 900;
}

.cms-block-heading {
    display: grid;
    gap: 10px;
    margin-bottom: 20px;
}

.cms-block-heading h2,
.cms-photographer-grid h2 {
    font-size: clamp(30px, 3vw, 46px);
}

.cms-block-heading p:not(.eyebrow),
.cms-photographer-grid p:not(.eyebrow) {
    color: #625852;
    font-size: 17px;
    line-height: 1.7;
}

.cms-rich-text {
    display: grid;
    gap: 10px;
}

.cms-rich-text > * {
    margin: 0;
}

.cms-rich-text p,
.cms-rich-text li {
    line-height: 1.7;
}

.cms-rich-text ul,
.cms-rich-text ol {
    padding-left: 1.25rem;
}

.cms-rich-text blockquote {
    border-left: 3px solid var(--clay);
    color: inherit;
    padding-left: 14px;
}

.cms-rich-text a {
    color: var(--clay);
    font-weight: 900;
}

.page-hero .cms-rich-text,
.cms-photographer-grid .cms-rich-text {
    color: inherit;
}

.page-hero .cms-rich-text a,
.cms-photographer-grid .cms-rich-text a {
    color: #e8c5b5;
}

.cms-photographer-grid {
    align-items: center;
    background: var(--ink);
    border-radius: 32px;
    box-shadow: var(--shadow-sm);
    color: #fff;
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(0, 1fr) auto;
    max-width: 1120px;
    overflow: hidden;
    padding: clamp(28px, 4vw, 48px);
    position: relative;
}

.cms-photographer-grid::after {
    background: rgba(255, 255, 255, .08);
    border-radius: 999px;
    content: "";
    height: 260px;
    position: absolute;
    right: -72px;
    top: -70px;
    width: 260px;
}

.cms-photographer-grid > * {
    position: relative;
    z-index: 1;
}

.cms-photographer-grid h2,
.cms-photographer-grid p {
    color: #fff;
}

.cms-photographer-grid .eyebrow {
    color: #e8c5b5;
}

.cms-photographer-grid p:not(.eyebrow) {
    color: rgba(255, 255, 255, .76);
    max-width: 680px;
}

.cms-photographer-grid .button-secondary {
    background: #fff;
}

.cms-image-gallery,
.cms-pricing,
.cms-testimonial {
    max-width: 1120px;
}

.cms-image-gallery-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cms-image-gallery-grid figure {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    margin: 0;
    overflow: hidden;
}

.cms-image-gallery-grid img {
    aspect-ratio: 4 / 5;
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.cms-image-gallery-grid figcaption {
    color: #625852;
    font-size: 13px;
    font-weight: 850;
    padding: 13px 15px 15px;
}

.cms-pricing-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cms-pricing-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 14px;
    padding: 24px;
}

.cms-pricing-card h3 {
    color: var(--ink);
    font-size: 18px;
}

.cms-pricing-card strong {
    color: var(--ink);
    display: block;
    font-family: var(--font-serif);
    font-size: clamp(30px, 3vw, 42px);
    line-height: 1;
}

.cms-pricing-card p {
    color: #625852;
    line-height: 1.6;
}

.cms-pricing-card .button-secondary {
    justify-self: start;
}

.cms-testimonial {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 32px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 18px;
    padding: clamp(28px, 4vw, 44px);
}

.cms-testimonial blockquote {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(29px, 3.4vw, 48px);
    font-weight: 760;
    line-height: 1.08;
    margin: 0;
}

.cms-testimonial div {
    display: grid;
    gap: 4px;
}

.cms-testimonial strong {
    color: var(--ink);
    font-weight: 900;
}

.cms-testimonial span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 850;
}

.cms-article-page {
    display: grid;
    gap: 28px;
    padding-bottom: 52px;
    padding-top: 34px;
}

.cms-article-hero {
    align-items: stretch;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 34px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: clamp(24px, 4vw, 48px);
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
    min-height: 470px;
    overflow: hidden;
}

.cms-article-hero-copy {
    align-content: center;
    display: grid;
    gap: 18px;
    padding: clamp(30px, 5vw, 66px);
}

.cms-article-hero-copy h1 {
    font-size: clamp(42px, 5.6vw, 76px);
    max-width: 820px;
}

.cms-article-hero-copy p:not(.eyebrow) {
    color: #5d534e;
    font-size: 18px;
    line-height: 1.65;
    max-width: 680px;
}

.cms-back-link {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: #9d533e;
    display: inline-flex;
    font-size: 13px;
    font-weight: 950;
    justify-content: center;
    justify-self: start;
    min-height: 40px;
    padding: 9px 14px;
}

.cms-article-visual {
    height: min(640px, calc(100vh - 170px));
    margin: 0;
    min-height: 470px;
    overflow: hidden;
}

.cms-article-visual img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.cms-guide-takeaways {
    display: grid;
    gap: 20px;
}

.cms-guide-takeaways-intro {
    align-items: end;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, .72fr) minmax(320px, .58fr);
}

.cms-guide-takeaways-intro h2 {
    font-size: clamp(30px, 3.4vw, 48px);
}

.cms-guide-takeaway-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cms-guide-takeaway-grid article {
    background: rgba(255, 255, 255, .68);
    border: 1px solid rgba(232, 222, 214, .9);
    border-radius: 24px;
    display: grid;
    gap: 9px;
    min-height: 174px;
    padding: 22px;
}

.cms-guide-takeaway-grid span {
    color: #a85f49;
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
}

.cms-guide-takeaway-grid strong {
    color: var(--ink);
    font-size: 18px;
    font-weight: 950;
}

.cms-guide-takeaway-grid p {
    color: #625852;
    line-height: 1.56;
    margin: 0;
}

.cms-article-nav {
    margin-bottom: 4px;
}

.cms-article-layout {
    align-items: start;
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 390px);
}

.cms-article-body {
    display: grid;
    gap: 24px;
    min-width: 0;
}

.cms-article-body .page-hero {
    display: none;
}

.cms-article-body .cms-text,
.cms-article-body .cms-faq,
.cms-article-body .cms-image-gallery,
.cms-article-body .cms-pricing,
.cms-article-body .cms-testimonial,
.cms-article-body .cms-photographer-grid {
    justify-self: stretch;
    margin: 0;
    max-width: 940px;
    width: 100%;
}

.cms-article-body .cms-text {
    background: rgba(255, 255, 255, .58);
    border: 1px solid rgba(232, 222, 214, .72);
    border-radius: 28px;
    padding: clamp(24px, 3vw, 38px);
}

.cms-article-aside {
    background: var(--ink);
    border-radius: 30px;
    box-shadow: var(--shadow-sm);
    color: #fff;
    display: grid;
    gap: 22px;
    padding: clamp(24px, 3vw, 32px);
    position: sticky;
    top: 172px;
}

.cms-article-aside h2 {
    color: #fff;
    font-size: clamp(28px, 2.8vw, 38px);
}

.cms-article-aside p {
    color: rgba(255, 255, 255, .76);
}

.cms-article-aside .eyebrow {
    color: #e8c5b5;
}

.cms-guide-search-card {
    display: grid;
    gap: 14px;
}

.cms-guide-search-card .field {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .18);
    margin: 0;
}

.cms-guide-search-card .field span {
    color: rgba(255, 255, 255, .68);
}

.cms-guide-search-card .field input {
    color: #fff;
}

.cms-guide-search-card .field input::placeholder {
    color: rgba(255, 255, 255, .55);
}

.cms-guide-search-card .city-geo-button {
    background: rgba(255, 255, 255, .18);
    color: #fff;
}

.cms-guide-search-card .button-accent {
    min-height: 54px;
    width: 100%;
}

.cms-related-guides {
    display: grid;
    gap: 20px;
}

.cms-related-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cms-related-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    display: grid;
    overflow: hidden;
}

.cms-related-card-empty {
    min-height: 260px;
}

.cms-related-card-media {
    aspect-ratio: 16 / 10;
    display: block;
    overflow: hidden;
}

.cms-related-card-media img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.cms-related-card > div {
    display: grid;
    gap: 13px;
    padding: 22px;
}

.cms-related-card h3 {
    font-family: var(--font-serif);
    font-size: clamp(24px, 2.2vw, 31px);
}

.cms-related-card p {
    color: #625852;
    line-height: 1.6;
}

.cms-related-card a:not(.cms-related-card-media) {
    color: var(--clay);
    font-weight: 950;
}

.cms-page-cta {
    margin-top: 28px;
}

.preview-banner {
    padding-top: 34px;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

@media (max-width: 980px) {
    .grid-3,
    .filter-bar,
    .hero-search,
    .search-box,
    .request-question-grid,
    .request-slot-grid,
    .visual-radio-list,
    .profile-gallery,
    .profile-layout,
    .profile-trust-grid,
    .lead-detail-grid,
    .dashboard,
    .training-layout,
    .request-layout,
    .review-form-shell,
    .review-rating-grid,
    .cms-hero,
    .cms-search-panel,
    .cms-decision-heading,
    .cms-decision-grid,
    .cms-feature-layout,
    .cms-feature-card,
    .cms-guide-grid,
    .cms-article-hero,
    .cms-page .page-hero.has-media,
    .cms-guide-takeaways-intro,
    .cms-guide-takeaway-grid,
    .cms-article-layout,
    .cms-related-grid,
    .cms-photographer-grid,
    .cms-image-gallery-grid,
    .cms-pricing-grid,
    .form-grid {
        grid-template-columns: 1fr;
    }

    .cms-hero {
        min-height: auto;
    }

    .cms-decision-heading .eyebrow,
    .cms-decision-heading h2,
    .cms-decision-heading p:not(.eyebrow) {
        grid-column: auto;
        grid-row: auto;
    }

    .cms-hero-visual {
        aspect-ratio: 16 / 10;
        height: clamp(300px, 48vw, 430px);
        min-height: 320px;
    }

    .cms-feature-media {
        min-height: 260px;
    }

    .cms-article-visual {
        aspect-ratio: 16 / 10;
        height: auto;
        min-height: 300px;
    }

    .cms-article-aside {
        position: static;
    }

    .profile-cta,
    .request-selection {
        max-height: none;
        overflow: visible;
        position: static;
    }

    .profile-gallery-side {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .site-header {
        align-items: flex-start;
        gap: 12px;
    }

    .main-nav {
        display: none;
    }

    .brand {
        flex-wrap: wrap;
    }

    .home-hero {
        min-height: auto;
        padding: 42px 20px 32px;
    }

    .home-hero-content {
        gap: 16px;
    }

    .home-hero h1 {
        font-size: 38px;
    }

    .hero-search,
    .search-box,
    .cms-search-panel {
        padding: 8px;
    }

    .section-heading,
    .directory-header,
    .card-row,
    .selection-tray {
        align-items: stretch;
        flex-direction: column;
    }

    .selection-tray {
        bottom: 10px;
        position: static;
    }

    .card-actions {
        grid-template-columns: 1fr;
    }

    .portfolio-grid,
    .profile-gallery-side {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .choice-list label {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .request-selection .choice-list {
        max-height: 420px;
        overflow: auto;
    }

    .choice-list small {
        grid-column: 2;
    }

    .cms-index-page {
        padding-bottom: 48px;
    }

    .cms-hero {
        padding-top: 34px;
    }

    .cms-hero-copy {
        gap: 18px;
    }

    .cms-hero-copy h1 {
        font-size: 38px;
    }

    .cms-hero-visual {
        border-radius: 28px;
        height: auto;
        max-width: 100%;
        min-height: 0;
        width: 100%;
    }

    .cms-topic-row {
        padding-bottom: 24px;
    }

    .cms-decision-strip {
        gap: 18px;
        padding-bottom: 44px;
    }

    .cms-decision-heading {
        gap: 12px;
    }

    .cms-decision-card {
        border-radius: 24px;
        min-height: auto;
    }

    .cms-feature-layout {
        padding-bottom: 44px;
    }

    .cms-feature-card,
    .cms-side-cta,
    .cms-guide-card,
    .cms-article-hero,
    .cms-article-aside,
    .cms-related-card {
        border-radius: 24px;
    }

    .cms-article-page {
        gap: 22px;
        padding-top: 22px;
    }

    .cms-article-hero {
        min-height: auto;
    }

    .cms-article-hero-copy {
        padding: 28px;
    }

    .cms-article-hero-copy h1 {
        font-size: 38px;
    }

    .cms-article-hero-copy p:not(.eyebrow) {
        font-size: 16px;
    }

    .cms-page .page-hero-media {
        min-height: 220px;
    }

    .cms-article-visual {
        height: auto;
        max-width: 100%;
        min-height: 0;
        width: 100%;
    }

    .cms-guide-takeaways-intro {
        gap: 10px;
    }

    .cms-guide-takeaway-grid article {
        border-radius: 22px;
        min-height: auto;
    }

    .cms-related-guides .section-heading .button-secondary {
        width: 100%;
    }

    .cms-side-cta .button-secondary {
        width: 100%;
    }

    .cms-photographer-grid {
        border-radius: 28px;
    }

    .cms-photographer-grid .button-secondary,
    .cms-pricing-card .button-secondary {
        width: 100%;
    }

    .cms-image-gallery-grid figure,
    .cms-pricing-card,
    .cms-testimonial {
        border-radius: 24px;
    }

    .cms-page .cms-text p {
        font-size: 16px;
    }

    .cms-page-cta {
        align-items: stretch;
        border-radius: 28px;
        flex-direction: column;
        padding: 28px;
    }

    .siren-lookup-row {
        grid-template-columns: 1fr;
    }

    .siren-lookup-row .button-secondary {
        width: 100%;
    }
}

/* Public V1 visual system aligned with MAQUETTES/preview.html */
.site-header {
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    align-items: center;
    background: rgba(255, 252, 247, .93);
    border-bottom: 1px solid rgba(232, 222, 214, .72);
    box-shadow: 0 18px 54px rgba(36, 25, 21, .08);
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(280px, 1fr) auto minmax(330px, 1fr);
    min-height: 140px;
    padding: 26px var(--page-gutter);
    width: var(--content-width);
}

.brand {
    flex: 0 0 auto;
    gap: 22px;
    justify-self: start;
    letter-spacing: 0;
    text-decoration: none;
}

.brand-logo {
    border: 4px solid rgba(255, 255, 255, .96);
    border-radius: 28px;
    box-shadow: 0 18px 36px rgba(36, 25, 21, .18);
    flex-basis: 82px;
    height: 82px;
    overflow: hidden;
    width: 82px;
}

.brand-pro .brand-logo {
    box-shadow: 0 14px 34px rgba(201, 111, 83, .2);
}

.brand-title {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 31px;
    font-weight: 750;
    line-height: 1;
}

.brand small {
    background: var(--champagne);
    border-radius: 999px;
    color: #a8533d;
    font-size: 13px;
    font-weight: 900;
    justify-self: start;
    letter-spacing: .09em;
    padding: 8px 13px;
    text-transform: uppercase;
}

.main-nav {
    align-items: center;
    background: rgba(255, 255, 255, .72);
    border: 1px solid rgba(232, 222, 214, .8);
    border-radius: 999px;
    box-shadow: 0 16px 42px rgba(36, 25, 21, .08), inset 0 1px 0 rgba(255, 255, 255, .78);
    gap: 4px;
    justify-self: center;
    padding: 8px;
}

.main-nav a {
    border-radius: 999px;
    color: var(--muted);
    font-size: 16px;
    font-weight: 850;
    min-height: 52px;
    padding: 16px 24px;
    transition: background .18s ease, box-shadow .18s ease, color .18s ease;
    white-space: nowrap;
}

.main-nav a:hover {
    background: var(--surface);
    box-shadow: 0 8px 20px rgba(36, 25, 21, .08);
    color: var(--ink);
}

.main-nav a.is-active {
    background: var(--ink);
    box-shadow: 0 15px 28px rgba(36, 25, 21, .22);
    color: var(--surface);
}

.nav-actions {
    align-items: center;
    display: flex;
    gap: 20px;
    justify-self: end;
}

.mobile-nav-toggle,
.mobile-nav-panel {
    display: none;
}

.mobile-nav-toggle {
    align-items: center;
    background: rgba(255, 255, 255, .9);
    border: 1px solid rgba(232, 222, 214, .82);
    border-radius: 999px;
    box-shadow: 0 14px 34px rgba(36, 25, 21, .09);
    cursor: pointer;
    flex: 0 0 auto;
    height: 58px;
    justify-content: center;
    min-height: 58px;
    padding: 0;
    position: relative;
    width: 58px;
}

.mobile-nav-toggle span {
    background: var(--ink);
    border-radius: 999px;
    display: block;
    height: 2px;
    left: 18px;
    position: absolute;
    transition: transform .18s ease, top .18s ease;
    width: 22px;
}

.mobile-nav-toggle span:first-child {
    top: 22px;
}

.mobile-nav-toggle span:last-child {
    top: 34px;
}

.mobile-nav-is-open .mobile-nav-toggle span:first-child {
    top: 28px;
    transform: rotate(42deg);
}

.mobile-nav-is-open .mobile-nav-toggle span:last-child {
    top: 28px;
    transform: rotate(-42deg);
}

.mobile-nav-panel {
    background: rgba(255, 255, 255, .88);
    border: 1px solid rgba(232, 222, 214, .82);
    border-radius: 28px;
    box-shadow: 0 22px 64px rgba(36, 25, 21, .10);
    gap: 12px;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) auto;
    max-width: 100%;
    padding: 10px;
    width: 100%;
}

.mobile-nav-links {
    display: grid;
    gap: 6px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.mobile-nav-links a,
.mobile-nav-primary {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: 14px;
    font-weight: 900;
    justify-content: center;
    min-height: 48px;
    padding: 12px 15px;
    text-align: center;
}

.mobile-nav-links a {
    color: var(--muted);
}

.mobile-nav-links a:hover,
.mobile-nav-links a.is-active {
    background: var(--surface);
    color: var(--ink);
}

.mobile-nav-primary {
    background: var(--ink);
    color: #fff;
    min-width: 210px;
}

.button,
button {
    border-radius: 999px;
    box-shadow: 0 12px 30px rgba(36, 25, 21, .16);
    min-height: 48px;
    padding: 13px 22px;
    white-space: nowrap;
}

.button-secondary {
    box-shadow: none;
}

.button-accent {
    background: var(--clay);
    box-shadow: 0 16px 36px rgba(201, 111, 83, .22);
}

.button-accent:hover {
    background: #a8533d;
}

.nav-cta {
    background: var(--ink);
    gap: 16px;
    min-height: 66px;
    padding: 15px 30px 15px 22px;
}

.nav-cta-icon {
    background: rgba(255, 255, 255, .10);
    border-radius: 18px;
    display: inline-block;
    flex: 0 0 auto;
    height: 38px;
    position: relative;
    width: 38px;
}

.nav-cta-icon::before {
    border: 2px solid rgba(255, 255, 255, .86);
    border-radius: 8px;
    content: "";
    height: 18px;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 22px;
}

.nav-cta-icon::after {
    border: 2px solid rgba(255, 255, 255, .86);
    border-radius: 999px;
    box-shadow: 0 -8px 0 -5px var(--clay);
    content: "";
    height: 8px;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
}

h1,
h2 {
    font-family: var(--font-serif);
    letter-spacing: 0;
}

h1 {
    font-family: var(--font-display);
    font-size: clamp(46px, 6vw, 72px);
    line-height: .99;
}

h2 {
    font-size: clamp(34px, 4vw, 48px);
    line-height: 1.04;
}

h3 {
    color: var(--ink);
    font-size: 22px;
    letter-spacing: -.02em;
}

.lead {
    color: #5f554e;
    font-size: 19px;
}

.eyebrow {
    color: #a8533d;
    letter-spacing: .16em;
}

.container {
    max-width: 100%;
}

.panel,
.photographer-card,
.dashboard-card,
.choice-list,
.profile-identity,
.cms-cta,
.page-hero {
    border-color: var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
}

.home-screen {
    padding-bottom: clamp(30px, 4vw, 56px);
    padding-top: clamp(24px, 3vw, 40px);
}

.home-intro {
    align-items: center;
    display: grid;
    gap: 26px clamp(34px, 4vw, 72px);
    grid-template-columns: minmax(0, .94fr) minmax(500px, 1.06fr);
    min-height: clamp(560px, calc(100svh - 142px), 690px);
    position: relative;
}

.home-copy {
    display: grid;
    gap: 20px;
    grid-column: 1;
    grid-row: 1;
    max-width: 740px;
}

.home-copy h1 {
    font-size: clamp(50px, 5.3vw, 82px);
    line-height: .95;
    max-width: 760px;
}

.home-copy .lead {
    color: var(--muted);
    font-size: 19px;
    max-width: 630px;
}

.hero-search,
.search-box {
    background: rgba(255, 255, 255, .94);
    border: 1px solid var(--line);
    border-radius: 30px;
    grid-template-columns: minmax(260px, 1fr) minmax(180px, .62fr) 200px;
    margin-top: 4px;
    max-width: 820px;
    padding: 12px;
    box-shadow: 0 26px 80px rgba(36, 25, 21, .11);
}

.home-intro > .hero-search {
    grid-column: 1;
    grid-row: 2;
}

.field {
    background: #fff;
    border-color: rgba(232, 222, 214, .92);
    border-radius: 18px;
    gap: 2px;
    padding: 12px 16px;
}

.field label,
.filter-group label {
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.field input,
.field textarea,
.field select {
    color: var(--ink);
    font-size: 15px;
    font-weight: 800;
}

.field .file-upload-button {
    color: #fff;
    font-size: 12px;
    letter-spacing: 0;
    text-transform: none;
}

.city-autocomplete {
    position: relative;
}

.city-input-row {
    align-items: center;
    display: grid;
    gap: 8px;
    grid-template-columns: minmax(0, 1fr) 38px;
}

.city-input-row input {
    min-width: 0;
}

.city-autocomplete:has(input[aria-invalid="true"]) {
    border-color: rgba(158, 72, 55, .58);
    box-shadow: 0 0 0 3px rgba(158, 72, 55, .12);
}

.city-autocomplete input[aria-invalid="true"],
.city-autocomplete:has(input[aria-invalid="true"]) .city-autocomplete-status {
    color: #8f3f31;
}

.icon-button.city-geo-button {
    align-items: center;
    aspect-ratio: 1;
    background: var(--mint);
    border: 1px solid rgba(47, 111, 106, .16);
    border-radius: 999px;
    color: var(--teal);
    cursor: pointer;
    display: inline-flex;
    font-size: 18px;
    font-weight: 900;
    justify-content: center;
    line-height: 1;
    margin-top: 0;
    min-height: 38px;
    padding: 0;
    width: 38px;
    box-shadow: none;
}

.icon-button.city-geo-button:disabled {
    cursor: wait;
    opacity: .55;
}

.city-suggestions {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 18px 40px rgba(21, 23, 25, .14);
    display: grid;
    left: 0;
    max-height: 260px;
    overflow: auto;
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    z-index: 30;
}

.city-suggestion {
    background: var(--surface);
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    box-shadow: none;
    color: var(--ink);
    cursor: pointer;
    display: grid;
    gap: 3px;
    justify-content: stretch;
    margin-top: 0;
    min-height: auto;
    padding: 11px 13px;
    text-align: left;
    white-space: normal;
    width: 100%;
}

.city-suggestion:last-child {
    border-bottom: 0;
}

.city-suggestion:hover,
.city-suggestion:focus-visible {
    background: #fbfaf7;
    outline: 0;
}

.city-suggestion span,
.city-autocomplete-status {
    color: var(--muted);
    font-size: 12px;
    font-weight: 750;
}

.city-suggestion strong {
    color: var(--ink);
}

.hero-search .button-accent {
    border-radius: 22px;
    min-height: 72px;
    padding: 0 30px;
}

.hero-proof {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    grid-column: 1;
    grid-row: 3;
    margin-top: -2px;
}

.hero-proof span {
    align-items: center;
    background: rgba(255, 255, 255, .74);
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--text);
    display: inline-flex;
    font-size: 12px;
    font-weight: 850;
    gap: 8px;
    padding: 10px 14px;
}

.hero-proof span::before {
    background: var(--teal);
    border-radius: 50%;
    content: "";
    height: 7px;
    width: 7px;
}

.hero-collage {
    grid-column: 2;
    grid-row: 1 / span 4;
    height: clamp(530px, 43vw, 640px);
    isolation: isolate;
    justify-self: end;
    max-width: 720px;
    position: relative;
    width: 100%;
}

.hero-collage::before {
    background: rgba(239, 227, 214, .62);
    border: 1px solid rgba(232, 222, 214, .72);
    border-radius: 42px;
    content: "";
    inset: 58px 72px 34px 98px;
    position: absolute;
    transform: rotate(-2deg);
    z-index: 0;
}

.hero-photo {
    background: #e5d5c6;
    border-radius: 30px;
    box-shadow: 0 28px 80px rgba(36, 25, 21, .16);
    object-fit: cover;
    position: absolute;
    z-index: 1;
}

.hero-photo-main {
    height: calc(100% - 74px);
    right: 92px;
    top: 18px;
    width: min(440px, 66%);
}

.hero-photo-studio {
    border: 8px solid var(--paper);
    height: 260px;
    right: 0;
    top: 148px;
    width: min(260px, 39%);
    z-index: 3;
}

.hero-photo-detail {
    border: 8px solid var(--paper);
    bottom: 74px;
    height: 190px;
    left: 34px;
    right: auto;
    top: auto;
    width: min(270px, 40%);
    z-index: 3;
}

.floating-note {
    background: rgba(255, 255, 255, .86);
    border: 1px solid rgba(232, 222, 214, .8);
    border-radius: 20px;
    box-shadow: var(--shadow-sm);
    color: var(--ink);
    font-size: 13px;
    font-weight: 900;
    padding: 14px 16px;
    position: absolute;
    z-index: 4;
}

.note-rating {
    left: 76px;
    right: auto;
    top: 82px;
}

.note-badges {
    bottom: 54px;
    right: 8px;
}

.hero-profile-card {
    align-items: center;
    background: rgba(255, 255, 255, .93);
    border: 1px solid rgba(232, 222, 214, .82);
    border-radius: 24px;
    box-shadow: 0 22px 54px rgba(36, 25, 21, .15);
    display: flex;
    gap: 12px;
    left: 74px;
    max-width: min(330px, calc(100% - 110px));
    padding: 12px 14px;
    position: absolute;
    bottom: 16px;
    z-index: 5;
}

.hero-profile-avatar {
    border-radius: 50%;
    box-shadow: 0 0 0 5px rgba(250, 247, 242, .92);
    flex: 0 0 50px;
    height: 50px;
    overflow: hidden;
    width: 50px;
}

.hero-profile-avatar img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.hero-profile-card strong,
.hero-profile-card small {
    display: block;
}

.hero-profile-card strong {
    color: var(--ink);
    font-size: 15px;
    font-weight: 950;
}

.hero-profile-card small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 850;
    margin-top: 2px;
}

.home-featured-empty {
    align-content: center;
    background:
        linear-gradient(135deg, rgba(255, 253, 250, .98), rgba(240, 227, 212, .92)),
        #fffdfa;
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 14px;
    grid-column: 1 / -1;
    min-height: 300px;
    padding: clamp(26px, 4vw, 42px);
}

.home-featured-empty h3 {
    font-size: clamp(30px, 3.4vw, 48px);
    max-width: 760px;
}

.home-featured-empty p:not(.eyebrow) {
    color: var(--muted);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.58;
    max-width: 620px;
}

.home-featured-empty .button {
    justify-self: start;
    margin-top: 4px;
}

.featured-section,
.directory-page,
.profile-portfolio,
.profile-trust,
.request-page,
.page-section,
.form-flow,
.training-layout,
.dashboard {
    padding-bottom: 72px;
    padding-top: 56px;
}

.section-heading,
.directory-header,
.card-row {
    align-items: end;
    display: flex;
    gap: 20px;
    justify-content: space-between;
}

.photographer-card {
    border-radius: 28px;
    overflow: hidden;
}

.photographer-card.is-selected {
    border-color: rgba(201, 111, 83, .64);
    box-shadow: 0 0 0 3px rgba(201, 111, 83, .14), var(--shadow-sm);
}

.card-media {
    aspect-ratio: 1.32 / 1;
}

.photo-placeholder {
    background: linear-gradient(135deg, #ead1c0, #f8eadc 52%, #9f8173);
}

.photo-badge {
    background: rgba(255, 255, 255, .88);
    border: 0;
    color: #4d423b;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    top: auto;
    bottom: 14px;
}

.card-carousel-dots {
    bottom: 15px;
}

.photographer-card .body,
.dashboard-card,
.panel {
    padding: 24px;
}

.card-title-row h3 {
    font-size: 22px;
    line-height: 1.08;
}

.rating-pill {
    background: #fffaf6;
    border: 1px solid var(--line);
    color: var(--ink);
}

.badge {
    background: var(--mint);
    border: 0;
    color: #54634f;
    font-size: 11px;
}

.badge-outline {
    background: #fff;
    border: 1px solid var(--line);
    color: var(--muted);
}

.badge-selected {
    background: var(--ink);
    color: #fff;
}

.card-actions {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.card-actions .button {
    min-height: 40px;
    padding: 10px 15px;
    width: auto;
}

.card-actions button:disabled {
    cursor: not-allowed;
    opacity: .48;
    transform: none;
}

.steps-section {
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.step-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    min-height: 220px;
    padding: 26px;
}

.step-card span {
    color: rgba(201, 111, 83, .36);
    display: block;
    font-family: var(--font-serif);
    font-size: 56px;
    line-height: 1;
    margin-bottom: 10px;
}

.step-card h3 {
    font-size: 26px;
    margin-bottom: 10px;
}

.step-card p {
    font-size: 15px;
}

.home-guides-section {
    padding-top: 0;
}

.home-guides-layout {
    align-items: stretch;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1.12fr) minmax(340px, .88fr);
}

.home-guide-feature,
.home-guide-card {
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-sm);
}

.home-guide-feature {
    border-radius: 30px;
    display: grid;
    grid-template-columns: minmax(260px, .92fr) minmax(0, 1fr);
    min-height: 360px;
    overflow: hidden;
}

.home-guide-feature-empty {
    grid-template-columns: 1fr;
}

.home-guide-media,
.home-guide-thumb {
    background: #eadbd0;
    display: block;
    overflow: hidden;
}

.home-guide-media img,
.home-guide-thumb img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.home-guide-body {
    align-content: center;
    display: grid;
    gap: 18px;
    padding: clamp(28px, 4vw, 42px);
}

.home-guide-body h3 {
    font-family: var(--font-serif);
    font-size: clamp(30px, 2.7vw, 40px);
    line-height: 1.08;
}

.home-guide-body .button {
    justify-self: start;
}

.home-guide-list {
    display: grid;
    gap: 18px;
}

.home-guide-card {
    border-radius: 26px;
    display: grid;
    gap: 18px;
    grid-template-columns: 150px minmax(0, 1fr);
    min-height: 170px;
    overflow: hidden;
    padding: 12px;
}

.home-guide-card > div {
    align-content: center;
    display: grid;
    gap: 8px;
    padding: 8px 8px 8px 0;
}

.home-guide-thumb {
    border-radius: 18px;
}

.home-guide-card span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.home-guide-card h3 {
    font-size: 22px;
    line-height: 1.12;
}

.home-guide-card p {
    font-size: 14px;
    line-height: 1.45;
}

.home-guide-card a:not(.home-guide-thumb) {
    color: var(--ink);
    font-size: 13px;
    font-weight: 950;
}

.home-guide-card-muted {
    background: rgba(255, 255, 255, .64);
    grid-template-columns: 1fr;
}

.home-guide-card-muted > div {
    padding: 16px;
}

.footer-cta {
    align-items: center;
    background: var(--ink);
    border-radius: 42px;
    color: #fff;
    display: flex;
    gap: 40px;
    justify-content: space-between;
    margin-bottom: 72px;
    overflow: hidden;
    padding: 56px;
    position: relative;
}

.footer-cta::after {
    background: rgba(255, 255, 255, .08);
    border-radius: 50%;
    content: "";
    height: 440px;
    position: absolute;
    right: -80px;
    top: -180px;
    width: 440px;
}

.footer-cta > * {
    position: relative;
    z-index: 1;
}

.footer-cta h2 {
    color: #fff;
}

.footer-cta p {
    color: rgba(255, 255, 255, .72);
    margin-top: 12px;
    max-width: 600px;
}

.professional-cta .eyebrow {
    color: #e8c5b5;
    margin-bottom: 10px;
}

.professional-cta h2 {
    max-width: 780px;
}

.footer-cta .button-secondary {
    background: #fff;
}

.site-footer-pro {
    background: var(--ink);
    border-top: 1px solid rgba(255, 255, 255, .08);
    color: #fff;
    margin-top: clamp(64px, 7vw, 96px);
    overflow: hidden;
}

.pro-footer {
    align-items: start;
    display: grid;
    gap: clamp(24px, 3vw, 44px);
    grid-template-areas: "brand main resources public";
    grid-template-columns: minmax(260px, .95fr) minmax(180px, .58fr) minmax(190px, .62fr) minmax(280px, .82fr);
    padding-bottom: clamp(36px, 5vw, 62px);
    padding-top: clamp(42px, 5vw, 68px);
}

.pro-footer-authenticated {
    grid-template-areas: "brand main resources";
    grid-template-columns: minmax(280px, 1fr) minmax(200px, .62fr) minmax(220px, .72fr);
}

.pro-footer-brand {
    display: grid;
    gap: 18px;
    grid-area: brand;
    justify-items: start;
    min-width: 0;
    padding-left: clamp(16px, 2vw, 24px);
    position: relative;
}

.pro-footer-brand::before {
    background: linear-gradient(180deg, rgba(201, 168, 130, .74), rgba(201, 168, 130, .08));
    border-radius: 999px;
    bottom: 8px;
    content: "";
    left: 0;
    position: absolute;
    top: 8px;
    width: 1px;
}

.pro-footer-brand .brand {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: #fff;
    padding: 0;
    width: fit-content;
}

.pro-footer-brand .brand-logo-lockup {
    background-color: var(--mpb-beige-clair, #f5efe8);
    background-image: linear-gradient(145deg, rgba(255, 255, 255, .86), rgba(245, 239, 232, .94) 56%, rgba(232, 217, 200, .82));
    border: 1px solid rgba(232, 217, 200, .92);
    border-radius: 28px;
    box-shadow: 0 24px 58px rgba(0, 0, 0, .30), 0 0 0 1px rgba(255, 255, 255, .26), inset 0 1px 0 rgba(255, 255, 255, .96);
    box-sizing: border-box;
    flex: 0 1 clamp(236px, 19vw, 306px);
    min-height: 128px;
    padding: clamp(16px, 1.8vw, 22px) clamp(20px, 2.2vw, 28px);
    position: relative;
    width: min(100%, clamp(236px, 19vw, 306px));
}

.pro-footer-brand .brand-logo-lockup::after {
    border: 1px solid rgba(128, 97, 70, .16);
    border-radius: 22px;
    bottom: 8px;
    content: "";
    left: 8px;
    pointer-events: none;
    position: absolute;
    right: 8px;
    top: 8px;
}

.pro-footer-brand .brand-logo-lockup img {
    filter: drop-shadow(0 1px 0 rgba(255, 255, 255, .42));
    margin: 0 auto;
    max-width: 100%;
}

.pro-footer-brand p,
.pro-footer-public p,
.pro-footer-bottom {
    color: rgba(255, 255, 255, .68);
}

.pro-footer-brand p {
    font-size: clamp(15px, 1.05vw, 17px);
    font-weight: 720;
    letter-spacing: 0;
    line-height: 1.7;
    margin: 0;
    max-width: 360px;
}

.pro-footer-actions,
.pro-footer-public-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.pro-footer-actions .button,
.pro-footer-public .button {
    min-height: 44px;
}

.pro-footer-actions .button-accent {
    background: linear-gradient(180deg, #a88962 0%, #846341 100%);
    border: 1px solid rgba(255, 255, 255, .16);
    box-shadow: 0 16px 34px rgba(0, 0, 0, .18);
    color: #fff;
}

.pro-footer-actions .button-accent:hover {
    background: linear-gradient(180deg, #b3936d 0%, #8e6b47 100%);
}

.pro-footer-actions .button-secondary,
.pro-footer-public .button-secondary {
    background: rgba(255, 255, 255, .075);
    border-color: rgba(255, 255, 255, .18);
    color: #fff;
}

.pro-footer-actions .button-secondary:hover,
.pro-footer-public .button-secondary:hover {
    background: rgba(255, 255, 255, .12);
    border-color: rgba(255, 255, 255, .30);
}

.pro-footer-section,
.pro-footer-public {
    min-width: 0;
}

.pro-footer-section-main {
    grid-area: main;
}

.pro-footer-section-resources {
    grid-area: resources;
}

.pro-footer-section h2 {
    color: #f2d2c2;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .1em;
    margin: 0 0 16px;
    text-transform: uppercase;
}

.pro-footer-link-list {
    display: grid;
    gap: 8px;
}

.pro-footer-link-list a {
    border-bottom: 1px solid rgba(255, 255, 255, .10);
    color: rgba(255, 255, 255, .84);
    display: block;
    font-size: 14px;
    font-weight: 850;
    padding: 10px 0;
    transition: border-color .18s ease, color .18s ease, transform .18s ease;
}

.pro-footer-link-list a:hover {
    border-color: rgba(255, 255, 255, .26);
    color: #fff;
    transform: translateY(-1px);
}

.pro-footer-public {
    align-self: start;
    background: rgba(255, 255, 255, .075);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 24px;
    display: grid;
    gap: 12px;
    grid-area: public;
    overflow: hidden;
    padding: 20px;
}

.pro-footer-public span {
    color: #f2d2c2;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.pro-footer-public strong {
    color: #fff;
    font-family: var(--font-serif);
    font-size: 24px;
    line-height: 1.08;
    overflow-wrap: anywhere;
}

.pro-footer-public p {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.55;
    margin: 0;
}

.pro-footer-domain {
    align-items: center;
    background: rgba(245, 239, 232, .12);
    border: 1px solid rgba(245, 239, 232, .18);
    border-radius: 999px;
    color: #f5efe8;
    display: inline-flex;
    font-size: 13px;
    font-weight: 900;
    justify-self: start;
    letter-spacing: 0;
    line-height: 1;
    max-width: 100%;
    min-height: 44px;
    overflow: hidden;
    padding: 9px 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pro-footer-public .button {
    min-width: 0;
    text-align: center;
    white-space: normal;
}

.pro-footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, .10);
    display: flex;
    flex-wrap: wrap;
    font-size: 12px;
    font-weight: 800;
    gap: 12px;
    justify-content: space-between;
    padding-bottom: 20px;
    padding-top: 18px;
}

.public-site-footer {
    background: var(--ink);
    border-top: 1px solid rgba(255, 255, 255, .08);
    color: #fff;
    margin-top: clamp(64px, 7vw, 96px);
}

.public-footer-inner {
    display: grid;
    gap: clamp(24px, 3vw, 44px);
    grid-template-columns: minmax(220px, .9fr) minmax(300px, 1.35fr) minmax(260px, 1fr) minmax(0, 300px);
    grid-template-areas:
        "brand cities photographers explore"
        "brand cities photographers pro";
    padding-bottom: clamp(36px, 5vw, 62px);
    padding-top: clamp(42px, 5vw, 68px);
}

.public-footer-brand {
    align-content: start;
    display: grid;
    gap: 18px;
    grid-area: brand;
    justify-items: start;
    padding-left: clamp(16px, 2vw, 24px);
    position: relative;
}

.public-footer-brand::before {
    background: linear-gradient(180deg, rgba(201, 168, 130, .74), rgba(201, 168, 130, .08));
    border-radius: 999px;
    bottom: 8px;
    content: "";
    left: 0;
    position: absolute;
    top: 8px;
    width: 1px;
}

.public-footer-brand .brand {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: #fff;
    padding: 0;
    width: fit-content;
}

.public-footer-brand .brand-logo-lockup {
    background-color: var(--mpb-beige-clair, #f5efe8);
    background-image: linear-gradient(145deg, rgba(255, 255, 255, .86), rgba(245, 239, 232, .94) 56%, rgba(232, 217, 200, .82));
    border: 1px solid rgba(232, 217, 200, .92);
    border-radius: 28px;
    box-shadow: 0 24px 58px rgba(0, 0, 0, .30), 0 0 0 1px rgba(255, 255, 255, .26), inset 0 1px 0 rgba(255, 255, 255, .96);
    box-sizing: border-box;
    flex: 0 1 clamp(252px, 21vw, 324px);
    min-height: 134px;
    padding: clamp(16px, 1.8vw, 22px) clamp(20px, 2.2vw, 28px);
    position: relative;
    width: min(100%, clamp(252px, 21vw, 324px));
}

.public-footer-brand .brand-logo-lockup::after {
    border: 1px solid rgba(128, 97, 70, .16);
    border-radius: 22px;
    bottom: 8px;
    content: "";
    left: 8px;
    pointer-events: none;
    position: absolute;
    right: 8px;
    top: 8px;
}

.public-footer-brand .brand-logo-lockup img {
    filter: drop-shadow(0 1px 0 rgba(255, 255, 255, .42));
    margin: 0 auto;
    max-width: 100%;
}

.public-footer-brand .brand small {
    background: rgba(255, 255, 255, .12);
    color: #f2d2c2;
}

.public-footer-brand p,
.public-footer-pro p,
.public-footer-profile-list em,
.public-footer-city-grid span,
.public-footer-bottom {
    color: rgba(255, 255, 255, .64);
}

.public-footer-brand p {
    color: rgba(255, 255, 255, .78);
    font-size: clamp(15px, 1.05vw, 17px);
    font-weight: 720;
    letter-spacing: 0;
    line-height: 1.7;
    margin: 0;
    max-width: 340px;
}

.public-footer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.public-footer-actions .button,
.public-footer-pro .button {
    min-height: 44px;
}

.public-footer-actions .button {
    border: 1px solid rgba(255, 255, 255, .16);
    box-shadow: 0 16px 34px rgba(0, 0, 0, .18);
}

.public-footer-actions .button-accent {
    background: linear-gradient(180deg, #a88962 0%, #846341 100%);
    color: #fff;
}

.public-footer-actions .button-accent:hover {
    background: linear-gradient(180deg, #b3936d 0%, #8e6b47 100%);
}

.public-footer-actions .button-secondary,
.public-footer-pro .button-secondary {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .16);
    color: #fff;
}

.public-footer-actions .button-secondary {
    background: rgba(255, 255, 255, .055);
    border-color: rgba(255, 255, 255, .24);
    box-shadow: none;
}

.public-footer-actions .button-secondary:hover {
    background: rgba(255, 255, 255, .11);
    border-color: rgba(255, 255, 255, .34);
}

.public-footer-section,
.public-footer-pro {
    min-width: 0;
}

.public-footer-cities {
    grid-area: cities;
}

.public-footer-photographers {
    grid-area: photographers;
}

.public-footer-explore {
    grid-area: explore;
}

.public-footer-section h2 {
    color: #f2d2c2;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .1em;
    margin: 0 0 16px;
    text-transform: uppercase;
}

.public-footer-city-grid {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-footer-city-grid a,
.public-footer-profile-list a {
    background: rgba(255, 255, 255, .055);
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 18px;
    display: grid;
    gap: 3px;
    min-width: 0;
    padding: 13px 14px;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.public-footer-city-grid a:hover,
.public-footer-profile-list a:hover,
.public-footer-link-list a:hover {
    background: rgba(255, 255, 255, .10);
    border-color: rgba(255, 255, 255, .22);
    transform: translateY(-1px);
}

.public-footer-city-grid strong,
.public-footer-profile-list strong {
    color: #fff;
    font-size: 14px;
    line-height: 1.15;
}

.public-footer-city-grid span,
.public-footer-profile-list small,
.public-footer-profile-list em {
    font-size: 12px;
    font-style: normal;
    font-weight: 780;
    line-height: 1.35;
}

.public-footer-profile-list {
    display: grid;
    gap: 10px;
}

.public-footer-profile-list .public-footer-profile {
    align-items: center;
    background: rgba(255, 255, 255, .04);
    border-color: rgba(255, 255, 255, .12);
    border-radius: 14px;
    border-left: 3px solid rgba(232, 180, 180, .78);
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 12px 13px 12px 14px;
}

.public-footer-profile-copy {
    display: grid;
    gap: 7px;
    min-width: 0;
}

.public-footer-profile-list .public-footer-profile strong {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    font-size: clamp(14px, 1vw, 16px);
    font-weight: 700;
    line-height: 1.28;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
}

.public-footer-profile:focus-visible {
    outline: 2px solid #e8b4b4;
    outline-offset: 3px;
}

.public-footer-profile-meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 7px 10px;
    min-width: 0;
}

.public-footer-profile-meta small {
    color: rgba(255, 255, 255, .64);
    font-size: 12px;
    font-weight: 560;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.public-footer-profile-rating {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: 11px;
    font-style: normal;
    font-weight: 700;
    line-height: 1;
    padding: 5px 8px;
    white-space: nowrap;
}

.public-footer-profile-rating.has-reviews {
    background: rgba(232, 180, 180, .12);
    color: #f4d1d1;
}

.public-footer-profile-rating.has-reviews > span[aria-hidden="true"] {
    color: #e8b4b4;
    margin-right: 4px;
}

.public-footer-profile-rating.is-new {
    background: rgba(255, 255, 255, .08);
    color: rgba(255, 255, 255, .74);
}

.public-footer-profile-arrow {
    align-items: center;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 50%;
    color: #e8b4b4;
    display: inline-flex;
    flex: 0 0 30px;
    font-size: 17px;
    height: 30px;
    justify-content: center;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
    width: 30px;
}

.public-footer-profile:hover .public-footer-profile-arrow,
.public-footer-profile:focus-visible .public-footer-profile-arrow {
    background: rgba(232, 180, 180, .14);
    border-color: rgba(232, 180, 180, .45);
    transform: translateX(2px);
}

.public-footer-link-list {
    display: grid;
    gap: 8px;
}

.public-footer-link-list a {
    border-bottom: 1px solid rgba(255, 255, 255, .10);
    color: rgba(255, 255, 255, .82);
    display: grid;
    gap: 3px;
    font-size: 14px;
    font-weight: 850;
    padding: 10px 0;
}

.public-footer-link-list small {
    color: rgba(255, 255, 255, .54);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0;
}

.public-footer-pro {
    align-self: start;
    background: rgba(255, 255, 255, .075);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 24px;
    display: grid;
    gap: 12px;
    grid-area: pro;
    overflow: hidden;
    padding: 20px;
}

.public-footer-pro span {
    color: #f2d2c2;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.public-footer-pro strong {
    color: #fff;
    font-family: var(--font-serif);
    font-size: 22px;
    line-height: 1.08;
}

.public-footer-pro-domain {
    align-items: center;
    background: rgba(245, 239, 232, .12);
    border: 1px solid rgba(245, 239, 232, .18);
    border-radius: 999px;
    color: #f5efe8;
    display: inline-flex;
    font-size: 13px;
    font-weight: 900;
    justify-self: start;
    letter-spacing: 0;
    line-height: 1;
    max-width: 100%;
    padding: 9px 12px;
    white-space: nowrap;
}

.public-footer-pro p {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.55;
    margin: 0;
}

.public-footer-pro .button {
    min-width: 0;
    text-align: center;
    white-space: normal;
    width: 100%;
}

.public-footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, .10);
    display: flex;
    flex-wrap: wrap;
    font-size: 12px;
    font-weight: 800;
    gap: 12px;
    justify-content: space-between;
    padding-bottom: 22px;
    padding-top: 18px;
}

.pro-landing-page {
    padding-bottom: clamp(50px, 5vw, 72px);
    padding-top: 44px;
}

.pro-landing-hero {
    align-items: center;
    display: grid;
    gap: 48px;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 520px);
    min-height: 620px;
}

.pro-landing-copy {
    display: grid;
    gap: 22px;
    max-width: 720px;
}

.pro-landing-copy h1 {
    max-width: 780px;
}

.pro-landing-copy .lead {
    max-width: 660px;
}

.pro-page-section {
    border-top: 1px solid rgba(232, 222, 214, .78);
    display: grid;
    gap: 30px;
    padding-bottom: clamp(62px, 6vw, 86px);
    padding-top: clamp(58px, 6vw, 84px);
}

.pro-section-muted {
    background: #fffaf7;
    box-shadow: inset 0 -1px 0 rgba(232, 222, 214, .72);
}

.pro-section-heading {
    align-items: end;
}

.pro-section-heading h2 {
    max-width: 920px;
}

.pro-section-heading > p {
    color: var(--muted);
    flex: 0 1 430px;
    font-size: 15px;
    font-weight: 760;
    line-height: 1.6;
    max-width: 430px;
}

.pro-benefit-section {
    background: linear-gradient(180deg, rgba(239, 227, 214, .34), rgba(250, 247, 242, 0) 72%);
}

.pro-trust-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 4px;
}

.pro-trust-strip span {
    align-items: center;
    background: rgba(255, 255, 255, .78);
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--text);
    display: inline-flex;
    font-size: 13px;
    font-weight: 900;
    gap: 8px;
    padding: 10px 13px;
}

.pro-trust-strip span::before {
    background: var(--teal);
    border-radius: 50%;
    content: "";
    height: 7px;
    width: 7px;
}

.pro-dashboard-preview {
    background: rgba(255, 255, 255, .94);
    border: 1px solid var(--line);
    border-radius: 34px;
    box-shadow: 0 34px 90px rgba(36, 25, 21, .14);
    display: grid;
    gap: 18px;
    padding: 24px;
    transform: rotate(1deg);
}

.pro-preview-head {
    align-items: center;
    display: flex;
    gap: 18px;
    justify-content: space-between;
}

.pro-preview-head strong {
    color: var(--ink);
    display: block;
    font-size: 22px;
}

.pro-preview-head span:not(.badge) {
    color: var(--muted);
    display: block;
    font-size: 13px;
    font-weight: 800;
    margin-top: 4px;
}

.badge.dark {
    background: var(--ink);
    border: 0;
    color: #fff;
}

.pro-kpi-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pro-kpi {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    min-width: 0;
    padding: 18px;
}

.pro-kpi strong {
    color: var(--ink);
    display: block;
    font-family: var(--font-serif);
    font-size: 34px;
    line-height: 1;
}

.pro-kpi span {
    color: var(--muted);
    display: block;
    font-size: 12px;
    font-weight: 900;
    margin-top: 7px;
    text-transform: uppercase;
}

.pro-preview-lead {
    align-items: center;
    background: var(--ink);
    border-radius: 22px;
    color: #fff;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 18px;
}

.pro-preview-lead strong,
.pro-preview-lead span {
    display: block;
}

.pro-preview-lead strong {
    color: #fff;
    font-size: 15px;
}

.pro-preview-lead div span {
    color: rgba(255, 255, 255, .72);
    font-size: 13px;
    font-weight: 800;
    margin-top: 5px;
}

.pro-preview-lead > span {
    background: #fff;
    border-radius: 999px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 900;
    padding: 8px 10px;
}

.pro-preview-photographers {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pro-preview-photographers figure {
    margin: 0;
    min-width: 0;
}

.pro-preview-photographers img,
.pro-preview-photographers .photo-placeholder {
    aspect-ratio: 1 / 1;
    border-radius: 18px;
    display: block;
    height: auto;
    object-fit: cover;
    width: 100%;
}

.pro-preview-photographers figcaption {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    margin-top: 7px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pro-benefit-grid {
    align-items: stretch;
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.pro-benefit-card,
.pro-resource-card,
.pro-price-card,
.pro-onboarding-steps article,
.pro-toolbox {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
}

.pro-benefit-card {
    display: grid;
    gap: 12px;
    padding: 24px;
}

.pro-benefit-card > span,
.pro-onboarding-steps article > span {
    color: rgba(201, 111, 83, .34);
    font-family: var(--font-serif);
    font-size: 48px;
    font-weight: 800;
    line-height: 1;
}

.pro-benefit-card h2 {
    font-size: 25px;
    line-height: 1.08;
}

.pro-benefit-card p,
.pro-resource-card p,
.pro-price-card li,
.pro-onboarding-steps p,
.pro-tool-row p,
.pro-masterclass-box p {
    font-size: 14px;
    line-height: 1.58;
}

.pro-resource-section,
.pro-onboarding-section,
.pro-pricing {
    display: grid;
    gap: 26px;
}

.pro-resource-layout {
    align-items: start;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(300px, 380px) minmax(0, 1fr);
}

.pro-toolbox {
    display: grid;
    gap: 14px;
    padding: 26px;
}

.pro-toolbox h3 {
    font-family: var(--font-serif);
    font-size: 30px;
    letter-spacing: 0;
}

.pro-tool-row {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 5px;
    padding: 16px;
}

.pro-tool-row strong,
.pro-resource-card h3,
.pro-masterclass-box strong {
    color: var(--ink);
}

.pro-masterclass-box {
    background: var(--mint);
    border-radius: 20px;
    display: grid;
    gap: 9px;
    padding: 18px;
}

.pro-resource-content {
    display: grid;
    gap: 18px;
    min-width: 0;
}

.pro-topic-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.pro-topic-row span {
    background: rgba(130, 147, 123, .14);
    border: 1px solid rgba(130, 147, 123, .22);
    border-radius: 999px;
    color: #53604c;
    font-size: 13px;
    font-weight: 900;
    padding: 9px 12px;
}

.pro-resource-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pro-resource-card {
    display: grid;
    gap: 13px;
    min-width: 0;
    padding: 22px;
}

.pro-resource-card > span,
.feature-pill {
    color: var(--clay);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pro-resource-card h3 {
    font-size: 24px;
    line-height: 1.08;
}

.pro-resource-card a {
    color: var(--ink);
    font-size: 14px;
    font-weight: 950;
}

.pro-resource-hub {
    display: grid;
    gap: 34px;
    padding-bottom: 78px;
    padding-top: 34px;
}

.pro-resource-hero,
.pro-resource-feature-layout,
.pro-resource-article-layout {
    align-items: start;
    display: grid;
    gap: 28px;
}

.pro-resource-hero {
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .7fr);
}

.pro-resource-hero-copy {
    align-content: center;
    background: var(--ink);
    border-radius: 36px;
    color: #fff;
    display: grid;
    gap: 22px;
    min-height: 520px;
    overflow: hidden;
    padding: clamp(30px, 5vw, 62px);
    position: relative;
}

.pro-resource-hero-copy::after {
    background: rgba(255, 255, 255, .08);
    border-radius: 50%;
    content: "";
    height: 420px;
    position: absolute;
    right: -150px;
    top: -170px;
    width: 420px;
}

.pro-resource-hero-copy > * {
    position: relative;
    z-index: 1;
}

.pro-resource-hero-copy h1,
.pro-resource-hero-copy p {
    color: #fff;
}

.pro-resource-hero-copy h1 {
    max-width: 850px;
}

.pro-resource-hero-copy p:not(.eyebrow) {
    color: rgba(255, 255, 255, .78);
    font-size: 18px;
    max-width: 680px;
}

.pro-resource-tool-preview {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 32px;
    box-shadow: var(--shadow);
    display: grid;
    gap: 14px;
    padding: 24px;
    position: sticky;
    top: 92px;
}

.pro-resource-tool-preview .pro-tool-row {
    position: relative;
}

.pro-resource-tool-preview .feature-pill {
    justify-self: start;
}

.pro-resource-topic-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.pro-resource-topic-row span {
    background: rgba(130, 147, 123, .14);
    border: 1px solid rgba(130, 147, 123, .22);
    border-radius: 999px;
    color: #53604c;
    font-size: 13px;
    font-weight: 900;
    padding: 10px 13px;
}

.pro-resource-feature-layout {
    grid-template-columns: minmax(0, 1fr) minmax(290px, .45fr);
}

.pro-resource-feature-card,
.pro-resource-leadmagnet,
.pro-masterclass-strip,
.pro-resource-side-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: var(--shadow-sm);
}

.pro-resource-feature-card {
    display: grid;
    gap: 26px;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 300px;
    padding: clamp(26px, 4vw, 44px);
}

.pro-resource-feature-card h2,
.pro-resource-leadmagnet h2,
.pro-masterclass-strip h2,
.pro-resource-side-card h2 {
    font-size: clamp(30px, 4vw, 46px);
}

.pro-resource-feature-card p {
    max-width: 760px;
}

.pro-resource-feature-actions {
    align-content: end;
    display: grid;
    gap: 12px;
    justify-items: start;
    min-width: 190px;
}

.pro-resource-leadmagnet {
    display: grid;
    gap: 14px;
    padding: 26px;
}

.pro-resource-grid-wide {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pro-card-footer {
    align-items: center;
    border-top: 1px solid var(--line);
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 13px;
}

.pro-card-footer small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 850;
}

.pro-masterclass-strip {
    align-items: start;
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(260px, .42fr) minmax(0, 1fr);
    padding: 30px;
}

.pro-masterclass-list {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pro-masterclass-list article {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 20px;
    display: grid;
    gap: 7px;
    padding: 18px;
}

.pro-masterclass-list strong {
    color: var(--ink);
}

.pro-masterclass-list span,
.pro-masterclass-list small {
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.pro-masterclass-list a {
    color: var(--clay);
    font-size: 13px;
    font-weight: 950;
}

.pro-resource-article {
    color: var(--pro-ink);
    display: grid;
    font-family: var(--pro-font-body);
    font-size: var(--pro-body-size);
    gap: 28px;
    line-height: 1.65;
    padding-bottom: var(--pro-section-space);
    padding-top: var(--pro-section-space);
}

.pro-resource-article-head {
    background: var(--pro-surface);
    border: 1px solid var(--pro-border);
    border-radius: 18px;
    color: var(--pro-ink);
    display: grid;
    gap: 18px;
    padding: clamp(24px, 4vw, 40px);
}

.pro-resource-article-head h1,
.pro-resource-article-head p,
.pro-resource-article-head .pro-back-link {
    color: var(--pro-ink);
}

.pro-resource-article-head h1 {
    font-family: var(--pro-font-display);
    font-size: var(--pro-title-size);
    font-weight: 600;
    letter-spacing: var(--pro-heading-letter-spacing);
    line-height: var(--pro-title-line-height);
    max-width: 980px;
}

.pro-resource-article-head > p:not(.eyebrow) {
    color: var(--pro-copy);
    font-size: var(--pro-lead-size);
    max-width: 760px;
}

.pro-back-link {
    color: rgba(255, 255, 255, .72);
    font-size: 13px;
    font-weight: 900;
    justify-self: start;
}

.pro-resource-article-layout {
    grid-template-columns: minmax(0, 1fr) 310px;
}

.pro-resource-article-body {
    background: #fff;
    border: 1px solid var(--pro-border);
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(59, 42, 37, .04);
    display: grid;
    gap: 18px;
    min-width: 0;
    padding: clamp(20px, 3vw, 32px);
}

.pro-resource-article-body :is(h1, h2, h3, h4),
.pro-resource-side-card h2 {
    color: var(--pro-ink);
    font-family: var(--pro-font-heading);
    font-weight: 600;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.pro-resource-article-body :is(h1, h2) {
    font-size: var(--pro-section-title-size);
}

.pro-resource-article-body :is(h3, h4) {
    font-size: var(--pro-card-title-size);
}

.pro-resource-article-body :is(p, li),
.pro-resource-side-card p {
    color: var(--pro-copy);
    font-size: var(--pro-body-size);
    line-height: 1.65;
}

.pro-resource-article-body .page-hero,
.pro-resource-article-body .cms-text,
.pro-resource-article-body .cms-faq,
.pro-resource-article-body .cms-cta {
    margin: 0;
    max-width: none;
}

.pro-resource-article-body .page-hero {
    background: var(--pro-surface);
    border: 1px solid var(--pro-border);
    border-radius: 16px;
    padding: clamp(20px, 3vw, 28px);
}

.pro-resource-article-body .page-hero h1 {
    font-size: var(--pro-section-title-size);
}

.pro-resource-article-body .cms-text,
.pro-resource-article-body .cms-faq,
.pro-resource-article-body .cms-cta {
    border-top: 1px solid var(--pro-border);
    padding-top: 24px;
}

.pro-resource-article-body .cms-faq {
    display: grid;
    gap: 10px;
}

.pro-resource-article-body details {
    background: var(--pro-surface);
    border: 1px solid var(--pro-border);
    border-radius: 14px;
    padding: 15px 16px;
}

.pro-resource-article-body summary {
    color: var(--pro-ink);
    cursor: pointer;
    font-size: var(--pro-body-size);
    font-weight: 600;
}

.pro-resource-article-aside {
    display: grid;
    gap: 16px;
    position: sticky;
    top: 92px;
}

.pro-resource-side-card {
    border-color: var(--pro-border);
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(59, 42, 37, .04);
    display: grid;
    gap: 14px;
    padding: 20px;
}

.pro-resource-side-card h2 {
    font-size: var(--pro-card-title-size);
}

.pro-resource-side-card .button {
    width: 100%;
}

.pro-resource-footer-cta.footer-cta {
    align-items: flex-start;
    background: var(--pro-ink);
    border-radius: 18px;
    font-family: var(--pro-font-body);
    gap: 28px;
    margin-bottom: var(--pro-section-space);
    padding: clamp(24px, 4vw, 40px);
}

.pro-resource-footer-cta h2 {
    font-family: var(--pro-font-heading);
    font-size: var(--pro-section-title-size);
    font-weight: 600;
    line-height: 1.2;
    max-width: 760px;
}

.pro-resource-footer-cta p {
    font-size: var(--pro-body-size);
    line-height: 1.65;
}

.pro-resource-footer-cta .button {
    flex: 0 0 auto;
}

.pro-onboarding-steps {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pro-onboarding-steps article {
    display: grid;
    gap: 11px;
    padding: 24px;
}

.pro-pricing-grid {
    align-items: stretch;
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pro-price-card {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 26px;
}

.pro-price-card-featured {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.pro-price-card-featured h3,
.pro-price-card-featured .pro-price strong,
.pro-price-card-featured .feature-pill {
    color: #fff;
}

.pro-price-card-featured .pro-price span,
.pro-price-card-featured li {
    color: rgba(255, 255, 255, .76);
}

.pro-price-card h3 {
    font-family: var(--font-serif);
    font-size: 36px;
    letter-spacing: 0;
}

.pro-price {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pro-price strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 48px;
    line-height: 1;
}

.pro-price span {
    color: var(--muted);
    font-weight: 850;
}

.feature-list {
    display: grid;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.feature-list li {
    color: var(--text);
    display: grid;
    gap: 10px;
    grid-template-columns: auto minmax(0, 1fr) auto;
}

.feature-list li::before {
    background: var(--teal);
    border-radius: 50%;
    content: "";
    height: 7px;
    margin-top: 8px;
    width: 7px;
}

.pro-price-card .button {
    margin-top: auto;
    width: 100%;
}

.pro-price-card-featured .feature-list li::before {
    background: var(--clay);
}

.pro-price-card-featured .feature-list li {
    color: rgba(255, 255, 255, .78);
}

.pro-roi-section {
    display: grid;
    gap: 26px;
}

.pro-roi-layout {
    align-items: stretch;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 430px);
}

.pro-roi-controls,
.pro-roi-result {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
}

.pro-roi-controls {
    display: grid;
    gap: 16px;
    padding: 26px;
}

.pro-roi-control {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 20px;
    display: grid;
    gap: 12px;
    padding: 18px;
}

.pro-roi-control span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.pro-roi-control strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 34px;
    line-height: 1;
}

.pro-roi-control input[type="range"] {
    accent-color: var(--clay);
    width: 100%;
}

.pro-roi-result {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 26px;
}

.pro-roi-main {
    background: var(--ink);
    border-radius: 22px;
    color: #fff;
    display: grid;
    gap: 6px;
    padding: 22px;
}

.pro-roi-main strong {
    color: #fff;
    font-family: var(--font-serif);
    font-size: 52px;
    line-height: 1;
}

.pro-roi-main span {
    color: rgba(255, 255, 255, .74);
    font-size: 13px;
    font-weight: 900;
}

.pro-roi-breakdown {
    display: grid;
    gap: 10px;
    margin: 0;
}

.pro-roi-breakdown div {
    align-items: center;
    border-top: 1px solid var(--line);
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding-top: 12px;
}

.pro-roi-breakdown dt {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.pro-roi-breakdown dd {
    color: var(--ink);
    font-weight: 900;
    margin: 0;
    white-space: nowrap;
}

.pro-roi-result p {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.55;
}

.pro-final-cta {
    border-radius: 0;
    margin-bottom: 0;
    margin-top: 0;
    padding-bottom: clamp(52px, 6vw, 76px);
    padding-top: clamp(52px, 6vw, 76px);
}

.contest-index-page,
.contest-show-page,
.contest-vote-page {
    display: grid;
    gap: 30px;
    padding-bottom: 76px;
    padding-top: 38px;
}

.contest-vote-page {
    align-content: center;
    min-height: calc(100vh - 210px);
}

.contest-vote-panel {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 36px;
    box-shadow: var(--shadow-sm);
    display: grid;
    grid-template-columns: minmax(280px, .76fr) minmax(0, 1fr);
    min-height: 540px;
    overflow: hidden;
}

.contest-vote-media {
    background: #eadfd4;
    min-height: 100%;
    position: relative;
}

.contest-vote-media::after {
    background: linear-gradient(180deg, transparent 45%, rgba(42, 31, 23, .38));
    content: "";
    inset: 0;
    position: absolute;
}

.contest-vote-panel.is-invalid .contest-vote-media::after {
    background: linear-gradient(180deg, rgba(42, 31, 23, .08), rgba(42, 31, 23, .52));
}

.contest-vote-media img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.contest-vote-media span {
    background: rgba(255, 255, 255, .92);
    border-radius: 999px;
    bottom: 22px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 950;
    left: 22px;
    letter-spacing: .04em;
    padding: 9px 12px;
    position: absolute;
    text-transform: uppercase;
    z-index: 1;
}

.contest-vote-copy {
    align-content: center;
    display: grid;
    gap: 22px;
    padding: clamp(28px, 5vw, 64px);
}

.contest-vote-copy h1 {
    font-size: 52px;
    line-height: .98;
    max-width: 720px;
}

.contest-vote-copy p:not(.eyebrow) {
    font-size: 17px;
    line-height: 1.7;
    max-width: 660px;
}

.contest-vote-copy strong {
    color: var(--ink);
}

.contest-vote-facts {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 4px 0 0;
}

.contest-vote-facts div {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    min-width: 0;
    padding: 14px;
}

.contest-vote-facts dt {
    color: var(--muted);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contest-vote-facts dd {
    color: var(--ink);
    font-weight: 900;
    margin: 5px 0 0;
    overflow-wrap: anywhere;
}

.contest-hero-public {
    align-items: center;
    background: radial-gradient(circle at 88% 18%, rgba(255, 255, 255, .12), transparent 28%), var(--ink);
    border-radius: 42px;
    color: #fff;
    display: grid;
    gap: 34px;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 0;
    overflow: hidden;
    padding: clamp(34px, 5vw, 64px);
    position: relative;
}

.contest-hero-public::after {
    background: rgba(255, 255, 255, .08);
    border-radius: 50%;
    content: "";
    height: 420px;
    position: absolute;
    right: -110px;
    top: -140px;
    width: 420px;
}

.contest-hero-public > * {
    position: relative;
    z-index: 1;
}

.contest-hero-copy {
    display: grid;
    gap: 20px;
    max-width: 760px;
}

.contest-hero-copy h1,
.contest-hero-copy p,
.contest-hero-description {
    color: #fff;
}

.contest-hero-copy .eyebrow {
    color: #f3c7b7;
}

.contest-hero-copy p:not(.eyebrow),
.contest-hero-description {
    color: rgba(255, 255, 255, .78);
    font-size: 18px;
    line-height: 1.68;
    max-width: 640px;
}

.contest-hero-description p,
.contest-hero-description ul,
.contest-hero-description ol,
.contest-hero-description blockquote {
    margin: 0 0 12px;
}

.contest-hero-description > *:last-child {
    margin-bottom: 0;
}

.contest-hero-description ul,
.contest-hero-description ol {
    padding-left: 24px;
}

.contest-hero-description a {
    color: #fff;
    font-weight: 850;
}

.contest-deadline-signal {
    align-items: center;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 22px;
    color: #fff;
    display: grid;
    gap: 6px 14px;
    grid-template-columns: minmax(0, 1fr) auto;
    justify-self: start;
    max-width: min(100%, 520px);
    padding: 14px 16px;
    text-decoration: none;
}

.contest-deadline-signal span,
.member-contest-deadline span {
    color: #f3c7b7;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contest-deadline-signal strong,
.member-contest-deadline strong {
    color: inherit;
    font-size: 15px;
    font-weight: 950;
    line-height: 1.2;
    min-width: 0;
}

.contest-deadline-signal em,
.member-contest-deadline em {
    align-items: center;
    background: #fff;
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 13px;
    font-style: normal;
    font-weight: 950;
    grid-row: span 2;
    justify-content: center;
    line-height: 1;
    min-height: 40px;
    padding: 10px 12px;
    white-space: nowrap;
}

.contest-deadline-signal small,
.member-contest-deadline small {
    color: rgba(255, 255, 255, .74);
    font-size: 12px;
    font-weight: 850;
    min-width: 0;
}

.contest-deadline-signal.is-success {
    background: rgba(130, 147, 123, .26);
    border-color: rgba(215, 230, 205, .32);
}

.contest-deadline-signal.is-pending,
.contest-deadline-signal.is-danger {
    background: rgba(195, 148, 86, .28);
    border-color: rgba(255, 225, 176, .34);
}

.contest-hero-index {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
}

.contest-hero-gallery {
    align-items: stretch;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(230px, 1fr) minmax(140px, .56fr);
    grid-template-rows: repeat(2, minmax(0, 1fr)) minmax(118px, .42fr);
    height: clamp(420px, 34vw, 560px);
    max-width: 560px;
    min-width: min(520px, 100%);
}

.contest-hero-gallery figure {
    aspect-ratio: auto;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 24px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .20);
    margin: 0;
    min-height: 0;
    overflow: hidden;
    position: relative;
}

.contest-hero-gallery-main {
    grid-row: span 3;
    min-height: 0;
}

.contest-hero-gallery img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.contest-hero-gallery figcaption {
    background: rgba(255, 255, 255, .92);
    border-radius: 999px;
    bottom: 14px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 950;
    left: 14px;
    padding: 9px 12px;
    position: absolute;
}

.contest-hero-art {
    aspect-ratio: 4 / 5;
    border-radius: 32px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .22);
    height: clamp(310px, 28vw, 430px);
    min-height: 0;
    overflow: hidden;
    position: relative;
}

.contest-hero-art img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.contest-hero-art span,
.rank-badge,
.contest-card-media > span {
    background: rgba(255, 255, 255, .92);
    border-radius: 999px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 950;
    padding: 9px 12px;
    position: absolute;
}

.contest-hero-art span {
    bottom: 18px;
    left: 18px;
}

.contest-hero-stat {
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 30px;
    display: grid;
    gap: 7px;
    min-width: 230px;
    padding: 24px;
}

.contest-hero-stat strong {
    color: #fff;
    font-family: var(--font-serif);
    font-size: 72px;
    line-height: .9;
}

.contest-hero-stat span,
.contest-hero-stat small {
    color: rgba(255, 255, 255, .76);
    font-weight: 850;
}

.contest-hero-gallery .contest-hero-stat {
    align-content: center;
    border-radius: 24px;
    min-width: 0;
    padding: 18px;
}

.contest-hero-gallery .contest-hero-stat strong {
    font-size: 42px;
}

.contest-confirmation-alert {
    margin: 0;
}

.contest-path-strip,
.contest-audience-strip,
.contest-timeline,
.contest-index-grid,
.contest-gallery-grid {
    display: grid;
    gap: 18px;
}

.contest-path-strip,
.contest-audience-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.contest-timeline {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.contest-path-strip article,
.contest-audience-strip article,
.contest-timeline article,
.contest-index-card,
.contest-rules-section,
.contest-rules-card,
.contest-submit-panel,
.contest-prize-panel,
.contest-results,
.contest-card,
.contest-empty {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
}

.contest-path-strip article,
.contest-audience-strip article {
    display: grid;
    gap: 12px;
    min-height: 220px;
    padding: 24px;
}

.contest-path-strip span {
    color: rgba(201, 111, 83, .34);
    font-family: var(--font-serif);
    font-size: 48px;
    font-weight: 800;
    line-height: .86;
}

.contest-audience-strip span {
    color: #9e5a45;
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
}

.contest-path-strip h2,
.contest-audience-strip h2 {
    font-size: clamp(25px, 2.3vw, 34px);
}

.contest-timeline article {
    border-color: rgba(126, 95, 68, .18);
    display: grid;
    gap: 9px;
    min-height: 178px;
    padding: 22px;
}

.contest-timeline article.is-current {
    background: linear-gradient(135deg, #fffaf7, #f1e4d5);
    border-color: rgba(126, 95, 68, .36);
}

.contest-timeline article.is-complete {
    background: linear-gradient(135deg, #fbfaf7, #fff);
    border-color: rgba(130, 147, 123, .28);
}

.contest-timeline article.is-upcoming,
.contest-timeline article.is-muted {
    background: #fbfaf7;
}

.contest-timeline span {
    color: rgba(201, 111, 83, .34);
    font-family: var(--font-serif);
    font-size: 42px;
    font-weight: 800;
    line-height: 1;
}

.contest-timeline article.is-current span {
    color: var(--brown);
}

.contest-timeline article.is-complete span {
    color: #82937b;
}

.contest-timeline h2 {
    font-family: var(--font-sans);
    font-size: 20px;
    line-height: 1.12;
}

.contest-timeline p,
.contest-path-strip p,
.contest-audience-strip p,
.contest-index-card p,
.contest-rules-card p,
.contest-submit-panel p,
.contest-prize-card p,
.contest-card-body p,
.contest-empty p,
.contest-winner-body p,
.contest-runner-card p {
    font-size: 14px;
    line-height: 1.58;
}

.contest-timeline p strong {
    color: var(--ink);
    font-weight: 950;
}

.contest-brief-panel {
    align-items: center;
    background: #fffdfb;
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 24px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) minmax(240px, auto);
    padding: clamp(18px, 3vw, 26px);
}

.contest-brief-panel h2 {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(28px, 3vw, 42px);
    letter-spacing: 0;
    line-height: 1.02;
}

.contest-brief-panel p:not(.eyebrow) {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.55;
    margin-top: 7px;
    max-width: 760px;
}

.contest-brief-metrics,
.contest-brief-detail-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.contest-brief-metrics span,
.contest-brief-detail-row em {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
    min-height: 32px;
    padding: 8px 10px;
}

.contest-brief-detail-row {
    grid-column: 1 / -1;
    justify-content: flex-start;
}

.contest-brief-detail-row em {
    color: var(--muted);
    font-weight: 850;
}

.contest-brief-panel.is-success {
    background: linear-gradient(135deg, rgba(130, 147, 123, .12), #fffdfb);
    border-color: rgba(130, 147, 123, .3);
}

.contest-brief-panel.is-pending {
    background: linear-gradient(135deg, rgba(195, 148, 86, .14), #fffdfb);
    border-color: rgba(195, 148, 86, .28);
}

.contest-brief-panel.is-danger {
    background: linear-gradient(135deg, rgba(185, 83, 63, .09), #fffdfb);
    border-color: rgba(185, 83, 63, .24);
}

.contest-editorial-showcase {
    align-items: center;
    background: #fff;
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 24px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) minmax(250px, auto);
    padding: clamp(18px, 3vw, 26px);
}

.contest-editorial-showcase h2 {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(28px, 3vw, 42px);
    letter-spacing: 0;
    line-height: 1.02;
}

.contest-editorial-showcase p:not(.eyebrow) {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.55;
    margin-top: 7px;
    max-width: 760px;
}

.contest-editorial-showcase-metrics,
.contest-editorial-showcase-details,
.contest-editorial-showcase-missing {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.contest-editorial-showcase-metrics span,
.contest-editorial-showcase-details em,
.contest-editorial-showcase-missing span {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
    min-height: 32px;
    padding: 8px 10px;
}

.contest-editorial-showcase-details,
.contest-editorial-showcase-missing {
    grid-column: 1 / -1;
    justify-content: flex-start;
}

.contest-editorial-showcase-details em,
.contest-editorial-showcase-missing span {
    color: var(--muted);
    font-weight: 850;
}

.contest-editorial-showcase-missing strong {
    align-items: center;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-weight: 950;
}

.contest-editorial-showcase.is-success {
    background: linear-gradient(135deg, rgba(130, 147, 123, .12), #fffdfb);
    border-color: rgba(130, 147, 123, .3);
}

.contest-editorial-showcase.is-pending {
    background: linear-gradient(135deg, rgba(195, 148, 86, .14), #fffdfb);
    border-color: rgba(195, 148, 86, .28);
}

.contest-editorial-showcase.is-danger {
    background: linear-gradient(135deg, rgba(185, 83, 63, .09), #fffdfb);
    border-color: rgba(185, 83, 63, .24);
}

.contest-phase-panel {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 26px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) minmax(220px, auto);
    padding: clamp(18px, 3vw, 26px);
}

.contest-phase-panel h2 {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(27px, 3vw, 42px);
    letter-spacing: 0;
    line-height: 1.02;
}

.contest-phase-panel p:not(.eyebrow) {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.55;
    margin-top: 7px;
    max-width: 780px;
}

.contest-phase-facts {
    display: grid;
    gap: 8px;
    min-width: 220px;
}

.contest-phase-facts span {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    display: inline-flex;
    font-size: 13px;
    font-weight: 850;
    gap: 7px;
    justify-content: space-between;
    min-height: 38px;
    padding: 9px 12px;
}

.contest-phase-facts strong {
    color: var(--ink);
    font-weight: 950;
}

.contest-health-card {
    align-items: center;
    background: linear-gradient(135deg, #fffdfb, #f7efe7);
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 20px;
    display: grid;
    gap: 14px;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 15px;
}

.contest-health-card span {
    color: var(--clay);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.contest-health-card strong {
    color: var(--ink);
    display: block;
    font-size: 16px;
    font-weight: 950;
    line-height: 1.25;
}

.contest-health-card p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.45;
    margin: 4px 0 0;
}

.contest-health-metrics {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    display: grid;
    gap: 4px;
    justify-self: end;
    min-width: 160px;
    padding: 12px;
}

.contest-health-metrics b {
    color: var(--ink);
    font-size: 15px;
    font-weight: 950;
    line-height: 1.15;
}

.contest-health-metrics small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 850;
}

.contest-health-proof-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    grid-column: 1 / -1;
}

.contest-health-proof-list em {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    padding: 8px 10px;
}

.contest-health-card.is-success {
    background: linear-gradient(135deg, rgba(130, 147, 123, .14), #fffaf7);
    border-color: rgba(130, 147, 123, .3);
}

.contest-health-card.is-pending {
    background: linear-gradient(135deg, rgba(195, 148, 86, .16), #fffaf7);
    border-color: rgba(195, 148, 86, .28);
}

.contest-health-card.is-danger {
    background: linear-gradient(135deg, rgba(185, 83, 63, .1), #fffaf7);
    border-color: rgba(185, 83, 63, .24);
}

.contest-engagement-panel {
    align-items: center;
    background: #fffdfb;
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 20px;
    display: grid;
    gap: 14px;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) minmax(190px, auto);
    padding: 15px;
}

.contest-engagement-panel span {
    color: var(--clay);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.contest-engagement-panel strong {
    color: var(--ink);
    display: block;
    font-size: 16px;
    font-weight: 950;
    line-height: 1.25;
}

.contest-engagement-panel p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.45;
    margin: 4px 0 0;
}

.contest-engagement-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.contest-engagement-metrics b,
.contest-engagement-metrics small,
.contest-engagement-panel em {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
    min-height: 30px;
    padding: 8px 10px;
}

.contest-engagement-metrics small,
.contest-engagement-panel em {
    color: var(--muted);
    font-weight: 850;
}

.contest-engagement-panel em {
    grid-column: 1 / -1;
    justify-self: start;
}

.contest-engagement-panel.is-success {
    background: linear-gradient(135deg, rgba(130, 147, 123, .12), #fffdfb);
    border-color: rgba(130, 147, 123, .3);
}

.contest-engagement-panel.is-pending {
    background: linear-gradient(135deg, rgba(195, 148, 86, .14), #fffdfb);
    border-color: rgba(195, 148, 86, .28);
}

.contest-engagement-panel.is-danger {
    background: linear-gradient(135deg, rgba(185, 83, 63, .09), #fffdfb);
    border-color: rgba(185, 83, 63, .24);
}

.contest-action-cue {
    align-items: center;
    background: linear-gradient(135deg, #fffaf7, #f5eee7);
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 20px;
    display: grid;
    gap: 12px;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) auto auto;
    min-width: min(100%, 460px);
    padding: 14px;
}

.contest-index-card .contest-action-cue {
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
}

.contest-action-cue span {
    color: var(--clay);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.contest-action-cue strong {
    color: var(--ink);
    display: block;
    font-size: 16px;
    font-weight: 950;
    line-height: 1.25;
}

.contest-action-cue p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.45;
    margin: 4px 0 0;
}

.contest-action-cue small {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-weight: 950;
    min-height: 34px;
    padding: 8px 10px;
    white-space: nowrap;
}

.contest-action-cue.is-success {
    background: linear-gradient(135deg, rgba(130, 147, 123, .14), #fffaf7);
    border-color: rgba(130, 147, 123, .3);
}

.contest-action-cue.is-pending {
    background: linear-gradient(135deg, rgba(195, 148, 86, .16), #fffaf7);
    border-color: rgba(195, 148, 86, .28);
}

.contest-action-cue.is-danger {
    background: linear-gradient(135deg, rgba(185, 83, 63, .1), #fffaf7);
    border-color: rgba(185, 83, 63, .24);
}

.contest-category-spotlights {
    display: grid;
    gap: 18px;
}

.contest-category-spotlight-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.contest-category-spotlight-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 22px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 12px;
    padding: 18px;
}

.contest-category-spotlight-card > div {
    display: grid;
    gap: 6px;
}

.contest-category-spotlight-card span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contest-category-spotlight-card h3 {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(24px, 2.2vw, 32px);
    letter-spacing: 0;
    line-height: 1.05;
}

.contest-category-spotlight-card p,
.contest-category-spotlight-card small {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.5;
}

.contest-category-spotlight-card p strong {
    color: var(--ink);
}

.contest-index-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contest-index-card {
    display: grid;
    gap: 20px;
    padding: 26px;
}

.contest-index-card h2 {
    font-size: clamp(30px, 3vw, 42px);
    margin-top: 16px;
}

.contest-card-facts {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
}

.contest-card-facts div {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 12px;
}

.contest-card-facts dt {
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contest-card-facts dd {
    color: var(--ink);
    font-weight: 900;
    margin: 4px 0 0;
}

.contest-card-milestones {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.contest-card-milestones span,
.member-contest-milestones span {
    align-items: center;
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    display: inline-flex;
    font-size: 12px;
    font-weight: 900;
    min-height: 32px;
    padding: 8px 10px;
}

.contest-card-milestones .is-current,
.member-contest-milestones .is-current {
    background: var(--brown);
    border-color: var(--brown);
    color: #fff;
}

.contest-card-milestones .is-complete,
.member-contest-milestones .is-complete {
    background: rgba(130, 147, 123, .12);
    border-color: rgba(130, 147, 123, .28);
    color: #53644f;
}

.contest-card-milestones .is-muted,
.member-contest-milestones .is-muted {
    opacity: .62;
}

.contest-rules-section {
    display: grid;
    gap: 22px;
    padding: clamp(24px, 3vw, 34px);
}

.contest-rules-layout {
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(0, 1.25fr) repeat(2, minmax(0, .85fr));
}

.contest-rules-card {
    display: grid;
    gap: 12px;
    padding: 20px;
}

.contest-rules-card-main {
    grid-row: span 2;
}

.contest-rules-card > span:not(.feature-pill) {
    color: rgba(201, 111, 83, .34);
    font-family: var(--font-serif);
    font-size: 42px;
    font-weight: 800;
    line-height: 1;
}

.contest-rules-card h3 {
    font-family: var(--font-serif);
    font-size: clamp(24px, 2.3vw, 34px);
    letter-spacing: 0;
}

.contest-rules-facts {
    display: grid;
    gap: 10px;
    margin: 0;
}

.contest-rules-facts div {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 12px;
}

.contest-rules-facts dt {
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contest-rules-facts dd {
    color: var(--ink);
    font-weight: 900;
    margin: 4px 0 0;
}

.contest-category-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.contest-category-row span {
    background: rgba(130, 147, 123, .14);
    border: 1px solid rgba(130, 147, 123, .22);
    border-radius: 999px;
    color: #53604c;
    font-size: 13px;
    font-weight: 900;
    padding: 9px 12px;
}

.contest-criteria-card {
    background: linear-gradient(135deg, #fff, #fbf7f0);
    grid-column: span 2;
}

.contest-compliance-card {
    background: linear-gradient(135deg, #fff, #fbf7f0);
    grid-column: span 2;
}

.contest-compliance-list {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contest-compliance-item {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    display: grid;
    gap: 6px;
    padding: 12px;
}

.contest-compliance-item strong {
    color: var(--ink);
    font-size: 15px;
    font-weight: 950;
}

.contest-compliance-item p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.45;
    margin: 0;
}

.contest-criteria-list {
    display: grid;
    gap: 10px;
}

.contest-criteria-item {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    display: grid;
    gap: 6px;
    padding: 12px;
}

.contest-criteria-item strong {
    color: var(--ink);
    font-size: 15px;
    font-weight: 950;
}

.contest-criteria-item span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contest-criteria-item p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.45;
    margin: 0;
}

.contest-submit-compliance {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 10px;
    padding: 16px;
}

.contest-submit-compliance > span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.contest-submit-compliance > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.contest-submit-compliance strong {
    background: #fff;
    border: 1px solid rgba(126, 95, 68, .14);
    border-radius: 999px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    padding: 8px 10px;
}

.contest-participation-layout {
    align-items: start;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
}

.contest-submit-panel,
.contest-prize-panel {
    display: grid;
    gap: 20px;
    padding: clamp(24px, 3vw, 34px);
}

.contest-submit-panel .section-heading {
    align-items: start;
}

.contest-quota-card {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 10px;
    padding: 16px;
}

.contest-quota-card.is-blocked {
    background: #251913;
    border-color: #251913;
    color: #fff;
}

.contest-quota-head {
    align-items: end;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.contest-quota-head span,
.contest-extra-photo-card span {
    color: #9e5a45;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.contest-quota-card.is-blocked .contest-quota-head span,
.contest-quota-card.is-blocked small {
    color: rgba(255, 255, 255, .68);
}

.contest-quota-head strong {
    color: inherit;
    font-size: 15px;
    text-align: right;
}

.contest-quota-meter {
    background: rgba(201, 111, 83, .14);
    border-radius: 999px;
    height: 9px;
    overflow: hidden;
}

.contest-quota-meter span {
    background: #c96f53;
    border-radius: inherit;
    display: block;
    height: 100%;
}

.contest-quota-card p,
.contest-extra-photo-card p {
    margin: 0;
}

.contest-quota-card small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.contest-extra-photo-card {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 18px;
}

.contest-extra-photo-card h3 {
    font-family: var(--font-serif);
    font-size: clamp(24px, 2vw, 31px);
    letter-spacing: 0;
    margin-top: 5px;
}

.contest-extra-photo-card form {
    margin: 0;
}

.contest-payment-unavailable {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    color: var(--muted);
    display: grid;
    gap: 4px;
    max-width: 310px;
    padding: 14px 16px;
}

.contest-payment-unavailable strong {
    color: var(--ink);
    font-size: 13px;
    font-weight: 950;
    line-height: 1.2;
}

.contest-payment-unavailable span {
    font-size: 12px;
    font-weight: 760;
    line-height: 1.42;
}

.contest-submit-form {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contest-file-field,
.contest-rights-confirmation,
.contest-submit-form button {
    grid-column: 1 / -1;
}

.contest-rights-confirmation {
    align-items: flex-start;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 16px;
    color: var(--ink);
    cursor: pointer;
    display: grid;
    font-size: 13px;
    font-weight: 850;
    gap: 10px;
    grid-template-columns: auto minmax(0, 1fr);
    line-height: 1.45;
    padding: 13px 14px;
}

.contest-rights-confirmation input {
    accent-color: var(--brown);
    height: 18px;
    margin-top: 1px;
    width: 18px;
}

.contest-rights-confirmation span {
    min-width: 0;
}

.contest-upload-preview-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contest-upload-preview-grid figure {
    margin: 0;
    position: relative;
}

.contest-upload-preview-grid img {
    aspect-ratio: 4 / 3;
    border-radius: 22px;
    display: block;
    object-fit: cover;
    width: 100%;
}

.contest-upload-preview-grid figcaption {
    background: rgba(255, 255, 255, .9);
    border-radius: 999px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 900;
    left: 12px;
    padding: 8px 10px;
    position: absolute;
    top: 12px;
}

.contest-own-submissions {
    display: grid;
    gap: 14px;
}

.contest-own-submission-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    display: grid;
    gap: 14px;
    grid-template-columns: 118px minmax(0, 1fr);
    overflow: hidden;
    padding: 12px;
}

.contest-own-submission-media {
    background: #eadfd4;
    border-radius: 16px;
    min-height: 150px;
    overflow: hidden;
}

.contest-own-submission-media img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.contest-own-submission-form {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contest-own-submission-head,
.contest-own-submission-title,
.contest-rights-proof,
.contest-own-submission-form .contest-file-field,
.contest-own-submission-form .contest-rights-confirmation,
.contest-own-submission-form button {
    grid-column: 1 / -1;
}

.contest-own-submission-head {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: space-between;
}

.contest-own-submission-head > div {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.contest-own-submission-head strong {
    color: var(--muted);
    font-size: 12px;
    font-weight: 850;
}

.contest-own-submission-title {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 24px;
    letter-spacing: 0;
    line-height: 1.05;
    margin: 0;
}

.contest-rights-proof {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 11px 12px;
}

.contest-rights-proof span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contest-rights-proof strong,
.contest-rights-proof small {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    min-height: 28px;
    padding: 7px 9px;
}

.contest-rights-proof strong {
    background: #fff;
    border: 1px solid var(--line);
    color: var(--ink);
}

.contest-rights-proof small {
    color: var(--muted);
}

.contest-rights-proof.is-confirmed {
    background: rgba(130, 147, 123, .12);
    border-color: rgba(130, 147, 123, .28);
}

.contest-rights-proof.is-warning {
    background: rgba(195, 148, 86, .14);
    border-color: rgba(195, 148, 86, .28);
}

.contest-own-share-card {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 16px;
    display: grid;
    gap: 12px;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 12px;
}

.contest-own-share-card strong {
    color: var(--clay);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 4px;
    text-transform: uppercase;
}

.contest-own-share-card span {
    color: var(--muted);
    display: block;
    font-size: 12px;
    font-weight: 820;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.contest-submission-status {
    border-radius: 999px;
    display: inline-flex;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    line-height: 1;
    padding: 8px 10px;
    text-transform: uppercase;
}

.contest-submission-status.is-trusted,
.contest-submission-status.is-approved {
    background: rgba(130, 147, 123, .16);
    color: #52634c;
}

.contest-submission-status.is-pending,
.contest-submission-status.is-draft {
    background: rgba(195, 148, 86, .18);
    color: #7c5a28;
}

.contest-submission-status.is-rejected,
.contest-submission-status.is-hidden {
    background: rgba(185, 83, 63, .14);
    color: #8a3f31;
}

.contest-prize-list {
    display: grid;
    gap: 12px;
}

.contest-prize-card {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 5px;
    padding: 16px;
}

.contest-prize-card strong {
    color: var(--ink);
}

.contest-jury-row {
    display: flex;
    gap: 10px;
}

.contest-jury-row span {
    align-items: center;
    background: var(--ink);
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-weight: 950;
    height: 48px;
    justify-content: center;
    width: 48px;
}

.contest-results {
    display: grid;
    gap: 24px;
    padding: clamp(24px, 3vw, 34px);
}

.contest-winners-layout {
    align-items: stretch;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
}

.contest-winner-card,
.contest-runner-card {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 24px;
    overflow: hidden;
}

.contest-winner-card {
    display: grid;
    grid-template-columns: minmax(260px, .9fr) minmax(0, 1fr);
}

.contest-winner-media,
.contest-runner-card > div,
.contest-card-media {
    position: relative;
}

.contest-winner-media img,
.contest-winner-media .photo-placeholder,
.contest-runner-card img,
.contest-runner-card .photo-placeholder,
.contest-card-media img,
.contest-card-media .photo-placeholder {
    display: block;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    width: 100%;
}

.contest-winner-media {
    min-height: 430px;
}

.contest-winner-body {
    align-content: center;
    display: grid;
    gap: 16px;
    padding: 26px;
}

.contest-winner-body h3 {
    font-family: var(--font-serif);
    font-size: clamp(30px, 3vw, 44px);
    letter-spacing: 0;
}

.contest-jury-feedback,
.contest-card-jury-feedback,
.member-contest-jury-feedback {
    background: #fffaf7;
    border: 1px solid rgba(126, 95, 68, .18);
    border-radius: 18px;
    display: grid;
    gap: 10px;
    padding: 12px;
}

.contest-jury-feedback {
    background: linear-gradient(135deg, #fffaf7, #f4ece2);
}

.contest-jury-feedback-head {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: space-between;
}

.contest-jury-feedback strong,
.contest-card-jury-feedback strong,
.member-contest-jury-feedback strong {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contest-jury-feedback-head small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 850;
}

.contest-jury-feedback > div,
.contest-card-jury-feedback > div,
.member-contest-jury-feedback > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.contest-jury-feedback span,
.contest-card-jury-feedback span,
.member-contest-jury-feedback span {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-weight: 900;
    gap: 7px;
    line-height: 1;
    min-height: 32px;
    padding: 8px 10px;
}

.contest-jury-feedback em {
    color: var(--muted);
    font-style: normal;
}

.contest-jury-feedback b {
    color: var(--ink);
    font-weight: 950;
}

.contest-ranking-proof {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 10px;
    padding: 12px;
}

.contest-ranking-proof span {
    color: var(--clay);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 4px;
    text-transform: uppercase;
}

.contest-ranking-proof strong {
    color: var(--ink);
    display: block;
    font-size: 15px;
    font-weight: 950;
    line-height: 1.25;
}

.contest-ranking-proof small {
    color: var(--muted);
    display: block;
    font-size: 12px;
    font-weight: 820;
    line-height: 1.42;
    margin-top: 4px;
}

.contest-ranking-proof > div:last-child {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.contest-ranking-proof em {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
    min-height: 30px;
    padding: 8px 10px;
}

.contest-ranking-proof.is-success {
    background: linear-gradient(135deg, rgba(130, 147, 123, .14), #fff);
    border-color: rgba(130, 147, 123, .32);
}

.contest-ranking-proof.is-pending {
    background: linear-gradient(135deg, rgba(195, 148, 86, .14), #fff);
    border-color: rgba(195, 148, 86, .28);
}

.contest-card-ranking-proof {
    background: #fffaf7;
}

.rank-badge {
    left: 16px;
    top: 16px;
}

.contest-runner-list {
    display: grid;
    gap: 18px;
}

.contest-runner-card {
    display: grid;
    gap: 12px;
    padding-bottom: 18px;
}

.contest-runner-card > div {
    height: 210px;
}

.contest-runner-card h3,
.contest-runner-card p {
    padding-left: 18px;
    padding-right: 18px;
}

.contest-runner-card .contest-card-jury-feedback {
    margin-left: 18px;
    margin-right: 18px;
}

.contest-runner-card h3 {
    font-size: 22px;
}

.contest-result-list {
    display: grid;
    gap: 12px;
}

.contest-result-list .result-row {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 14px;
}

.contest-award-share-panel {
    background: linear-gradient(135deg, #fffaf7, #f5eee7);
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 24px;
    display: grid;
    gap: 16px;
    padding: 18px;
}

.contest-award-share-head h3 {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(24px, 2.2vw, 34px);
    letter-spacing: 0;
    line-height: 1.04;
    margin: 0;
}

.contest-award-share-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.contest-award-share-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    display: grid;
    gap: 12px;
    overflow: hidden;
    padding: 12px;
}

.contest-award-share-card img {
    aspect-ratio: 16 / 10;
    border-radius: 16px;
    display: block;
    object-fit: cover;
    width: 100%;
}

.contest-award-share-card span {
    color: var(--clay);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.contest-award-share-card strong {
    color: var(--ink);
    display: block;
    font-size: 18px;
    font-weight: 950;
}

.contest-award-share-card p,
.contest-award-share-card small {
    color: var(--muted);
    display: block;
    font-weight: 760;
    line-height: 1.45;
    margin: 4px 0 0;
}

.contest-award-share-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.contest-certificate-page {
    padding-bottom: clamp(56px, 8vw, 110px);
    padding-top: clamp(28px, 5vw, 74px);
}

.contest-certificate-card {
    background:
        linear-gradient(135deg, rgba(255, 250, 246, .96), rgba(255, 255, 255, .98)),
        radial-gradient(circle at top right, rgba(201, 168, 130, .22), transparent 34%);
    border: 1px solid rgba(201, 168, 130, .42);
    border-radius: 10px;
    box-shadow: 0 28px 82px rgba(78, 58, 40, .14);
    display: grid;
    gap: clamp(22px, 3vw, 34px);
    margin: 0 auto;
    max-width: 1040px;
    overflow: hidden;
    padding: clamp(22px, 4vw, 48px);
    position: relative;
}

.contest-certificate-card::before {
    border: 1px solid rgba(126, 95, 68, .18);
    border-radius: 8px;
    content: "";
    inset: clamp(10px, 1.8vw, 18px);
    pointer-events: none;
    position: absolute;
}

.contest-certificate-topline,
.contest-certificate-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: space-between;
    position: relative;
}

.contest-certificate-topline span,
.contest-certificate-topline small {
    color: var(--mpb-brun);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.contest-certificate-brand {
    background: #fff;
    border: 1px solid rgba(232, 217, 200, .9);
    border-radius: 10px;
    box-shadow: 0 14px 34px rgba(78, 58, 40, .08);
    justify-self: start;
    padding: 14px 18px;
    position: relative;
}

.contest-certificate-brand img {
    display: block;
    height: auto;
    width: clamp(190px, 18vw, 260px);
}

.contest-certificate-main {
    align-items: center;
    display: grid;
    gap: clamp(24px, 4vw, 54px);
    grid-template-columns: minmax(0, .95fr) minmax(300px, .65fr);
    position: relative;
}

.contest-certificate-copy {
    display: grid;
    gap: 14px;
    min-width: 0;
}

.contest-certificate-copy h1 {
    color: var(--ink);
    font-size: clamp(56px, 7vw, 108px);
    letter-spacing: 0;
    line-height: .86;
    margin: 0;
}

.contest-certificate-copy p {
    color: var(--muted);
    font-size: 17px;
    line-height: 1.62;
    margin: 0;
    max-width: 620px;
}

.contest-certificate-copy .contest-certificate-recipient {
    color: var(--ink);
    font-size: clamp(20px, 2.2vw, 30px);
    font-weight: 900;
    line-height: 1.22;
}

.contest-certificate-copy .contest-certificate-recipient strong {
    color: var(--mpb-brun);
}

.contest-certificate-media {
    border: 1px solid rgba(232, 217, 200, .9);
    border-radius: 10px;
    box-shadow: 0 20px 50px rgba(78, 58, 40, .14);
    margin: 0;
    overflow: hidden;
}

.contest-certificate-media img {
    aspect-ratio: 4 / 5;
    display: block;
    object-fit: cover;
    width: 100%;
}

.contest-certificate-media figcaption {
    background: #fff;
    color: var(--ink);
    font-size: 13px;
    font-weight: 900;
    padding: 12px 14px;
}

.contest-certificate-facts {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    position: relative;
}

.contest-certificate-facts div {
    background: rgba(255, 255, 255, .84);
    border: 1px solid var(--line);
    border-radius: 8px;
    display: grid;
    gap: 5px;
    padding: 14px;
}

.contest-certificate-facts dt {
    color: var(--mpb-brun);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.contest-certificate-facts dd {
    color: var(--ink);
    font-weight: 900;
    line-height: 1.35;
    margin: 0;
}

.contest-certificate-actions {
    justify-content: flex-start;
}

@media (max-width: 820px) {
    .contest-certificate-main,
    .contest-certificate-facts {
        grid-template-columns: 1fr;
    }

    .contest-certificate-actions .button {
        width: 100%;
    }
}

@media print {
    .site-header,
    .contest-certificate-actions,
    .public-pro-footer {
        display: none !important;
    }

    .contest-certificate-page {
        padding: 0;
    }

    .contest-certificate-card {
        box-shadow: none;
        margin: 0;
        max-width: none;
        min-height: 100vh;
    }
}

.contest-gallery-section {
    display: grid;
    gap: 22px;
}

.contest-public-leaderboard {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 16px;
    padding: 18px;
}

.contest-public-leaderboard-head {
    align-items: center;
    display: flex;
    gap: 14px;
    justify-content: space-between;
}

.contest-public-leaderboard-head h3 {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(28px, 3vw, 42px);
    letter-spacing: 0;
    line-height: 1.02;
}

.contest-public-leaderboard-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.contest-public-leaderboard-card {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 12px;
    grid-template-columns: 48px 72px minmax(0, 1fr);
    min-height: 98px;
    padding: 10px;
}

.contest-public-leaderboard-card > span {
    align-items: center;
    background: var(--ink);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 15px;
    font-weight: 950;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.contest-public-leaderboard-card img {
    aspect-ratio: 1 / 1;
    border-radius: 14px;
    display: block;
    object-fit: cover;
    width: 72px;
}

.contest-public-leaderboard-card strong {
    color: var(--ink);
    display: block;
    font-size: 14px;
    font-weight: 950;
    line-height: 1.25;
}

.contest-public-leaderboard-card small {
    color: var(--muted);
    display: block;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
    margin-top: 4px;
}

.contest-vote-share-banner {
    align-items: center;
    background: linear-gradient(135deg, #4d3a2a, #7e5f44);
    border-radius: 22px;
    box-shadow: 0 18px 42px rgba(77, 58, 42, .18);
    color: #fff;
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 18px;
}

.contest-vote-share-banner span {
    color: rgba(255, 255, 255, .72);
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .1em;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.contest-vote-share-banner strong {
    display: block;
    font-family: var(--font-serif);
    font-size: clamp(25px, 2.4vw, 35px);
    letter-spacing: 0;
    line-height: 1.05;
}

.contest-vote-share-banner p {
    color: rgba(255, 255, 255, .78);
    font-weight: 760;
    margin: 7px 0 0;
}

.contest-vote-share-banner .button {
    background: #fffaf7;
    border-color: transparent;
    color: var(--ink);
}

.contest-gallery-toolbar {
    align-items: end;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 22px;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 16px;
}

.contest-gallery-filter-group {
    display: grid;
    gap: 10px;
}

.contest-gallery-filter-group > span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contest-gallery-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.contest-gallery-filter {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 13px;
    font-weight: 900;
    gap: 8px;
    min-height: 38px;
    padding: 9px 13px;
}

.contest-gallery-filter.active,
.contest-gallery-filter:hover,
.contest-gallery-filter:focus-visible {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.contest-gallery-filter small {
    align-items: center;
    background: rgba(77, 58, 42, .1);
    border-radius: 999px;
    display: inline-flex;
    font-size: 11px;
    justify-content: center;
    min-width: 22px;
    padding: 3px 7px;
}

.contest-gallery-filter.active small,
.contest-gallery-filter:hover small,
.contest-gallery-filter:focus-visible small {
    background: rgba(255, 255, 255, .18);
}

.contest-gallery-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.contest-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    scroll-margin-top: 120px;
}

.contest-card:target {
    border-color: rgba(126, 95, 68, .62);
    box-shadow: 0 0 0 4px rgba(126, 95, 68, .14), var(--shadow-sm);
}

.contest-card-media {
    aspect-ratio: 4 / 5;
    background: #eadfd4;
    flex: 0 0 auto;
    pointer-events: none;
    z-index: 0;
}

.contest-card-media * {
    pointer-events: none;
}

.contest-card-media > span {
    left: 14px;
    top: 14px;
}

.contest-card-body {
    background: #fff;
    display: grid;
    flex: 1 1 auto;
    gap: 12px;
    padding: 20px;
    position: relative;
    z-index: 1;
}

.contest-card-body h3 {
    font-family: var(--font-serif);
    font-size: 28px;
    letter-spacing: 0;
}

.contest-card-category {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contest-card-rank-row {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.contest-card-status-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.contest-card-status-row span,
.contest-card-status-row small {
    border-radius: 999px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    padding: 8px 10px;
}

.contest-card-status-row span {
    background: rgba(130, 147, 123, .14);
    color: #52634c;
}

.contest-card-status-row span.is-pending {
    background: rgba(195, 148, 86, .16);
    color: #755421;
}

.contest-card-status-row span.is-danger {
    background: rgba(185, 83, 63, .13);
    color: #8a3f31;
}

.contest-card-status-row small {
    background: #fffaf7;
    border: 1px solid var(--line);
    color: var(--muted);
}

.contest-vote-status-row {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px;
}

.contest-vote-status-row span,
.contest-vote-status-row small {
    border-radius: 999px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    padding: 8px 10px;
}

.contest-vote-status-row span {
    background: rgba(195, 148, 86, .15);
    color: #755421;
}

.contest-vote-status-row small {
    background: #fff;
    border: 1px solid rgba(126, 95, 68, .16);
    color: var(--ink);
}

.contest-vote-status-row.is-danger span {
    background: rgba(185, 83, 63, .13);
    color: #8a3f31;
}

.contest-card-rank-row span {
    background: #f4ece2;
    border: 1px solid rgba(126, 95, 68, .16);
    border-radius: 999px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 920;
    line-height: 1;
    padding: 8px 10px;
}

.contest-extra-photo-note {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 14px;
    color: var(--ink);
    font-size: 13px;
    font-weight: 850;
    margin-top: 10px;
    padding: 10px 12px;
}

.contest-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.contest-card-actions .button {
    flex: 1 1 150px;
    min-height: 40px;
    padding-left: 12px;
    padding-right: 12px;
}

.vote-form {
    display: grid;
    gap: 10px;
}

.vote-form .button {
    width: 100%;
}

.contest-empty {
    display: grid;
    gap: 8px;
    grid-column: 1 / -1;
    min-height: 190px;
    place-content: center;
    padding: 32px;
    text-align: center;
}

.contest-empty strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 30px;
}

.local-seo-page {
    display: grid;
    gap: 34px;
    padding-bottom: 76px;
    padding-top: 44px;
}

.local-seo-hero {
    align-items: center;
    display: grid;
    gap: 42px;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 450px);
    min-height: 540px;
}

.local-seo-copy {
    display: grid;
    gap: 22px;
    max-width: 760px;
}

.local-seo-copy h1 {
    max-width: 760px;
}

.local-seo-copy .lead {
    max-width: 680px;
}

.local-seo-search {
    align-items: stretch;
    background: rgba(255, 255, 255, .94);
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) minmax(0, .85fr) auto;
    max-width: 820px;
    padding: 10px;
}

.local-seo-search .button-accent {
    border-radius: 22px;
    min-height: 70px;
    padding-left: 28px;
    padding-right: 28px;
}

.local-seo-proof {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.local-seo-proof span {
    align-items: center;
    background: rgba(255, 255, 255, .74);
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--text);
    display: inline-flex;
    font-size: 13px;
    font-weight: 900;
    gap: 8px;
    padding: 10px 13px;
}

.local-seo-proof span::before {
    background: var(--teal);
    border-radius: 50%;
    content: "";
    height: 7px;
    width: 7px;
}

.local-map {
    background: linear-gradient(135deg, #e8ded6, #fbf4ec);
    border: 1px solid var(--line);
    border-radius: 38px;
    box-shadow: var(--shadow-sm);
    height: 430px;
    overflow: hidden;
    position: relative;
}

.local-map::before {
    background:
        linear-gradient(90deg, rgba(36, 25, 21, .06) 1px, transparent 1px),
        linear-gradient(0deg, rgba(36, 25, 21, .06) 1px, transparent 1px);
    background-size: 48px 48px;
    content: "";
    inset: 0;
    position: absolute;
}

.local-map::after {
    background: rgba(130, 147, 123, .18);
    border: 2px solid rgba(130, 147, 123, .24);
    border-radius: 50%;
    content: "";
    height: 230px;
    left: 105px;
    position: absolute;
    top: 88px;
    width: 230px;
}

.local-pin-1 { left: 145px; top: 120px; z-index: 2; }
.local-pin-2 { left: 255px; top: 205px; z-index: 2; }
.local-pin-3 { left: 205px; top: 286px; z-index: 2; }

.local-map-note {
    background: rgba(255, 255, 255, .92);
    border: 1px solid var(--line);
    border-radius: 24px;
    bottom: 22px;
    box-shadow: var(--shadow-sm);
    left: 22px;
    padding: 20px;
    position: absolute;
    right: 22px;
    z-index: 3;
}

.local-map-note strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 28px;
}

.local-map-note p {
    font-size: 13px;
    margin-top: 6px;
}

.local-recommended-section {
    display: grid;
    gap: 22px;
}

.local-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.local-selection-tray {
    border-radius: 28px;
    justify-self: stretch;
    margin: -6px 0 12px;
    max-width: none;
    position: static;
    transform: none;
    width: 100%;
}

.local-selection-tray .selection-action {
    margin-left: auto;
}

.local-guide-layout {
    align-items: stretch;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr);
}

.local-zone-panel,
.local-editorial-panel,
.local-empty {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: var(--shadow-sm);
}

.local-zone-panel,
.local-editorial-panel {
    display: grid;
    gap: 18px;
    padding: clamp(24px, 3vw, 34px);
}

.local-city-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.local-city-list a {
    align-items: center;
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 14px;
    font-weight: 900;
    min-height: 40px;
    padding: 10px 13px;
}

.local-editorial-panel > p:not(.eyebrow) {
    color: #5f554e;
    font-size: 16px;
    line-height: 1.65;
}

.local-editorial-content {
    display: grid;
    gap: 14px;
}

.local-editorial-content .cms-text,
.local-editorial-content .cms-faq,
.local-editorial-content .cms-cta {
    margin: 0;
    max-width: none;
}

.local-editorial-content .cms-text {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 20px;
}

.local-editorial-content .cms-text h2 {
    font-family: var(--font-sans);
    font-size: 20px;
    line-height: 1.15;
}

.local-editorial-content .cms-text p {
    font-size: 14px;
}

.local-editorial-content .cms-faq {
    display: grid;
    gap: 10px;
}

.local-editorial-content .cms-faq details {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 15px 16px;
}

.local-final-cta {
    margin-bottom: 0;
    margin-top: 8px;
}

.specialty-page {
    display: grid;
    gap: 42px;
    padding-bottom: 76px;
    padding-top: 46px;
}

.specialty-hero {
    align-items: center;
    display: grid;
    gap: 42px;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
    min-height: 560px;
}

.specialty-hero-copy {
    display: grid;
    gap: 20px;
    max-width: 740px;
}

.specialty-hero-copy h1 {
    max-width: 720px;
}

.specialty-hero-copy .lead {
    max-width: 650px;
}

.specialty-search-card {
    align-items: stretch;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto;
    max-width: 720px;
    padding: 10px;
}

.specialty-search-card .button-accent {
    border-radius: 22px;
    min-height: 70px;
    padding-left: 28px;
    padding-right: 28px;
}

.specialty-proof-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.specialty-proof-row span {
    align-items: center;
    background: rgba(255, 255, 255, .76);
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--text);
    display: inline-flex;
    font-size: 13px;
    font-weight: 900;
    gap: 8px;
    padding: 10px 13px;
}

.specialty-proof-row span::before {
    background: var(--teal);
    border-radius: 50%;
    content: "";
    height: 7px;
    width: 7px;
}

.specialty-collage {
    display: grid;
    grid-template-columns: 1fr .72fr;
    grid-template-rows: 1fr 1fr;
    gap: 14px;
    min-height: 520px;
}

.specialty-collage-photo {
    background: var(--champagne);
    border: 1px solid var(--line);
    border-radius: 34px;
    box-shadow: var(--shadow-sm);
    display: block;
    min-height: 0;
    overflow: hidden;
    position: relative;
}

.specialty-collage-photo.main {
    grid-row: 1 / 3;
    min-height: 520px;
}

.specialty-collage-photo.small-one,
.specialty-collage-photo.small-two {
    min-height: 0;
}

.specialty-collage-photo img,
.specialty-collage-photo .photo-placeholder {
    display: block;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    width: 100%;
}

.specialty-collage-photo span:not(.photo-placeholder) {
    background: rgba(36, 25, 21, .78);
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    bottom: 16px;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    left: 16px;
    padding: 8px 11px;
    position: absolute;
}

.specialty-section {
    display: grid;
    gap: 22px;
}

.specialty-style-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.specialty-style-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    color: var(--ink);
    display: grid;
    gap: 12px;
    min-height: 176px;
    overflow: hidden;
    padding: 22px;
    position: relative;
}

.specialty-style-card::before {
    background: var(--teal);
    border-radius: 999px;
    content: "";
    height: 8px;
    width: 54px;
}

.specialty-style-card:nth-child(2n)::before {
    background: var(--clay);
}

.specialty-style-card:nth-child(3n)::before {
    background: var(--gold);
}

.specialty-style-card span {
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 850;
    letter-spacing: 0;
}

.specialty-style-card p {
    color: #5f554e;
    font-size: 14px;
    line-height: 1.55;
    margin: 0;
}

.specialty-guide-layout {
    align-items: stretch;
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.specialty-panel {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 18px;
    padding: clamp(24px, 3vw, 34px);
}

.specialty-panel > p:not(.eyebrow) {
    color: #5f554e;
    font-size: 16px;
    line-height: 1.65;
}

.specialty-advice-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.specialty-advice-grid div {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 20px;
    display: grid;
    gap: 6px;
    padding: 18px;
}

.specialty-advice-grid strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 20px;
}

.specialty-advice-grid span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 750;
    line-height: 1.45;
}

.specialty-city-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.specialty-city-list a {
    align-items: center;
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 14px;
    font-weight: 900;
    min-height: 42px;
    padding: 10px 14px;
}

.specialty-featured-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.selection-tray.specialty-selection-tray {
    border-radius: 28px;
    justify-self: stretch;
    margin: -8px 0 6px;
    max-width: none;
    position: static;
    transform: none;
    width: 100%;
}

.selection-tray.specialty-selection-tray .selection-action {
    margin-left: auto;
}

.specialty-faq-panel details {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 16px 18px;
}

.specialty-faq-panel summary {
    color: var(--ink);
    cursor: pointer;
    font-weight: 900;
}

.specialty-faq-panel details p {
    color: #5f554e;
    line-height: 1.6;
    margin-bottom: 0;
}

.specialty-guide-links {
    display: grid;
    gap: 12px;
}

.specialty-guide-links a {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 6px;
    padding: 18px;
}

.specialty-guide-links strong {
    color: var(--ink);
}

.specialty-guide-links span {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.specialty-final-cta {
    margin-bottom: 0;
}

.local-empty {
    display: grid;
    gap: 8px;
    grid-column: 1 / -1;
    min-height: 180px;
    place-content: center;
    padding: 30px;
    text-align: center;
}

@media (max-width: 1060px) {
    .pro-landing-hero,
    .pro-application-shell,
    .pro-resource-layout,
    .pro-roi-layout,
    .pro-resource-hero,
    .pro-resource-feature-layout,
    .pro-masterclass-strip,
    .pro-resource-article-layout,
    .contest-hero-public,
    .contest-participation-layout,
    .contest-rules-layout,
    .contest-winners-layout,
    .contest-brief-panel,
    .contest-editorial-showcase,
    .contest-phase-panel,
    .contest-health-card,
    .contest-engagement-panel,
    .contest-action-cue,
    .local-seo-hero,
    .local-guide-layout,
    .specialty-hero,
    .specialty-guide-layout {
        grid-template-columns: 1fr;
    }

    .pro-landing-hero {
        min-height: auto;
    }

    .pro-dashboard-preview {
        margin: 0 auto;
        max-width: 620px;
        transform: none;
        width: 100%;
    }

    .pro-application-intro {
        position: static;
    }

    .pro-application-rail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pro-resource-tool-preview,
    .pro-resource-article-aside {
        position: static;
    }

    .contest-hero-gallery {
        justify-self: stretch;
        max-width: none;
        min-width: 0;
    }

    .contest-hero-stat {
        justify-self: start;
    }

    .contest-rules-card-main {
        grid-row: auto;
    }

    .contest-criteria-card,
    .contest-compliance-card {
        grid-column: auto;
    }

    .pro-benefit-grid,
    .pro-pricing-grid,
    .member-onboarding-rail,
    .publication-focus-grid,
    .member-contest-stat-grid,
    .member-contest-edition-grid,
    .member-contest-award-grid,
    .pro-resource-grid-wide,
    .pro-masterclass-list,
    .contest-path-strip,
    .contest-audience-strip,
    .contest-timeline,
    .contest-public-leaderboard-grid,
    .contest-gallery-grid,
    .local-card-grid,
    .specialty-featured-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .local-map {
        min-height: 360px;
    }

    .specialty-collage {
        min-height: 420px;
    }

    .specialty-collage-photo.main {
        min-height: 420px;
    }

    .specialty-style-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .contest-compliance-list {
        grid-template-columns: 1fr;
    }

    .pro-landing-page {
        padding-top: 28px;
    }

    .pro-landing-hero {
        gap: 30px;
    }

    .pro-page-section,
    .pro-application-section {
        padding-bottom: 52px;
        padding-top: 46px;
    }

    .pro-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .pro-section-heading > p {
        flex-basis: auto;
        max-width: 100%;
    }

    .pro-dashboard-preview {
        border-radius: 26px;
        padding: 18px;
    }

    .professional-application-step,
    .siren-lookup-row .button-secondary {
        scroll-margin-top: 112px;
    }

    .siren-lookup-row {
        grid-template-columns: 1fr;
    }

    .siren-lookup-row .button-secondary {
        min-height: 52px;
        width: 100%;
    }

    .pro-preview-head,
    .pro-preview-lead {
        align-items: start;
        grid-template-columns: 1fr;
    }

    .pro-preview-head {
        display: grid;
    }

    .pro-preview-head .badge {
        justify-self: start;
    }

    .pro-preview-lead > span {
        justify-self: start;
    }

    .pro-benefit-grid,
    .pro-resource-grid,
    .pro-resource-grid-wide,
    .pro-masterclass-list,
    .pro-onboarding-steps,
    .pro-pricing-grid,
    .member-contest-submission-card,
    .member-contest-edition-card dl,
    .contest-index-grid,
    .contest-timeline,
    .contest-public-leaderboard-grid,
    .contest-gallery-grid,
    .contest-extra-photo-card,
    .contest-submit-form,
    .contest-own-submission-card,
    .contest-own-submission-form,
    .contest-upload-preview-grid,
    .contest-vote-panel,
    .contest-vote-facts,
    .contest-winner-card,
    .contest-brief-panel,
    .contest-editorial-showcase,
    .contest-health-card,
    .contest-engagement-panel,
    .local-seo-search,
    .local-card-grid,
    .specialty-search-card,
    .specialty-featured-grid,
    .specialty-advice-grid {
        grid-template-columns: 1fr;
    }

    .contest-public-leaderboard-head {
        align-items: stretch;
        flex-direction: column;
    }

    .pro-benefit-grid,
    .pro-resource-hub,
    .pro-resource-section,
    .pro-onboarding-section,
    .pro-pricing,
    .pro-roi-section,
    .contest-index-page,
    .contest-show-page,
    .contest-vote-page,
    .local-seo-page,
    .specialty-page {
        padding-bottom: 52px;
    }

    .pro-resource-hero-copy,
    .pro-resource-article-head {
        border-radius: 18px;
        min-height: auto;
    }

    .pro-resource-feature-card {
        grid-template-columns: 1fr;
    }

    .pro-resource-feature-actions {
        align-content: start;
        min-width: 0;
    }

    .pro-resource-footer-cta {
        border-radius: 18px;
        margin-bottom: var(--pro-section-space);
        padding: 24px 20px;
    }

    .pro-resource-footer-cta .button {
        width: 100%;
    }

    .contest-hero-public {
        border-radius: 28px;
        padding: 28px 22px;
    }

    .contest-vote-page {
        min-height: auto;
    }

    .contest-vote-panel {
        border-radius: 28px;
        min-height: 0;
    }

    .contest-vote-media {
        min-height: 0;
    }

    .contest-vote-media img {
        aspect-ratio: 16 / 11;
        height: auto;
    }

    .contest-vote-copy {
        padding: 28px 22px;
    }

    .contest-vote-copy h1 {
        font-size: 38px;
    }

    .contest-hero-copy h1 {
        font-size: 38px;
    }

    .contest-hero-stat {
        min-width: 0;
        width: 100%;
    }

    .contest-hero-gallery,
    .contest-path-strip,
    .contest-audience-strip,
    .contest-phase-panel {
        grid-template-columns: 1fr;
    }

    .contest-phase-facts {
        min-width: 0;
    }

    .contest-brief-metrics {
        justify-content: flex-start;
    }

    .contest-editorial-showcase-metrics {
        justify-content: flex-start;
    }

    .contest-health-metrics {
        justify-self: stretch;
        min-width: 0;
    }

    .contest-engagement-metrics {
        justify-content: flex-start;
    }

    .contest-gallery-toolbar {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .contest-own-share-card,
    .contest-vote-share-banner,
    .member-contest-share-card {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .contest-own-share-card .button,
    .contest-vote-share-banner .button,
    .member-contest-share-card .button,
    .contest-award-share-actions .button,
    .member-contest-award-share .button {
        width: 100%;
    }

    .contest-award-share-actions,
    .member-contest-award-share > div {
        align-items: stretch;
        flex-direction: column;
    }

    .contest-gallery-filter {
        flex: 1 1 auto;
        justify-content: center;
        min-width: min(100%, 138px);
    }

    .contest-own-submission-media {
        aspect-ratio: 4 / 3;
        min-height: 0;
    }

    .member-contest-submission-media {
        aspect-ratio: 4 / 3;
        min-height: 0;
    }

    .contest-own-submission-form .field {
        min-width: 0;
    }

    .contest-hero-gallery {
        grid-template-rows: none;
        height: auto;
    }

    .contest-hero-gallery figure:not(.contest-hero-gallery-main),
    .contest-hero-gallery .contest-hero-stat {
        display: none;
    }

    .contest-hero-gallery-main {
        grid-row: auto;
        min-height: 0;
    }

    .contest-hero-gallery figure {
        aspect-ratio: 16 / 10;
        min-height: 0;
    }

    .contest-path-strip article,
    .contest-audience-strip article {
        min-height: auto;
    }

    .contest-winner-media,
    .contest-runner-card > div {
        min-height: 240px;
    }

    .local-seo-hero {
        gap: 30px;
        min-height: auto;
    }

    .local-seo-search .button-accent,
    .specialty-search-card .button-accent {
        min-height: 54px;
    }

    .specialty-hero {
        gap: 30px;
        min-height: auto;
    }

    .specialty-collage {
        grid-template-columns: 1fr 1fr;
        min-height: 340px;
    }

    .specialty-collage-photo,
    .specialty-collage-photo.main {
        border-radius: 26px;
        min-height: 160px;
    }

    .specialty-collage-photo.main {
        grid-column: 1 / -1;
        grid-row: auto;
        min-height: 260px;
    }

    .specialty-style-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .local-map {
        border-radius: 28px;
        height: 340px;
    }

    .local-map::after {
        height: 190px;
        left: 72px;
        top: 70px;
        width: 190px;
    }

    .local-pin-1 { left: 112px; top: 105px; }
    .local-pin-2 { left: 220px; top: 170px; }
    .local-pin-3 { left: 165px; top: 230px; }
}

@media (max-width: 520px) {
    .specialty-style-grid {
        grid-template-columns: 1fr;
    }

    .specialty-style-card {
        min-height: 148px;
    }

    .specialty-collage {
        grid-template-columns: 1fr;
    }

    .specialty-collage-photo.small-one,
    .specialty-collage-photo.small-two {
        min-height: 170px;
    }

    .pro-preview-photographers {
        grid-template-columns: 1fr;
    }

    .pro-preview-photographers figure {
        align-items: center;
        display: grid;
        gap: 10px;
        grid-template-columns: 72px minmax(0, 1fr);
    }

    .pro-preview-photographers img,
    .pro-preview-photographers .photo-placeholder {
        border-radius: 16px;
        width: 72px;
    }

    .pro-preview-photographers figcaption {
        margin-top: 0;
        white-space: normal;
    }

    .pro-kpi {
        padding: 15px;
    }

    .pro-kpi strong {
        font-size: 30px;
    }

    .pro-price-card,
    .pro-toolbox,
    .pro-benefit-card,
    .pro-onboarding-steps article,
    .pro-resource-card {
        border-radius: 22px;
        padding: 20px;
    }
}

.directory-page {
    display: grid;
    gap: 24px;
    padding-bottom: 156px;
}

.directory-header {
    border-bottom: 0;
    padding: 28px;
}

.chip-row,
.result-tabs {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.chip {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--text);
    display: inline-flex;
    font-size: 13px;
    font-weight: 850;
    min-height: 38px;
    padding: 0 15px;
}

.chip.active {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.directory-layout {
    align-items: start;
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(260px, 320px) minmax(0, 1fr) minmax(340px, 420px);
}

.filter-sidebar {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 0;
    padding: 22px;
    position: sticky;
    top: 96px;
}

.filter-head {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
}

.filter-head h2 {
    font-family: var(--font-sans);
    font-size: 24px;
}

.filter-head a {
    color: var(--muted);
    font-size: 13px;
    font-weight: 750;
}

.filter-group {
    border-bottom: 1px solid var(--line);
    display: grid;
    gap: 8px;
    padding: 16px 0;
}

.filter-group input,
.filter-group select {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 14px;
    color: var(--ink);
    font: inherit;
    font-weight: 800;
    min-height: 44px;
    padding: 10px 12px;
    width: 100%;
}

.filter-option-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.filter-option {
    cursor: pointer;
    display: inline-flex;
}

.filter-option input {
    height: 1px;
    margin: 0;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.filter-option span {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--text);
    display: inline-flex;
    font-size: 13px;
    font-weight: 900;
    min-height: 38px;
    padding: 0 12px;
}

.filter-option input:checked + span {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.filter-sidebar button {
    margin-top: 18px;
    width: 100%;
}

.directory-results {
    display: grid;
    gap: 18px;
}

.result-tabs {
    justify-content: space-between;
}

.sort-chip-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.sort-chip-row .chip {
    text-decoration: none;
}

.result-tabs small {
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
}

.directory-card-grid {
    align-items: start;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.directory-empty-state {
    background:
        linear-gradient(135deg, rgba(250, 243, 235, .92), rgba(255, 253, 250, .98)),
        #fffdfa;
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 14px;
    grid-column: 1 / -1;
    min-height: 250px;
    padding: clamp(24px, 3.2vw, 36px);
}

.directory-empty-state h2 {
    font-size: clamp(30px, 3.4vw, 46px);
    max-width: 760px;
}

.directory-empty-state p:not(.eyebrow) {
    color: var(--muted);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.58;
    max-width: 640px;
}

.directory-empty-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 4px;
}

.directory-card-grid .photographer-card {
    border-radius: 24px;
    min-width: 0;
}

.directory-card-grid .card-media {
    aspect-ratio: 1.45 / 1;
}

.directory-card-grid .photographer-card .body {
    gap: 12px;
    min-width: 0;
    padding: 18px;
}

.directory-card-grid .card-title-row {
    gap: 10px;
}

.directory-card-grid .card-title-row h3 {
    font-size: 20px;
    min-width: 0;
    overflow-wrap: anywhere;
}

.directory-card-grid .meta {
    font-size: 12px;
    min-width: 0;
    overflow-wrap: break-word;
    white-space: normal;
}

.directory-card-grid .badge-list {
    gap: 6px;
}

.directory-card-grid .badge {
    font-size: 10px;
    min-height: 28px;
    padding: 6px 9px;
}

.directory-card-grid .photographer-card p {
    display: -webkit-box;
    font-size: 14px;
    line-height: 1.48;
    -webkit-line-clamp: 2;
    overflow: hidden;
    -webkit-box-orient: vertical;
}

.directory-card-grid .card-meta-strip {
    gap: 7px;
}

.directory-card-grid .card-meta-strip span {
    font-size: 11px;
    padding: 7px 10px;
}

.directory-card-grid .card-actions {
    flex-wrap: wrap;
    gap: 10px;
    min-width: 0;
}

.directory-card-grid .card-actions .button,
.directory-card-grid .card-actions button {
    flex: 1 1 130px;
    min-width: 0;
    min-height: 42px;
    padding: 10px 14px;
    text-align: center;
    white-space: normal;
}

.directory-side-panel {
    align-self: start;
    display: grid;
    gap: 16px;
    position: sticky;
    top: 96px;
}

.directory-map-card {
    background: #fffdfa;
    border: 1px solid var(--line);
    border-radius: 26px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 12px;
    padding: 14px;
    position: relative;
}

.directory-map-head {
    align-items: start;
    display: flex;
    gap: 14px;
    justify-content: space-between;
    padding: 4px 4px 0;
}

.directory-map-head-actions {
    align-items: start;
    display: flex;
    flex: 0 0 auto;
    gap: 8px;
}

.directory-map-head > div:first-child {
    min-width: 0;
}

.directory-map-head h2 {
    font-size: 28px;
    margin: 2px 0 0;
    overflow-wrap: anywhere;
}

.directory-map-head .eyebrow {
    margin: 0;
}

.directory-map-head span {
    color: var(--muted);
    display: block;
    font-size: 13px;
    font-weight: 850;
    margin-top: 4px;
}

.directory-map-meta {
    align-items: center;
    background: var(--ink);
    border-radius: 18px;
    color: #fff;
    display: grid;
    flex: 0 0 auto;
    min-width: 72px;
    padding: 10px 12px;
    text-align: center;
}

.directory-map-fullscreen-toggle {
    align-items: center;
    background: #fbf6f0;
    border: 1px solid rgba(232, 222, 214, .92);
    border-radius: 999px;
    box-shadow: none;
    color: var(--ink);
    cursor: pointer;
    display: inline-flex;
    font-size: 12px;
    font-weight: 950;
    justify-content: center;
    min-height: 38px;
    padding: 0 13px;
    white-space: nowrap;
}

.directory-map-fullscreen-toggle:hover {
    background: #f4ebe2;
    transform: translateY(-1px);
}

.directory-map-fullscreen-toggle span {
    color: inherit;
    display: inline;
    font-size: inherit;
    margin: 0;
}

.directory-map-meta strong {
    color: #fff;
    font-size: 18px;
    line-height: 1;
}

.directory-map-meta span {
    color: rgba(255, 255, 255, .72);
    font-size: 10px;
    letter-spacing: 0;
    margin: 3px 0 0;
    text-transform: uppercase;
}

.directory-map-toolbar {
    align-items: center;
    background: #fbf6f0;
    border: 1px solid rgba(232, 222, 214, .92);
    border-radius: 16px;
    color: var(--muted);
    display: flex;
    font-size: 12px;
    font-weight: 850;
    gap: 10px;
    justify-content: space-between;
    padding: 10px 12px;
}

.directory-map-toolbar strong {
    color: var(--ink);
    font-size: 12px;
}

.directory-map {
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .4), rgba(255, 255, 255, 0) 46%),
        linear-gradient(135deg, #ede6de, #fbf4ec 62%, #f1e7de);
    border: 1px solid var(--line);
    border-radius: 24px;
    height: 430px;
    overflow: hidden;
    position: relative;
}

.sr-only {
    clip: rect(0, 0, 0, 0);
    border: 0;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.directory-google-map,
.directory-map-fallback {
    inset: 0;
    position: absolute;
}

.directory-google-map {
    background: #fbf6f0;
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease;
    z-index: 2;
}

.directory-map-card.is-google-map-ready .directory-google-map {
    opacity: 1;
    pointer-events: auto;
}

.directory-map-fallback {
    transition: opacity .18s ease;
    z-index: 1;
}

.directory-map-fallback-status {
    background: rgba(255, 253, 250, .92);
    border: 1px solid rgba(232, 222, 214, .92);
    border-radius: 999px;
    box-shadow: 0 12px 28px rgba(36, 25, 21, .08);
    color: var(--ink);
    font-size: 11px;
    font-weight: 950;
    left: 16px;
    padding: 8px 10px;
    position: absolute;
    top: 16px;
    z-index: 4;
}

.directory-map-card.is-google-map-ready .directory-map-fallback {
    opacity: 0;
    pointer-events: none;
}

.directory-map-card.is-google-map-ready .directory-map::before,
.directory-map-card.is-google-map-ready .directory-map::after {
    opacity: 0;
}

.map-france-outline {
    filter: drop-shadow(0 18px 42px rgba(36, 25, 21, .08));
    height: min(78%, 340px);
    left: 50%;
    opacity: .74;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%) rotate(-4deg);
    width: min(78%, 340px);
    z-index: 1;
}

.map-france-outline path {
    fill: rgba(255, 253, 250, .66);
    stroke: rgba(130, 147, 123, .35);
    stroke-width: 5;
}

.google-map-pin {
    align-items: center;
    appearance: none;
    background: #4e3a28;
    border: 4px solid #fffaf6;
    border-radius: 999px;
    box-shadow: 0 0 0 4px rgba(78, 58, 40, .18), 0 14px 30px rgba(36, 25, 21, .28);
    box-sizing: border-box;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 950;
    height: 38px;
    isolation: isolate;
    justify-content: center;
    line-height: 1;
    min-height: 38px;
    outline-offset: 4px;
    padding: 0;
    position: relative;
    transform: translateY(-2px);
    transition: background-color .16s ease, box-shadow .16s ease, opacity .16s ease, transform .16s ease;
    width: 38px;
}

.google-map-pin::after {
    border: 2px solid rgba(78, 58, 40, .18);
    border-radius: inherit;
    content: "";
    inset: -8px;
    position: absolute;
    z-index: -1;
}

.google-map-pin span {
    position: relative;
    z-index: 1;
}

.google-map-pin:hover,
.google-map-pin:focus-visible {
    box-shadow: 0 0 0 5px rgba(78, 58, 40, .22), 0 18px 36px rgba(36, 25, 21, .32);
    transform: translateY(-4px) scale(1.04);
}

.google-map-pin.is-selected {
    background: #7d5f44;
    border-color: #fffaf6;
    box-shadow: 0 0 0 6px rgba(125, 95, 68, .24), 0 18px 38px rgba(36, 25, 21, .34);
}

.google-map-pin.is-selected::after {
    border-color: rgba(125, 95, 68, .32);
}

.google-map-pin.is-selection-incompatible {
    background: #8b7b72;
    opacity: .82;
}

.directory-map-card.is-map-fullscreen .google-map-pin {
    border-width: 5px;
    box-shadow: 0 0 0 5px rgba(78, 58, 40, .2), 0 18px 40px rgba(36, 25, 21, .34);
    font-size: 14px;
    height: 44px;
    min-height: 44px;
    width: 44px;
}

.directory-map::before {
    background:
        linear-gradient(90deg, rgba(36, 25, 21, .05) 1px, transparent 1px),
        linear-gradient(0deg, rgba(36, 25, 21, .05) 1px, transparent 1px);
    background-size: 48px 48px;
    content: "";
    inset: 0;
    opacity: .75;
    position: absolute;
}

.directory-map::after {
    border: 1px dashed rgba(130, 147, 123, .44);
    border-radius: 50%;
    content: "";
    height: min(62%, 280px);
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(62%, 280px);
}

.map-area,
.map-road,
.map-center-label {
    pointer-events: none;
    position: absolute;
}

.map-area {
    background: rgba(130, 147, 123, .16);
    border: 1px solid rgba(130, 147, 123, .22);
    border-radius: 38% 62% 48% 52%;
    z-index: 1;
}

.map-area-primary {
    height: 150px;
    left: 10%;
    top: 12%;
    transform: rotate(-12deg);
    width: 190px;
}

.map-area-secondary {
    background: rgba(201, 111, 83, .12);
    border-color: rgba(201, 111, 83, .18);
    bottom: 16%;
    height: 170px;
    right: 8%;
    transform: rotate(14deg);
    width: 210px;
}

.map-road {
    background: rgba(255, 253, 250, .76);
    border: 1px solid rgba(232, 222, 214, .82);
    border-radius: 999px;
    box-shadow: 0 1px 0 rgba(36, 25, 21, .04);
    height: 12px;
    z-index: 1;
}

.map-road-a {
    left: -12%;
    top: 33%;
    transform: rotate(-12deg);
    width: 128%;
}

.map-road-b {
    left: 18%;
    top: 0;
    transform: rotate(84deg);
    transform-origin: top left;
    width: 116%;
}

.map-road-c {
    left: 12%;
    top: 70%;
    transform: rotate(18deg);
    width: 92%;
}

.map-center-label {
    background: rgba(255, 253, 250, .88);
    border: 1px solid rgba(232, 222, 214, .9);
    border-radius: 18px;
    box-shadow: 0 14px 34px rgba(36, 25, 21, .1);
    color: var(--ink);
    display: grid;
    gap: 2px;
    left: 50%;
    max-width: min(210px, calc(100% - 44px));
    padding: 10px 12px;
    text-align: center;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
}

.map-center-label strong {
    font-size: 13px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.map-center-label span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 850;
}

.map-pin {
    align-items: center;
    appearance: none;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    color: #fff;
    display: flex;
    font-size: 12px;
    font-weight: 900;
    height: 46px;
    justify-content: center;
    min-height: 46px;
    padding: 0;
    position: absolute;
    width: 46px;
    z-index: 4;
}

.map-pin::before {
    background: #4e3a28;
    border: 5px solid #fffaf6;
    border-radius: 50% 50% 50% 8px;
    box-shadow: 0 0 0 4px rgba(78, 58, 40, .16), 0 16px 32px rgba(36, 25, 21, .26);
    content: "";
    height: 36px;
    left: 2px;
    position: absolute;
    top: 0;
    transform: rotate(-45deg);
    width: 36px;
    z-index: -1;
}

.directory-map .map-pin {
    left: var(--pin-x);
    top: var(--pin-y);
    transform: translate(-50%, -100%);
}

.map-pin:hover {
    transform: translateY(-1px);
}

.directory-map .map-pin:hover {
    transform: translate(-50%, -100%) translateY(-2px);
}

.map-pin.is-selected::before {
    background: var(--clay);
    box-shadow: 0 0 0 7px rgba(125, 95, 68, .22), 0 18px 38px rgba(36, 25, 21, .3);
}

.map-pin:disabled {
    cursor: not-allowed;
    opacity: .45;
}

.map-pin:nth-of-type(odd)::before {
    background: var(--clay);
}

.map-pin.is-selection-incompatible::before {
    background: #8b7b72;
    box-shadow: 0 10px 22px rgba(36, 25, 21, .18);
}

.map-pin.is-selection-incompatible {
    opacity: .82;
}

.map-pin-index {
    align-items: center;
    display: inline-flex;
    height: 36px;
    justify-content: center;
    line-height: 1;
    width: 36px;
}

.directory-map-card.is-map-fullscreen .map-pin {
    font-size: 13px;
    height: 52px;
    min-height: 52px;
    width: 52px;
}

.directory-map-card.is-map-fullscreen .map-pin::before {
    height: 42px;
    width: 42px;
}

.directory-map-card.is-map-fullscreen .map-pin-index {
    height: 42px;
    width: 42px;
}

.map-pin-card {
    background: #fff;
    border: 1px solid rgba(232, 222, 214, .94);
    border-radius: 14px;
    box-shadow: 0 16px 36px rgba(36, 25, 21, .14);
    color: var(--ink);
    display: grid;
    gap: 2px;
    left: 50%;
    max-width: 190px;
    min-width: 150px;
    opacity: 0;
    padding: 9px 10px;
    pointer-events: none;
    position: absolute;
    text-align: left;
    top: calc(100% + 6px);
    transform: translate(-50%, -4px);
    transition: opacity .18s ease, transform .18s ease;
    z-index: 6;
}

.map-pin-card strong,
.map-pin-card small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.map-pin-card strong {
    color: var(--ink);
    font-size: 12px;
}

.map-pin-card small {
    color: var(--muted);
    font-size: 10px;
}

.map-pin:hover .map-pin-card,
.map-pin:focus-visible .map-pin-card {
    opacity: 1;
    transform: translate(-50%, 0);
}

.map-empty,
.map-note {
    background: rgba(255, 255, 255, .92);
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: var(--shadow-sm);
    padding: 22px;
    position: absolute;
    z-index: 3;
}

.map-empty {
    left: 22px;
    right: 22px;
    top: 50%;
    transform: translateY(-50%);
}

.map-note {
    bottom: 24px;
    left: 18px;
    max-width: 260px;
    padding: 14px 16px;
    right: auto;
}

.map-empty p,
.map-note p {
    font-size: 13px;
    margin-top: 6px;
}

.directory-map-list {
    display: grid;
    gap: 8px;
}

html.has-directory-map-fullscreen,
body.has-directory-map-fullscreen {
    overflow: hidden;
}

body.has-directory-map-fullscreen .site-header {
    pointer-events: none;
    z-index: 0;
}

.directory-map-card.is-map-fullscreen {
    border-radius: 22px;
    box-shadow: 0 0 0 100vmax rgba(36, 25, 21, .48), 0 34px 92px rgba(36, 25, 21, .28);
    display: grid;
    gap: 14px;
    grid-template-areas:
        "head head"
        "toolbar toolbar"
        "map list";
    grid-template-columns: minmax(0, 1fr) minmax(286px, 360px);
    grid-template-rows: auto auto minmax(0, 1fr);
    inset: max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));
    max-height: none;
    overflow: hidden;
    padding: clamp(12px, 1.7vw, 20px);
    position: fixed;
    width: auto;
    z-index: 10000;
}

.directory-map-card.is-map-fullscreen .directory-map-head {
    grid-area: head;
    padding: 0;
}

.directory-map-card.is-map-fullscreen .directory-map-toolbar {
    grid-area: toolbar;
}

.directory-map-card.is-map-fullscreen .directory-map {
    grid-area: map;
    height: 100%;
    min-height: 420px;
}

.directory-map-card.is-map-fullscreen .directory-map-list {
    align-content: start;
    background: #fffaf6;
    border: 1px solid rgba(232, 222, 214, .92);
    border-radius: 18px;
    grid-area: list;
    max-height: 100%;
    overflow: auto;
    padding: 10px;
}

.directory-map-card.is-map-fullscreen .directory-map-fullscreen-toggle {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

@media (max-width: 720px) {
    .directory-map-card.is-map-fullscreen {
        border-radius: 18px;
        grid-template-areas:
            "head"
            "toolbar"
            "map"
            "list";
        grid-template-columns: 1fr;
        grid-template-rows: auto auto minmax(260px, 1fr) auto;
        inset: max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
        overflow: auto;
    }

    .directory-map-card.is-map-fullscreen .directory-map-head {
        gap: 10px;
    }

    .directory-map-card.is-map-fullscreen .directory-map {
        height: min(56svh, 520px);
        min-height: 300px;
    }

    .directory-map-card.is-map-fullscreen .directory-map-list {
        max-height: 34svh;
        overflow: auto;
    }
}

.directory-map-list-item {
    align-items: center;
    background: #fff;
    border: 1px solid rgba(232, 222, 214, .86);
    border-radius: 18px;
    display: grid;
    gap: 9px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: 8px;
}

.directory-map-list-rank {
    align-items: center;
    background: var(--mint);
    border-radius: 999px;
    color: var(--teal);
    display: inline-flex;
    font-size: 12px;
    font-weight: 950;
    height: 30px;
    justify-content: center;
    width: 30px;
}

.directory-map-list-item strong,
.directory-map-list-item small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.directory-map-list-item strong {
    color: var(--ink);
    font-size: 13px;
}

.directory-map-list-item small {
    color: var(--muted);
    font-size: 11px;
    font-weight: 850;
}

.directory-map-list-item button {
    background: var(--clay);
    border: 0;
    box-shadow: none;
    color: #fff;
    cursor: pointer;
    font-size: 12px;
    font-weight: 950;
    min-height: 38px;
    padding: 9px 12px;
}

.directory-map-list-item button[aria-pressed="true"] {
    background: var(--ink);
}

.selection-tray {
    background: rgba(36, 25, 21, .96);
    border-radius: 999px;
    bottom: 28px;
    left: 50%;
    margin: 0;
    max-width: 760px;
    padding: 12px 14px 12px 24px;
    position: sticky;
    transform: translateX(-50%);
    width: min(760px, calc(100vw - 40px));
}

.selection-summary {
    color: #fff;
    display: grid;
    gap: 2px;
    min-width: 0;
}

.selection-summary strong {
    color: #fff;
    font-size: 14px;
}

.selection-summary span,
.selection-summary small {
    color: rgba(255, 255, 255, .68);
    display: block;
    font-size: 12px;
    font-weight: 750;
    max-width: 460px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.selection-summary small {
    color: #f0b4a2;
}

.selection-action[data-disabled] {
    opacity: .58;
    pointer-events: none;
}

.is-selection-link-selected.button-accent,
.is-selection-link-selected .button-accent {
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .34), 0 14px 32px rgba(36, 25, 21, .14);
}

.directory-selection-tray {
    align-items: center;
    border: 1px solid rgba(255, 255, 255, .12);
    display: flex;
    gap: 16px;
    justify-self: auto;
    left: 50%;
    margin: 0;
    max-width: 780px;
    padding: 12px 14px 12px 18px;
    position: fixed;
    transform: translateX(-50%);
    width: min(780px, calc(100vw - 40px));
    z-index: 80;
}

.directory-page:not(.has-directory-selection) .directory-selection-tray {
    pointer-events: none;
}

.directory-selection-tray .selection-avatars {
    display: flex;
    flex: 0 0 auto;
}

.directory-selection-tray .selection-avatars span {
    background: linear-gradient(135deg, var(--champagne), var(--clay));
    border: 2px solid rgba(255, 255, 255, .84);
    border-radius: 50%;
    height: 34px;
    margin-left: -8px;
    width: 34px;
}

.directory-selection-tray .selection-avatars span:first-child {
    margin-left: 0;
}

.directory-selection-tray .selection-summary {
    flex: 1 1 auto;
}

.directory-selection-tray .selection-list,
.directory-selection-tray .selection-reassurance {
    display: none;
}

.directory-selection-tray .selection-action {
    flex: 0 0 auto;
    min-width: 210px;
}

.selection-list {
    display: grid;
    gap: 8px;
}

.selection-empty {
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 18px;
    color: rgba(255, 255, 255, .72);
    font-size: 12px;
    font-weight: 750;
    line-height: 1.45;
    margin: 0;
    padding: 11px 12px;
}

.selection-list-item {
    align-items: center;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 18px;
    display: grid;
    gap: 10px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: 9px;
}

.selection-list-rank {
    align-items: center;
    background: var(--clay);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 12px;
    font-weight: 950;
    height: 28px;
    justify-content: center;
    width: 28px;
}

.selection-list-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
    text-decoration: none;
}

a.selection-list-copy {
    border-radius: 12px;
    margin: -4px;
    padding: 4px;
    transition: background .18s ease;
}

a.selection-list-copy:hover {
    background: rgba(255, 255, 255, .08);
}

.selection-list-copy strong,
.selection-list-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.selection-list-copy strong {
    color: #fff;
    font-size: 13px;
}

.selection-list-copy small {
    color: rgba(255, 255, 255, .62);
    font-size: 11px;
    font-weight: 800;
}

.selection-list-remove {
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 999px;
    box-shadow: none;
    color: rgba(255, 255, 255, .76);
    cursor: pointer;
    font-size: 11px;
    font-weight: 900;
    padding: 8px 10px;
}

.selection-list-remove:hover {
    background: rgba(255, 255, 255, .14);
    color: #fff;
}

.selection-reassurance {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.selection-reassurance span {
    background: rgba(255, 255, 255, .09);
    border-radius: 999px;
    color: rgba(255, 255, 255, .72);
    font-size: 11px;
    font-weight: 850;
    padding: 7px 9px;
}

.selection-cart {
    color: var(--ink);
    flex: 0 0 auto;
    position: relative;
    z-index: 45;
}

.selection-cart-panel {
    background: rgba(36, 25, 21, .98);
    border: 1px solid rgba(255, 255, 255, .12);
    box-shadow: 0 24px 80px rgba(36, 25, 21, .22);
    pointer-events: auto;
}

.selection-cart-shell {
    align-items: center;
    background: rgba(255, 255, 255, .88);
    border: 1px solid rgba(232, 222, 214, .78);
    border-radius: 999px;
    box-shadow: 0 18px 44px rgba(36, 25, 21, .09);
    display: block;
    padding: 7px 10px;
    pointer-events: auto;
}

.selection-cart-toggle {
    align-items: center;
    background: transparent;
    border: 0;
    box-shadow: none;
    color: var(--ink);
    cursor: pointer;
    display: flex;
    gap: 15px;
    min-width: 0;
    min-height: 58px;
    padding: 0 15px 0 7px;
    text-align: left;
}

.selection-cart-mark {
    background: #f8dfcf;
    border-radius: 999px;
    display: inline-block;
    flex: 0 0 auto;
    height: 52px;
    position: relative;
    width: 52px;
}

.selection-cart-mark::before,
.selection-cart-mark::after {
    border: 2px solid var(--ink);
    content: "";
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    transform-origin: center;
}

.selection-cart-mark::before {
    border-right: 0;
    border-top: 0;
    height: 11px;
    transform: translate(-50%, -54%) rotate(-45deg);
    width: 21px;
}

.selection-cart-mark::after {
    display: none;
}

.selection-cart-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.selection-cart-copy strong,
.selection-cart-copy small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.selection-cart-copy strong {
    color: var(--ink);
    font-size: 15px;
    font-weight: 950;
}

.selection-cart-copy small {
    color: var(--muted);
    font-size: 14px;
    font-weight: 850;
}

.selection-cart-count::after {
    content: " photographes";
}

.selection-cart-submit {
    align-items: center;
    color: #fff;
    display: inline-flex;
    justify-content: center;
    min-height: 46px;
    padding-left: 18px;
    padding-right: 18px;
    text-align: center;
    width: 100%;
}

.selection-cart-submit[data-disabled] {
    opacity: .52;
    pointer-events: none;
}

.selection-cart-panel {
    border-radius: 28px;
    display: grid;
    gap: 14px;
    max-height: min(62vh, 520px);
    overflow: auto;
    padding: 18px;
    position: absolute;
    right: 0;
    top: calc(100% + 12px);
    width: min(390px, calc(100vw - 32px));
}

.selection-cart-panel[hidden] {
    display: none;
}

.selection-cart-panel-head {
    align-items: start;
    display: flex;
    gap: 16px;
    justify-content: space-between;
}

.selection-cart-panel-head h2 {
    color: #fff;
    font-size: 24px;
    letter-spacing: 0;
    margin: 4px 0 0;
}

.selection-cart-panel-head .eyebrow {
    color: var(--champagne);
    margin: 0;
}

.selection-cart-close {
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 999px;
    box-shadow: none;
    color: rgba(255, 255, 255, .78);
    cursor: pointer;
    font-size: 12px;
    font-weight: 900;
    padding: 9px 12px;
}

.selection-cart-close:hover {
    background: rgba(255, 255, 255, .14);
    color: #fff;
}

.selection-tray.local-selection-tray {
    border-radius: 28px;
    bottom: auto;
    justify-self: stretch;
    left: auto;
    margin: -6px 0 12px;
    max-width: none;
    position: static;
    transform: none;
    width: 100%;
}

.selection-tray.local-selection-tray .selection-action {
    margin-left: auto;
}

@media (max-width: 1480px) {
    .site-header {
        gap: 20px;
        grid-template-columns: minmax(230px, 1fr) auto auto;
        min-height: 112px;
        padding: 20px var(--page-gutter);
    }

    .brand {
        gap: 14px;
    }

    .brand-logo {
        border-radius: 22px;
        flex-basis: 64px;
        height: 64px;
        width: 64px;
    }

    .brand-title {
        font-size: 25px;
    }

    .brand small {
        font-size: 11px;
        padding: 6px 10px;
    }

    .main-nav a {
        font-size: 14px;
        min-height: 44px;
        padding: 12px 17px;
    }

    .nav-actions {
        gap: 12px;
    }

    .selection-cart-toggle {
        min-height: 50px;
        padding-right: 10px;
    }

    .selection-cart-mark {
        height: 44px;
        width: 44px;
    }

    .selection-cart-mark::before {
        top: 50%;
    }

    .selection-cart-mark::after {
        display: none;
    }

    .nav-cta {
        gap: 12px;
        min-height: 56px;
        padding: 12px 22px 12px 16px;
    }

    .nav-cta-icon {
        border-radius: 15px;
        height: 34px;
        width: 34px;
    }
}

@media (max-width: 1120px) {
    .site-header {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .main-nav {
        display: none;
    }

    .mobile-nav-toggle {
        display: inline-flex;
    }

    .mobile-nav-panel {
        display: grid;
    }
}

.profile-gallery {
    gap: 12px;
    grid-template-columns: minmax(0, 1.35fr) minmax(132px, .65fr);
    min-width: 0;
    padding-top: 0;
}

.profile-gallery.is-single-image {
    grid-template-columns: minmax(0, 1fr);
}

.profile-gallery-main {
    aspect-ratio: .86 / 1;
    grid-row: 1 / 3;
}

.profile-gallery.is-single-image .profile-gallery-main {
    aspect-ratio: 1 / 1;
    grid-row: auto;
}

.profile-gallery-main,
.profile-gallery-side img,
.profile-gallery-side .photo-placeholder {
    border-radius: 24px;
}

.profile-gallery-side {
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr;
}

.profile-gallery.has-one-side-image .profile-gallery-side {
    align-self: stretch;
    grid-row: 1 / 3;
}

.profile-gallery-side img,
.profile-gallery-side .photo-placeholder {
    aspect-ratio: 1 / 1;
}

.profile-gallery.has-one-side-image .profile-gallery-side img {
    aspect-ratio: auto;
    height: 100%;
}

.profile-layout {
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 44px;
}

.profile-identity {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
}

.profile-identity h1 {
    max-width: 760px;
}

.profile-cta {
    border-radius: 30px;
    padding: 28px;
    top: 104px;
}

.profile-cta strong {
    font-family: var(--font-serif);
}

.portfolio-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.portfolio-grid img {
    border-radius: 20px;
}

.profile-show-page {
    display: grid;
    gap: 32px;
    padding-bottom: 78px;
    padding-top: 32px;
}

.section-anchor-nav {
    align-items: center;
    background: rgba(255, 255, 255, .9);
    border: 1px solid var(--line);
    border-radius: 999px;
    box-shadow: 0 16px 42px rgba(36, 25, 21, .08);
    display: flex;
    gap: 6px;
    justify-content: center;
    justify-self: center;
    max-width: 100%;
    overflow-x: auto;
    padding: 7px;
    position: sticky;
    scrollbar-width: none;
    top: 124px;
    width: min(100%, 840px);
    z-index: 24;
}

.section-anchor-nav::-webkit-scrollbar {
    display: none;
}

.section-anchor-nav a {
    align-items: center;
    border-radius: 999px;
    color: var(--muted);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 900;
    justify-content: center;
    min-height: 40px;
    padding: 10px 16px;
    transition: background .18s ease, color .18s ease, box-shadow .18s ease;
}

.section-anchor-nav a:hover,
.section-anchor-nav a.is-active {
    background: var(--ink);
    box-shadow: 0 10px 24px rgba(36, 25, 21, .16);
    color: #fff;
}

.profile-hero-show {
    align-items: stretch;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 34px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: clamp(18px, 2vw, 28px);
    grid-template-columns: minmax(330px, .9fr) minmax(460px, 1.2fr) minmax(286px, .58fr);
    padding: clamp(18px, 2.4vw, 30px);
}

.profile-back-link {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    box-shadow: 0 10px 24px rgba(36, 25, 21, .06);
    color: #a85b45;
    display: inline-flex;
    font-size: 13px;
    font-weight: 900;
    gap: 8px;
    min-height: 38px;
    padding: 9px 14px;
    width: fit-content;
}

.profile-back-link::before {
    content: "←";
    font-size: 14px;
}

.profile-show-page .profile-identity {
    align-content: start;
    display: grid;
    gap: 16px;
    padding: 8px 0;
}

.profile-show-page .profile-identity .lead {
    color: #5f554e;
    font-size: 17px;
    line-height: 1.62;
    max-width: 640px;
}

.profile-proof-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.profile-proof-row span,
.profile-cta-badges span,
.profile-side-badges span,
.profile-side-badges a {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 13px;
    font-weight: 900;
    min-height: 36px;
    padding: 0 12px;
}

.badge-clickable {
    align-items: center;
    display: inline-flex;
    gap: 6px;
    text-decoration: none;
}

.badge-dark {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.profile-show-page .profile-cta {
    align-content: start;
    display: grid;
    gap: 16px;
    position: sticky;
    top: 104px;
}

.profile-show-page .profile-cta p {
    color: #625852;
    line-height: 1.58;
    margin-top: 8px;
}

.profile-show-page .profile-cta .button,
.profile-show-page .profile-cta .button-accent {
    width: 100%;
}

.profile-cta-badges,
.profile-side-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.profile-cta-badges span,
.profile-side-badges span,
.profile-side-badges a {
    background: #fbfaf7;
    color: #5d534d;
    font-size: 12px;
    gap: 6px;
    text-decoration: none;
}

.profile-show-page .profile-layout {
    align-items: start;
    grid-template-columns: 1fr;
}

.profile-story {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: clamp(22px, 3vw, 42px);
    grid-template-columns: minmax(0, 1fr) minmax(280px, 380px);
    padding: clamp(24px, 3vw, 34px);
}

.profile-story h2 {
    max-width: 720px;
}

.profile-story p:not(.eyebrow) {
    color: #5f554e;
    font-size: 17px;
    line-height: 1.72;
    max-width: 780px;
}

.profile-experience-section,
.profile-tariff-section {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 20px;
    padding: clamp(24px, 3vw, 34px);
}

.profile-grid-heading {
    align-items: end;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .52fr);
}

.profile-grid-heading h2 {
    font-size: clamp(30px, 3vw, 42px);
    max-width: 720px;
}

.profile-grid-heading > p {
    color: var(--muted);
    font-size: 14px;
    font-weight: 760;
    line-height: 1.55;
}

.profile-tariff-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.profile-experience-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.profile-experience-grid article {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 22px;
    display: grid;
    gap: 9px;
    min-height: 180px;
    padding: 18px;
}

.profile-experience-grid span {
    color: #a85b45;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.profile-experience-grid strong {
    color: var(--ink);
    font-size: 19px;
    line-height: 1.16;
}

.profile-experience-grid p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 750;
    line-height: 1.45;
}

.profile-tariff-card {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 24px;
    display: grid;
    gap: 12px;
    min-width: 0;
    padding: 20px;
}

.profile-tariff-card.is-featured {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.profile-tariff-card > span {
    color: #a85b45;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.profile-tariff-card.is-featured > span {
    color: #f2b8a6;
}

.profile-tariff-card strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 42px;
    line-height: 1;
}

.profile-tariff-card.is-featured strong {
    color: #fff;
}

.profile-tariff-card p {
    color: var(--muted);
    font-size: 14px;
    font-weight: 750;
    line-height: 1.52;
}

.profile-tariff-card.is-featured p {
    color: rgba(255, 255, 255, .72);
}

.profile-tariff-card ul {
    display: grid;
    gap: 7px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.profile-tariff-card li {
    color: #5f554e;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.35;
    padding-left: 18px;
    position: relative;
}

.profile-tariff-card li::before {
    background: var(--clay);
    border-radius: 50%;
    content: "";
    height: 7px;
    left: 0;
    position: absolute;
    top: .45em;
    width: 7px;
}

.profile-tariff-card.is-featured li {
    color: rgba(255, 255, 255, .86);
}

.profile-info-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.profile-info-grid article,
.profile-side-panel,
.profile-proof-panel {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 26px;
    box-shadow: var(--shadow-sm);
}

.profile-info-grid article {
    display: grid;
    gap: 8px;
    min-height: 168px;
    padding: 20px;
}

.profile-info-grid span {
    color: #a85b45;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.profile-info-grid strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 30px;
    line-height: 1;
}

.profile-info-grid p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 750;
    line-height: 1.45;
}

.profile-side-panel,
.profile-proof-panel {
    display: grid;
    gap: 18px;
    padding: 22px;
}

.profile-side-panel {
    position: sticky;
    top: 104px;
}

.profile-content-flow {
    display: grid;
    gap: 18px;
}

.profile-mini-review {
    align-items: center;
    display: grid;
    gap: 14px;
    grid-template-columns: auto minmax(0, 1fr);
}

.profile-mini-review > span {
    align-items: center;
    aspect-ratio: 1;
    background: var(--ink);
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-family: var(--font-serif);
    font-size: 30px;
    justify-content: center;
    width: 74px;
}

.profile-mini-review strong {
    color: var(--ink);
}

.profile-mini-review p {
    color: var(--muted);
    font-size: 13px;
    font-weight: 750;
    line-height: 1.45;
}

.profile-show-page .profile-trust {
    padding-top: 0;
}

.profile-badge-panel {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 26px;
    box-shadow: var(--shadow-sm);
    padding: clamp(22px, 3vw, 30px);
}

.profile-badge-intro {
    color: var(--muted);
    font-size: 14px;
    font-weight: 750;
    line-height: 1.55;
    margin: 0;
}

.profile-badge-stack {
    display: grid;
    gap: 10px;
}

.profile-badge-detail {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    scroll-margin-bottom: 120px;
    scroll-margin-top: 120px;
}

.profile-badge-detail summary {
    align-items: center;
    cursor: pointer;
    display: grid;
    gap: 12px;
    grid-template-columns: auto minmax(0, 1fr);
    list-style: none;
    padding: 14px;
    position: relative;
    z-index: 1;
}

.profile-badge-detail summary::-webkit-details-marker {
    display: none;
}

.profile-badge-detail summary::after {
    color: var(--muted);
    content: "+";
    font-size: 18px;
    font-weight: 950;
    grid-column: 3;
}

.profile-badge-detail[open] summary::after {
    content: "-";
}

.profile-badge-icon {
    align-items: center;
    aspect-ratio: 1;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: var(--ink);
    display: inline-flex;
    font-size: 11px;
    font-weight: 950;
    justify-content: center;
    min-width: 44px;
    padding: 0 5px;
    text-align: center;
    width: 44px;
}

.profile-badge-detail summary strong {
    color: var(--ink);
    display: block;
    line-height: 1.2;
}

.profile-badge-detail summary small,
.profile-badge-explanation small {
    color: var(--muted);
    display: block;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.45;
}

.profile-badge-explanation {
    border-top: 1px solid var(--line);
    display: grid;
    gap: 8px;
    padding: 0 14px 14px 70px;
}

.profile-badge-explanation p {
    color: #5f554e;
    font-size: 14px;
    font-weight: 760;
    line-height: 1.55;
    margin: 0;
}

.profile-badge-detail-dark {
    background: var(--ink);
    border-color: var(--ink);
}

.profile-badge-detail-dark summary strong,
.profile-badge-detail-dark summary::after {
    color: #fff;
}

.profile-badge-detail-dark summary small,
.profile-badge-detail-dark .profile-badge-explanation p,
.profile-badge-detail-dark .profile-badge-explanation small {
    color: rgba(255, 255, 255, .74);
}

.profile-badge-detail-dark .profile-badge-icon {
    background: #fff;
    border-color: rgba(255, 255, 255, .22);
    color: var(--ink);
}

.profile-badge-detail-dark .profile-badge-explanation {
    border-top-color: rgba(255, 255, 255, .16);
}

.review-form-page,
.review-status-page {
    padding-bottom: 86px;
    padding-top: 42px;
}

.review-form-shell {
    align-items: stretch;
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 380px);
    margin-bottom: 22px;
}

.review-form-hero,
.review-status-card {
    background: var(--ink);
    border-radius: 34px;
    color: #fff;
    overflow: hidden;
    padding: clamp(30px, 5vw, 58px);
    position: relative;
}

.review-form-hero h1,
.review-form-hero p,
.review-status-card h1,
.review-status-card p {
    color: #fff;
}

.review-form-hero h1,
.review-status-card h1 {
    max-width: 760px;
}

.review-form-hero p:not(.eyebrow),
.review-status-card p:not(.eyebrow) {
    color: rgba(255, 255, 255, .74);
    font-size: 18px;
    max-width: 680px;
}

.review-form-hero .eyebrow,
.review-status-card .eyebrow {
    color: #f2b8a6;
}

.review-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 22px;
}

.review-hero-meta span {
    background: rgba(255, 255, 255, .10);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    padding: 9px 12px;
}

.review-context-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 14px;
    padding: 24px;
}

.review-context-card span {
    color: #a85b45;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.review-context-card strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 30px;
    line-height: 1;
}

.review-context-card ul {
    display: grid;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.review-context-card li {
    color: var(--muted);
    font-size: 14px;
    font-weight: 850;
    line-height: 1.4;
    padding-left: 18px;
    position: relative;
}

.review-context-card li::before {
    background: var(--clay);
    border-radius: 50%;
    content: "";
    height: 7px;
    left: 0;
    position: absolute;
    top: .55em;
    width: 7px;
}

.review-proof-strip {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 22px;
}

.review-proof-strip article {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: 0 12px 34px rgba(35, 27, 24, .05);
    display: grid;
    gap: 8px;
    min-height: 150px;
    padding: 20px;
}

.review-proof-strip span,
.review-form-intro .eyebrow,
.review-status-side .eyebrow {
    color: #a85b45;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin: 0;
    text-transform: uppercase;
}

.review-proof-strip strong {
    color: var(--ink);
    font-size: 18px;
    line-height: 1.2;
}

.review-proof-strip p,
.review-form-intro p,
.review-status-side p {
    color: var(--muted);
    font-size: 14px;
    font-weight: 760;
    line-height: 1.5;
    margin: 0;
}

.review-panel {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: var(--shadow-sm);
    padding: clamp(22px, 4vw, 34px);
}

.review-form-intro {
    display: grid;
    gap: 8px;
    max-width: 760px;
}

.review-form-intro h2 {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(32px, 4vw, 52px);
    letter-spacing: 0;
    line-height: .95;
    margin: 0;
    max-width: 720px;
}

.review-rating-group {
    border: 0;
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
}

.review-rating-group legend {
    color: var(--ink);
    font-size: 13px;
    font-weight: 950;
    letter-spacing: .08em;
    padding: 0;
    text-transform: uppercase;
}

.review-rating-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.review-rating-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 22px;
    cursor: pointer;
    display: grid;
    gap: 8px;
    min-height: 150px;
    padding: 18px;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.review-rating-card:hover {
    transform: translateY(-1px);
}

.review-rating-card:has(input:checked) {
    border-color: var(--clay);
    box-shadow: 0 0 0 3px rgba(201, 111, 83, .12);
}

.review-rating-card input {
    height: 1px;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    width: 1px;
}

.review-rating-card span {
    color: #a85b45;
    font-family: var(--font-serif);
    font-size: 34px;
    font-weight: 850;
    line-height: 1;
}

.review-rating-card strong {
    color: var(--ink);
    font-size: 16px;
    line-height: 1.15;
}

.review-rating-card small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 760;
    line-height: 1.4;
}

.review-name-field {
    max-width: 520px;
}

.review-form-note {
    color: var(--muted);
    font-size: 14px;
    font-weight: 760;
    line-height: 1.45;
    margin: -4px 0 0;
}

.review-panel .button-accent {
    justify-self: start;
    min-width: 220px;
}

.review-status-page {
    min-height: calc(100vh - 96px);
}

.review-status-layout {
    align-items: stretch;
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(0, 1.1fr) minmax(300px, .62fr);
}

.review-status-layout-single {
    grid-template-columns: minmax(0, 920px);
    justify-content: center;
}

.review-status-card {
    display: grid;
    gap: 18px;
    margin: 0;
    max-width: none;
}

.review-status-card::before {
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 26px;
    content: "";
    inset: 18px;
    pointer-events: none;
    position: absolute;
}

.review-status-card > * {
    position: relative;
    z-index: 1;
}

.review-status-next {
    background: rgba(255, 250, 247, .13);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 22px;
    display: grid;
    gap: 6px;
    max-width: 520px;
    padding: 18px;
}

.review-status-next strong {
    color: #fff;
}

.review-status-next span {
    color: rgba(255, 255, 255, .72);
    font-size: 14px;
    font-weight: 760;
}

.review-status-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 4px;
}

.review-status-card .button {
    justify-self: start;
}

.review-status-card .button-ghost-light {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .18);
    color: #fff;
}

.review-status-side {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 18px;
    padding: clamp(22px, 4vw, 34px);
}

.review-status-side h2 {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(30px, 3vw, 44px);
    letter-spacing: 0;
    line-height: .98;
    margin: 0;
}

.review-status-timeline {
    display: grid;
    gap: 12px;
}

.review-status-timeline article {
    align-items: start;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    display: grid;
    gap: 12px;
    grid-template-columns: auto minmax(0, 1fr);
    padding: 16px;
}

.review-status-timeline article:first-child {
    border-color: rgba(141, 109, 76, .34);
    box-shadow: 0 10px 28px rgba(78, 55, 36, .08);
}

.review-status-timeline article > span {
    align-items: center;
    aspect-ratio: 1;
    background: var(--ink);
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-size: 13px;
    font-weight: 950;
    justify-content: center;
    width: 34px;
}

.review-status-timeline strong {
    color: var(--ink);
    display: block;
    font-size: 15px;
    line-height: 1.2;
    margin-bottom: 4px;
}

.request-page {
    gap: 34px;
}

.request-header {
    align-items: end;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) auto;
    max-width: none;
}

.request-header h1 {
    max-width: 780px;
}

.request-header p:not(.eyebrow) {
    max-width: 720px;
}

.request-guide-strip {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 26px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 12px;
}

.request-guide-strip div {
    background: #fffaf7;
    border: 1px solid rgba(232, 217, 200, .72);
    border-radius: 20px;
    display: grid;
    gap: 4px;
    min-width: 0;
    padding: 14px 16px;
}

.request-guide-strip strong {
    color: var(--ink);
    font-size: 14px;
    font-weight: 950;
    line-height: 1.2;
}

.request-guide-strip span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.45;
}

.request-stepper {
    align-items: center;
    background: rgba(255, 255, 255, .76);
    border: 1px solid var(--line);
    border-radius: 999px;
    box-shadow: var(--shadow-sm);
    display: flex;
    gap: 6px;
    padding: 6px;
}

.request-stepper span {
    background: #fff;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
    padding: 9px 14px;
    white-space: nowrap;
}

.request-stepper span.active {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.request-layout {
    align-items: start;
    grid-template-columns: 430px minmax(0, 1fr);
}

.request-selection,
.request-fields {
    border-radius: 30px;
    padding: 26px;
}

.request-selection {
    max-height: none;
    position: sticky;
    top: 104px;
}

.request-alert {
    grid-column: 1 / -1;
}

.request-selection-head {
    display: grid;
    gap: 8px;
    margin-bottom: 18px;
}

.request-selection-head h2 {
    font-family: var(--font-sans);
    font-size: 26px;
    letter-spacing: 0;
    line-height: 1.1;
    margin: 0;
}

.request-selection-head p:not(.eyebrow) {
    color: var(--muted);
    font-size: 14px;
    font-weight: 750;
    line-height: 1.45;
}

.choice-list {
    border: 0;
    box-shadow: none;
    gap: 14px;
    padding: 0;
}

.choice-list legend {
    color: var(--ink);
    font-size: 13px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 6px;
    padding: 0;
    text-transform: uppercase;
}

.choice-list > p {
    color: var(--muted);
    font-size: 14px;
    margin-bottom: 4px;
}

.choice-card {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line) !important;
    border-radius: 20px;
    cursor: pointer;
    display: grid !important;
    gap: 12px !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    padding: 14px !important;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.choice-card:hover {
    transform: translateY(-1px);
}

.choice-card:first-of-type {
    padding-top: 14px !important;
}

.choice-card.is-selected {
    border-color: var(--clay) !important;
    box-shadow: 0 0 0 3px rgba(201, 111, 83, .12);
}

.choice-input {
    height: 1px !important;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    width: 1px !important;
}

.choice-rank {
    align-items: center;
    background: linear-gradient(135deg, #e8c5b5, var(--clay));
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-weight: 900;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.choice-copy {
    display: grid;
    gap: 4px;
}

.choice-copy strong {
    color: var(--ink);
}

.choice-copy small,
.choice-price {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.choice-meta {
    color: #53634f;
    display: block;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .04em;
    margin-top: 2px;
    text-transform: uppercase;
}

.choice-side {
    align-items: end;
    display: grid;
    gap: 8px;
    justify-items: end;
}

.choice-price {
    white-space: nowrap;
}

.choice-state {
    align-items: center;
    background: var(--ivory-2);
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-weight: 900;
    min-height: 34px;
    padding: 7px 12px;
}

.choice-card.is-selected .choice-state {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.empty-selection {
    background: var(--ivory-2);
    border: 1px solid var(--line);
    border-radius: 22px;
    display: grid;
    gap: 12px;
    padding: 18px;
}

.request-empty-start {
    align-content: center;
    background:
        linear-gradient(135deg, rgba(255, 253, 250, .98), rgba(245, 239, 232, .92)),
        #fffdfa;
    display: grid;
    gap: 18px;
    justify-items: center;
    margin: 0 auto;
    max-width: 860px;
    min-height: 340px;
    padding: clamp(28px, 5vw, 54px);
    text-align: center;
}

.request-empty-start h2 {
    font-size: clamp(34px, 4vw, 54px);
    max-width: 680px;
}

.request-empty-start p:not(.eyebrow) {
    color: var(--muted);
    font-size: 16px;
    font-weight: 760;
    line-height: 1.55;
    margin: 0 auto;
    max-width: 620px;
}

.request-empty-actions,
.request-empty-benefits {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.request-empty-benefits span {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 900;
    padding: 9px 12px;
}

.request-stage-head {
    display: grid;
    gap: 10px;
}

.request-stage-head h2 {
    font-size: clamp(34px, 4vw, 52px);
}

.request-stage-head p:not(.eyebrow) {
    color: var(--muted);
    max-width: 720px;
}

.request-stage-card {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 26px;
    display: grid;
    gap: 20px;
    padding: clamp(20px, 3vw, 28px);
}

.request-stage-title {
    align-items: start;
    display: grid;
    gap: 14px;
    grid-template-columns: auto minmax(0, 1fr);
}

.request-stage-title > span {
    align-items: center;
    background: var(--ink);
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-size: 12px;
    font-weight: 950;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.request-stage-title h3 {
    color: var(--ink);
    font-size: 22px;
    line-height: 1.15;
    margin: 0;
}

.request-stage-title p {
    color: var(--muted);
    font-size: 14px;
    font-weight: 750;
    margin-top: 5px;
}

.project-options {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.project-choice {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    cursor: pointer;
    display: grid;
    gap: 24px;
    padding: 18px;
}

.project-choice:has(input:checked) {
    border-color: var(--clay);
    box-shadow: 0 0 0 3px rgba(201, 111, 83, .12);
}

.project-choice input {
    opacity: 0;
    position: absolute;
}

.project-choice strong {
    color: var(--ink);
}

.project-choice span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.request-question-grid,
.request-slot-grid,
.visual-radio-list {
    display: grid;
    gap: 12px;
}

.request-question-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.request-slot-grid,
.visual-radio-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.visual-radio-group {
    border: 0;
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
}

.visual-radio-group legend {
    color: var(--ink);
    font-size: 13px;
    font-weight: 950;
    letter-spacing: .08em;
    padding: 0;
    text-transform: uppercase;
}

.visual-radio-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    cursor: pointer;
    display: grid;
    gap: 10px;
    min-height: 132px;
    padding: 18px;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.visual-radio-card:hover {
    transform: translateY(-1px);
}

.visual-radio-card:has(input:checked) {
    border-color: var(--clay);
    box-shadow: 0 0 0 3px rgba(201, 111, 83, .12);
}

.visual-radio-card input {
    height: 1px;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    width: 1px;
}

.visual-radio-card strong {
    color: var(--ink);
}

.visual-radio-card span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 780;
    line-height: 1.45;
}

.request-subquestion,
.request-send-summary {
    background: rgba(255, 255, 255, .74);
    border: 1px solid var(--line);
    border-radius: 22px;
    display: grid;
    gap: 14px;
    padding: 18px;
}

.request-subquestion > div:first-child,
.request-send-summary {
    color: var(--muted);
}

.request-subquestion strong,
.request-send-summary strong {
    color: var(--ink);
    display: block;
    font-weight: 950;
    margin-bottom: 4px;
}

.request-subquestion p,
.request-send-summary p {
    font-size: 14px;
    font-weight: 760;
    margin: 0;
}

.request-contact-grid {
    margin-top: 0;
}

.request-contact-preference {
    margin-top: 4px;
}

.request-contact-choice {
    min-height: 124px;
}

.request-message-field textarea {
    min-height: 168px;
}

.field-helper {
    color: var(--muted);
    font-size: 12px;
    font-weight: 760;
    line-height: 1.45;
}

.request-review-panel {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: 0 14px 34px rgba(36, 25, 21, .06);
    display: grid;
    gap: 16px;
    padding: 20px;
}

.request-review-head {
    display: grid;
    gap: 6px;
}

.request-review-head h4 {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(26px, 2.4vw, 36px);
    line-height: 1;
    margin: 0;
}

.request-review-head p:not(.eyebrow) {
    color: var(--muted);
    font-size: 14px;
    font-weight: 760;
    line-height: 1.5;
    margin: 0;
}

.request-review-selected {
    align-items: start;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(160px, .34fr) minmax(0, 1fr);
    padding: 14px;
}

.request-review-selected strong {
    color: var(--ink);
    font-size: 13px;
    font-weight: 950;
}

.request-review-selected > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.request-review-selected span {
    background: var(--mint);
    border: 1px solid rgba(130, 147, 123, .25);
    border-radius: 999px;
    color: #53604c;
    font-size: 12px;
    font-weight: 950;
    padding: 8px 10px;
}

.request-review-selected em {
    color: var(--muted);
    font-size: 13px;
    font-style: normal;
    font-weight: 780;
}

.request-review-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.request-review-grid article {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 8px;
    min-height: 136px;
    padding: 14px;
}

.request-review-grid span {
    color: #9e5a45;
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
}

.request-review-grid p {
    color: #625852;
    font-size: 13px;
    font-weight: 760;
    line-height: 1.48;
    margin: 0;
}

.request-submit-row {
    align-items: center;
    display: flex;
    gap: 14px;
    justify-content: space-between;
}

.request-submit-row .button-accent {
    min-width: 280px;
}

.request-submit-row button[disabled],
.request-mobile-summary button[disabled] {
    cursor: not-allowed;
    opacity: .48;
    pointer-events: none;
}

.request-submit-row button[data-disabled],
.request-mobile-summary button[data-disabled] {
    filter: saturate(.72);
}

.request-assurance-grid {
    display: grid;
    gap: 12px;
    margin-top: 18px;
}

.request-assurance-grid .request-assurance {
    margin-top: 0;
}

.request-add-more {
    margin-top: 18px;
    width: 100%;
}

.request-reassurance-band {
    align-items: center;
    background: linear-gradient(135deg, var(--teal), #53634f);
    border-radius: 30px;
    color: #fff;
    display: flex;
    gap: 24px;
    justify-content: space-between;
    padding: clamp(26px, 4vw, 44px);
}

.request-reassurance-band h2 {
    color: #fff;
    font-size: clamp(32px, 4vw, 46px);
    margin-bottom: 10px;
}

.request-reassurance-band p {
    color: rgba(255, 255, 255, .76);
    max-width: 680px;
}

.request-reassurance-band > span {
    background: #fff;
    border-radius: 999px;
    color: var(--ink);
    flex: 0 0 auto;
    font-weight: 900;
    padding: 14px 18px;
}

.auth-modal {
    display: none;
    inset: 0;
    position: fixed;
    z-index: 100;
}

.auth-modal:target {
    align-items: center;
    display: flex;
    justify-content: center;
    padding: 24px;
}

.modal-backdrop {
    background: rgba(36, 25, 21, .42);
    inset: 0;
    position: absolute;
}

.modal-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: 0 36px 120px rgba(36, 25, 21, .24);
    display: grid;
    gap: 18px;
    max-height: min(760px, calc(100vh - 40px));
    max-width: 460px;
    overflow: auto;
    padding: 30px;
    position: relative;
    width: min(100%, 460px);
}

.modal-card-wide {
    max-width: 760px;
    width: min(100%, 760px);
}

.modal-close {
    align-items: center;
    background: var(--ivory-2);
    border: 1px solid var(--line);
    border-radius: 50%;
    color: var(--ink);
    display: inline-flex;
    font-size: 28px;
    height: 42px;
    justify-content: center;
    line-height: 1;
    position: absolute;
    right: 18px;
    top: 18px;
    width: 42px;
}

.auth-form {
    gap: 12px;
}

.modal-switch {
    font-size: 14px;
    text-align: center;
}

.modal-switch a {
    color: #a8533d;
    font-weight: 900;
}

.pro-auth-page {
    padding-bottom: clamp(72px, 7vw, 108px);
    padding-top: clamp(54px, 6vw, 92px);
}

.pro-auth-shell {
    align-items: stretch;
    display: grid;
    gap: clamp(22px, 4vw, 48px);
    grid-template-columns: minmax(0, .56fr) minmax(360px, .44fr);
}

.pro-auth-copy {
    background: var(--ink);
    border-radius: 34px;
    box-shadow: var(--shadow);
    color: #fff;
    display: grid;
    gap: 24px;
    overflow: hidden;
    padding: clamp(28px, 4.8vw, 58px);
    position: relative;
}

.pro-auth-copy::after {
    background: rgba(255, 255, 255, .08);
    border-radius: 50%;
    bottom: -170px;
    content: "";
    height: 420px;
    position: absolute;
    right: -130px;
    width: 420px;
}

.pro-auth-copy > * {
    position: relative;
    z-index: 1;
}

.pro-auth-copy h1,
.pro-auth-copy p,
.pro-auth-copy .eyebrow {
    color: #fff;
}

.pro-auth-copy h1 {
    font-size: clamp(48px, 6vw, 82px);
    max-width: 720px;
}

.pro-auth-copy > p:not(.eyebrow) {
    color: rgba(255, 255, 255, .76);
    font-size: 18px;
    line-height: 1.62;
    max-width: 660px;
}

.pro-auth-steps {
    display: grid;
    gap: 12px;
    margin-top: auto;
}

.pro-auth-steps div {
    align-items: start;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 22px;
    display: grid;
    gap: 4px 12px;
    grid-template-columns: auto minmax(0, 1fr);
    padding: 16px;
}

.pro-auth-steps span {
    align-items: center;
    background: var(--champagne);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 11px;
    font-weight: 950;
    grid-row: span 2;
    justify-content: center;
    min-height: 30px;
    min-width: 42px;
    padding: 7px 9px;
}

.pro-auth-steps strong,
.pro-auth-steps small {
    color: #fff;
}

.pro-auth-steps small {
    color: rgba(255, 255, 255, .7);
    font-weight: 760;
    line-height: 1.45;
}

.pro-auth-card {
    align-self: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 30px;
    box-shadow: var(--shadow);
    display: grid;
    gap: 18px;
    padding: clamp(22px, 3.2vw, 34px);
}

.pro-auth-card header {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 24px;
    display: grid;
    gap: 8px;
    padding: 22px;
}

.pro-auth-card header span {
    color: var(--clay);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pro-auth-card h2 {
    font-family: var(--font-serif);
    font-size: clamp(32px, 3.2vw, 44px);
}

.pro-auth-card header p {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.55;
}

.auth-error {
    background: #fff0ed;
    border-color: rgba(195, 118, 84, .38);
    color: #8f412f;
}

.pro-auth-card-footer {
    align-items: center;
    background: var(--ivory-2);
    border: 1px solid var(--line);
    border-radius: 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    justify-content: space-between;
    padding: 15px;
}

.pro-auth-card-footer span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 850;
}

.pro-auth-card-footer a {
    color: var(--clay);
    font-weight: 950;
}

.pro-application-section {
    background: #fffaf7;
    border-top: 1px solid rgba(232, 222, 214, .78);
    padding-bottom: clamp(64px, 6vw, 86px);
    padding-top: clamp(58px, 6vw, 84px);
    scroll-margin-top: 110px;
}

.pro-application-shell {
    align-items: start;
    display: grid;
    gap: clamp(22px, 4vw, 44px);
    grid-template-areas: "intro form";
    grid-template-columns: minmax(280px, .42fr) minmax(0, .58fr);
}

.pro-application-intro {
    display: grid;
    gap: 20px;
    grid-area: intro;
    position: sticky;
    top: 112px;
}

.pro-application-intro-title {
    font-size: clamp(36px, 4.2vw, 58px);
}

.pro-application-intro > p:not(.eyebrow) {
    color: #625852;
    font-size: 17px;
    line-height: 1.68;
}

.pro-application-rail {
    display: grid;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.pro-application-rail li {
    align-items: start;
    background: rgba(255, 255, 255, .74);
    border: 1px solid var(--line);
    border-radius: 20px;
    display: grid;
    gap: 4px 12px;
    grid-template-columns: auto minmax(0, 1fr);
    padding: 15px;
}

.pro-application-rail li.is-current {
    background: var(--ink);
    border-color: var(--ink);
}

.pro-application-rail li.is-complete {
    background: var(--mint);
    border-color: rgba(130, 147, 123, .28);
}

.pro-application-rail span {
    align-items: center;
    background: var(--champagne);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 11px;
    font-weight: 950;
    grid-row: span 2;
    justify-content: center;
    min-height: 30px;
    min-width: 42px;
    padding: 7px 9px;
}

.pro-application-rail li.is-complete span {
    background: var(--teal);
    color: #fff;
}

.pro-application-rail strong {
    color: var(--ink);
    font-weight: 950;
}

.pro-application-rail small {
    color: var(--muted);
    font-weight: 760;
    line-height: 1.45;
}

.pro-application-rail li.is-current strong,
.pro-application-rail li.is-current small {
    color: #fff;
}

.pro-application-rail li.is-complete strong {
    color: var(--ink);
}

.pro-application-rail li.is-complete small {
    color: #53634f;
}

.pro-application-help {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 8px;
    padding: 20px;
}

.pro-application-help strong {
    color: var(--ink);
}

.pro-application-help span {
    color: var(--muted);
    font-size: 14px;
    font-weight: 760;
    line-height: 1.55;
}

.pro-application-help a {
    color: var(--clay);
    font-size: 14px;
    font-weight: 950;
}

.pro-application-separation {
    background: var(--ink);
    border-radius: 24px;
    color: #fff;
    display: grid;
    gap: 7px;
    padding: 20px;
}

.pro-application-separation span {
    color: rgba(255, 255, 255, .62);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pro-application-separation strong {
    color: #fff;
    font-family: var(--font-serif);
    font-size: 24px;
    line-height: 1.08;
}

.pro-application-separation p {
    color: rgba(255, 255, 255, .76);
    font-size: 14px;
    font-weight: 760;
    line-height: 1.55;
    margin: 0;
}

.professional-application-form {
    display: grid;
    gap: 16px;
    grid-area: form;
}

.pro-application-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow);
    min-width: 0;
    padding: clamp(18px, 3vw, 28px);
}

.pro-application-card-head {
    background: linear-gradient(135deg, #fffaf7, #fff);
    border: 1px solid var(--line);
    border-radius: 24px;
    display: grid;
    gap: 10px;
    padding: clamp(20px, 3vw, 28px);
}

.pro-application-card-head h2 {
    font-family: var(--font-serif);
    font-size: clamp(30px, 3.4vw, 44px);
    line-height: 1.02;
}

.pro-application-card-head p,
.pro-application-step-copy {
    color: #625852;
    font-size: 14px;
    font-weight: 760;
    line-height: 1.58;
}

.pro-application-progress {
    display: grid;
    gap: 9px;
    margin-top: 4px;
}

.pro-application-progress > span {
    color: var(--ink);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.pro-application-progress > div {
    background: rgba(232, 222, 214, .8);
    border-radius: 999px;
    height: 9px;
    overflow: hidden;
}

.pro-application-progress > div span {
    background: var(--clay);
    border-radius: inherit;
    display: block;
    height: 100%;
    transition: width .22s ease;
    width: 18%;
}

.professional-application-step {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 24px;
    display: grid;
    gap: 14px;
    padding: 18px;
}

.professional-application-step[data-locked="true"] {
    opacity: .62;
}

.professional-application-step[data-locked="true"] .step-kicker span {
    background: #d8cec5;
}

.professional-application-step[data-locked="false"] {
    background: #fff;
}

.professional-application-step[data-step="review"][data-locked="false"] {
    background: var(--mint);
    border-color: rgba(130, 147, 123, .32);
}

.professional-application-step.is-current-step {
    border-color: rgba(201, 111, 83, .46);
    box-shadow: 0 0 0 4px rgba(201, 111, 83, .08);
}

.professional-application-step input:disabled,
.professional-application-step button:disabled,
.pro-application-submit input:disabled,
.pro-application-submit button:disabled {
    cursor: not-allowed;
    opacity: .58;
}

.step-kicker {
    align-items: center;
    color: var(--ink);
    display: flex;
    font-size: 13px;
    font-weight: 950;
    gap: 10px;
}

.step-kicker span {
    align-items: center;
    background: var(--ink);
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    height: 30px;
    justify-content: center;
    width: 30px;
}

.siren-lookup-row {
    align-items: stretch;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto;
}

.company-search-field {
    min-width: 0;
    position: relative;
}

.siren-lookup-row .button-secondary {
    min-height: 100%;
    white-space: nowrap;
}

.company-results {
    background: #fff;
    border: 1px solid rgba(232, 222, 214, .94);
    border-radius: 18px;
    box-shadow: 0 18px 44px rgba(36, 25, 21, .11);
    display: grid;
    gap: 0;
    max-height: 340px;
    overflow: auto;
}

.company-result-button {
    align-items: stretch;
    background: #fff;
    border: 0;
    border-bottom: 1px solid rgba(232, 222, 214, .84);
    border-radius: 0;
    box-shadow: none;
    color: var(--ink);
    cursor: pointer;
    display: grid;
    gap: 5px;
    justify-content: stretch;
    min-height: auto;
    padding: 14px 16px;
    text-align: left;
    white-space: normal;
    width: 100%;
}

.company-result-button:first-child {
    border-radius: 18px 18px 0 0;
}

.company-result-button:last-child {
    border-bottom: 0;
    border-radius: 0 0 18px 18px;
}

.company-result-button:hover,
.company-result-button:focus-visible {
    background: #fffaf6;
    outline: 0;
}

.company-result-button strong {
    color: var(--ink);
    font-size: 14px;
    line-height: 1.25;
}

.company-result-button span,
.company-result-button small {
    color: #6d625c;
    font-size: 12px;
    font-weight: 780;
    line-height: 1.38;
}

.siren-status {
    border-radius: 16px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 850;
    line-height: 1.45;
    padding: 11px 13px;
}

.siren-status[data-state="idle"] {
    background: var(--ivory-2);
}

.siren-status[data-state="pending"] {
    background: #fff4e8;
    color: #a8533d;
}

.siren-status[data-state="success"] {
    background: var(--mint);
    color: #53634f;
}

.siren-status[data-state="error"] {
    background: #fff0ed;
    color: #a8533d;
}

.company-identity {
    background: #fff;
    border: 1px solid rgba(130, 147, 123, .32);
    border-radius: 20px;
    display: grid;
    gap: 6px;
    padding: 16px;
}

.pro-company-card {
    gap: 14px;
}

.pro-company-card > div:first-child span {
    color: #53634f;
    display: block;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.pro-company-card dl {
    display: grid;
    gap: 10px;
    margin: 0;
}

.pro-company-card dl div {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 16px;
    display: grid;
    gap: 4px;
    padding: 12px;
}

.pro-company-card dt {
    color: var(--muted);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pro-company-card dd {
    color: var(--ink);
    font-weight: 850;
    line-height: 1.45;
    margin: 0;
}

.company-identity strong {
    color: var(--ink);
    font-size: 17px;
}

.company-identity span,
.company-identity small {
    color: var(--muted);
    font-weight: 800;
    line-height: 1.45;
}

.company-identity small {
    color: #53634f;
    font-size: 12px;
}

.pro-derived-location {
    background: rgba(255, 255, 255, .72);
    border: 1px solid rgba(130, 111, 86, .18);
    border-radius: 14px;
    grid-column: 1 / -1;
    padding: 14px 16px;
}

.pro-derived-location-values {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.pro-derived-location-values span {
    background: #f5efe8;
    border: 1px solid rgba(82, 58, 38, .13);
    border-radius: 999px;
    color: var(--ink);
    font-size: 13px;
    font-weight: 850;
    line-height: 1.25;
    padding: 8px 11px;
}

.form-grid-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pro-application-next-panel {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pro-application-review-summary {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pro-application-review-summary article {
    background: rgba(255, 255, 255, .82);
    border: 1px solid rgba(130, 147, 123, .24);
    border-radius: 18px;
    display: grid;
    gap: 6px;
    min-height: 144px;
    padding: 14px;
}

.pro-application-review-summary span {
    color: #53634f;
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
}

.pro-application-review-summary strong {
    color: var(--ink);
    font-size: 16px;
    font-weight: 950;
    line-height: 1.22;
    overflow-wrap: anywhere;
}

.pro-application-review-summary small {
    color: #53634f;
    font-size: 12px;
    font-weight: 780;
    line-height: 1.42;
}

.pro-application-next-panel > div {
    background: rgba(255, 255, 255, .78);
    border: 1px solid rgba(130, 147, 123, .24);
    border-radius: 18px;
    display: grid;
    gap: 6px;
    padding: 14px;
}

.pro-application-next-panel span {
    align-items: center;
    background: var(--teal);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 11px;
    font-weight: 950;
    height: 26px;
    justify-content: center;
    width: 34px;
}

.pro-application-next-panel strong {
    color: var(--ink);
    font-size: 14px;
    font-weight: 950;
}

.pro-application-next-panel small {
    color: #53634f;
    font-size: 12px;
    font-weight: 780;
    line-height: 1.42;
}

.pro-application-submit {
    align-items: center;
    background: var(--ink);
    border-radius: 24px;
    color: #fff;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 18px;
}

.pro-application-submit .consent-row {
    color: rgba(255, 255, 255, .78);
    margin: 0;
}

.pro-application-submit > div {
    display: grid;
    gap: 8px;
    justify-items: end;
}

.pro-application-submit small {
    color: rgba(255, 255, 255, .66);
    font-size: 12px;
    font-weight: 800;
    max-width: 320px;
    text-align: right;
}

.pro-application-submit .button-accent {
    min-width: 260px;
}

.request-page {
    padding-bottom: 96px;
}

.request-header > div:first-child {
    max-width: 780px;
}

.request-header > div:first-child p:not(.eyebrow) {
    color: var(--muted);
    margin-top: 12px;
}

.request-selection .choice-list {
    display: grid;
}

.selection-limit-notice {
    background: #fff3ef;
    border: 1px solid rgba(201, 111, 83, .28);
    border-radius: 16px;
    color: #a8533d;
    font-size: 13px;
    font-weight: 850;
    margin: 4px 0 0;
    padding: 11px 13px;
}

.choice-card .choice-input:disabled ~ * {
    opacity: .46;
}

.choice-card .choice-input:disabled ~ .choice-rank {
    background: var(--ivory-2);
    color: var(--muted);
}

.request-assurance {
    background: var(--ivory-2);
    border: 1px solid var(--line);
    border-radius: 22px;
    display: grid;
    gap: 6px;
    margin-top: 18px;
    padding: 18px;
}

.request-assurance strong {
    color: var(--ink);
}

.request-assurance p {
    color: var(--muted);
    font-size: 14px;
    margin: 0;
}

.confirmation-page {
    gap: 28px;
    padding-bottom: 84px;
}

.confirmation-hero {
    background: var(--ink);
    color: #fff;
    overflow: hidden;
    padding: clamp(30px, 5vw, 54px);
    position: relative;
}

.confirmation-hero::after {
    background: rgba(255, 255, 255, .08);
    border-radius: 50%;
    content: "";
    height: 320px;
    position: absolute;
    right: -120px;
    top: -160px;
    width: 320px;
}

.confirmation-hero > * {
    position: relative;
    z-index: 1;
}

.confirmation-hero h1,
.confirmation-hero p {
    color: #fff;
}

.confirmation-hero p:not(.eyebrow) {
    color: rgba(255, 255, 255, .74);
    max-width: 680px;
}

.confirmation-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}

.confirmation-next-steps {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.confirmation-next-steps article {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 10px;
    padding: 22px;
}

.confirmation-next-steps span {
    align-items: center;
    background: var(--ink);
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-size: 12px;
    font-weight: 950;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.confirmation-next-steps strong {
    color: var(--ink);
    font-size: 17px;
}

.confirmation-next-steps p {
    color: var(--muted);
    font-size: 14px;
    font-weight: 760;
    line-height: 1.5;
}

.confirmation-grid {
    align-items: start;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) 380px;
}

.confirmation-recipient-list .lead-row {
    background: #fffaf7;
    border-radius: 18px;
    padding: 14px;
}

.confirmation-private-access {
    background: var(--mint);
    border: 1px solid rgba(130, 147, 123, .30);
    border-radius: 22px;
    display: grid;
    gap: 6px;
    padding: 18px;
}

.confirmation-private-access strong {
    color: var(--ink);
}

.confirmation-private-access p {
    color: #53604c;
    font-size: 14px;
    font-weight: 760;
    margin: 0;
}

@media (max-width: 1100px) {
    .directory-layout {
        grid-template-columns: 260px minmax(0, 1fr);
    }

    .directory-side-panel {
        grid-column: 1 / -1;
        justify-items: center;
        position: static;
    }

    .directory-side-panel .directory-selection-tray {
        max-width: 760px;
    }

    .profile-hero-show,
    .profile-show-page .profile-layout {
        grid-template-columns: 1fr;
    }

    .profile-story {
        grid-template-columns: 1fr;
    }

    .profile-info-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .profile-experience-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .profile-grid-heading,
    .profile-tariff-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .profile-tariff-card.is-featured {
        grid-column: span 2;
    }

    .profile-side-panel {
        position: static;
    }

    .directory-map-card {
        width: min(100%, 460px);
    }

    .home-intro {
        grid-template-columns: 1fr;
    }

    .home-copy,
    .home-intro > .hero-search,
    .hero-proof,
    .hero-collage {
        grid-column: 1;
        grid-row: auto;
    }

    .hero-collage {
        height: 470px;
        justify-self: center;
        max-width: 680px;
    }

    .hero-collage::before {
        inset: 54px 70px 28px 92px;
    }

    .hero-photo-main {
        height: 420px;
        left: 50%;
        right: auto;
        top: 0;
        transform: translateX(-50%);
        width: min(58vw, 430px);
    }

    .hero-photo-studio {
        right: 8%;
        top: 120px;
        width: min(250px, 36vw);
    }

    .hero-photo-detail {
        left: 8%;
        right: auto;
        top: 250px;
    }

    .note-rating {
        left: 12%;
        top: 64px;
    }

    .note-badges {
        bottom: 44px;
        right: 8%;
    }

    .hero-profile-card {
        bottom: 6px;
        left: 11%;
    }
}

@media (max-width: 860px) {
    .site-header {
        align-items: center;
        gap: 14px;
        grid-template-columns: minmax(0, 1fr) auto;
        min-height: 86px;
        padding: 16px var(--page-gutter);
    }

    .main-nav,
    .nav-actions .button:not(.button-secondary),
    .brand small {
        display: none;
    }

    .selection-cart-copy strong {
        display: none;
    }

    .selection-cart-toggle {
        gap: 8px;
        min-height: 44px;
        padding-right: 10px;
    }

    .selection-cart-shell {
        padding: 5px 7px;
    }

    .selection-cart-mark {
        height: 38px;
        width: 38px;
    }

    .selection-cart-mark::before {
        height: 9px;
        top: 50%;
        width: 17px;
    }

    .selection-cart-mark::after {
        display: none;
    }

    .selection-cart-panel {
        left: 12px;
        max-height: calc(100dvh - 96px);
        position: fixed;
        right: 12px;
        top: 82px;
        width: auto;
    }

    .section-anchor-nav {
        border-radius: 22px;
        justify-content: flex-start;
        justify-self: stretch;
        max-width: 100%;
        padding: 6px;
        top: 86px;
        width: 100%;
    }

    .section-anchor-nav a {
        font-size: 12px;
        min-height: 38px;
        padding: 9px 13px;
    }

    .card-carousel-control {
        display: none;
    }

    .card-carousel-dots {
        bottom: 12px;
        right: 12px;
    }

    .mobile-nav-toggle {
        height: 50px;
        min-height: 50px;
        width: 50px;
    }

    .mobile-nav-toggle span {
        left: 15px;
        width: 20px;
    }

    .mobile-nav-toggle span:first-child {
        top: 19px;
    }

    .mobile-nav-toggle span:last-child {
        top: 30px;
    }

    .mobile-nav-is-open .mobile-nav-toggle span:first-child,
    .mobile-nav-is-open .mobile-nav-toggle span:last-child {
        top: 24px;
    }

    .mobile-nav-panel {
        border-radius: 24px;
        gap: 8px;
        grid-template-columns: 1fr;
        padding: 8px;
    }

    .mobile-nav-links {
        gap: 5px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mobile-nav-links a,
    .mobile-nav-primary {
        font-size: 13px;
        min-height: 44px;
        min-width: 0;
        padding: 10px 12px;
        width: 100%;
    }

    .home-screen {
        padding-top: 32px;
    }

    .home-intro {
        min-height: auto;
    }

    .home-copy h1 {
        font-size: clamp(38px, 9.5vw, 48px);
    }

    .home-copy .lead {
        font-size: 18px;
        line-height: 1.5;
    }

    .hero-search,
    .search-box,
    .home-guides-layout,
    .home-guide-feature,
    .directory-layout,
    .directory-card-grid,
    .pro-application-shell,
    .consumer-portal-stats,
    .consumer-portal-grid,
    .consumer-portal-next,
    .consumer-comparison-head,
    .consumer-comparison-row,
    .consumer-recipient-head,
    .consumer-recipient-meta,
    .editor-layout,
    .profile-hero-show,
    .profile-gallery,
    .profile-layout,
    .portfolio-grid,
    .profile-info-grid,
    .request-header,
    .request-layout,
    .confirmation-grid,
    .confirmation-next-steps,
    .steps-section,
    .project-options {
        grid-template-columns: 1fr;
    }

    .member-hero {
        align-items: start;
        grid-template-columns: 1fr;
    }

    .member-onboarding-head {
        grid-template-columns: 1fr;
    }

    .review-request-card {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .publication-blocker-list-inline {
        grid-template-columns: 1fr;
    }

    .review-request-card form,
    .review-request-card .button,
    .review-request-card .button-accent {
        justify-self: stretch;
        width: 100%;
    }

    .member-onboarding-meter {
        justify-self: start;
    }

    .member-action-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .member-dashboard-tabs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        position: static;
    }

    .member-dashboard[data-active-tab="offres"] .member-sidebar,
    .member-dashboard[data-active-tab="offres"] .billing-plan-list,
    .member-billing-layout .billing-plan-list {
        grid-template-columns: 1fr;
    }

    .pro-auth-shell {
        grid-template-columns: 1fr;
    }

    .profile-edit-onboarding {
        grid-template-columns: 1fr;
    }

    .profile-edit-priorities {
        justify-items: start;
    }

    .pro-auth-card {
        align-self: stretch;
    }

    .pro-application-intro {
        position: static;
    }

    .pro-footer {
        grid-template-areas:
            "brand brand"
            "main resources"
            "public public";
        grid-template-columns: 1fr 1fr;
    }

    .pro-footer-authenticated {
        grid-template-areas:
            "brand brand"
            "main resources";
    }

    .pro-footer-public {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .pro-footer-public span,
    .pro-footer-public strong,
    .pro-footer-public p {
        grid-column: 1 / 2;
    }

    .pro-footer-public-actions {
        align-content: start;
        grid-column: 2 / 3;
        justify-content: end;
        max-width: 260px;
    }

    .public-footer-inner {
        grid-template-areas:
            "brand brand"
            "cities photographers"
            "explore pro";
        grid-template-columns: 1fr 1fr;
    }

    .public-footer-brand {
        grid-column: 1 / -1;
    }

    .pro-application-intro-title,
    .pro-application-section .section-heading h2 {
        font-size: 42px;
        line-height: 1.02;
    }

    .pro-application-rail,
    .siren-lookup-row,
    .form-grid-compact,
    .pro-application-review-summary,
    .pro-application-next-panel,
    .publication-focus-grid,
    .pro-application-submit {
        grid-template-columns: 1fr;
    }

    .pro-application-review-summary article {
        min-height: auto;
    }

    .professional-application-step,
    .siren-lookup-row .button-secondary {
        scroll-margin-top: 112px;
    }

    .siren-lookup-row .button-secondary {
        min-height: 52px;
        width: 100%;
    }

    .pro-application-submit > div {
        justify-items: stretch;
    }

    .pro-application-submit small {
        max-width: none;
        text-align: left;
    }

    .pro-application-submit .button-accent {
        min-width: 0;
        width: 100%;
    }

    .score-ring {
        min-width: 132px;
        width: 132px;
    }

    .completion-grid {
        grid-template-columns: 1fr;
    }

    .home-guide-media {
        aspect-ratio: 1.6 / 1;
    }

    .home-guide-card {
        grid-template-columns: 128px minmax(0, 1fr);
    }

    .hero-proof {
        margin-bottom: 18px;
    }

    .hero-collage {
        display: block;
        height: 360px;
        margin-top: 4px;
        max-width: 540px;
    }

    .hero-collage::before {
        border-radius: 32px;
        inset: 44px 40px 22px 70px;
    }

    .hero-photo-main {
        height: 315px;
        left: 50%;
        right: auto;
        top: 0;
        transform: translateX(-50%);
        width: 68%;
    }

    .hero-photo-studio {
        border-width: 6px;
        height: 170px;
        right: 0;
        top: 74px;
        width: 42%;
    }

    .hero-photo-detail {
        border-width: 6px;
        bottom: 32px;
        height: 140px;
        left: 0;
        top: auto;
        width: 40%;
    }

    .note-rating {
        left: 10px;
        top: 26px;
    }

    .note-badges {
        display: none;
    }

    .hero-profile-card {
        bottom: 0;
        left: 16px;
        max-width: none;
        right: 16px;
    }

    .footer-cta {
        align-items: flex-start;
        flex-direction: column;
        padding: 34px 24px;
    }

    .filter-sidebar,
    .member-sidebar,
    .selection-tray,
    .profile-cta,
    .profile-side-panel,
    .request-selection {
        position: static;
        transform: none;
        width: auto;
    }

    .selection-tray {
        border-radius: 24px;
    }

    .profile-gallery-side {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .profile-gallery-main {
        grid-row: auto;
    }

    .profile-show-page {
        gap: 28px;
        padding-bottom: 56px;
        padding-top: 28px;
    }

    .profile-proof-row span {
        min-height: 34px;
    }

    .profile-grid-heading,
    .profile-experience-grid,
    .profile-tariff-grid {
        grid-template-columns: 1fr;
    }

    .profile-tariff-card.is-featured {
        grid-column: auto;
    }
}

@media (max-width: 620px) {
    :root {
        --page-gutter: 18px;
    }

    h1 {
        font-size: 40px;
    }

    h2 {
        font-size: 32px;
    }

    .container {
        padding: 0 var(--page-gutter);
    }

    .container.home-screen {
        padding: 32px var(--page-gutter) 40px;
    }

    .container:is(.directory-page, .profile-v3-page, .request-page, .cms-index-page, .cms-page, .contest-index-page, .contest-show-page) {
        padding-top: 32px;
    }

    .site-header {
        min-height: 74px;
        padding: 14px var(--page-gutter);
        position: sticky;
    }

    .brand {
        gap: 10px;
    }

    .brand-logo {
        border-radius: 15px;
        flex-basis: 42px;
        height: 42px;
        width: 42px;
    }

    .home-guide-card {
        grid-template-columns: 1fr;
    }

    .home-guide-thumb {
        aspect-ratio: 1.55 / 1;
    }

    .brand-title {
        font-size: 17px;
    }

    .button,
    button {
        min-height: 44px;
        padding: 11px 16px;
    }

    .hero-search .button-accent {
        min-height: 54px;
    }

    .public-footer-inner,
    .public-footer-city-grid {
        grid-template-columns: 1fr;
    }

    .public-footer-inner {
        grid-template-areas:
            "brand"
            "cities"
            "photographers"
            "explore"
            "pro";
        padding-bottom: 34px;
        padding-top: 40px;
    }

    .public-footer-brand {
        padding-left: 0;
    }

    .public-footer-brand::before {
        display: none;
    }

    .public-footer-brand .brand-logo-lockup {
        border-radius: 24px;
        flex-basis: min(100%, 300px);
        min-height: 120px;
        padding: 16px 18px;
        width: min(100%, 300px);
    }

    .public-footer-brand .brand-logo-lockup::after {
        border-radius: 18px;
    }

    .public-footer-actions {
        display: grid;
    }

    .public-footer-actions .button,
    .public-footer-pro .button,
    .pro-footer-actions .button,
    .pro-footer-public .button {
        width: 100%;
    }

    .public-footer-pro strong {
        font-size: 22px;
    }

    .pro-footer {
        grid-template-areas:
            "brand"
            "main"
            "resources"
            "public";
        grid-template-columns: 1fr;
        padding-bottom: 34px;
        padding-top: 40px;
    }

    .pro-footer-authenticated {
        grid-template-areas:
            "brand"
            "main"
            "resources";
    }

    .pro-footer-brand {
        padding-left: 0;
    }

    .pro-footer-brand::before {
        display: none;
    }

    .pro-footer-brand .brand-logo-lockup {
        border-radius: 24px;
        flex-basis: min(100%, 300px);
        min-height: 120px;
        padding: 16px 18px;
        width: min(100%, 300px);
    }

    .pro-footer-brand .brand-logo-lockup::after {
        border-radius: 18px;
    }

    .pro-footer-actions,
    .pro-footer-public-actions {
        display: grid;
        max-width: none;
    }

    .pro-footer-public {
        grid-template-columns: 1fr;
    }

    .pro-footer-public span,
    .pro-footer-public strong,
    .pro-footer-public p,
    .pro-footer-public-actions {
        grid-column: auto;
    }

    .pro-footer-public strong {
        font-size: 22px;
    }

    .member-action-grid,
    .member-dashboard-tabs,
    .member-onboarding-rail,
    .pro-auth-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .member-onboarding-rail,
    .pro-auth-steps {
        grid-template-columns: 1fr;
    }

    .member-action-grid {
        grid-template-columns: 1fr;
    }

    .member-action-card {
        min-height: 0;
    }

    .member-hero-actions,
    .pro-auth-card-footer {
        align-items: stretch;
        display: grid;
        width: 100%;
    }

    .member-hero-actions .button,
    .pro-auth-card .button-accent {
        width: 100%;
    }

    .pro-auth-copy,
    .pro-auth-card {
        border-radius: 24px;
    }

    .pro-auth-copy {
        padding: 28px 22px;
    }

    .featured-section,
    .home-process-section,
    .home-guides-section,
    .directory-page,
    .profile-portfolio,
    .profile-trust,
    .request-page,
    .page-section,
    .form-flow,
    .training-layout,
    .dashboard {
        padding-bottom: 46px;
        padding-top: 34px;
    }

    .directory-header,
    .section-heading,
    .card-row,
    .consumer-portal-hero,
    .result-tabs {
        align-items: stretch;
        flex-direction: column;
    }

    .billing-balance {
        align-self: flex-start;
    }

    .credit-pack-grid {
        grid-template-columns: 1fr;
    }

    .credit-pack-card {
        align-items: center;
        grid-template-columns: minmax(0, 1fr) auto;
        min-height: auto;
    }

    .credit-pack-card span {
        font-size: 34px;
        grid-column: 2;
        grid-row: 1 / span 2;
    }

    .credit-pack-card small {
        grid-column: 1;
    }

    .consumer-portal-summary {
        position: static;
    }

    .consumer-portal-next .button {
        justify-self: start;
        white-space: normal;
    }

    .consumer-comparison-head {
        display: none;
    }

    .consumer-comparison-row {
        align-items: start;
        gap: 8px;
    }

    .consumer-comparison-row > span:not(:first-child) {
        align-items: center;
        display: flex;
        gap: 8px;
        justify-content: space-between;
    }

    .consumer-comparison-row > span:nth-child(2)::before {
        content: "Tarif repère";
        color: var(--muted);
        font-size: 11px;
        font-weight: 950;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .consumer-comparison-row > span:nth-child(3)::before {
        content: "Réponse habituelle";
        color: var(--muted);
        font-size: 11px;
        font-weight: 950;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .consumer-comparison-row > span:nth-child(4)::before {
        content: "État";
        color: var(--muted);
        font-size: 11px;
        font-weight: 950;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .consumer-comparison-row > span:nth-child(5)::before {
        content: "Action";
        color: var(--muted);
        font-size: 11px;
        font-weight: 950;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .choice-card {
        grid-template-columns: auto minmax(0, 1fr) !important;
    }

    .profile-tariff-card {
        border-radius: 22px;
        padding: 18px;
    }

    .profile-tariff-card strong {
        font-size: 36px;
    }

    .choice-meta {
        display: none;
    }

    .choice-side {
        align-items: center;
        display: flex;
        gap: 10px;
        grid-column: 1 / -1;
        justify-content: space-between;
        justify-items: stretch;
        width: 100%;
    }

    .choice-price {
        grid-column: auto;
    }

    .modal-card {
        border-radius: 24px;
        padding: 26px 20px;
    }

    .siren-lookup-row {
        grid-template-columns: 1fr;
    }

    .siren-lookup-row .button-secondary {
        width: 100%;
    }
}

body:has(.auth-modal:target) {
    overflow: hidden;
}

@media (max-width: 390px) {
    :root {
        --page-gutter: 14px;
    }

    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    .site-header {
        gap: 8px;
        padding-left: var(--page-gutter);
        padding-right: var(--page-gutter);
    }

    .brand {
        min-width: 0;
    }

    .brand-title {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    body[data-controller~="directory-selection"] .brand-copy {
        display: none;
    }

    .nav-actions {
        display: flex;
        gap: 8px;
        justify-self: end;
    }

    .nav-actions .button,
    body[data-controller~="directory-selection"] .nav-actions > .button {
        display: none;
    }

    .request-page {
        padding-bottom: 48px;
    }

    .request-selection,
    .request-fields {
        padding: 20px;
    }

    .request-stepper {
        gap: 7px;
        max-width: 100%;
        overflow-x: auto;
    }

    .request-stepper span {
        font-size: 11px;
        padding: 8px 10px;
    }

    .choice-card {
        align-items: start;
    }

    .choice-side {
        align-items: center;
    }

    .choice-state {
        min-height: 32px;
        padding: 6px 10px;
    }

    .modal-card {
        max-height: calc(100dvh - 24px);
        overscroll-behavior: contain;
    }
}

.directory-selection-tray {
    z-index: 80;
}

.mobile-flow-nav,
.profile-mobile-cta,
.request-mobile-summary {
    display: none;
}

@media (max-width: 860px) {
    .directory-selection-tray {
        align-items: center;
        border-radius: 24px;
        bottom: calc(16px + var(--visual-viewport-bottom-offset, 0px));
        flex-direction: row;
        gap: 12px;
        left: 50%;
        padding: 12px;
        position: fixed;
        transform: translateX(-50%);
        width: calc(100vw - 28px);
    }

    .directory-selection-tray .selection-avatars {
        display: none;
    }

    .directory-selection-tray .selection-action {
        min-width: 144px;
        width: auto;
    }

    .directory-selection-tray .selection-list,
    .directory-selection-tray .selection-reassurance {
        display: none;
    }

    .directory-selection-tray .selection-summary > span {
        display: none;
    }

    .filter-sidebar input,
    .filter-sidebar select,
    .filter-sidebar button,
    .directory-card-grid .photographer-card .button,
    .directory-card-grid .photographer-card button {
        scroll-margin-bottom: 156px;
        scroll-margin-top: 96px;
    }

    .selection-summary span,
    .selection-summary small {
        max-width: calc(100vw - 72px);
    }
}

@media (max-width: 760px) {
    .directory-page {
        gap: 12px;
        padding-bottom: 118px;
        padding-top: 12px;
    }

    .directory-header {
        display: grid;
        gap: 10px;
        padding: 14px;
    }

    .directory-header h1 {
        font-size: clamp(26px, 7.2vw, 34px);
        line-height: .98;
    }

    .directory-header .chip-row {
        align-items: center;
        gap: 6px;
    }

    .directory-header .chip {
        font-size: 12px;
        min-height: 30px;
        padding: 0 10px;
    }

    .directory-header .button {
        min-height: 32px;
        padding: 7px 12px;
    }

    .directory-results {
        order: 1;
    }

    .directory-side-panel {
        order: 2;
        position: static;
    }

    .filter-sidebar {
        order: 3;
        position: static;
    }

    .result-tabs {
        align-items: flex-start;
        gap: 8px;
    }

    .directory-card-grid {
        gap: 14px;
    }

    .directory-card-grid .card-media {
        aspect-ratio: 1.68 / 1;
    }

    .directory-card-grid .photographer-card .body {
        gap: 9px;
        padding: 14px;
    }

    .directory-card-grid .card-title-row h3 {
        font-size: clamp(24px, 6.2vw, 30px);
        line-height: 1.06;
    }

    .directory-card-grid .meta {
        font-size: 13px;
        line-height: 1.35;
    }

    .directory-card-grid .badge-list .badge:nth-child(n+3):not(.badge-selected) {
        display: none;
    }

    .directory-card-grid .photographer-card p {
        font-size: 14px;
        line-height: 1.42;
        -webkit-line-clamp: 2;
    }

    .directory-card-grid .card-meta-strip {
        gap: 6px;
    }

    .directory-card-grid .card-meta-strip span:nth-child(n+3) {
        display: none;
    }

    .directory-card-grid .card-actions {
        gap: 8px;
    }

    .directory-card-grid .card-actions .button,
    .directory-card-grid .card-actions button {
        min-height: 40px;
        padding: 9px 12px;
    }

    .request-empty-start {
        border-radius: 28px;
        min-height: 0;
        padding: 28px 20px;
    }

    .request-empty-start h2 {
        font-size: clamp(30px, 8vw, 40px);
    }

    .request-empty-actions .button,
    .request-empty-actions .button-accent {
        width: 100%;
    }

    .mobile-flow-nav {
        background: rgba(255, 255, 255, .94);
        border: 1px solid var(--line);
        border-radius: 999px;
        box-shadow: var(--shadow-sm);
        display: grid;
        gap: 4px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        padding: 5px;
        position: sticky;
        top: 74px;
        z-index: 26;
    }

    .directory-mobile-flow {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .mobile-flow-nav a {
        align-items: center;
        border-radius: 999px;
        color: var(--ink);
        display: inline-flex;
        font-size: 12px;
        font-weight: 900;
        justify-content: center;
        min-height: 36px;
        padding: 8px 10px;
        text-align: center;
    }

    .directory-mobile-flow a {
        font-size: 11px;
        padding-inline: 6px;
    }

    .request-flow-nav {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .request-guide-strip {
        border-radius: 24px;
        grid-template-columns: 1fr;
        padding: 8px;
    }

    .request-guide-strip div {
        border-radius: 18px;
        padding: 12px 14px;
    }

    .request-guide-strip strong {
        font-size: 13px;
    }

    .request-guide-strip span {
        font-size: 12px;
    }

    .mobile-flow-nav a:first-child {
        background: var(--mint);
        color: #53604c;
    }

    .request-stepper {
        display: none;
    }

    .request-flow-nav a:first-child {
        background: var(--mint);
        color: #53604c;
    }

    .request-question-grid,
    .request-slot-grid,
    .visual-radio-list,
    .request-review-selected,
    .request-review-grid {
        grid-template-columns: 1fr;
    }

    .visual-radio-card {
        min-height: 0;
    }

    .profile-mobile-cta,
    .request-mobile-summary {
        align-items: center;
        background: rgba(36, 25, 21, .96);
        border: 1px solid rgba(255, 255, 255, .14);
        border-radius: 24px;
        bottom: calc(12px + var(--visual-viewport-bottom-offset, 0px));
        box-shadow: 0 24px 70px rgba(36, 25, 21, .24);
        color: #fff;
        display: grid;
        gap: 12px;
        grid-template-columns: minmax(0, 1fr) auto;
        left: 12px;
        max-width: calc(100vw - 24px);
        padding: 12px;
        position: fixed;
        right: auto;
        width: calc(100vw - 24px);
        z-index: 88;
    }

    .profile-mobile-cta {
        text-decoration: none;
    }

    .request-mobile-summary > div {
        pointer-events: none;
    }

    .request-fields input,
    .request-fields textarea,
    .request-fields select,
    .request-fields button {
        scroll-margin-bottom: 170px;
        scroll-margin-top: 92px;
    }

    .request-fields {
        grid-template-columns: minmax(0, 1fr);
    }

    .profile-mobile-cta span,
    .request-mobile-summary span {
        color: rgba(255, 255, 255, .72);
        display: block;
        font-size: 12px;
        font-weight: 850;
    }

    .profile-mobile-cta strong,
    .request-mobile-summary strong {
        color: #fff;
        display: block;
        font-size: 15px;
        line-height: 1.15;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .request-mobile-summary strong span {
        color: inherit;
        display: inline;
        font-size: inherit;
        font-weight: inherit;
    }

    .profile-mobile-cta .button,
    .request-mobile-summary .button-accent {
        min-height: 44px;
        padding-left: 16px;
        padding-right: 16px;
        pointer-events: auto;
        position: relative;
        z-index: 1;
    }

    .profile-mobile-cta > .button.button-accent {
        align-items: center;
        color: #111111;
        display: inline-flex;
        font-size: 14px;
        justify-content: center;
    }

    .profile-show-page,
    .request-page {
        padding-bottom: 126px;
    }

    #filters,
    #photographer-results,
    #directory-selection,
    #request-selection,
    #request-project,
    #request-moment,
    #request-contact,
    #request-validation {
        scroll-margin-top: 132px;
    }

    .request-stage-card,
    .request-submit-row,
    .request-reassurance-band {
        align-items: stretch;
        flex-direction: column;
        min-width: 0;
        width: 100%;
    }

    .request-fields > *,
    .request-stage-head {
        min-width: 0;
        width: 100%;
    }

    .request-review-panel {
        border-radius: 22px;
        padding: 16px;
    }

    .request-review-grid article {
        min-height: 0;
    }

    .request-submit-row .button,
    .request-submit-row .button-accent {
        min-width: 0;
        width: 100%;
    }

    .review-form-page,
    .review-status-page {
        padding-bottom: 48px;
        padding-top: 28px;
    }

    .review-form-hero,
    .review-status-card,
    .review-panel {
        border-radius: 26px;
    }

    .review-form-shell,
    .review-proof-strip,
    .review-rating-grid,
    .review-status-layout {
        grid-template-columns: 1fr;
    }

    .review-rating-card {
        min-height: 0;
    }

    .review-status-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .review-panel .button-accent,
    .review-status-card .button,
    .review-status-actions .button {
        justify-self: stretch;
        width: 100%;
    }

    .request-reassurance-band > span {
        align-self: flex-start;
    }
}

@media (max-width: 430px) {
    .profile-mobile-cta {
        border-radius: 22px;
        grid-template-columns: 1fr;
    }

    .profile-mobile-cta .button {
        width: 100%;
    }

    .request-mobile-summary {
        border-radius: 22px;
        grid-template-columns: minmax(0, 1fr) auto;
    }
}

@media (max-width: 1100px) {
    .lead-board-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portfolio-manager-layout {
        grid-template-columns: 1fr;
    }

    .portfolio-curation-command {
        grid-template-columns: 1fr;
    }

    .portfolio-hero-preview {
        min-height: 300px;
    }

    .portfolio-inspector {
        position: static;
    }
}

@media (max-width: 860px) {
    .lead-board-kpis {
        min-width: 0;
        width: 100%;
    }

    .lead-board-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .lead-gate-status {
        align-items: stretch;
        border-radius: 22px;
        flex-direction: column;
        width: 100%;
    }

    .lead-gate-status strong {
        overflow-wrap: anywhere;
    }

    .lead-publication-gate {
        grid-template-columns: 1fr;
    }

    .lead-publication-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .lead-publication-actions form,
    .lead-publication-actions .button,
    .lead-publication-actions .button-accent {
        width: 100%;
    }

    .pro-lead-hero {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .pro-lead-action-bar {
        align-items: stretch;
        border-radius: 24px;
        position: static;
    }

    .pro-lead-action-bar a {
        flex-basis: calc(50% - 6px);
        min-width: 0;
    }

    .lead-board-grid {
        grid-template-columns: 1fr;
    }

    .portfolio-manager-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portfolio-curation-rail {
        grid-template-columns: 1fr;
    }

    .portfolio-manager-actions {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 620px) {
    .lead-board-kpis {
        grid-template-columns: 1fr;
    }

    .pro-lead-contact-actions {
        grid-template-columns: 1fr;
    }

    .pro-lead-action-bar a {
        flex-basis: 100%;
    }

    .portfolio-manager-grid {
        grid-template-columns: 1fr;
    }
}

/* Photographer public profile: editorial decision page */
.profile-decision-page {
    --profile-rail-width: clamp(240px, 22vw, 330px);
    gap: clamp(26px, 3vw, 44px);
    padding-top: clamp(28px, 4vw, 54px);
}

.profile-decision-page .profile-hero-show {
    align-items: stretch;
    background:
        radial-gradient(circle at 82% 18%, rgba(201, 111, 83, .12), transparent 28%),
        linear-gradient(135deg, #fff 0%, #fff 58%, #f7eee7 100%);
    border-radius: 44px;
    display: grid;
    gap: clamp(18px, 2.3vw, 34px);
    grid-template-areas:
        "copy media cta"
        "proof proof proof";
    grid-template-columns: minmax(320px, .92fr) minmax(440px, 1.08fr) minmax(280px, .54fr);
    overflow: hidden;
    padding: clamp(22px, 3vw, 42px);
    position: relative;
}

.profile-decision-page .profile-hero-show::before {
    background: rgba(36, 25, 21, .045);
    content: "";
    height: 1px;
    left: clamp(22px, 3vw, 42px);
    position: absolute;
    right: clamp(22px, 3vw, 42px);
    top: calc(clamp(22px, 3vw, 42px) + 4px);
}

.profile-decision-page .profile-identity {
    align-content: center;
    gap: 18px;
    grid-area: copy;
    min-width: 0;
    padding: clamp(8px, 1vw, 14px) 0;
}

.profile-decision-page .profile-identity h1 {
    font-size: clamp(56px, 6.6vw, 104px);
    line-height: .86;
    max-width: 620px;
}

.profile-decision-page .profile-identity .lead {
    color: #5a4f49;
    font-size: clamp(17px, 1.35vw, 20px);
    line-height: 1.68;
    max-width: 600px;
}

.profile-decision-page .profile-proof-row {
    gap: 9px;
    max-width: 560px;
}

.profile-decision-page .profile-proof-row span,
.profile-decision-page .badge-list .badge {
    background: rgba(255, 255, 255, .74);
    box-shadow: 0 8px 20px rgba(36, 25, 21, .045);
}

.profile-decision-page .badge-list .badge-dark {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.profile-decision-page .profile-gallery {
    align-self: stretch;
    grid-area: media;
    grid-template-columns: minmax(0, 1.55fr) minmax(120px, .58fr);
}

.profile-decision-page .profile-gallery-main,
.profile-decision-page .profile-gallery-side img,
.profile-decision-page .profile-gallery-side .photo-placeholder {
    border-radius: 32px;
    box-shadow: 0 24px 70px rgba(36, 25, 21, .14);
}

.profile-decision-page .profile-gallery-main {
    aspect-ratio: .74 / 1;
}

.profile-decision-page .profile-cta {
    align-content: space-between;
    background: var(--ink);
    border: 0;
    border-radius: 34px;
    box-shadow: 0 28px 80px rgba(36, 25, 21, .2);
    color: #fff;
    display: grid;
    gap: 18px;
    grid-area: cta;
    min-height: 100%;
    padding: clamp(22px, 2.4vw, 30px);
    position: static;
}

.profile-decision-page .profile-cta .meta,
.profile-decision-page .profile-cta p {
    color: rgba(255, 255, 255, .72);
}

.profile-decision-page .profile-cta strong {
    color: #fff;
    font-size: clamp(42px, 4.8vw, 66px);
}

.profile-decision-page .profile-cta .button-secondary {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .2);
    color: #fff;
}

.profile-decision-page .profile-cta-badges span {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .16);
    color: rgba(255, 255, 255, .78);
}

.profile-decision-page .profile-info-grid {
    background: rgba(255, 250, 247, .86);
    border: 1px solid rgba(232, 222, 214, .92);
    border-radius: 28px;
    box-shadow: none;
    gap: 0;
    grid-area: proof;
    overflow: hidden;
    padding: 0;
}

.profile-decision-page .profile-info-grid article {
    background: transparent;
    border: 0;
    border-right: 1px solid rgba(232, 222, 214, .92);
    border-radius: 0;
    box-shadow: none;
    min-height: 128px;
    padding: clamp(18px, 2vw, 24px);
}

.profile-decision-page .profile-info-grid article:last-child {
    border-right: 0;
}

.profile-decision-page .profile-decision-layout {
    align-items: start;
    display: grid;
    gap: clamp(28px, 4vw, 62px);
    grid-template-columns: var(--profile-rail-width) minmax(0, 1fr);
}

.profile-reading-rail {
    display: grid;
    gap: 14px;
    position: sticky;
    top: 150px;
}

.profile-rail-card {
    border-left: 2px solid var(--ink);
    display: grid;
    gap: 14px;
    padding: 4px 0 4px 20px;
}

.profile-rail-card > strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(30px, 3vw, 42px);
    line-height: .98;
}

.profile-rail-card p {
    color: #5f554e;
    font-size: 14px;
    font-weight: 760;
}

.profile-reading-rail .button-accent {
    border-radius: 999px;
    box-shadow: 0 18px 44px rgba(201, 111, 83, .28);
    width: 100%;
}

.profile-decision-page .profile-journal {
    display: grid;
    gap: 0;
    min-width: 0;
}

.profile-decision-page .profile-story,
.profile-decision-page .profile-experience-section,
.profile-decision-page .profile-tariff-section {
    background: transparent;
    border: 0;
    border-radius: 0;
    border-top: 1px solid rgba(36, 25, 21, .16);
    box-shadow: none;
    padding: clamp(44px, 5vw, 76px) 0;
}

.profile-decision-page .profile-story {
    display: grid;
    gap: clamp(18px, 2.5vw, 34px);
    grid-template-columns: 74px minmax(0, .9fr) minmax(260px, .48fr);
    max-width: none;
}

.profile-section-index {
    color: rgba(201, 111, 83, .36);
    font-family: var(--font-serif);
    font-size: clamp(56px, 6vw, 88px);
    font-weight: 850;
    grid-row: 1 / span 4;
    line-height: .82;
}

.profile-decision-page .profile-story .eyebrow,
.profile-decision-page .profile-story h2,
.profile-decision-page .profile-story > p:not(.eyebrow) {
    grid-column: 2;
}

.profile-decision-page .profile-story h2 {
    font-size: clamp(44px, 5vw, 72px);
    line-height: .92;
    max-width: 720px;
}

.profile-decision-page .profile-story > p:not(.eyebrow) {
    color: #514842;
    font-size: clamp(18px, 1.5vw, 21px);
    line-height: 1.72;
    max-width: 760px;
}

.profile-essay-note {
    align-self: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 10px;
    grid-column: 3;
    grid-row: 2 / span 3;
    padding: clamp(20px, 2.3vw, 28px);
}

.profile-essay-note strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 30px;
    line-height: 1;
}

.profile-essay-note span {
    color: #625852;
    font-size: 14px;
    font-weight: 760;
    line-height: 1.58;
}

.profile-decision-page .profile-grid-heading {
    align-items: start;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, .8fr) minmax(260px, .42fr);
    margin-bottom: clamp(22px, 3vw, 36px);
}

.profile-decision-page .profile-grid-heading h2 {
    font-size: clamp(40px, 4.5vw, 66px);
    line-height: .94;
}

.profile-decision-page .profile-grid-heading > p {
    align-self: end;
    color: #625852;
    font-size: 15px;
}

.profile-decision-page .profile-experience-grid {
    gap: 0;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.profile-decision-page .profile-experience-grid article {
    background: transparent;
    border: 0;
    border-left: 1px solid rgba(36, 25, 21, .16);
    border-radius: 0;
    min-height: 260px;
    padding: 0 clamp(14px, 2vw, 24px);
}

.profile-decision-page .profile-experience-grid article:first-child {
    border-left: 0;
    padding-left: 0;
}

.profile-decision-page .profile-experience-grid strong {
    font-family: var(--font-serif);
    font-size: clamp(24px, 2.2vw, 34px);
    line-height: .98;
}

.profile-decision-page .profile-tariff-grid {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 32px;
    box-shadow: var(--shadow-sm);
    gap: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
}

.profile-decision-page .profile-tariff-card {
    background: #fff;
    border: 0;
    border-radius: 0;
    border-right: 1px solid var(--line);
    box-shadow: none;
    min-height: 300px;
    padding: clamp(22px, 2.6vw, 32px);
}

.profile-decision-page .profile-tariff-card:last-child {
    border-right: 0;
}

.profile-decision-page .profile-tariff-card.is-featured {
    background: var(--ink);
    border-right-color: var(--ink);
}

.profile-decision-page .profile-portfolio-story {
    padding-bottom: clamp(46px, 6vw, 82px);
    padding-top: clamp(24px, 4vw, 56px);
}

.profile-decision-page .profile-portfolio-story .section-heading {
    margin-bottom: clamp(18px, 3vw, 34px);
}

.profile-decision-page .public-portfolio-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.profile-decision-page .public-portfolio-grid figure {
    min-height: 0;
    position: relative;
}

.profile-decision-page .public-portfolio-grid figure:first-child {
    grid-column: span 3;
    grid-row: span 2;
}

.profile-decision-page .public-portfolio-grid figure:nth-child(2) {
    grid-column: span 3;
}

.profile-decision-page .public-portfolio-grid figure:nth-child(n + 3) {
    grid-column: span 2;
}

.profile-decision-page .public-portfolio-grid img {
    aspect-ratio: 1 / 1.08;
    border-radius: 34px;
    box-shadow: 0 22px 58px rgba(36, 25, 21, .12);
}

.profile-decision-page .public-portfolio-grid figure:first-child img {
    aspect-ratio: 1.08 / 1;
}

.profile-decision-page .public-portfolio-grid figcaption {
    background: rgba(255, 255, 255, .88);
    border-radius: 999px;
    bottom: 14px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 900;
    left: 14px;
    margin: 0;
    max-width: calc(100% - 28px);
    overflow: hidden;
    padding: 8px 11px;
    position: absolute;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.profile-decision-page .profile-proof-section {
    display: grid;
    gap: 18px;
    padding-bottom: clamp(56px, 7vw, 96px);
    padding-top: 0;
}

.profile-proof-summary {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 34px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 24px;
    padding: clamp(24px, 3.4vw, 42px);
}

.profile-proof-summary-heading {
    align-items: end;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, .78fr) minmax(320px, .56fr);
}

.profile-proof-summary-heading h2 {
    font-size: clamp(34px, 4vw, 56px);
    max-width: 780px;
}

.profile-proof-summary-heading p:not(.eyebrow) {
    color: #625852;
    font-size: 17px;
    line-height: 1.62;
    margin: 0;
    max-width: 620px;
}

.profile-proof-summary-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.profile-proof-summary-grid article {
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 22px;
    display: grid;
    gap: 8px;
    min-height: 170px;
    padding: 20px;
}

.profile-proof-summary-grid span {
    color: #9e5a45;
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
}

.profile-proof-summary-grid strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(30px, 3.4vw, 46px);
    line-height: .92;
}

.profile-proof-summary-grid p {
    color: #625852;
    line-height: 1.5;
    margin: 0;
}

.profile-decision-page .profile-trust-grid {
    background: var(--ink);
    border-radius: 40px;
    box-shadow: 0 30px 86px rgba(36, 25, 21, .18);
    gap: clamp(22px, 4vw, 54px);
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    padding: clamp(26px, 4vw, 52px);
}

.profile-review-feature,
.profile-decision-page .profile-badge-panel {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: #fff;
    display: grid;
    gap: 16px;
    padding: 0;
}

.profile-review-feature h2,
.profile-decision-page .profile-badge-panel h2 {
    color: #fff;
}

.profile-review-feature p,
.profile-decision-page .profile-badge-panel p,
.profile-review-feature small {
    color: rgba(255, 255, 255, .72);
}

.profile-review-feature .review-item {
    border-top-color: rgba(255, 255, 255, .16);
}

.profile-review-feature .review-item strong {
    color: #fff;
}

.profile-decision-page .profile-badge-detail {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .14);
}

.profile-decision-page .profile-badge-detail summary strong,
.profile-decision-page .profile-badge-detail summary::after {
    color: #fff;
}

.profile-decision-page .profile-badge-detail summary small,
.profile-decision-page .profile-badge-explanation p,
.profile-decision-page .profile-badge-explanation small {
    color: rgba(255, 255, 255, .7);
}

.profile-decision-page .profile-badge-explanation {
    border-top-color: rgba(255, 255, 255, .14);
}

@media (max-width: 1180px) {
    .profile-decision-page .profile-hero-show {
        grid-template-areas:
            "copy media"
            "cta media"
            "proof proof";
        grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
    }

    .profile-decision-page .profile-decision-layout {
        grid-template-columns: 1fr;
    }

    .profile-reading-rail {
        position: static;
    }

    .profile-rail-card {
        border-left: 0;
        border-top: 2px solid var(--ink);
        padding: 18px 0 0;
    }
}

@media (max-width: 900px) {
    .profile-decision-page .profile-hero-show {
        grid-template-areas:
            "copy"
            "media"
            "proof"
            "cta";
        grid-template-columns: 1fr;
    }

    .profile-decision-page .profile-gallery {
        grid-template-columns: 1fr;
    }

    .profile-decision-page .profile-gallery-side {
        grid-row: auto;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .profile-decision-page .profile-gallery.has-one-side-image .profile-gallery-side {
        grid-row: auto;
    }

    .profile-decision-page .profile-gallery.has-one-side-image .profile-gallery-side img {
        aspect-ratio: 4 / 5;
        height: auto;
    }

    .profile-decision-page .profile-info-grid,
    .profile-decision-page .profile-experience-grid,
    .profile-decision-page .profile-tariff-grid,
    .profile-proof-summary-grid,
    .profile-decision-page .profile-trust-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .profile-decision-page .profile-info-grid article:nth-child(2n) {
        border-right: 0;
    }

    .profile-decision-page .profile-info-grid article:nth-child(n + 3) {
        border-top: 1px solid rgba(232, 222, 214, .92);
    }

    .profile-decision-page .profile-story {
        grid-template-columns: 1fr;
    }

    .profile-section-index,
    .profile-decision-page .profile-story .eyebrow,
    .profile-decision-page .profile-story h2,
    .profile-decision-page .profile-story > p:not(.eyebrow),
    .profile-essay-note {
        grid-column: auto;
        grid-row: auto;
    }

    .profile-decision-page .profile-grid-heading {
        grid-template-columns: 1fr;
    }

    .profile-proof-summary-heading {
        grid-template-columns: 1fr;
    }

    .profile-decision-page .profile-experience-grid article {
        border-left: 0;
        border-top: 1px solid rgba(36, 25, 21, .16);
        min-height: 0;
        padding: 20px 0;
    }

    .profile-decision-page .profile-experience-grid article:first-child,
    .profile-decision-page .profile-experience-grid article:nth-child(2) {
        border-top: 0;
    }

    .profile-decision-page .public-portfolio-grid,
    .profile-decision-page .profile-trust-grid {
        grid-template-columns: 1fr;
    }

    .profile-decision-page .public-portfolio-grid figure,
    .profile-decision-page .public-portfolio-grid figure:first-child,
    .profile-decision-page .public-portfolio-grid figure:nth-child(2),
    .profile-decision-page .public-portfolio-grid figure:nth-child(n + 3) {
        grid-column: auto;
        grid-row: auto;
    }
}

@media (max-width: 620px) {
    .profile-decision-page {
        gap: 24px;
        padding-top: 20px;
    }

    .profile-decision-page .profile-hero-show {
        border-radius: 28px;
        grid-template-areas:
            "copy"
            "media"
            "proof";
        padding: 18px;
    }

    .profile-decision-page .profile-hero-show .profile-cta {
        display: none;
    }

    .profile-decision-page .profile-identity h1 {
        font-size: clamp(48px, 17vw, 72px);
    }

    .profile-decision-page .profile-info-grid,
    .profile-decision-page .profile-experience-grid,
    .profile-decision-page .profile-tariff-grid,
    .profile-proof-summary-grid {
        grid-template-columns: 1fr;
    }

    .profile-decision-page .profile-info-grid article {
        border-right: 0;
        border-top: 1px solid rgba(232, 222, 214, .92);
    }

    .profile-decision-page .profile-info-grid article:first-child {
        border-top: 0;
    }

    .profile-decision-page .profile-experience-grid article,
    .profile-decision-page .profile-experience-grid article:nth-child(2) {
        border-top: 1px solid rgba(36, 25, 21, .16);
    }

    .profile-decision-page .profile-experience-grid article:first-child {
        border-top: 0;
    }

    .profile-decision-page .profile-tariff-card {
        border-right: 0;
        border-top: 1px solid var(--line);
        min-height: 0;
    }

    .profile-decision-page .profile-tariff-card:first-child {
        border-top: 0;
    }

    .profile-decision-page .profile-trust-grid {
        border-radius: 28px;
        padding: 22px;
    }

    .profile-proof-summary {
        border-radius: 28px;
        padding: 22px;
    }

    .profile-proof-summary-grid article {
        min-height: auto;
    }
}

/* Final public guardrails: keep header/actions and profile anchors inside the viewport. */
@media (min-width: 1121px) {
    .site-header {
        grid-template-columns: minmax(250px, 1fr) auto max-content;
    }

    .nav-actions {
        width: max-content;
    }
}

@media (min-width: 1121px) and (max-width: 1320px) {
    .site-header {
        gap: 16px;
        grid-template-columns: minmax(190px, .7fr) auto max-content;
    }

    .nav-actions .nav-cta {
        display: none;
    }
}

.profile-show-page.profile-v3-page .profile-v3-nav {
    margin-top: 10px;
    max-width: min(720px, calc(100vw - (var(--page-gutter) * 2)));
    top: 148px;
    width: min(720px, calc(100vw - (var(--page-gutter) * 2)));
}

/* MPB public charte overrides: placed after legacy public sections, before training-only overrides. */
:root {
    --mpb-beige-clair: #f5efe8;
    --mpb-beige-medium: #e8d9c8;
    --mpb-beige-dore: #c9a882;
    --mpb-brun-doux: #a0825e;
    --mpb-brun: #7d5f44;
    --mpb-brun-fonce: #4e3a28;
    --mpb-corail: #d96f5f;
    --mpb-corail-fonce: #ad5649;
    --mpb-corail-doux: #fde8e2;
    --mpb-sauge: #7fa58d;
    --mpb-sauge-fonce: #557460;
    --mpb-sauge-doux: #eef7ef;
    --mpb-miel: #f1c76f;
    --mpb-miel-doux: #fff4d8;
    --mpb-rose-doux: #f8e3dc;
    --mpb-blanc: #ffffff;
    --mpb-gris: #6b6560;
    --paper: var(--mpb-beige-clair);
    --surface: var(--mpb-blanc);
    --ivory-2: var(--mpb-beige-medium);
    --ink: var(--mpb-brun-fonce);
    --text: var(--mpb-brun-fonce);
    --muted: var(--mpb-gris);
    --line: var(--mpb-beige-medium);
    --clay: var(--mpb-brun);
    --berry: var(--mpb-corail);
    --teal: var(--mpb-sauge-fonce);
    --mint: var(--mpb-sauge-doux);
    --champagne: var(--mpb-miel);
    --gold: var(--mpb-miel);
    --shadow: 0 24px 68px rgba(78, 58, 40, .10);
    --shadow-sm: 0 10px 28px rgba(78, 58, 40, .075);
    --radius-card: 8px;
    --radius-control: 8px;
}

html,
body {
    background: var(--mpb-beige-clair);
    color: var(--mpb-brun-fonce);
}

body::before {
    background:
        linear-gradient(180deg, rgba(255, 244, 216, .42), rgba(245, 239, 232, 0) 36%, rgba(238, 247, 239, .36) 100%),
        linear-gradient(90deg, rgba(78, 58, 40, .026) 1px, transparent 1px),
        linear-gradient(0deg, rgba(78, 58, 40, .020) 1px, transparent 1px);
    background-size: 40px 40px;
    content: "";
    inset: 0;
    opacity: .52;
    pointer-events: none;
    position: fixed;
    z-index: -1;
}

.site-header {
    background: rgba(245, 239, 232, .94);
    border-bottom-color: rgba(217, 111, 95, .18);
    box-shadow: 0 12px 38px rgba(78, 58, 40, .07);
    min-height: 96px;
    padding: 16px var(--page-gutter);
    transition: background .22s ease, border-color .22s ease, box-shadow .22s ease, min-height .22s ease, padding .22s ease;
}

.brand {
    gap: 12px;
    transition: gap .22s ease;
}

.brand-logo {
    border: 2px solid rgba(255, 255, 255, .9);
    border-radius: var(--radius-card);
    box-shadow: 0 12px 26px rgba(78, 58, 40, .14);
}

.brand-logo-lockup {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    flex: 0 0 clamp(190px, 15vw, 230px);
    height: auto;
    overflow: visible;
    transition: flex-basis .22s ease, width .22s ease;
    width: clamp(190px, 15vw, 230px);
}

.brand.brand-pro .brand-logo-lockup {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.brand-logo-lockup img {
    display: block;
    height: auto;
    overflow: visible;
    width: 100%;
}

.brand-logo-lockup + .brand-copy {
    align-self: center;
}

.brand-title,
h1,
h2,
h3 {
    color: var(--mpb-brun-fonce);
}

.brand small {
    background: var(--mpb-miel-doux);
    color: var(--mpb-corail-fonce);
}

.main-nav,
.nav-actions,
.main-nav a,
.nav-actions > .button,
.nav-cta,
.nav-cta-icon,
.nav-cta-icon::before,
.nav-cta-icon::after,
.selection-cart-toggle,
.selection-cart-mark,
.mobile-nav-toggle {
    transition-duration: .22s;
    transition-property: background, border-color, border-radius, box-shadow, color, flex-basis, gap, height, left, min-height, opacity, padding, top, transform, width;
    transition-timing-function: ease;
}

.eyebrow,
.home-guide-card span,
.profile-v3-decision-grid span,
.profile-v3-session-row span,
.profile-v3-price-grid span,
.profile-v3-option-panel span,
.profile-v3-sidebar-list dt,
.profile-v3-sidebar-price span,
.profile-v3-price-chip span,
.step-card span {
    color: var(--mpb-corail-fonce);
}

p,
.lead,
.profile-v3-intro,
.profile-v3-section-head p:not(.eyebrow),
.profile-v3-decision-grid p,
.profile-v3-session-row p,
.profile-v3-price-grid p,
.profile-v3-option-panel p,
.profile-v3-sidebar-price p {
    color: var(--mpb-gris);
}

.button-accent,
.filter-sidebar button,
.directory-map-list-item button,
.google-map-pin.is-selected,
.map-pin.is-selected::before,
.map-pin:nth-of-type(odd)::before,
.selection-list-rank {
    background: var(--mpb-corail);
    background-image: none;
    color: var(--mpb-blanc);
}

.button-accent:hover,
.filter-sidebar button:hover,
.directory-map-list-item button:hover {
    background: var(--mpb-corail-fonce);
    background-image: none;
}

.button-secondary {
    background: var(--mpb-blanc);
    border-color: var(--mpb-beige-medium);
    color: var(--mpb-brun-fonce);
}

.main-nav a.is-active,
.section-anchor-nav a.is-active,
.section-anchor-nav a:hover,
.chip.active,
.filter-option input:checked + span,
.badge-dark,
.badge-selected,
.profile-v3-price-grid article.is-featured,
.profile-v3-trust,
.directory-map-meta,
.selection-tray,
.selection-cart-panel,
.directory-selection-tray,
.consumer-portal-next {
    background: var(--mpb-brun-fonce);
    border-color: var(--mpb-brun-fonce);
    color: var(--mpb-blanc);
}

.panel,
.photographer-card,
.dashboard-card,
.choice-list,
.profile-identity,
.cms-cta,
.page-hero,
.directory-header,
.filter-sidebar,
.directory-map-card,
.directory-map-list-item,
.profile-v3-section,
.profile-v3-sticky-card,
.home-guide-feature,
.home-guide-card,
.step-card,
.consumer-recipient-card,
.consumer-message-preview {
    background: var(--mpb-blanc);
    border-color: var(--mpb-beige-medium);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-sm);
}

.panel.consumer-portal-next {
    background: var(--mpb-brun-fonce);
    border-color: var(--mpb-brun-fonce);
    color: var(--mpb-blanc);
}

.panel.consumer-portal-next h2 {
    color: var(--mpb-blanc);
}

.panel.consumer-portal-next .eyebrow,
.panel.consumer-portal-next p:not(.eyebrow) {
    color: rgba(255, 255, 255, .72);
}

.panel.consumer-portal-next .button {
    background: var(--mpb-blanc);
    border-color: rgba(255, 255, 255, .84);
    color: var(--mpb-brun-fonce);
}

.panel.confirmation-hero {
    background: var(--mpb-brun-fonce);
    border-color: var(--mpb-brun-fonce);
    color: var(--mpb-blanc);
}

.panel.confirmation-hero h1,
.panel.confirmation-hero p {
    color: var(--mpb-blanc);
}

.panel.confirmation-hero p:not(.eyebrow) {
    color: rgba(255, 255, 255, .76);
}

.directory-card-grid .photographer-card {
    border-radius: var(--radius-card);
}

.profile-v3-section.profile-v3-trust {
    background: var(--mpb-brun-fonce);
    border-color: var(--mpb-brun-fonce);
    color: var(--mpb-blanc);
}

.profile-v3-section.profile-v3-trust .eyebrow,
.profile-v3-section.profile-v3-trust p,
.profile-v3-section.profile-v3-trust small {
    color: rgba(255, 255, 255, .72);
}

.profile-v3-section.profile-v3-trust strong,
.profile-v3-section.profile-v3-trust span,
.profile-v3-section.profile-v3-trust summary,
.profile-v3-section.profile-v3-trust summary::after {
    color: var(--mpb-blanc);
}

.profile-v3-section.profile-v3-trust .profile-badge-detail {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .16);
}

.profile-v3-section.profile-v3-trust .profile-badge-icon {
    background: var(--mpb-blanc);
    color: var(--mpb-brun-fonce);
}

.profile-v3-badge-fallback {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.profile-v3-section.profile-v3-trust .profile-v3-badge-fallback .badge {
    max-width: 100%;
    width: auto;
}

.field,
.filter-group input,
.filter-group select,
.search-box,
.hero-search,
.chip,
.card-meta-strip span,
.filter-option span,
.directory-map-toolbar,
.profile-v3-decision-grid article,
.profile-v3-session-row article,
.profile-v3-price-grid article,
.profile-v3-option-panel article,
.profile-v3-proof span,
.profile-v3-price-chip,
.profile-v3-frame,
.profile-v3-portfolio-grid figure,
.profile-badge-detail,
.request-stepper span,
.consumer-recipient-meta div,
.consumer-comparison-row {
    border-color: var(--mpb-beige-medium);
    border-radius: var(--radius-card);
}

.field,
.filter-group input,
.filter-group select,
.card-meta-strip span,
.filter-option span,
.directory-map-toolbar,
.profile-v3-decision-grid article,
.profile-v3-session-row article,
.profile-v3-price-grid article,
.profile-v3-option-panel article {
    background: #fffaf6;
}

.field:focus-within,
.filter-group input:focus,
.filter-group select:focus {
    border-color: var(--mpb-corail);
    box-shadow: 0 0 0 3px rgba(217, 111, 95, .14);
    outline: 0;
}

.badge,
.directory-map-list-rank {
    background: var(--mpb-sauge-doux);
    border: 1px solid rgba(127, 165, 141, .28);
    color: var(--mpb-sauge-fonce);
}

.profile-v3-section.profile-v3-trust .profile-v3-badge-fallback .badge {
    background: rgba(255, 255, 255, .92);
    border-color: rgba(255, 255, 255, .72);
    color: var(--mpb-brun-fonce);
}

.badge-outline {
    background: var(--mpb-blanc);
    color: var(--mpb-gris);
}

.photographer-card.is-selected,
.directory-card-grid .photographer-card.is-selected {
    border-color: rgba(217, 111, 95, .68);
    box-shadow: 0 0 0 3px rgba(217, 111, 95, .14), var(--shadow-sm);
}

.hero-proof span::before,
.profile-v3-proof span::before,
.progress-bar span {
    background: var(--mpb-miel);
}

.photo-placeholder {
    background: linear-gradient(135deg, var(--mpb-beige-medium), var(--mpb-beige-clair) 52%, var(--mpb-brun-doux));
}

.photo-placeholder {
    display: grid;
    overflow: hidden;
    place-items: center;
    position: relative;
}

.photo-placeholder::before {
    background: rgba(255, 253, 250, .72);
    border: 1px solid rgba(125, 95, 68, .16);
    border-radius: 28px;
    box-shadow: 0 20px 50px rgba(73, 55, 39, .12);
    content: "";
    height: min(110px, 34%);
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(240px, 58%);
    z-index: 1;
}

.photo-placeholder::after {
    background: url('/brand/mon-photographe-logo.png') center / contain no-repeat;
    content: "";
    height: min(82px, 26%);
    left: 50%;
    opacity: .5;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(190px, 48%);
    z-index: 2;
}

.rating-pill {
    background: var(--mpb-blanc);
    border: 1px solid var(--mpb-beige-medium);
    color: var(--mpb-brun-fonce);
}

.hero-search,
.search-box,
.hero-photo,
.floating-note,
.hero-profile-card,
.hero-photo-studio,
.hero-photo-detail,
.home-guide-thumb,
.home-guide-media,
.profile-v3-frame,
.profile-v3-portfolio-grid figure,
.portfolio-grid img,
.profile-gallery-main,
.profile-gallery-side img,
.profile-gallery-side .photo-placeholder,
.directory-map,
.footer-cta {
    border-radius: var(--radius-card);
}

.hero-search .button-accent {
    border-radius: var(--radius-control);
}

.hero-collage::before {
    background: rgba(232, 217, 200, .72);
    border-color: rgba(201, 168, 130, .34);
    border-radius: var(--radius-card);
}

.directory-map {
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .44), rgba(255, 255, 255, 0) 48%),
        linear-gradient(135deg, var(--mpb-sauge-doux), var(--mpb-beige-clair) 58%, var(--mpb-miel-doux));
    border-color: rgba(127, 165, 141, .30);
}

.directory-map::after {
    border-color: rgba(160, 130, 94, .44);
}

.map-france-outline path {
    fill: rgba(255, 255, 255, .68);
    stroke: rgba(160, 130, 94, .42);
}

.map-area {
    background: rgba(127, 165, 141, .18);
    border-color: rgba(85, 116, 96, .24);
}

.map-area-secondary {
    background: rgba(241, 199, 111, .18);
    border-color: rgba(193, 145, 51, .22);
}

.footer-cta {
    background: linear-gradient(135deg, var(--mpb-brun-fonce), #5c4034 58%, #745046);
}

.footer-cta::after {
    display: none;
}

.selection-cart-mark {
    background: var(--mpb-miel-doux);
    box-shadow: inset 0 0 0 1px rgba(241, 199, 111, .32);
}

.selection-cart-mark::before,
.selection-cart-mark::after {
    border-color: var(--mpb-brun-fonce);
}

.nav-cta-icon {
    background: rgba(217, 111, 95, .20);
}

.nav-cta-icon::after {
    box-shadow: 0 -8px 0 -5px var(--mpb-miel);
}

.photo-badge {
    background: rgba(255, 255, 255, .92);
    border: 1px solid rgba(127, 165, 141, .22);
    color: var(--mpb-sauge-fonce);
}

.rating-pill {
    border-color: rgba(241, 199, 111, .52);
    box-shadow: inset 0 0 0 1px rgba(241, 199, 111, .10);
}

.card-meta-strip span,
.filter-option span,
.profile-v3-proof span,
.profile-v3-price-chip {
    background: var(--mpb-miel-doux);
    border-color: rgba(241, 199, 111, .32);
}

.card-meta-strip span:nth-child(even),
.profile-v3-proof span:nth-child(even) {
    background: var(--mpb-sauge-doux);
    border-color: rgba(127, 165, 141, .26);
}

.step-card {
    overflow: hidden;
    position: relative;
}

.step-card::before,
.home-guide-card::before,
.cms-guide-card::before {
    content: "";
    display: block;
    height: 4px;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
}

.step-card:nth-child(1)::before,
.home-guide-card:nth-child(1)::before,
.cms-guide-card:nth-child(3n + 1)::before {
    background: var(--mpb-corail);
}

.step-card:nth-child(2)::before,
.home-guide-card:nth-child(2)::before,
.cms-guide-card:nth-child(3n + 2)::before {
    background: var(--mpb-sauge);
}

.step-card:nth-child(3)::before,
.home-guide-card:nth-child(3)::before,
.cms-guide-card:nth-child(3n + 3)::before {
    background: var(--mpb-miel);
}

.step-card:nth-child(1) span {
    color: rgba(217, 111, 95, .62);
}

.step-card:nth-child(2) span {
    color: rgba(127, 165, 141, .78);
}

.step-card:nth-child(3) span {
    color: rgba(193, 145, 51, .72);
}

.home-guide-feature,
.home-guide-card,
.cms-guide-card {
    position: relative;
}

.home-guide-feature {
    background: linear-gradient(135deg, var(--mpb-blanc) 0%, var(--mpb-blanc) 72%, var(--mpb-sauge-doux) 100%);
}

.home-guide-card:nth-child(odd) {
    background: linear-gradient(135deg, var(--mpb-blanc), #fffaf6);
}

.home-guide-card:nth-child(even) {
    background: linear-gradient(135deg, var(--mpb-blanc), var(--mpb-sauge-doux));
}

.cms-topic-row a:hover,
.cms-topic-row a.is-active,
.specialty-guide-links a:hover {
    border-color: rgba(217, 111, 95, .38);
}

@media (max-width: 860px) {
    .site-header {
        align-items: center;
        gap: 8px;
        grid-template-columns: minmax(112px, 1fr) auto;
        min-height: 82px;
        padding: 10px var(--page-gutter);
    }

    .brand {
        gap: 0;
    }

    .brand-logo-lockup {
        flex-basis: clamp(124px, 34vw, 154px);
        width: clamp(124px, 34vw, 154px);
    }

    .brand-logo-lockup + .brand-copy {
        display: none;
    }

    body[data-controller~="directory-selection"] .brand-copy {
        display: grid;
    }

    .brand-title {
        font-size: 18px;
        max-width: 118px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .brand small {
        display: none;
    }

    .nav-actions {
        gap: 6px;
        min-width: 0;
    }

    .nav-actions .nav-cta {
        display: none;
    }

    .selection-cart-shell {
        padding: 4px 7px;
    }

    .selection-cart-toggle {
        gap: 7px;
        min-height: 42px;
        padding: 0 8px 0 3px;
    }

    .selection-cart-mark {
        height: 34px;
        width: 34px;
    }

    .selection-cart-mark::before {
        height: 8px;
        top: 50%;
        width: 16px;
    }

    .selection-cart-copy {
        gap: 0;
    }

    .selection-cart-copy strong {
        display: none;
    }

    .selection-cart-copy small {
        color: var(--mpb-brun-fonce);
        font-size: 13px;
        font-weight: 950;
    }

    .selection-cart-count::after {
        content: "";
    }

    .mobile-nav-toggle {
        height: 48px;
        min-height: 48px;
        width: 48px;
    }

    .mobile-nav-toggle span {
        left: 15px;
        width: 18px;
    }

    .mobile-nav-toggle span:first-child {
        top: 18px;
    }

    .mobile-nav-toggle span:last-child {
        top: 29px;
    }

    .mobile-nav-is-open .mobile-nav-toggle span:first-child,
    .mobile-nav-is-open .mobile-nav-toggle span:last-child {
        top: 24px;
    }
}

@media (max-width: 390px) {
    html,
    body {
        overflow-x: clip;
        overflow-y: visible;
    }

    .site-header {
        gap: 6px;
        min-height: 76px;
        padding-bottom: 8px;
        padding-top: 8px;
    }

    .brand-logo-lockup {
        flex-basis: clamp(108px, 31vw, 128px);
        width: clamp(108px, 31vw, 128px);
    }

    body[data-controller~="directory-selection"] .brand-copy {
        display: grid;
    }

    .selection-cart-copy small {
        font-size: 12px;
    }

    .selection-cart-toggle {
        gap: 6px;
        min-height: 40px;
        padding-left: 3px;
        padding-right: 7px;
    }

    .selection-cart-mark {
        height: 32px;
        width: 32px;
    }

    .selection-cart-mark::before {
        top: 50%;
    }

    .mobile-nav-toggle {
        height: 44px;
        min-height: 44px;
        width: 44px;
    }

    .mobile-nav-toggle span {
        left: 13px;
        width: 18px;
    }

    .mobile-nav-toggle span:first-child {
        top: 16px;
    }

    .mobile-nav-toggle span:last-child {
        top: 27px;
    }

    .mobile-nav-is-open .mobile-nav-toggle span:first-child,
    .mobile-nav-is-open .mobile-nav-toggle span:last-child {
        top: 22px;
    }
}

.site-header.site-header-is-compact {
    background: rgba(245, 239, 232, .985);
    border-bottom-color: rgba(201, 168, 130, .58);
    box-shadow: 0 8px 26px rgba(78, 58, 40, .09);
    min-height: 72px;
    padding-bottom: 8px;
    padding-top: 8px;
}

.site-header.site-header-is-compact .brand {
    gap: 9px;
}

.site-header.site-header-is-compact .brand-logo-lockup {
    flex-basis: clamp(150px, 11vw, 178px);
    width: clamp(150px, 11vw, 178px);
}

.site-header.site-header-is-compact .main-nav {
    padding: 5px;
}

.site-header.site-header-is-compact .main-nav a {
    font-size: 13px;
    min-height: 40px;
    padding: 10px 16px;
}

.site-header.site-header-is-compact .nav-actions {
    gap: 10px;
}

.site-header.site-header-is-compact .nav-actions > .button {
    min-height: 42px;
    padding: 10px 18px;
}

.site-header.site-header-is-compact .nav-cta {
    gap: 10px;
    min-height: 48px;
    padding: 9px 18px 9px 14px;
}

.site-header.site-header-is-compact .nav-cta-icon {
    border-radius: 10px;
    height: 30px;
    width: 30px;
}

.site-header.site-header-is-compact .nav-cta-icon::before {
    border-radius: 6px;
    height: 14px;
    width: 18px;
}

.site-header.site-header-is-compact .nav-cta-icon::after {
    height: 6px;
    width: 6px;
}

.site-header.site-header-is-compact .selection-cart-toggle {
    line-height: 1.15;
    min-height: 40px;
    padding-right: 8px;
}

@media (min-width: 861px) {
    .site-header.site-header-is-compact .selection-cart-shell {
        padding: 4px 8px;
    }

    .site-header.site-header-is-compact .selection-cart-copy {
        gap: 0;
    }

    .site-header.site-header-is-compact .selection-cart-copy strong {
        font-size: 14px;
        line-height: 1.15;
    }

    .site-header.site-header-is-compact .selection-cart-copy small {
        font-size: 13px;
        line-height: 1.15;
    }
}

.site-header.site-header-is-compact .selection-cart-mark {
    height: 34px;
    width: 34px;
}

.site-header.site-header-is-compact .selection-cart-mark::before {
    height: 8px;
    width: 16px;
}

.site-header.site-header-is-compact .mobile-nav-toggle {
    height: 42px;
    min-height: 42px;
    width: 42px;
}

.site-header.site-header-is-compact .mobile-nav-toggle span {
    left: 12px;
    width: 18px;
}

.site-header.site-header-is-compact .mobile-nav-toggle span:first-child {
    top: 15px;
}

.site-header.site-header-is-compact .mobile-nav-toggle span:last-child {
    top: 26px;
}

.site-header.site-header-is-compact.mobile-nav-is-open .mobile-nav-toggle span:first-child,
.site-header.site-header-is-compact.mobile-nav-is-open .mobile-nav-toggle span:last-child {
    top: 21px;
}

@media (max-width: 860px) {
    .site-header.site-header-is-compact {
        gap: 6px;
        min-height: 66px;
        padding-bottom: 6px;
        padding-top: 6px;
    }

    .site-header.site-header-is-compact .brand-logo-lockup {
        flex-basis: clamp(104px, 29vw, 128px);
        width: clamp(104px, 29vw, 128px);
    }

    .site-header.site-header-is-compact .selection-cart-toggle {
        min-height: 38px;
        padding-left: 3px;
        padding-right: 7px;
    }

    .site-header.site-header-is-compact .selection-cart-mark {
        height: 30px;
        width: 30px;
    }

    .site-header.site-header-is-compact .selection-cart-mark::before {
        height: 7px;
        top: 50%;
        width: 15px;
    }

    .site-header.site-header-is-compact .selection-cart-panel {
        max-height: calc(100dvh - 78px);
        top: 70px;
    }

    .site-header.site-header-is-compact .mobile-nav-toggle {
        height: 40px;
        min-height: 40px;
        width: 40px;
    }

    .site-header.site-header-is-compact .mobile-nav-toggle span {
        left: 11px;
    }

    .site-header.site-header-is-compact .mobile-nav-toggle span:first-child {
        top: 14px;
    }

    .site-header.site-header-is-compact .mobile-nav-toggle span:last-child {
        top: 25px;
    }

    .site-header.site-header-is-compact.mobile-nav-is-open .mobile-nav-toggle span:first-child,
    .site-header.site-header-is-compact.mobile-nav-is-open .mobile-nav-toggle span:last-child {
        top: 20px;
    }
}

@media (max-width: 390px) {
    .site-header.site-header-is-compact {
        min-height: 62px;
        padding-bottom: 5px;
        padding-top: 5px;
    }

    .site-header.site-header-is-compact .brand-logo-lockup {
        flex-basis: clamp(96px, 30vw, 112px);
        width: clamp(96px, 30vw, 112px);
    }

    .site-header.site-header-is-compact .selection-cart-toggle {
        min-height: 36px;
    }

    .site-header.site-header-is-compact .mobile-nav-toggle {
        height: 38px;
        min-height: 38px;
        width: 38px;
    }
}

/* Final rhythm guardrails: headings must keep breathing room before content. */
.section-heading,
.directory-header,
.profile-v3-section-head,
.profile-decision-page .profile-grid-heading,
.cms-decision-heading,
.filter-head,
.contest-submit-panel .section-heading {
    column-gap: clamp(16px, 2.4vw, 32px);
    row-gap: clamp(12px, 1.6vw, 22px);
}

.section-heading {
    margin-bottom: clamp(24px, 3vw, 42px);
}

.section-heading.compact {
    margin-bottom: clamp(18px, 2.2vw, 30px);
}

.section-heading + :is(.grid, .steps-section, .home-guides-layout, .cms-guide-grid, .pro-benefit-grid, .pro-onboarding-steps, .pro-pricing-grid, .pro-resource-layout, .contest-category-spotlight-grid, .contest-rules-grid, .contest-participation-layout, .contest-gallery-layout, .profile-proof-summary-grid, .public-portfolio-grid) {
    margin-top: 0;
}

.directory-header,
.cms-decision-heading,
.profile-v3-section-head,
.profile-decision-page .profile-grid-heading {
    margin-bottom: clamp(20px, 2.4vw, 34px);
}

.directory-header + *,
.cms-decision-heading + *,
.profile-v3-section-head + *,
.profile-decision-page .profile-grid-heading + * {
    margin-top: 0;
}

:is(.step-card, .photographer-card .body, .home-guide-body, .home-guide-card, .cms-guide-card, .cms-feature-body, .cms-side-cta, .pro-benefit-card, .pro-price-card, .pro-onboarding-steps article, .pro-toolbox, .contest-card, .contest-info-card, .contest-rules-card, .contest-category-spotlight, .profile-v3-section, .profile-v3-sticky-card, .panel, .dashboard-card) > :is(h1, h2, h3) + :is(p, ul, ol, dl, form, .button-row, .feature-list, .card-meta-strip, .badge-list) {
    margin-top: clamp(10px, 1.2vw, 16px);
}

:is(.cms-text, .cms-faq, .cms-cta, .page-hero, .lead-summary-card, .request-stage, .review-form-card) :is(h1, h2, h3) + :is(p, ul, ol, dl, form) {
    margin-top: clamp(12px, 1.4vw, 20px);
}

@media (max-width: 860px) {
    .section-heading,
    .directory-header,
    .profile-v3-section-head,
    .profile-decision-page .profile-grid-heading,
    .cms-decision-heading,
    .pro-section-heading {
        align-items: start;
        flex-direction: column;
    }

    .section-heading {
        margin-bottom: clamp(20px, 5vw, 30px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-header,
    .site-header *,
    .site-header *::before,
    .site-header *::after {
        transition-duration: 0s !important;
    }
}

body.has-directory-map-fullscreen .site-header,
body.has-directory-map-fullscreen .site-header *,
body.has-directory-map-fullscreen .selection-cart,
body.has-directory-map-fullscreen .selection-cart * {
    pointer-events: none;
}

body.has-directory-map-fullscreen .directory-map-card.is-map-fullscreen {
    pointer-events: auto;
    position: fixed;
    z-index: 10000;
}

/* Final premium white polish: loaded after the legacy public/pro theme. */
:root {
    --paper: #ffffff;
    --surface: #ffffff;
    --shadow: 0 18px 48px rgba(78, 58, 40, .075);
    --shadow-sm: 0 8px 24px rgba(78, 58, 40, .055);
}

html,
body {
    background: #ffffff;
}

body {
    font-size: 16px;
    line-height: 1.68;
}

body::before {
    display: none;
}

.site-header,
.site-header.site-header-is-compact {
    background: rgba(255, 255, 255, .96);
}

.container {
    margin-inline: auto;
    max-width: 1760px;
}

h1 {
    font-size: clamp(32px, 3.6vw, 52px);
    line-height: 1.06;
}

h2 {
    font-size: clamp(25px, 2.6vw, 36px);
    line-height: 1.12;
}

h3 {
    font-size: clamp(19px, 1.55vw, 24px);
    line-height: 1.2;
}

p,
.lead {
    line-height: 1.72;
}

.lead {
    font-size: clamp(17px, 1.2vw, 19px);
}

.home-copy h1,
.profile-v3-copy h1,
.cms-hero-copy h1,
.local-seo-copy h1,
.specialty-hero-copy h1,
.request-header h1,
.confirmation-hero h1,
.pro-auth-copy h1,
.contest-hero-copy h1,
.contest-vote-copy h1,
.review-form-hero h1,
.review-status-card h1 {
    font-size: clamp(36px, 4.2vw, 56px);
    line-height: 1.04;
}

.home-copy .lead,
.cms-hero-copy > p:not(.eyebrow),
.local-seo-copy .lead,
.specialty-hero-copy .lead,
.profile-v3-intro,
.request-header p:not(.eyebrow) {
    font-size: clamp(16px, 1.05vw, 18px);
    line-height: 1.72;
}

.featured-section,
.home-process-section,
.home-guides-section,
.directory-page,
.profile-portfolio,
.profile-trust,
.request-page,
.page-section,
.form-flow,
.training-layout,
.dashboard,
.cms-index-page,
.member-dashboard,
.member-profile-editor,
.member-contests-page,
.member-billing-page,
.local-seo-page,
.specialty-page {
    padding-bottom: clamp(78px, 7vw, 116px);
    padding-top: clamp(64px, 6vw, 96px);
}

.home-screen {
    padding-bottom: clamp(56px, 6vw, 88px);
    padding-top: clamp(42px, 5vw, 72px);
}

.home-intro {
    gap: clamp(32px, 5vw, 82px);
    min-height: clamp(560px, calc(100svh - 132px), 680px);
}

.home-copy {
    gap: 18px;
    max-width: 680px;
}

.section-heading,
.directory-header,
.profile-v3-section-head,
.cms-decision-heading {
    gap: clamp(18px, 2.6vw, 40px);
    margin-bottom: clamp(32px, 4vw, 56px);
}

.section-heading > div,
.directory-header > div,
.request-header > div,
.member-onboarding-head > div {
    display: grid;
    gap: 12px;
}

.panel,
.photographer-card,
.dashboard-card,
.choice-list,
.profile-v3-section,
.profile-v3-sticky-card,
.home-guide-feature,
.home-guide-card,
.step-card,
.cms-decision-card,
.cms-feature-card,
.cms-guide-card,
.billing-status-card,
.billing-credit-card,
.billing-plan-card,
.member-action-card,
.member-onboarding-panel,
.member-contest-edition-card,
.member-contest-submission-card,
.member-contest-award-card,
.request-stage-card,
.project-choice,
.filter-sidebar,
.directory-map-card {
    box-shadow: var(--shadow-sm);
}

.home-guide-feature,
.home-guide-card,
.home-featured-empty,
.directory-empty-state,
.request-empty-start,
.local-zone-panel,
.local-editorial-panel {
    background: #ffffff;
}

.hero-search,
.search-box,
.cms-search-panel,
.local-seo-search,
.specialty-search-card {
    border-radius: 22px;
    box-shadow: 0 14px 40px rgba(78, 58, 40, .065);
}

.hero-search .button-accent,
.local-seo-search .button-accent,
.specialty-search-card .button-accent {
    min-height: 64px;
}

.field {
    border-radius: 14px;
    padding: 13px 15px;
}

.photographer-card .body,
.dashboard-card,
.panel {
    padding: clamp(22px, 2vw, 28px);
}

.photographer-card .body,
.directory-card-grid .photographer-card .body {
    gap: 16px;
}

.card-title-row h3,
.directory-card-grid .card-title-row h3 {
    font-size: clamp(20px, 1.35vw, 23px);
    line-height: 1.16;
}

.photographer-card p,
.directory-card-grid .photographer-card p {
    font-size: 14px;
    line-height: 1.62;
}

.badge,
.card-meta-strip span,
.chip,
.filter-option span {
    font-size: 11px;
    letter-spacing: .01em;
}

.steps-section,
.cms-decision-grid,
.home-guides-layout,
.grid,
.directory-card-grid,
.profile-v3-portfolio-grid,
.member-action-grid,
.member-contest-stat-grid,
.credit-pack-grid {
    gap: clamp(22px, 2.4vw, 34px);
}

.step-card {
    min-height: auto;
    padding: clamp(24px, 2.6vw, 34px);
}

.step-card span,
.cms-decision-card span {
    font-size: clamp(34px, 3.6vw, 48px);
    margin-bottom: 14px;
}

.step-card h3,
.cms-decision-card h3,
.home-guide-card h3,
.member-action-card strong {
    font-family: var(--font-sans);
    font-size: clamp(20px, 1.6vw, 25px);
    line-height: 1.18;
}

.step-card p,
.cms-decision-card p,
.home-guide-card p {
    line-height: 1.68;
}

.home-guide-feature {
    min-height: 340px;
}

.home-guide-body {
    gap: 16px;
    padding: clamp(30px, 4vw, 50px);
}

.home-guide-body h3,
.cms-feature-body h2,
.cms-side-cta h2,
.profile-v3-section-head h2,
.cms-decision-heading h2,
.request-stage-head h2,
.member-onboarding-head h2 {
    font-size: clamp(26px, 2.45vw, 36px);
    line-height: 1.12;
}

.directory-page,
.request-page,
.profile-v3-page {
    gap: clamp(38px, 4vw, 64px);
}

.directory-page {
    padding-top: clamp(30px, 3.4vw, 46px);
}

.directory-header {
    padding: clamp(28px, 3vw, 42px);
}

.directory-search-hero {
    align-items: end;
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(232, 217, 200, .92);
    border-radius: 0;
    box-shadow: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 380px);
    margin-bottom: 0;
    padding: 0 0 clamp(24px, 2.8vw, 38px);
}

.directory-search-main {
    max-width: 860px;
}

.directory-search-main h1 {
    font-size: clamp(32px, 2.95vw, 44px);
    line-height: 1.08;
    max-width: 860px;
}

.directory-search-main h1 span {
    font-variant-numeric: tabular-nums;
}

.directory-search-intro {
    color: var(--muted);
    font-size: 15px;
    line-height: 1.68;
    margin-top: 10px;
    max-width: 560px;
}

.directory-search-aside {
    display: grid;
    gap: 12px;
    justify-self: end;
    max-width: 420px;
    width: 100%;
}

.directory-search-aside > p {
    color: var(--mpb-corail-fonce);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .1em;
    margin: 0;
    text-align: right;
    text-transform: uppercase;
}

.directory-search-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.directory-search-tags span {
    align-items: center;
    background: #fffaf7;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-weight: 850;
    min-height: 32px;
    padding: 7px 12px;
}

.directory-search-tags span:first-child {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.directory-search-aside .button {
    justify-self: end;
    min-height: 40px;
    padding: 10px 16px;
}

.directory-header-fallback {
    display: none;
}

.directory-layout,
.request-layout,
.profile-v3-hero,
.profile-v3-layout {
    gap: clamp(26px, 3.4vw, 54px);
}

.profile-v3-page {
    padding-bottom: clamp(80px, 7vw, 124px);
    padding-top: clamp(44px, 5vw, 76px);
}

.profile-v3-section {
    gap: clamp(24px, 2.8vw, 38px);
    padding: clamp(28px, 3vw, 44px);
}

.profile-v3-section-head p:not(.eyebrow),
.profile-v3-decision-grid p,
.profile-v3-session-row p,
.profile-v3-price-grid p,
.profile-v3-option-panel p,
.profile-v3-sidebar-price p {
    line-height: 1.68;
}

.profile-v3-decision-grid,
.profile-v3-session-row,
.profile-v3-price-grid,
.profile-v3-option-panel {
    gap: clamp(14px, 1.8vw, 24px);
}

.profile-v3-decision-grid article,
.profile-v3-session-row article,
.profile-v3-price-grid article,
.profile-v3-option-panel article {
    min-height: auto;
    padding: clamp(20px, 2vw, 28px);
}

.profile-v3-decision-grid strong,
.profile-v3-session-row strong,
.profile-v3-price-grid strong,
.profile-v3-option-panel strong {
    font-size: clamp(20px, 1.45vw, 25px);
    line-height: 1.14;
}

.profile-v3-review-score strong,
.profile-v3-sidebar-price strong,
.billing-price strong {
    font-size: clamp(34px, 3.2vw, 46px);
}

.member-hero {
    border-radius: 24px;
    margin-bottom: clamp(34px, 4vw, 54px);
    padding: clamp(30px, 4vw, 56px);
}

.member-hero h1,
.member-hero-compact h1 {
    font-size: clamp(36px, 4vw, 56px);
    line-height: 1.06;
}

.member-action-card {
    min-height: 150px;
    padding: 24px;
}

.member-onboarding-panel,
.billing-plan-card,
.billing-status-card,
.billing-credit-card,
.request-selection,
.request-fields,
.request-stage-card,
.cms-decision-card,
.cms-guide-card {
    padding: clamp(24px, 2.8vw, 36px);
}

.billing-plan-card,
.billing-status-card,
.billing-credit-card,
.request-stage-card {
    gap: clamp(18px, 2vw, 28px);
}

.billing-plan-card h3,
.billing-status-panel strong,
.credit-pack-card span {
    font-size: clamp(28px, 2.7vw, 38px);
}

.cms-hero {
    padding-bottom: clamp(64px, 6vw, 92px);
    padding-top: clamp(54px, 5vw, 82px);
}

.cms-decision-strip,
.cms-feature-layout {
    padding-bottom: clamp(76px, 7vw, 112px);
}

@media (max-width: 860px) {
    .home-copy h1,
    .profile-v3-copy h1,
    .cms-hero-copy h1,
    .local-seo-copy h1,
    .specialty-hero-copy h1,
    .request-header h1,
    .confirmation-hero h1,
    .pro-auth-copy h1,
    .contest-hero-copy h1,
    .contest-vote-copy h1,
    .review-form-hero h1,
    .review-status-card h1 {
        font-size: clamp(32px, 8.2vw, 42px);
    }

    .featured-section,
    .home-process-section,
    .home-guides-section,
    .directory-page,
    .profile-portfolio,
    .profile-trust,
    .request-page,
    .page-section,
    .form-flow,
    .training-layout,
    .dashboard,
    .cms-index-page,
    .member-dashboard,
    .member-profile-editor,
    .member-contests-page,
    .member-billing-page,
    .local-seo-page,
    .specialty-page {
        padding-bottom: clamp(58px, 12vw, 82px);
        padding-top: clamp(48px, 10vw, 70px);
    }

    .home-screen {
        padding-top: clamp(38px, 9vw, 56px);
    }

    .hero-search .button-accent,
    .local-seo-search .button-accent,
    .specialty-search-card .button-accent {
        min-height: 52px;
    }

    .directory-search-hero {
        gap: 16px;
        grid-template-columns: 1fr;
    }

    .directory-search-aside {
        justify-self: stretch;
        max-width: none;
    }

    .directory-search-aside > p {
        text-align: left;
    }

    .directory-search-tags {
        justify-content: flex-start;
    }

    .directory-search-aside .button {
        justify-self: start;
    }
}

@media (max-width: 620px) {
    h1 {
        font-size: 36px;
    }

    h2 {
        font-size: 29px;
    }

    .container:is(.directory-page, .profile-v3-page, .request-page, .cms-index-page, .cms-page, .contest-index-page, .contest-show-page) {
        padding-top: 42px;
    }

    .section-heading,
    .directory-header,
    .cms-decision-heading,
    .profile-v3-section-head {
        margin-bottom: 28px;
    }

    .directory-page {
        gap: 28px;
        padding-top: 28px;
    }

    .directory-search-hero {
        border-bottom-color: rgba(232, 217, 200, .84);
        padding: 0 0 20px;
    }

    .directory-search-main h1 {
        font-size: clamp(28px, 7vw, 32px);
        line-height: 1.06;
    }

    .directory-search-intro {
        font-size: 14px;
        line-height: 1.58;
    }

    .directory-search-tags {
        gap: 7px;
    }

    .directory-search-tags span {
        font-size: 11px;
        min-height: 30px;
        padding: 6px 10px;
    }

    .directory-search-aside .button {
        justify-self: stretch;
        width: 100%;
    }

    .step-card span,
    .cms-decision-card span {
        font-size: 36px;
    }
}

/* Final editorial pass: reduce the card-heavy feel on public storytelling surfaces. */
:root {
    --shadow-sm: 0 8px 22px rgba(78, 58, 40, .045);
}

.home-process-section .steps-section,
.cms-guide-grid,
.cms-decision-grid,
.cms-guide-takeaway-grid,
.cms-related-grid,
.cms-pricing-grid,
.pro-benefit-grid,
.pro-onboarding-steps,
.profile-v3-decision-grid,
.profile-v3-session-row,
.profile-v3-price-grid,
.profile-v3-option-panel,
.specialty-style-grid,
.specialty-advice-grid,
.specialty-guide-links,
.request-guide-strip {
    column-gap: clamp(26px, 3.2vw, 54px);
    row-gap: clamp(24px, 2.8vw, 38px);
}

.step-card,
.cms-decision-card,
.cms-guide-card,
.cms-guide-takeaway-grid article,
.cms-related-card,
.cms-pricing-card,
.cms-article-body .cms-text,
.cms-page .cms-faq details,
.local-editorial-content .cms-text,
.local-editorial-content .cms-faq details,
.specialty-style-card,
.specialty-panel,
.specialty-advice-grid div,
.specialty-guide-links a,
.specialty-faq-panel details,
.request-guide-strip,
.request-guide-strip div,
.pro-benefit-card,
.pro-onboarding-steps article {
    background: transparent;
    border: 0;
    border-radius: 0;
    border-top: 1px solid rgba(232, 217, 200, .92);
    box-shadow: none;
    min-height: 0;
    overflow: visible;
    padding: clamp(22px, 2.6vw, 34px) 0 0;
}

.step-card::before,
.home-guide-card::before,
.cms-guide-card::before,
.specialty-style-card::before {
    display: none;
}

.step-card span,
.cms-decision-card span,
.cms-guide-takeaway-grid span,
.pro-benefit-card > span,
.pro-onboarding-steps article > span {
    color: rgba(201, 111, 83, .46);
    margin-bottom: clamp(12px, 1.5vw, 20px);
}

.cms-decision-card-accent,
.cms-decision-card-accent h3,
.cms-decision-card-accent a,
.cms-decision-card-accent p {
    color: inherit;
}

.home-guide-feature,
.cms-feature-card {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    gap: clamp(24px, 3.5vw, 56px);
    overflow: visible;
}

.home-guide-media,
.cms-feature-media {
    border-radius: 22px;
    box-shadow: 0 14px 34px rgba(78, 58, 40, .06);
    overflow: hidden;
}

.home-guide-body,
.cms-feature-body {
    padding: clamp(8px, 2vw, 18px) 0;
}

.home-guide-list {
    gap: clamp(22px, 2.4vw, 34px);
}

.home-guide-card {
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(232, 217, 200, .92);
    border-radius: 0;
    box-shadow: none;
    min-height: 0;
    overflow: visible;
    padding: 0 0 clamp(20px, 2.2vw, 30px);
}

.home-guide-card > div {
    padding: 0;
}

.home-guide-thumb {
    border-radius: 16px;
}

.home-guide-card-muted {
    background: transparent;
}

.home-guide-card-muted > div {
    padding: 0;
}

.cms-article-body {
    gap: clamp(34px, 4vw, 58px);
}

.cms-article-body .cms-text {
    padding: clamp(26px, 3vw, 40px) 0 0;
}

.cms-page .cms-faq {
    gap: 0;
}

.cms-page .cms-faq details + details {
    margin-top: 0;
}

.cms-page .cms-faq summary {
    list-style: none;
}

.cms-page .cms-faq summary::-webkit-details-marker {
    display: none;
}

.cms-page .cms-faq details p {
    margin-bottom: 0;
    margin-top: 12px;
}

.cms-related-card {
    align-content: start;
    overflow: visible;
}

.cms-related-card-media {
    border-radius: 18px;
    box-shadow: 0 12px 30px rgba(78, 58, 40, .05);
    margin-bottom: 4px;
}

.cms-related-card > div {
    padding: 0;
}

.cms-image-gallery-grid figure {
    border-radius: 18px;
    box-shadow: none;
}

.local-zone-panel,
.local-editorial-panel,
.specialty-panel {
    border-top: 0;
    padding-left: 0;
    padding-right: 0;
}

.specialty-advice-grid div,
.specialty-guide-links a,
.local-editorial-content .cms-text,
.local-editorial-content .cms-faq details,
.specialty-faq-panel details {
    padding: clamp(16px, 2vw, 24px) 0 0;
}

.request-guide-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 0;
}

.request-guide-strip div {
    padding: clamp(16px, 2vw, 22px) 0 0;
}

.home-process-section {
    align-items: start;
    display: grid;
    gap: clamp(34px, 5vw, 88px);
    grid-template-columns: minmax(280px, .68fr) minmax(0, 1fr);
}

.home-process-section .section-heading {
    align-items: start;
    display: grid;
    gap: 18px;
    justify-content: start;
    margin-bottom: 0;
    max-width: 560px;
}

.home-process-section .section-heading h2 {
    max-width: 520px;
}

.home-process-section .section-heading .button {
    justify-self: start;
}

.home-process-section .steps-section {
    grid-template-columns: 1fr;
    row-gap: clamp(22px, 2.4vw, 34px);
}

.home-process-section .step-card {
    align-items: start;
    display: grid;
    gap: clamp(18px, 2.4vw, 34px);
    grid-template-columns: minmax(62px, .18fr) minmax(0, 1fr);
    padding-top: clamp(24px, 2.6vw, 36px);
}

.home-process-section .step-card span {
    margin: 0;
}

.home-process-section .step-card h3 {
    grid-column: 2;
    margin-bottom: 8px;
}

.home-process-section .step-card p {
    grid-column: 2;
}

.home-photo-run {
    align-items: end;
    display: grid;
    gap: clamp(22px, 3.5vw, 54px);
    grid-template-columns: minmax(260px, .58fr) minmax(0, .86fr) minmax(210px, .4fr);
    padding-bottom: clamp(72px, 7vw, 112px);
    padding-top: clamp(38px, 4vw, 62px);
}

.home-photo-run-copy {
    align-self: center;
    display: grid;
    gap: 16px;
    max-width: 520px;
}

.home-photo-run-copy h2 {
    max-width: 420px;
}

.home-photo-run-copy p:not(.eyebrow) {
    color: var(--muted);
    font-size: clamp(16px, 1.1vw, 18px);
    line-height: 1.72;
}

.home-photo-run-copy .button {
    justify-self: start;
    margin-top: 4px;
}

.home-photo-run figure {
    display: grid;
    gap: 12px;
    margin: 0;
}

.home-photo-run img {
    aspect-ratio: 4 / 5;
    border-radius: clamp(18px, 2vw, 28px);
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.home-photo-run-main img {
    aspect-ratio: 3 / 4;
}

.home-photo-run-grid {
    align-self: stretch;
    display: grid;
    gap: clamp(18px, 2vw, 28px);
}

.home-photo-run-grid img {
    aspect-ratio: 4 / 3;
    min-height: 0;
}

.home-photo-run figcaption {
    color: var(--mpb-corail-fonce);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.home-profile-strip {
    align-items: start;
    display: grid;
    gap: clamp(28px, 4vw, 66px);
    grid-template-columns: minmax(250px, .32fr) minmax(0, 1fr);
}

.home-profile-strip .section-heading {
    align-items: start;
    display: grid;
    gap: 16px;
    justify-content: start;
    margin-bottom: 0;
}

.home-profile-strip .section-heading h2 {
    max-width: 360px;
}

.home-profile-strip .section-heading .button {
    justify-self: start;
}

.home-profile-strip > .grid {
    grid-column: 2;
}

.cms-index-page {
    display: grid;
    gap: clamp(44px, 5vw, 78px);
}

.cms-decision-strip {
    align-items: start;
    display: grid;
    gap: clamp(30px, 4vw, 68px);
    grid-template-columns: minmax(260px, .42fr) minmax(0, 1fr);
    padding-bottom: clamp(28px, 4vw, 52px);
}

.cms-decision-heading {
    align-items: start;
    display: grid;
    gap: 14px;
    grid-template-columns: 1fr;
    margin-bottom: 0;
}

.cms-decision-heading .eyebrow,
.cms-decision-heading h2,
.cms-decision-heading p:not(.eyebrow) {
    grid-column: auto;
    grid-row: auto;
}

.cms-decision-heading p:not(.eyebrow) {
    font-size: 16px;
    max-width: 480px;
}

.cms-decision-grid {
    grid-template-columns: 1fr;
}

.cms-decision-card {
    align-items: start;
    display: grid;
    gap: clamp(16px, 2vw, 28px);
    grid-template-columns: 72px minmax(0, 1fr);
}

.cms-decision-card span {
    margin: 0;
}

.cms-decision-card h3,
.cms-decision-card p {
    grid-column: 2;
}

.cms-decision-card a {
    align-self: start;
    grid-column: 2;
}

/* Keep CMS reading links visible on the white editorial surfaces. */
.cms-decision-card a,
.cms-guide-card a:not(.button),
.cms-related-card a:not(.cms-related-card-media) {
    color: #985456;
}

.cms-decision-card a:hover,
.cms-guide-card a:not(.button):hover,
.cms-related-card a:not(.cms-related-card-media):hover {
    color: #784042;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Article sections follow the heading scale used on the advice index. */
.cms-page.cms-article-page h2 {
    font-size: clamp(22px, 1.8vw, 28px);
    letter-spacing: -.02em;
    line-height: 1.3;
}

.cms-page.cms-article-page h3 {
    font-size: clamp(18px, 1.5vw, 22px);
    letter-spacing: -.015em;
    line-height: 1.35;
}

.cms-feature-layout {
    grid-template-columns: minmax(0, 1.08fr) minmax(280px, .48fr);
    padding-bottom: clamp(38px, 5vw, 70px);
}

.cms-guide-section {
    align-items: start;
    display: grid;
    gap: clamp(28px, 4vw, 64px);
    grid-template-columns: minmax(240px, .3fr) minmax(0, 1fr);
}

.cms-guide-section .section-heading {
    align-items: start;
    display: grid;
    gap: 14px;
    justify-content: start;
    margin-bottom: 0;
}

.cms-guide-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.profile-v3-main {
    gap: 0;
}

.profile-v3-section {
    background: transparent;
    border: 0;
    border-radius: 0;
    border-top: 1px solid rgba(232, 217, 200, .92);
    box-shadow: none;
    padding: clamp(38px, 4vw, 64px) 0;
}

.profile-v3-main > .profile-v3-section:first-child {
    border-top: 0;
    padding-top: 0;
}

.profile-v3-decision-grid article,
.profile-v3-session-row article,
.profile-v3-price-grid article,
.profile-v3-option-panel article {
    background: transparent;
    border: 0;
    border-radius: 0;
    border-top: 1px solid rgba(232, 217, 200, .92);
    box-shadow: none;
    min-height: 0;
    padding: clamp(18px, 2vw, 28px) 0 0;
}

.profile-v3-price-grid article.is-featured {
    background: transparent;
    border-color: rgba(201, 111, 83, .46);
    color: var(--ink);
}

.profile-v3-price-grid article.is-featured span {
    color: var(--mpb-corail-fonce);
}

.profile-v3-price-grid article.is-featured strong,
.profile-v3-price-grid article.is-featured p {
    color: inherit;
}

.profile-v3-option-panel {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}

.profile-v3-section.profile-v3-trust {
    border: 0;
    border-radius: 0;
    box-shadow: none;
    margin-top: clamp(16px, 2vw, 28px);
    padding: clamp(30px, 4vw, 52px);
}

.cms-feature-card-empty .cms-feature-body,
.home-guide-feature-empty .home-guide-body {
    border-top: 1px solid rgba(232, 217, 200, .92);
    padding-top: clamp(22px, 3vw, 36px);
}

@media (max-width: 860px) {
    .home-process-section,
    .home-photo-run,
    .home-profile-strip,
    .cms-decision-strip,
    .cms-guide-section {
        grid-template-columns: 1fr;
    }

    .home-profile-strip > .grid {
        grid-column: auto;
    }

    .home-photo-run {
        align-items: stretch;
    }

    .home-photo-run-main {
        order: -1;
    }

    .home-photo-run-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cms-decision-card {
        grid-template-columns: 58px minmax(0, 1fr);
    }

    .home-guide-feature,
    .cms-feature-card {
        gap: 22px;
    }

    .home-guide-card {
        grid-template-columns: 112px minmax(0, 1fr);
    }

    .profile-v3-section {
        padding-bottom: 42px;
        padding-top: 42px;
    }
}

@media (max-width: 620px) {
    .home-process-section .steps-section,
    .cms-guide-grid,
    .cms-decision-grid,
    .pro-benefit-grid,
    .pro-onboarding-steps,
    .profile-v3-decision-grid,
    .profile-v3-session-row,
    .profile-v3-price-grid,
    .profile-v3-option-panel {
        gap: 28px;
    }

    .home-process-section .step-card,
    .cms-decision-card {
        grid-template-columns: 1fr;
    }

    .home-process-section .step-card h3,
    .home-process-section .step-card p,
    .cms-decision-card h3,
    .cms-decision-card p {
        grid-column: auto;
    }

    .home-photo-run-grid {
        grid-template-columns: 1fr;
    }

    .home-photo-run-copy .button {
        justify-self: stretch;
    }

    .cms-decision-card a {
        grid-column: auto;
    }

    .cms-guide-grid {
        grid-template-columns: 1fr;
    }

    .home-guide-card {
        grid-template-columns: 1fr;
    }

    .home-guide-thumb {
        aspect-ratio: 16 / 10;
    }
}

/* Final training overrides: loaded after legacy sections so the pro training UI keeps its intended layout. */
.training-page,
.training-course-page,
.training-locked-page {
    display: grid;
    gap: 28px;
    padding-bottom: 76px;
    padding-top: 42px;
}

.training-hero,
.training-card,
.training-course-hero,
.training-course-layout,
.training-locked-card {
    display: grid;
    gap: 22px;
}

.training-hero {
    grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr);
}

.training-hero-copy,
.training-live-card,
.training-stat-grid article,
.training-card,
.training-course-hero,
.training-course-progress-card,
.training-locked-card {
    border: 1px solid var(--line);
    border-radius: 28px;
    box-shadow: var(--shadow-sm);
}

.training-hero-copy {
    background: #251913;
    color: #fff;
    min-height: 360px;
    padding: clamp(28px, 4vw, 52px);
}

.training-hero-copy h1,
.training-hero-copy p {
    color: inherit;
}

.training-hero-copy h1 {
    font-size: clamp(48px, 6vw, 84px);
}

.training-hero-copy p:not(.eyebrow) {
    color: rgba(255, 255, 255, .78);
    font-size: 18px;
    max-width: 680px;
}

.training-hero-actions,
.training-card-actions,
.training-course-proof,
.training-topic-nav,
.training-badge-stack {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.training-live-card {
    align-content: space-between;
    background: #fff;
    padding: clamp(24px, 3vw, 34px);
}

.training-live-card h2 {
    font-size: clamp(34px, 3.2vw, 48px);
}

.training-stat-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.training-stat-grid article {
    background: #fff;
    display: grid;
    gap: 8px;
    padding: 18px;
}

.training-stat-grid span,
.training-card-cover span,
.training-card-meta dt,
.training-live-card > span,
.training-masterclass-row small {
    color: var(--muted);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.training-stat-grid strong {
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 42px;
    line-height: .95;
}

.training-library-head {
    align-items: end;
    display: flex;
    gap: 18px;
    justify-content: space-between;
}

.training-library-head h2 {
    font-size: clamp(34px, 3.4vw, 54px);
}

.training-topic-nav {
    justify-content: flex-end;
}

.training-topic-nav a {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    font-size: 13px;
    font-weight: 900;
    padding: 10px 14px;
    text-decoration: none;
}

.training-topic-nav a.is-active {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.training-course-grid,
.training-sidebar,
.training-course-aside {
    display: grid;
    gap: 18px;
}

.training-card {
    background: #fff;
    grid-template-columns: minmax(170px, .35fr) minmax(0, 1fr);
    overflow: hidden;
}

.training-card-cover {
    align-content: space-between;
    background: #e9ded5;
    display: grid;
    min-height: 260px;
    padding: 22px;
}

.training-card-cover strong {
    color: #9e5a45;
    font-family: var(--font-serif);
    font-size: 94px;
    line-height: .82;
}

.training-card-body {
    display: grid;
    gap: 16px;
    padding: 24px;
}

.training-card-title,
.training-progress-row,
.training-masterclass-row,
.training-resource-link {
    align-items: center;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto;
}

.training-card-title h3 {
    font-family: var(--font-sans);
    font-size: clamp(22px, 2vw, 30px);
    letter-spacing: 0;
    line-height: 1.08;
}

.training-card-body p,
.training-live-card p,
.training-locked-card p {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.56;
}

.training-card-meta {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
}

.training-card-meta div,
.training-course-proof span,
.training-chapter-list li,
.training-resource-link {
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 12px;
}

.training-card-meta dd {
    color: var(--ink);
    font-weight: 900;
    margin: 4px 0 0;
}

.training-status-done,
.training-status-active,
.training-status-locked,
.training-badge-stack span {
    border-radius: 999px;
    font-weight: 900;
}

.training-status-done,
.training-badge-stack span {
    background: rgba(130, 147, 123, .18);
    color: #53604c;
}

.training-status-active {
    background: rgba(201, 111, 83, .14);
    color: #9e5a45;
}

.training-status-locked {
    background: #251913;
    color: #fff;
}

.training-masterclass-row,
.training-resource-link {
    border-top: 1px solid var(--line);
    padding-top: 14px;
    text-decoration: none;
}

.training-course-hero {
    background: #fff;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .38fr);
    padding: clamp(24px, 4vw, 42px);
}

.training-course-hero h1,
.training-locked-card h1 {
    font-size: clamp(42px, 5vw, 72px);
}

.training-course-progress-card {
    align-content: start;
    background: #fbfaf7;
    display: grid;
    gap: 14px;
    padding: 18px;
}

.training-course-layout {
    grid-template-columns: minmax(0, 1fr) minmax(320px, .35fr);
}

.training-course-content {
    overflow: hidden;
    padding: clamp(22px, 3vw, 34px);
}

.training-chapter-list {
    display: grid;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.training-chapter-list li {
    grid-template-columns: auto minmax(0, 1fr);
}

.training-chapter-list span {
    color: rgba(201, 111, 83, .5);
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 800;
}

.training-locked-card {
    background: #fff;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .42fr);
    padding: clamp(24px, 4vw, 46px);
}

.training-locked-card aside {
    background: #251913;
    border-radius: 22px;
    color: #fff;
    display: grid;
    gap: 14px;
    padding: 22px;
}

@media (max-width: 980px) {
    .training-hero,
    .training-layout,
    .training-course-hero,
    .training-course-layout,
    .training-locked-card {
        grid-template-columns: 1fr;
    }

    .training-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .training-library-head {
        align-items: start;
        flex-direction: column;
    }

    .training-topic-nav {
        justify-content: flex-start;
    }

    .training-card {
        grid-template-columns: 1fr;
    }

    .training-card-cover {
        min-height: 150px;
    }

    .training-card-meta,
    .training-stat-grid {
        grid-template-columns: 1fr;
    }
}

/* Final title scale tuning: keep the hierarchy premium without oversized headings. */
h1 {
    font-size: clamp(27px, 2.6vw, 38px);
    line-height: 1.12;
}

h2 {
    font-size: clamp(22px, 1.8vw, 28px);
    line-height: 1.18;
}

.home-copy h1,
.profile-v3-copy h1,
.cms-hero-copy h1,
.cms-article-hero-copy h1,
.local-seo-copy h1,
.specialty-hero-copy h1,
.request-header h1,
.confirmation-hero h1,
.pro-auth-copy h1,
.contest-hero-copy h1,
.contest-vote-copy h1,
.review-form-hero h1,
.review-status-card h1,
.member-hero h1,
.member-hero-compact h1,
.training-hero-copy h1,
.training-course-hero h1,
.training-locked-card h1 {
    font-size: clamp(29px, 2.75vw, 40px);
    line-height: 1.12;
}

.directory-search-main h1 {
    font-size: clamp(27px, 2.1vw, 32px);
    line-height: 1.12;
}

.home-guide-body h3,
.cms-feature-body h2,
.cms-side-cta h2,
.profile-v3-section-head h2,
.cms-decision-heading h2,
.request-stage-head h2,
.member-onboarding-head h2,
.training-live-card h2,
.training-library-head h2 {
    font-size: clamp(22px, 1.75vw, 27px);
    line-height: 1.18;
}

@media (max-width: 860px) {
    .home-copy h1,
    .profile-v3-copy h1,
    .cms-hero-copy h1,
    .cms-article-hero-copy h1,
    .local-seo-copy h1,
    .specialty-hero-copy h1,
    .request-header h1,
    .confirmation-hero h1,
    .pro-auth-copy h1,
    .contest-hero-copy h1,
    .contest-vote-copy h1,
    .review-form-hero h1,
    .review-status-card h1,
    .member-hero h1,
    .member-hero-compact h1,
    .training-hero-copy h1,
    .training-course-hero h1,
    .training-locked-card h1 {
        font-size: clamp(27px, 6.8vw, 34px);
    }
}

@media (max-width: 620px) {
    h1 {
        font-size: 29px;
    }

    h2 {
        font-size: 24px;
    }

    .directory-search-main h1 {
        font-size: clamp(24px, 6vw, 27px);
    }
}

/* Client refinement — August 2026: neutral public identity and simpler visual rhythm. */
:root {
    --mpb-beige-clair: #ffffff;
    --mpb-beige-medium: #dedbd6;
    --mpb-beige-dore: #cdbda8;
    --mpb-brun-doux: #8a8178;
    --mpb-brun: #242424;
    --mpb-brun-fonce: #111111;
    --mpb-corail: #ded2c2;
    --mpb-corail-fonce: #111111;
    --mpb-corail-doux: #f4eee7;
    --mpb-sauge: #a6a29c;
    --mpb-sauge-fonce: #292929;
    --mpb-sauge-doux: #f3f3f1;
    --mpb-miel: #cdbda8;
    --mpb-miel-doux: #f3ede5;
    --mpb-rose-doux: #f4f1ed;
    --mpb-blanc: #ffffff;
    --mpb-gris: #565656;
    --paper: #ffffff;
    --surface: #ffffff;
    --ivory-2: #dedbd6;
    --ink: #111111;
    --text: #111111;
    --muted: #565656;
    --line: #dedbd6;
    --clay: #ded2c2;
    --berry: #ded2c2;
    --teal: #292929;
    --mint: #f3f3f1;
    --champagne: #cdbda8;
    --gold: #cdbda8;
    --shadow: 0 20px 56px rgba(0, 0, 0, .08);
    --shadow-sm: 0 8px 24px rgba(0, 0, 0, .055);
    --radius-card: 10px;
    --radius-control: 8px;
}

html,
body {
    background: #ffffff;
    color: #111111;
    font-family: var(--font-sans);
}

body::before {
    display: none;
}

h1,
h2,
h3,
.brand-title {
    color: #111111;
    font-family: var(--font-heading);
}

h1 {
    font-family: var(--font-display);
}

.brand-logo-lockup img {
    filter: none;
}

.brand-script-accent {
    display: block;
    line-height: 0;
    margin: -3px 0 -1px;
    transform: rotate(-1.5deg);
    transform-origin: left center;
    width: clamp(116px, 10vw, 152px);
}

.brand-script-accent img {
    display: block;
    height: auto;
    width: 100%;
}

.brand-script-accent > em {
    color: #e8b4b4;
    display: block;
    font-family: "Segoe Script", "Brush Script MT", Georgia, cursive;
    font-size: clamp(30px, 3vw, 46px);
    font-style: normal;
    line-height: 1.05;
}

.brand-script-accent-hero {
    margin-bottom: -5px;
    width: clamp(132px, 12vw, 178px);
}

.profile-v3-section-head .brand-script-accent {
    grid-column: 1 / -1;
    margin-bottom: -12px;
    margin-top: -9px;
}

p,
.lead,
.profile-v3-intro,
.profile-v3-section-head p:not(.eyebrow),
.profile-v3-decision-grid p,
.profile-v3-sidebar-price p {
    color: #565656;
}

.eyebrow,
.home-guide-card span,
.profile-v3-decision-grid span,
.profile-v3-sidebar-list dt,
.profile-v3-sidebar-price span,
.profile-v3-price-chip span,
.step-card span {
    color: #111111;
}

.hero-search .button-accent {
    background: #ded2c2;
    background-image: none;
    color: #111111;
}

.hero-search .button-accent:hover {
    background: #cdbda8;
}

.site-header,
.site-header.site-header-is-compact {
    background: rgba(255, 255, 255, .96);
    border-bottom-color: #e5e5e5;
    box-shadow: 0 10px 34px rgba(0, 0, 0, .045);
}

.main-nav {
    background: #ffffff;
    border-color: #dedbd6;
    border-radius: 10px;
    box-shadow: none;
}

.main-nav a,
.main-nav a.is-active,
.mobile-nav-links a,
.mobile-nav-primary,
.button,
button,
.nav-cta,
.selection-cart-toggle {
    border-radius: 8px;
}

.field label,
.filter-group label {
    color: #565656;
}

.profile-back-link {
    color: #111111;
}

.profile-contest-distinction-copy p,
.profile-contest-distinction-copy small {
    color: #565656;
}

.main-nav a.is-active,
.section-anchor-nav a.is-active,
.section-anchor-nav a:hover,
.selection-tray,
.selection-cart-panel,
.directory-selection-tray,
.footer-cta,
.public-footer,
.profile-v3-section.profile-v3-trust {
    background: #111111;
    border-color: #111111;
}

.button-accent,
.filter-sidebar button,
.directory-map-list-item button {
    background: #ded2c2;
    background-image: none;
    box-shadow: none;
    color: #111111;
}

.button-accent:hover,
.filter-sidebar button:hover,
.directory-map-list-item button:hover {
    background: #cdbda8;
    color: #111111;
}

.directory-map-list-item button[aria-pressed="true"],
.directory-map-list-item button[aria-pressed="true"]:hover,
.directory-map-list-item button[aria-pressed="true"]:focus-visible {
    background: #111111;
    border-color: #111111;
    color: #ffffff;
}

.button-secondary {
    background: #ffffff;
    border-color: #d8d5d0;
    color: #111111;
}

.field,
.filter-group input,
.filter-group select,
.card-meta-strip span,
.filter-option span,
.directory-map-toolbar,
.profile-v3-decision-grid article {
    background: #fafafa;
    border-color: #dedbd6;
    border-radius: 8px;
}

.field:focus-within,
.filter-group input:focus,
.filter-group select:focus {
    border-color: #111111;
    box-shadow: 0 0 0 3px rgba(17, 17, 17, .10);
}

.panel,
.photographer-card,
.dashboard-card,
.choice-list,
.profile-identity,
.cms-cta,
.page-hero,
.directory-header,
.filter-sidebar,
.directory-map-card,
.directory-map-list-item,
.profile-v3-sticky-card,
.wordpress-feed-fallback,
.wordpress-post-card,
.portfolio-manager-tile,
.portfolio-curation-command,
.portfolio-publication-card {
    background: #ffffff;
    border-color: #dedbd6;
    border-radius: 10px;
    box-shadow: var(--shadow-sm);
}

main img,
.hero-photo,
.card-photo,
.profile-v3-frame,
.profile-v3-frame img,
.profile-v3-portfolio-grid figure,
.profile-v3-portfolio-grid img,
.home-guide-media,
.home-guide-media img,
.home-guide-thumb,
.home-guide-thumb img,
.wordpress-post-media,
.wordpress-post-media img,
.portfolio-manager-tile img,
.portfolio-hero-preview,
.portfolio-hero-preview img,
.photo-placeholder {
    border-radius: 10px;
}

.photo-placeholder::before {
    border-radius: 10px;
}

.home-profile-strip {
    display: grid;
    gap: clamp(28px, 4vw, 50px);
    grid-template-columns: 1fr;
}

.home-process-section .step-card span {
    color: #9a9084;
}

.home-profile-strip .section-heading {
    align-items: end;
    display: flex;
    gap: 24px;
    justify-content: space-between;
    max-width: none;
    width: 100%;
}

.home-profile-strip .section-heading h2 {
    max-width: 720px;
}

.home-profile-strip .section-heading .brand-script-accent {
    margin-bottom: -8px;
}

.home-profile-strip .section-heading .button {
    justify-self: auto;
}

.home-profile-strip > .grid {
    grid-column: 1;
    width: 100%;
}

.home-guides-section {
    border-top: 1px solid #e3e0dc;
}

.home-guide-feature.has-no-media {
    grid-template-columns: 1fr;
}

.home-guide-body small {
    color: #757575;
    font-size: 12px;
    font-weight: 600;
}

.wordpress-feed-fallback {
    display: grid;
    gap: 13px;
    justify-items: start;
    padding: clamp(24px, 4vw, 42px);
}

.wordpress-feed-fallback h3 {
    font-size: clamp(21px, 2vw, 27px);
}

.pro-wordpress-section {
    display: grid;
    gap: 24px;
}

.training-wordpress-section {
    display: grid;
    gap: 24px;
}

.wordpress-post-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.wordpress-post-card {
    display: grid;
    min-width: 0;
    overflow: hidden;
}

.wordpress-post-card.is-featured {
    grid-column: span 2;
}

.wordpress-post-media {
    aspect-ratio: 16 / 9;
    display: block;
    overflow: hidden;
}

.wordpress-post-media img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.wordpress-post-card > div {
    display: grid;
    gap: 12px;
    padding: 22px;
}

.wordpress-post-card > div > span {
    color: #111111;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.wordpress-post-card h3 {
    font-size: clamp(20px, 2vw, 26px);
}

.wordpress-post-card p {
    font-size: 14px;
    line-height: 1.6;
}

.wordpress-post-card footer {
    align-items: center;
    border-top: 1px solid #e5e5e5;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 13px;
}

.wordpress-post-card footer small {
    color: #777777;
    font-weight: 600;
}

.wordpress-post-card footer a {
    color: #111111;
    font-size: 13px;
    font-weight: 800;
}

.profile-v3-frame,
.profile-v3-portfolio-grid figure {
    overflow: hidden;
}

.profile-v3-section.profile-v3-trust .eyebrow,
.profile-v3-section.profile-v3-trust p,
.profile-v3-section.profile-v3-trust small {
    color: rgba(255, 255, 255, .72);
}

.profile-v3-section.profile-v3-trust strong,
.profile-v3-section.profile-v3-trust span,
.profile-v3-section.profile-v3-trust summary,
.profile-v3-section.profile-v3-trust summary::after {
    color: #ffffff;
}

.profile-v3-main > .profile-v3-section:first-child {
    padding-top: 12px;
}

.portfolio-manager-grid {
    align-items: start;
}

.portfolio-sort-status {
    color: #565656;
    font-size: 13px;
    font-weight: 600;
    grid-column: 1 / -1;
}

.portfolio-manager-grid.is-saving {
    cursor: progress;
}

.portfolio-manager-grid.has-save-error .portfolio-sort-status {
    color: #9e2f2f;
}

.portfolio-manager-tile {
    transition: border-color .16s ease, box-shadow .16s ease, opacity .16s ease, transform .16s ease;
}

.portfolio-manager-tile.is-dragging {
    border-color: #111111;
    box-shadow: 0 16px 42px rgba(0, 0, 0, .14);
    opacity: .72;
    transform: scale(.985);
}

.portfolio-sort-toolbar {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: space-between;
}

.portfolio-drag-handle,
.portfolio-sort-buttons button {
    background: #f3ede5;
    border: 1px solid #ded2c2;
    box-shadow: none;
    color: #111111;
    min-height: 44px;
    padding: 8px 11px;
}

.portfolio-drag-handle {
    cursor: grab;
    font-size: 12px;
    gap: 7px;
}

.portfolio-drag-handle:active {
    cursor: grabbing;
}

.portfolio-sort-buttons {
    display: flex;
    gap: 6px;
}

.portfolio-sort-buttons button {
    font-size: 16px;
    min-width: 44px;
    padding: 6px;
}

.portfolio-sort-buttons button:disabled {
    opacity: .35;
}

.portfolio-manager-tag {
    background: #111111;
    color: #ffffff;
    justify-self: start;
    left: auto;
    position: static;
    top: auto;
}

.portfolio-bulk-upload {
    gap: 14px;
}

.portfolio-upload-dropzone {
    background: #fafafa;
    border: 1px dashed #b9ab99;
    border-radius: 10px;
    min-height: 210px;
    padding: 24px;
    position: relative;
    transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.portfolio-upload-dropzone.is-dragging-over {
    background: #f3ede5;
    border-color: #111111;
    box-shadow: 0 0 0 3px rgba(17, 17, 17, .08);
}

.portfolio-upload-dropzone input[type="file"] {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.portfolio-upload-label {
    align-items: center;
    color: #111111;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    inset: 0;
    justify-content: center;
    padding: 24px;
    position: absolute;
    text-align: center;
}

.portfolio-upload-label strong {
    font-family: var(--font-serif);
    font-size: 20px;
}

.portfolio-upload-label span:last-child {
    color: #666666;
    font-size: 13px;
    margin-top: 4px;
}

.portfolio-upload-icon {
    align-items: center;
    background: #ded2c2;
    border-radius: 50%;
    display: inline-flex;
    font-size: 22px;
    height: 44px;
    justify-content: center;
    margin-bottom: 12px;
    width: 44px;
}

.portfolio-upload-dropzone input[type="file"]:focus-visible + .portfolio-upload-label {
    outline: 3px solid rgba(17, 17, 17, .14);
    outline-offset: -4px;
}

.portfolio-upload-summary {
    bottom: 13px;
    color: #565656;
    font-size: 12px;
    font-weight: 700;
    left: 18px;
    margin: 0;
    position: absolute;
    right: 18px;
    text-align: center;
}

.portfolio-upload-preview {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
}

.portfolio-upload-preview:empty {
    display: none;
}

.portfolio-upload-preview figure {
    margin: 0;
    min-width: 0;
}

.portfolio-upload-preview img {
    aspect-ratio: 1;
    border-radius: 8px;
    object-fit: cover;
    width: 100%;
}

.portfolio-upload-preview figcaption {
    color: #666666;
    font-size: 10px;
    overflow: hidden;
    padding-top: 4px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portfolio-upload-help {
    color: #666666;
    font-size: 12px;
    margin: 0;
}

.portfolio-upload-feedback {
    background: #fff4e8;
    border: 1px solid #d9b98f;
    border-radius: 8px;
    color: #6b3f13;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
    margin: 0;
    padding: 10px 12px;
}

.portfolio-upload-feedback[hidden] {
    display: none;
}

.portfolio-bulk-upload .button-accent:disabled {
    cursor: not-allowed;
    opacity: .45;
}

@media (max-width: 980px) {
    .wordpress-post-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .home-profile-strip .section-heading,
    .pro-wordpress-section .section-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .home-profile-strip .section-heading .button,
    .pro-wordpress-section .section-heading .button {
        width: 100%;
    }

    .wordpress-post-grid {
        grid-template-columns: 1fr;
    }

    .wordpress-post-card.is-featured {
        grid-column: auto;
    }
}

/* Directory summary: balanced, compact spacing on every side of the card. */
.directory-header.directory-search-hero {
    align-items: center;
    border: 1px solid #dedbd6;
    padding: clamp(20px, 1.8vw, 26px);
}

.directory-search-main {
    gap: 8px;
}

.directory-search-main > *,
.directory-search-intro {
    margin: 0;
}

.directory-search-intro {
    max-width: 780px;
}

.directory-search-aside {
    align-content: center;
    gap: 10px;
}

@media (max-width: 860px) {
    .directory-header.directory-search-hero {
        gap: 18px;
        padding: 20px;
    }
}

@media (max-width: 620px) {
    .directory-header.directory-search-hero {
        gap: 16px;
        padding: 16px;
    }

    .directory-search-main,
    .directory-search-aside {
        gap: 8px;
    }
}

/* Profile facts: compact cards for quick comparison, not editorial panels. */
.profile-v3-overview {
    gap: 24px;
    padding-bottom: clamp(28px, 2.4vw, 36px);
}

.profile-v3-overview .profile-v3-section-head {
    margin-bottom: 0;
}

.profile-v3-decision-grid {
    align-items: stretch;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.profile-v3-decision-grid article {
    align-content: start;
    background: #fafafa;
    border: 1px solid #e3e0dc;
    border-radius: 8px;
    gap: 6px;
    min-height: 0;
    padding: 16px;
}

.profile-v3-decision-grid span {
    font-size: 10px;
}

.profile-v3-decision-grid strong {
    font-size: clamp(17px, 1.25vw, 20px);
    line-height: 1.2;
}

.profile-v3-decision-grid p {
    font-size: 14px;
    line-height: 1.45;
}

.profile-v3-main > .profile-v3-portfolio {
    padding-top: clamp(28px, 2.6vw, 40px);
}

@media (max-width: 1100px) {
    .profile-v3-decision-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .profile-v3-overview {
        gap: 20px;
        padding-bottom: 26px;
    }

    .profile-v3-decision-grid {
        gap: 10px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .profile-v3-decision-grid article:nth-child(3),
    .profile-v3-decision-grid article:nth-child(4) {
        grid-column: 1 / -1;
    }

    .profile-v3-decision-grid article {
        padding: 14px;
    }

    .profile-v3-main > .profile-v3-portfolio {
        padding-top: 28px;
    }
}

@media (max-width: 340px) {
    .profile-v3-decision-grid {
        grid-template-columns: 1fr;
    }

    .profile-v3-decision-grid article:nth-child(3),
    .profile-v3-decision-grid article:nth-child(4) {
        grid-column: auto;
    }
}

/* Selection panel CTA: a compact action, not a full-width text banner. */
.selection-cart-submit {
    align-items: center;
    background: #ded2c2;
    border: 1px solid #ded2c2;
    border-radius: 8px;
    box-shadow: none;
    color: #111111;
    cursor: pointer;
    display: flex;
    font-family: var(--font-sans);
    font-size: 15px;
    font-weight: 700;
    gap: 14px;
    justify-content: space-between;
    line-height: 1.2;
    min-height: 50px;
    padding: 14px 18px;
    text-decoration: none;
    white-space: nowrap;
}

.selection-cart-submit::after {
    content: "→";
    flex: 0 0 auto;
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
    transition: transform .18s ease;
}

.selection-cart-submit:hover {
    background: #cdbda8;
    border-color: #cdbda8;
    color: #111111;
    transform: none;
}

.selection-cart-submit:hover::after {
    transform: translateX(3px);
}

.selection-cart-submit:focus-visible {
    outline: 3px solid rgba(255, 255, 255, .82);
    outline-offset: 3px;
}

@media (max-width: 390px) {
    .selection-cart-submit {
        font-size: 14px;
        min-height: 48px;
        padding: 12px 16px;
    }
}

/* Member profile imagery: portrait and landscape cover are deliberately separate. */
.profile-visual-editor {
    background: #ffffff;
    border: 1px solid #dedbd6;
    border-radius: 10px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 24px;
    margin-bottom: 28px;
    padding: clamp(22px, 3vw, 34px);
}

.profile-visual-editor-head {
    align-items: end;
    display: grid;
    gap: 20px;
    grid-template-columns: minmax(0, 1fr) minmax(240px, .48fr);
}

.profile-visual-editor-head h2 {
    margin: 4px 0 0;
}

.profile-visual-editor-head p:not(.eyebrow) {
    color: var(--muted);
    margin: 10px 0 0;
    max-width: 760px;
}

.profile-visual-privacy {
    background: #f4f0eb;
    border: 1px solid #dedbd6;
    border-radius: 8px;
    color: #4f4943;
    font-size: 13px;
    font-weight: 750;
    line-height: 1.5;
    padding: 14px 16px;
}

.profile-visual-grid {
    display: grid;
    gap: clamp(18px, 2.4vw, 28px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.profile-visual-card {
    align-content: start;
    background: #fafafa;
    border: 1px solid #dedbd6;
    border-radius: 10px;
    display: grid;
    gap: 18px;
    padding: clamp(18px, 2vw, 24px);
}

.profile-visual-card h3 {
    margin: 5px 0 0;
}

.profile-visual-card p {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.58;
    margin: 8px 0 0;
}

.profile-visual-step {
    color: #70675f;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.profile-visual-preview {
    background: #eeeae5;
    display: grid;
    overflow: hidden;
    place-items: center;
    position: relative;
}

.profile-visual-preview img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.profile-visual-preview.is-portrait {
    aspect-ratio: 1;
    border: 4px solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .1);
    font-family: var(--font-serif);
    font-size: clamp(42px, 6vw, 72px);
    justify-self: start;
    width: clamp(132px, 15vw, 180px);
}

.profile-visual-preview.is-landscape {
    aspect-ratio: 16 / 10;
    border-radius: 10px;
    width: 100%;
}

.profile-visual-preview.is-landscape > strong {
    background: rgba(17, 17, 17, .82);
    border-radius: 999px;
    bottom: 12px;
    color: #ffffff;
    font-size: 11px;
    left: 12px;
    padding: 7px 10px;
    position: absolute;
}

.profile-visual-upload {
    align-content: start;
    display: grid;
    gap: 10px;
}

.profile-visual-upload small {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.5;
}

.profile-visual-upload .button {
    justify-self: start;
}

@media (max-width: 860px) {
    .profile-visual-editor-head,
    .profile-visual-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .profile-visual-editor,
    .profile-visual-card {
        padding: 16px;
    }

    .profile-visual-upload .file-upload-control {
        grid-template-columns: 1fr;
    }

    .profile-visual-upload .button {
        width: 100%;
    }
}

/* Public photographer identity: a personal portrait distinct from the landscape portfolio cover. */
.photographer-card .card-media {
    aspect-ratio: 16 / 10;
}

.profile-v3-identity {
    align-items: center;
    display: flex;
    gap: clamp(16px, 2vw, 26px);
    min-width: 0;
}

.profile-v3-identity h1 {
    min-width: 0;
    overflow-wrap: anywhere;
}

.profile-v3-portrait {
    aspect-ratio: 1;
    background: #f3f3f1;
    border: 4px solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .12);
    display: block;
    flex: 0 0 clamp(78px, 7vw, 104px);
    height: clamp(78px, 7vw, 104px);
    object-fit: cover;
    width: clamp(78px, 7vw, 104px);
}

.profile-v3-gallery {
    align-content: start;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto auto;
    height: auto;
}

.profile-v3-frame-main {
    aspect-ratio: 16 / 10;
    grid-column: 1 / -1;
    grid-row: auto;
    position: relative;
}

.profile-v3-frame-main img,
.profile-v3-frame-main .photo-placeholder {
    aspect-ratio: auto;
}

.profile-v3-gallery > .profile-v3-frame:not(.profile-v3-frame-main) {
    aspect-ratio: 16 / 10;
}

.profile-v3-frame-main .profile-v3-price-chip {
    bottom: 16px;
    left: 16px;
}

.photographer-card .body {
    position: relative;
}

.photographer-card .body.has-portrait,
.directory-card-grid .photographer-card .body.has-portrait {
    padding-top: 58px;
}

.photographer-card-portrait {
    align-items: center;
    background: #ffffff;
    border: 4px solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .16);
    display: flex;
    height: 80px;
    justify-content: center;
    left: clamp(16px, 2vw, 24px);
    overflow: hidden;
    position: absolute;
    top: 0;
    transform: translateY(-50%);
    transition: box-shadow .18s ease, transform .18s ease;
    width: 80px;
    z-index: 5;
}

.photographer-card-portrait img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.photographer-card-portrait:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, .22);
    transform: translateY(-50%) scale(1.025);
}

.photographer-card-portrait:focus-visible {
    outline: 3px solid #111111;
    outline-offset: 3px;
}

.photographer-card.has-portrait .photo-badge {
    bottom: auto;
    top: 12px;
}

@media (max-width: 680px) {
    .profile-v3-identity {
        align-items: center;
        gap: 14px;
    }

    .profile-v3-portrait {
        border-width: 3px;
        flex-basis: 70px;
        height: 70px;
        width: 70px;
    }

    .profile-v3-frame-main,
    .profile-v3-gallery > .profile-v3-frame:not(.profile-v3-frame-main) {
        border-radius: 10px;
    }

    .photographer-card .body.has-portrait,
    .directory-card-grid .photographer-card .body.has-portrait {
        padding-top: 50px;
    }

    .photographer-card-portrait {
        border-width: 3px;
        height: 68px;
        left: 14px;
        width: 68px;
    }
}

@media (max-width: 390px) {
    .profile-v3-identity {
        align-items: flex-start;
    }

    .profile-v3-portrait {
        flex-basis: 62px;
        height: 62px;
        width: 62px;
    }

    .profile-v3-frame-main {
        aspect-ratio: 4 / 3;
    }
}

/* City directory: local map and filters share a compact rail beside three aligned cards. */
.container.directory-page.is-city-search {
    margin-inline: 0;
    max-width: none;
    width: 100%;
}

.directory-search-hero.is-city-search {
    grid-template-columns: minmax(0, 1fr);
}

.directory-layout.is-city-search {
    align-items: start;
    gap: clamp(20px, 2vw, 30px);
    grid-template-columns: minmax(250px, 280px) minmax(0, 1fr);
}

.directory-layout.is-city-search .directory-tools-column {
    align-content: start;
    display: grid;
    gap: 18px;
    min-width: 0;
}

.directory-layout.is-city-search .directory-tools-column > .filter-sidebar,
.directory-layout.is-city-search .directory-tools-column > .directory-map-card:not(.is-map-fullscreen) {
    position: static;
    width: 100%;
}

.directory-layout.is-city-search .directory-map-card:not(.is-map-fullscreen) .directory-map-head {
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr);
}

.directory-layout.is-city-search .directory-map-card:not(.is-map-fullscreen) .directory-map-head-actions {
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.directory-layout.is-city-search .directory-map-card:not(.is-map-fullscreen) .directory-map-fullscreen-toggle {
    min-width: 0;
    padding-inline: 11px;
}

.directory-layout.is-city-search .directory-map-card:not(.is-map-fullscreen) .directory-map {
    height: 260px;
}

.directory-layout.is-city-search .directory-map-card:not(.is-map-fullscreen) .directory-map-list {
    max-height: 260px;
    overflow-y: auto;
    padding-right: 2px;
    scrollbar-gutter: stable;
}

.directory-layout.is-city-search .directory-map-card:not(.is-map-fullscreen) .directory-map-list-item {
    grid-template-columns: auto minmax(0, 1fr);
}

.directory-layout.is-city-search .directory-map-card:not(.is-map-fullscreen) .directory-map-list-item button {
    grid-column: 1 / -1;
    width: 100%;
}

.directory-layout.is-city-search > .directory-results {
    min-width: 0;
}

.directory-layout.is-city-search .directory-card-grid {
    align-items: stretch;
    grid-auto-rows: 1fr;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.directory-layout.is-city-search .directory-card-grid .photographer-card {
    grid-template-rows: auto minmax(0, 1fr);
    height: 100%;
    min-width: 0;
}

.directory-layout.is-city-search .directory-card-grid .photographer-card .body {
    height: 100%;
}

.directory-layout.is-city-search .directory-card-grid .card-title-row {
    align-items: start;
}

.directory-layout.is-city-search .directory-card-grid .card-title-row h3 {
    display: -webkit-box;
    line-height: 1.16;
    max-height: 2.32em;
    min-height: 2.32em;
    overflow: hidden;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.directory-layout.is-city-search .directory-card-grid .meta {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.directory-layout.is-city-search .directory-card-grid .photographer-card .body > p {
    min-height: 3.24em;
}

.directory-layout.is-city-search .directory-card-grid .card-actions {
    align-self: end;
    margin-top: auto;
}

@media (max-width: 1220px) {
    .directory-layout.is-city-search {
        grid-template-columns: minmax(240px, 270px) minmax(0, 1fr);
    }

    .directory-layout.is-city-search .directory-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .directory-layout.is-city-search {
        grid-template-columns: minmax(0, 1fr);
    }

    .directory-layout.is-city-search .directory-tools-column {
        display: contents;
    }

    .directory-layout.is-city-search > .directory-results {
        order: 1;
    }

    .directory-layout.is-city-search .directory-tools-column > .directory-map-card {
        order: 2;
    }

    .directory-layout.is-city-search .directory-tools-column > .filter-sidebar {
        order: 3;
    }

    .directory-layout.is-city-search .directory-map-card:not(.is-map-fullscreen) .directory-map {
        height: min(54vw, 420px);
        min-height: 300px;
    }
}

@media (max-width: 680px) {
    .directory-layout.is-city-search .directory-card-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .directory-layout.is-city-search .directory-card-grid .card-title-row h3,
    .directory-layout.is-city-search .directory-card-grid .photographer-card .body > p {
        min-height: 0;
    }

    .directory-layout.is-city-search .directory-map-card:not(.is-map-fullscreen) .directory-map {
        height: min(78vw, 380px);
        min-height: 260px;
    }
}

/* Public profile: readable biography, prominent hero selection and lighter social proof. */
.profile-v3-visual-column {
    align-content: start;
    display: grid;
    gap: 16px;
    min-width: 0;
}

.profile-v3-selection-cta {
    align-items: center;
    background: #111111;
    border: 2px solid #111111;
    box-shadow: 0 16px 36px rgba(17, 17, 17, .18);
    color: #ffffff;
    display: inline-flex;
    font-size: clamp(16px, 1.25vw, 19px);
    font-weight: 850;
    justify-content: center;
    min-height: 62px;
    padding: 16px 24px;
    width: 100%;
}

.profile-v3-selection-cta::after {
    content: "→";
    font-size: 22px;
    line-height: 1;
    margin-left: 14px;
    transition: transform .18s ease;
}

.profile-v3-selection-cta:hover {
    background: #38322d;
    border-color: #38322d;
    color: #ffffff;
    transform: translateY(-1px);
}

.profile-v3-selection-cta:hover::after {
    transform: translateX(4px);
}

.profile-v3-intro {
    color: #403c38;
    line-height: 1.72;
    max-width: 66ch;
    overflow-wrap: anywhere;
}

.profile-v3-intro br {
    content: "";
    display: block;
    margin-top: .72em;
}

.profile-v3-studio-grid {
    display: grid;
    gap: 14px;
    grid-auto-rows: minmax(180px, 1fr);
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.profile-v3-studio-grid figure {
    background: #f2efeb;
    border-radius: 10px;
    margin: 0;
    min-height: 0;
    overflow: hidden;
    position: relative;
}

.profile-v3-studio-grid figure.is-large {
    grid-row: span 2;
}

.profile-v3-studio-grid img {
    display: block;
    height: 100%;
    min-height: 270px;
    object-fit: cover;
    width: 100%;
}

.profile-v3-studio-grid figcaption {
    background: rgba(255, 255, 255, .92);
    bottom: 12px;
    color: #111111;
    font-size: 12px;
    font-weight: 800;
    left: 12px;
    max-width: calc(100% - 24px);
    overflow: hidden;
    padding: 8px 11px;
    position: absolute;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.profile-v3-section.profile-v3-trust {
    background: #f6f3ef;
    border: 1px solid #ded8d1;
    color: #27231f;
}

.profile-v3-section.profile-v3-trust .eyebrow,
.profile-v3-section.profile-v3-trust p,
.profile-v3-section.profile-v3-trust small {
    color: #625c56;
}

.profile-v3-section.profile-v3-trust strong,
.profile-v3-section.profile-v3-trust span,
.profile-v3-section.profile-v3-trust summary,
.profile-v3-section.profile-v3-trust summary::after {
    color: #27231f;
}

.profile-v3-section.profile-v3-trust .profile-badge-detail {
    background: rgba(255, 255, 255, .78);
    border-color: #ddd6ce;
}

.profile-v3-section.profile-v3-trust .profile-badge-icon {
    background: #27231f;
    color: #ffffff;
}

.profile-v3-section.profile-v3-trust .profile-v3-badge-fallback .badge {
    background: #ffffff;
    border-color: #d8d1c9;
    color: #27231f;
}

.profile-v3-section.profile-v3-trust .profile-v3-reviews article {
    border-top-color: #ddd6ce;
}

@media (max-width: 680px) {
    .profile-v3-selection-cta {
        font-size: 16px;
        min-height: 58px;
        padding: 14px 18px;
    }

    .profile-v3-intro {
        font-size: 16px;
        line-height: 1.68;
    }

    .profile-v3-studio-grid {
        grid-auto-rows: auto;
        grid-template-columns: 1fr;
    }

    .profile-v3-studio-grid figure.is-large {
        grid-row: auto;
    }

    .profile-v3-studio-grid img {
        aspect-ratio: 4 / 3;
        min-height: 0;
    }
}

/* Public header and homepage search: shared framed navigation with resilient sizing. */
.site-header-public,
.site-header-public.site-header-is-compact {
    gap: clamp(22px, 2.5vw, 42px);
    grid-template-columns: minmax(240px, 1fr) auto minmax(120px, 1fr);
    min-height: 88px;
    padding-bottom: 12px;
    padding-top: 12px;
}

.site-header-public .brand-logo-lockup,
.site-header-public.site-header-is-compact .brand-logo-lockup {
    flex-basis: clamp(230px, 18vw, 286px);
    width: clamp(230px, 18vw, 286px);
}

.home-intro > .hero-collage {
    grid-row: 1 / span 2;
}

.home-intro > .hero-search {
    box-sizing: border-box;
    grid-template-columns: minmax(0, 1.28fr) minmax(0, .76fr) minmax(140px, .72fr);
    max-width: min(900px, 100%);
    min-width: 0;
    width: 100%;
}

.home-intro > .hero-search .field,
.home-intro > .hero-search .city-input-row,
.home-intro > .hero-search input,
.home-intro > .hero-search select,
.home-intro > .hero-search .button-accent {
    min-width: 0;
    max-width: 100%;
}

.home-intro > .hero-search select {
    text-overflow: ellipsis;
}

.home-intro > .hero-search .button-accent {
    white-space: normal;
}

@media (max-width: 1280px) {
    .home-intro > .hero-search {
        grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
    }

    .home-intro > .hero-search .button-accent {
        grid-column: 1 / -1;
        min-height: 58px;
    }
}

@media (max-width: 1120px) {
    .site-header-public,
    .site-header-public.site-header-is-compact {
        gap: 10px;
        grid-template-columns: minmax(0, 1fr) auto;
        min-height: 82px;
        padding-bottom: 10px;
        padding-top: 10px;
    }

    .site-header-public .brand-logo-lockup,
    .site-header-public.site-header-is-compact .brand-logo-lockup {
        flex-basis: clamp(176px, 28vw, 220px);
        width: clamp(176px, 28vw, 220px);
    }

}

@media (max-width: 680px) {
    .site-header-public,
    .site-header-public.site-header-is-compact {
        gap: 6px;
        min-height: 76px;
        padding-bottom: 8px;
        padding-top: 8px;
    }

    .site-header-public .brand-logo-lockup,
    .site-header-public.site-header-is-compact .brand-logo-lockup {
        flex-basis: clamp(142px, 41vw, 176px);
        width: clamp(142px, 41vw, 176px);
    }

    .home-intro > .hero-search {
        grid-template-columns: minmax(0, 1fr);
        padding: 8px;
    }

    .home-intro > .hero-search .button-accent {
        grid-column: auto;
        min-height: 54px;
        width: 100%;
    }
}

@media (max-width: 390px) {
    .site-header-public .brand-logo-lockup,
    .site-header-public.site-header-is-compact .brand-logo-lockup {
        flex-basis: clamp(132px, 38vw, 148px);
        width: clamp(132px, 38vw, 148px);
    }
}
/* Home — parcours pédagogique en quatre étapes. */
.home-how-section {
    scroll-margin-top: 7rem;
    padding-block: clamp(3.5rem, 7vw, 6.5rem);
}

.home-process-section.home-how-section {
    display: block;
}

.home-how-heading {
    max-width: 760px;
    margin: 0 auto clamp(2.25rem, 4vw, 4rem);
    text-align: center;
}

.home-how-heading h2 {
    font-size: clamp(34px, 3.1vw, 48px);
    margin: 0.35rem 0 0.8rem;
}

.home-how-heading > p:last-child {
    margin: 0 auto;
    color: var(--muted, #766963);
    line-height: 1.7;
}

.home-how-grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1.25rem, 2.4vw, 2.5rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.home-how-grid::before {
    position: absolute;
    z-index: -1;
    top: clamp(9rem, 13vw, 12.5rem);
    right: 8%;
    left: 8%;
    border-top: 2px dashed color-mix(in srgb, var(--accent, #c9787d) 55%, transparent);
    content: "";
}

.home-how-step {
    display: grid;
    grid-template-rows: auto auto auto 1fr;
    justify-items: center;
    min-width: 0;
    text-align: center;
}

.home-how-step > img {
    display: block;
    width: min(100%, 300px);
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
}

.home-how-number {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    margin: -0.35rem 0 1.1rem;
    place-items: center;
    border-radius: 50%;
    background: linear-gradient(145deg, #d78e92, #bb646b);
    box-shadow: 0 10px 22px rgb(161 83 89 / 18%);
    color: #fff;
    font-size: 1.05rem;
    font-weight: 700;
}

.home-how-step h3 {
    max-width: 15rem;
    margin: 0;
    color: var(--ink, #463d39);
    font-size: clamp(1rem, 1.15vw, 1.18rem);
    line-height: 1.3;
}

.home-how-step p {
    max-width: 17rem;
    margin: 0.85rem 0 0;
    color: var(--muted, #766963);
    font-size: 0.94rem;
    line-height: 1.65;
}

@media (max-width: 1050px) {
    .home-how-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 3rem;
    }

    .home-how-grid::before {
        display: none;
    }
}

@media (max-width: 620px) {
    .home-how-section {
        padding-block: 3rem;
    }

    .home-how-grid {
        grid-template-columns: 1fr;
        gap: 1.1rem;
    }

    .home-how-step {
        grid-template-columns: minmax(105px, 38%) 2.75rem minmax(0, 1fr);
        grid-template-rows: auto auto;
        align-items: center;
        justify-items: start;
        padding: 0.85rem;
        border: 1px solid rgb(202 177 166 / 42%);
        border-radius: 1.5rem;
        background: rgb(255 255 255 / 74%);
        text-align: left;
    }

    .home-how-step > img {
        grid-row: 1 / span 2;
        width: 100%;
    }

    .home-how-number {
        align-self: end;
        width: 2.2rem;
        height: 2.2rem;
        margin: 0 0.55rem 0.45rem 0;
        font-size: 0.9rem;
    }

    .home-how-step h3 {
        align-self: end;
        max-width: none;
        margin-bottom: 0.45rem;
        font-size: 1rem;
    }

    .home-how-step p {
        grid-column: 2 / -1;
        max-width: none;
        margin: 0;
        font-size: 0.86rem;
        line-height: 1.5;
    }
}

/* Homepage proximity, latest advice and professional entry point. */
.home-nearby-section {
    background: linear-gradient(135deg, #f6f2ec 0%, #ffffff 72%);
    border: 1px solid #e1dbd3;
    border-radius: 18px;
    margin-bottom: clamp(54px, 6vw, 84px);
    margin-top: clamp(38px, 5vw, 72px);
    padding: clamp(28px, 4.5vw, 58px);
}

.home-nearby-section .home-nearby-heading {
    align-items: start;
}

.home-nearby-copy {
    display: grid;
    gap: 11px;
    max-width: 710px;
}

.home-nearby-copy > p:not(.eyebrow) {
    max-width: 650px;
}

.home-nearby-consent {
    align-items: flex-start;
    display: grid;
    flex: 0 0 min(330px, 100%);
    gap: 10px;
    justify-items: stretch;
}

.home-nearby-button {
    border: 1px solid #111111;
    min-height: 54px;
    text-align: center;
    width: 100%;
}

.home-nearby-button[aria-busy="true"] {
    cursor: wait;
    opacity: .72;
}

.home-nearby-fallback {
    min-height: 44px;
    text-align: center;
    width: 100%;
}

.home-nearby-fallback[hidden] {
    display: none;
}

.home-nearby-status {
    color: #35322f;
    font-size: 14px;
    font-weight: 750;
    min-height: 1.5em;
}

.home-nearby-privacy {
    color: #6d6862;
    font-size: 12px;
    line-height: 1.55;
}

.home-nearby-section > .grid {
    margin-top: 4px;
}

.home-guide-meta {
    color: #757575;
    display: flex;
    flex-wrap: wrap;
    font-size: 12px;
    font-weight: 650;
    gap: 8px;
}

.home-guide-meta span + span::before {
    content: "·";
    margin-right: 8px;
}

.home-pro-cta {
    align-items: center;
    background: #111111;
    border-radius: 18px;
    display: grid;
    gap: clamp(24px, 4vw, 64px);
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: clamp(56px, 7vw, 96px);
    margin-top: clamp(12px, 3vw, 36px);
    padding: clamp(30px, 5vw, 64px);
}

.home-pro-cta-copy {
    display: grid;
    gap: 13px;
    max-width: 740px;
}

.home-pro-cta .eyebrow {
    color: #ded2c2;
}

.home-pro-cta h2,
.home-pro-cta p {
    color: #ffffff;
}

.home-pro-cta p:not(.eyebrow) {
    color: #dedede;
    max-width: 670px;
}

.home-pro-cta .button {
    background: #ffffff;
    border-color: #ffffff;
    color: #111111;
    min-height: 54px;
    text-align: center;
}

.home-pro-cta .button:hover {
    background: #ded2c2;
    border-color: #ded2c2;
    color: #111111;
}

@media (max-width: 860px) {
    .home-nearby-section .home-nearby-heading,
    .home-pro-cta {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .home-nearby-section .home-nearby-heading {
        display: grid;
    }

    .home-nearby-consent {
        max-width: 440px;
    }

    .home-pro-cta .button {
        justify-self: start;
    }
}

@media (max-width: 620px) {
    .home-nearby-section {
        border-radius: 12px;
        padding: 24px 18px;
    }

    .home-pro-cta {
        border-radius: 12px;
        padding: 30px 22px;
    }

    .home-pro-cta .button {
        width: 100%;
    }
}

@media (min-width: 621px) and (max-width: 1100px) {
    .public-footer-inner {
        grid-template-areas:
            "brand brand"
            "cities photographers"
            "explore pro";
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-footer-brand {
        grid-column: 1 / -1;
    }
}

/* Home — full-width professional trust statement below “Comment ça marche”. */
.home-trust-section {
    --home-trust-art-half-width: clamp(540px, 30vw, 600px);
    /* Keep the baby visually centred beneath the desktop commitment group. */
    --home-trust-art-offset: clamp(64px, calc((100vw - 1280px) / 2), 120px);
    --home-trust-art-width: clamp(1080px, 60vw, 1200px);
    --home-trust-pink: #e8b4b4;
    align-items: flex-start;
    background-color: #e9ded2;
    background-image:
        linear-gradient(90deg, rgba(248, 243, 237, .99) 0%, rgba(248, 243, 237, .97) 39%, rgba(248, 243, 237, .72) 48%, rgba(248, 243, 237, .12) 57%, rgba(248, 243, 237, 0) 66%, rgba(233, 222, 210, 0) calc(50% + var(--home-trust-art-offset) + var(--home-trust-art-half-width) - 96px), #e9ded2 calc(50% + var(--home-trust-art-offset) + var(--home-trust-art-half-width))),
        var(--home-trust-image, url("/images/home/imagefond-module3-clean.webp"));
    background-position: center, calc(50% + var(--home-trust-art-offset)) bottom;
    background-repeat: no-repeat;
    background-size: cover, var(--home-trust-art-width) auto;
    display: flex;
    min-height: clamp(760px, 42vw, 840px);
    overflow: hidden;
    padding-block: clamp(40px, 3vw, 56px);
    padding-inline: max(var(--page-gutter), calc((100% - 1760px) / 2 + var(--page-gutter)));
    position: relative;
    width: 100%;
}

.home-trust-copy {
    display: grid;
    gap: clamp(14px, 1.1vw, 18px);
    max-width: min(580px, 44vw);
    position: relative;
    z-index: 1;
}

.home-trust-copy h2 {
    color: #816b60;
    display: grid;
    font-family: var(--font-heading);
    font-size: clamp(42px, 3vw, 52px);
    font-weight: 400;
    gap: 2px;
    letter-spacing: -.035em;
    line-height: 1.02;
    margin: 0;
    max-width: 608px;
}

.home-trust-copy h2 span {
    font: inherit;
}

.home-trust-copy h2 .home-trust-title-main {
    color: #111111;
    max-inline-size: 10em;
}

.home-trust-copy h2 em {
    color: var(--home-trust-pink);
    font-family: "Segoe Script", "Brush Script MT", Georgia, cursive;
    font-size: .86em;
    font-style: italic;
    font-weight: 400;
    letter-spacing: -.045em;
    line-height: 1.05;
}

.home-trust-copy h2 .home-trust-hello-accent {
    display: block;
    line-height: 0;
    margin-top: clamp(3px, .48vw, 8px);
    width: min(100%, 430px);
}

.home-trust-copy h2 .home-trust-hello-accent img {
    display: block;
    height: auto;
    width: 100%;
}

.home-trust-text {
    display: grid;
    gap: clamp(11px, .85vw, 14px);
    max-width: 560px;
}

.home-trust-text p {
    color: #38332f;
    font-size: clamp(16px, 1.05vw, 18px);
    line-height: 1.72;
    margin: 0;
}

.home-trust-markers {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    left: 52%;
    list-style: none;
    margin: 0;
    padding: 0;
    position: absolute;
    right: auto;
    text-align: center;
    top: clamp(46px, 5.8%, 54px);
    width: min(39%, 600px);
    z-index: 2;
}

.home-trust-marker {
    align-items: center;
    color: #65544b;
    display: flex;
    flex-direction: column;
    font-size: clamp(14px, .9vw, 16px);
    font-weight: 400;
    gap: clamp(6px, .8vw, 13px);
    justify-content: center;
    justify-self: center;
    line-height: 1.3;
    max-inline-size: 8em;
    min-width: 0;
}

.home-trust-marker-icon {
    align-items: center;
    background: rgba(255, 255, 255, .38);
    border-radius: 50%;
    display: inline-flex;
    flex: 0 0 auto;
    height: clamp(76px, 6vw, 108px);
    justify-content: center;
    width: clamp(76px, 6vw, 108px);
}

.home-trust-marker-icon svg {
    fill: none;
    height: 58%;
    stroke: #987f70;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.2;
    width: 58%;
}

.home-trust-marker-connector {
    fill: none;
    left: 55.5%;
    overflow: visible;
    position: absolute;
    stroke: #b99d8d;
    stroke-dasharray: 2 9;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 3;
    top: 24%;
    width: min(31.5%, 484px);
    z-index: 1;
}

.home-trust-marker-connector path:last-child {
    fill: #f8f3ed;
    stroke-dasharray: none;
    stroke-width: 2.5;
}

.home-trust-charter-link,
.home-trust-charter-link:hover {
    appearance: none;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--home-trust-pink);
    border-radius: 0;
    box-shadow: none;
    color: var(--home-trust-pink);
    cursor: pointer;
    font-size: clamp(14px, 1vw, 16px);
    justify-self: start;
    min-height: 43px;
    opacity: 1;
    padding: 8px 0 6px;
    pointer-events: auto;
    transform: none;
}

.home-trust-charter-link:hover {
    color: #dfa6a6;
}

.home-trust-charter-link:focus-visible {
    border-radius: 3px;
    outline: 3px solid rgba(232, 180, 180, .48);
    outline-offset: 5px;
}

.home-trust-charter-link::before {
    color: var(--home-trust-pink);
    content: "♥";
    font-size: 1.4em;
    margin-right: 12px;
}

/* Native, editable homepage charter dialog. */
.home-trust-dialog-host {
    display: contents;
}

html.has-charter-dialog-open,
body.has-charter-dialog-open {
    overflow: hidden;
}

.home-charter-dialog {
    --home-charter-beige: #ded2c2;
    --home-charter-dark: #201c1a;
    --home-charter-pink: #e8b4b4;
    background: transparent;
    border: 0;
    box-sizing: border-box;
    height: 100%;
    inset: 0;
    margin: 0;
    max-height: none;
    max-width: none;
    overscroll-behavior: contain;
    padding: clamp(12px, 3vw, 44px);
    width: 100%;
}

.home-charter-dialog:not([open]) {
    display: none;
}

.home-charter-dialog[open] {
    align-items: start;
    display: grid;
    justify-items: center;
    overflow-x: hidden;
    overflow-y: hidden;
}

.home-charter-dialog::backdrop {
    background: rgba(32, 28, 26, .72);
    backdrop-filter: blur(5px);
}

.home-charter-dialog.is-dialog-fallback {
    background: rgba(32, 28, 26, .76);
    position: fixed;
    z-index: 10000;
}

.home-charter-dialog-panel {
    background:
        radial-gradient(circle at 100% 0, rgba(232, 180, 180, .25) 0 150px, transparent 151px),
        radial-gradient(circle at 0 100%, rgba(222, 210, 194, .28) 0 190px, transparent 191px),
        #fffdfb;
    border: 1px solid rgba(222, 210, 194, .72);
    border-radius: clamp(20px, 2.4vw, 34px);
    box-shadow: 0 28px 90px rgba(31, 23, 20, .24);
    box-sizing: border-box;
    color: var(--home-charter-dark);
    margin: auto 0;
    max-height: calc(100dvh - clamp(24px, 6vw, 88px));
    max-width: 1024px;
    min-width: 0;
    overflow-x: hidden;
    overflow-y: auto;
    padding: clamp(24px, 4vw, 52px);
    position: relative;
    width: 100%;
}

.home-charter-dialog-close {
    align-items: center;
    appearance: none;
    background: rgba(255, 255, 255, .92);
    border: 1px solid rgba(129, 107, 96, .24);
    border-radius: 50%;
    color: #332b27;
    cursor: pointer;
    display: inline-flex;
    font-family: Arial, sans-serif;
    font-size: 30px;
    font-weight: 300;
    height: 48px;
    justify-content: center;
    line-height: 1;
    margin-left: auto;
    padding: 0 0 4px;
    position: sticky;
    right: 0;
    top: 0;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
    width: 48px;
    z-index: 3;
}

.home-charter-dialog-close:hover {
    background: #ffffff;
    border-color: var(--home-charter-pink);
    transform: rotate(4deg);
}

.home-charter-dialog-close:focus-visible,
.home-charter-download:focus-visible {
    outline: 3px solid rgba(232, 180, 180, .6);
    outline-offset: 4px;
}

.home-charter-dialog-header {
    margin: clamp(-38px, -3vw, -22px) auto clamp(26px, 4vw, 40px);
    max-width: 790px;
    position: relative;
    text-align: center;
}

.home-charter-dialog-logo {
    border-radius: 0;
    display: block;
    height: auto;
    margin: 0 auto clamp(10px, 1.6vw, 18px);
    max-width: 190px;
    width: 28%;
}

.home-charter-dialog-header h2 {
    align-items: baseline;
    color: var(--home-charter-dark);
    display: flex;
    flex-wrap: wrap;
    font-family: var(--font-heading);
    font-size: clamp(39px, 5.2vw, 68px);
    font-weight: 400;
    gap: 0 .2em;
    justify-content: center;
    letter-spacing: -.045em;
    line-height: 1;
    margin: 0 0 clamp(14px, 2vw, 22px);
}

.home-charter-dialog-header h2 em {
    color: var(--home-charter-pink);
    font: inherit;
    font-style: normal;
}

.home-charter-dialog-header p {
    color: #38322f;
    font-size: clamp(15px, 1.35vw, 18px);
    line-height: 1.55;
    margin: 0 auto;
    max-width: 760px;
}

.home-charter-commitments {
    display: grid;
    gap: clamp(11px, 1.4vw, 15px);
    list-style: none;
    margin: 0;
    padding: 0;
}

.home-charter-commitment {
    background: rgba(255, 255, 255, .82);
    border: 1px solid rgba(222, 210, 194, .68);
    border-radius: 20px;
    display: grid;
    grid-template-columns: clamp(126px, 16vw, 170px) minmax(0, 1fr);
    min-width: 0;
    overflow: hidden;
}

.home-charter-commitment-visual {
    align-items: center;
    background: linear-gradient(145deg, rgba(232, 180, 180, .76), rgba(239, 204, 204, .5));
    display: flex;
    justify-content: center;
    min-height: 152px;
    padding: 20px;
}

.home-charter-commitment:nth-child(even) .home-charter-commitment-visual {
    background: linear-gradient(145deg, rgba(222, 210, 194, .92), rgba(239, 232, 223, .7));
}

.home-charter-commitment-icon {
    align-items: center;
    background: rgba(255, 255, 255, .86);
    border-radius: 50%;
    display: inline-flex;
    height: clamp(82px, 9vw, 112px);
    justify-content: center;
    width: clamp(82px, 9vw, 112px);
}

.home-charter-commitment-icon svg {
    fill: none;
    height: 58%;
    stroke: var(--home-charter-pink);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.2;
    width: 58%;
}

.home-charter-commitment:nth-child(even) .home-charter-commitment-icon svg {
    stroke: #ad9788;
}

.home-charter-commitment-copy {
    align-content: center;
    display: grid;
    min-width: 0;
    padding: clamp(22px, 2.8vw, 32px) clamp(22px, 3.2vw, 38px);
}

.home-charter-commitment-copy h3 {
    align-items: baseline;
    color: var(--home-charter-dark);
    display: flex;
    font-family: var(--font-sans);
    font-size: clamp(17px, 1.7vw, 22px);
    font-weight: 750;
    gap: clamp(12px, 1.8vw, 20px);
    line-height: 1.25;
    margin: 0 0 12px;
}

.home-charter-commitment-number {
    color: var(--home-charter-pink);
    flex: 0 0 auto;
    font-family: var(--font-heading);
    font-size: clamp(28px, 3vw, 39px);
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: .8;
}

.home-charter-commitment:nth-child(even) .home-charter-commitment-number {
    color: #b5a08f;
}

.home-charter-commitment-copy ul {
    display: grid;
    gap: 4px;
    margin: 0;
    padding-left: 1.1em;
}

.home-charter-commitment-copy li {
    color: #2e2926;
    font-size: clamp(14px, 1.1vw, 16px);
    line-height: 1.52;
    padding-left: .16em;
}

.home-charter-commitment-copy li::marker {
    color: var(--home-charter-pink);
}

.home-charter-dialog-footer {
    align-items: center;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-top: clamp(20px, 3vw, 30px);
}

.home-charter-closing-statement {
    align-items: center;
    background: linear-gradient(90deg, rgba(232, 180, 180, .23), rgba(232, 180, 180, .08));
    border-radius: 18px;
    display: flex;
    gap: 16px;
    padding: 14px 20px;
}

.home-charter-closing-statement > span {
    align-items: center;
    background: var(--home-charter-pink);
    border-radius: 50%;
    color: #ffffff;
    display: inline-flex;
    flex: 0 0 48px;
    font-size: 20px;
    height: 48px;
    justify-content: center;
}

.home-charter-closing-statement p {
    color: #302a27;
    font-size: clamp(14px, 1.05vw, 16px);
    line-height: 1.45;
    margin: 0;
}

.home-charter-download,
.home-charter-download:hover {
    background: var(--home-charter-pink);
    border: 1px solid var(--home-charter-pink);
    color: #322a27;
    min-height: 52px;
    padding-inline: 22px;
    text-align: center;
    white-space: normal;
}

.home-charter-download:hover {
    background: #dfa6a6;
    border-color: #dfa6a6;
    color: #ffffff;
}

@media (max-width: 760px) {
    .home-charter-dialog {
        padding: 10px;
    }

    .home-charter-dialog-panel {
        border-radius: 20px;
        padding: 18px;
    }

    .home-charter-dialog-close {
        height: 44px;
        width: 44px;
    }

    .home-charter-dialog-header {
        margin-top: -30px;
        padding-inline: 8px;
    }

    .home-charter-dialog-logo {
        max-width: 150px;
        width: 36%;
    }

    .home-charter-dialog-header h2 {
        font-size: clamp(34px, 9.8vw, 48px);
    }

    .home-charter-commitment {
        grid-template-columns: 92px minmax(0, 1fr);
    }

    .home-charter-commitment-visual {
        min-height: 0;
        padding: 12px;
    }

    .home-charter-commitment-icon {
        height: 68px;
        width: 68px;
    }

    .home-charter-commitment-copy {
        padding: 20px 18px;
    }

    .home-charter-commitment-copy h3 {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .home-charter-dialog-footer {
        grid-template-columns: 1fr;
    }

    .home-charter-download {
        width: 100%;
    }
}

@media (max-width: 520px) {
    .home-charter-dialog-panel {
        padding: 14px;
    }

    .home-charter-dialog-header {
        margin-bottom: 22px;
    }

    .home-charter-dialog-header p {
        font-size: 14px;
        line-height: 1.5;
    }

    .home-charter-commitment {
        grid-template-columns: 1fr;
    }

    .home-charter-commitment-visual {
        min-height: 88px;
        padding: 10px;
    }

    .home-charter-commitment-icon {
        height: 68px;
        width: 68px;
    }

    .home-charter-commitment-copy {
        padding: 19px 17px 22px;
    }

    .home-charter-commitment-copy h3 {
        flex-direction: row;
        font-size: 17px;
    }

    .home-charter-commitment-number {
        font-size: 28px;
    }

    .home-charter-commitment-copy li {
        font-size: 14px;
    }

    .home-charter-closing-statement {
        align-items: flex-start;
        padding: 13px 15px;
    }

    .home-charter-closing-statement > span {
        flex-basis: 40px;
        height: 40px;
    }
}

@media (prefers-reduced-motion: no-preference) {
    .home-charter-dialog[open] .home-charter-dialog-panel {
        animation: home-charter-dialog-enter .24s ease-out both;
    }
}

@keyframes home-charter-dialog-enter {
    from {
        opacity: 0;
        transform: translateY(14px) scale(.985);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 960px) {
    .home-trust-section {
        align-items: end;
        background-image:
            linear-gradient(180deg, rgba(248, 243, 237, 0) 0%, rgba(248, 243, 237, 0) 30%, rgba(248, 243, 237, .88) 41%, #f8f3ed 54%, #f8f3ed 100%),
            var(--home-trust-image, url("/images/home/imagefond-module3-clean.webp"));
        background-position: center, top right;
        background-size: cover, 80% auto;
        min-height: 0;
        padding-bottom: 42px;
        padding-inline: var(--page-gutter);
        padding-top: max(224px, 53.3333vw);
        flex-direction: column;
    }

    .home-trust-copy {
        gap: 18px;
        max-width: 100%;
    }

    .home-trust-copy h2 {
        font-size: clamp(29px, 8.8vw, 42px);
    }

    .home-trust-copy h2 .home-trust-hello-accent {
        width: min(100%, 384px);
    }

    .home-trust-markers {
        align-items: flex-start;
        gap: 8px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        left: auto;
        margin-top: 19px;
        position: static;
        text-align: center;
        width: 100%;
    }

    .home-trust-marker {
        font-size: 12px;
        flex-direction: column;
        gap: 6px;
        justify-content: flex-start;
        justify-self: stretch;
        max-inline-size: none;
    }

    .home-trust-marker-icon {
        align-items: center;
        background: #ddcdbc;
        border-radius: 50%;
        color: #ffffff;
        display: inline-flex;
        flex: 0 0 24px;
        height: 24px;
        justify-content: center;
        margin-right: 0;
        width: 24px;
    }

    .home-trust-marker-icon svg {
        height: 13px;
        stroke: #ffffff;
        stroke-width: 4;
        width: 13px;
    }

    .home-trust-marker-charter .home-trust-marker-icon svg,
    .home-trust-marker-safety .home-trust-marker-icon svg {
        display: none;
    }

    .home-trust-marker-charter .home-trust-marker-icon::before,
    .home-trust-marker-safety .home-trust-marker-icon::before {
        content: "✓";
        font-size: 11px;
        line-height: 1;
    }

    .home-trust-marker-connector {
        display: none;
    }

    .home-trust-charter-link {
        justify-self: stretch;
        text-align: center;
        width: 100%;
    }
}

@media (max-width: 480px) {
    .home-trust-marker {
        font-size: 12px;
    }
}

@media (max-width: 960px) and (min-width: 681px) {
    .home-trust-section {
        background-image:
            linear-gradient(90deg, rgba(248, 243, 237, .99) 0%, rgba(248, 243, 237, .96) 53%, rgba(248, 243, 237, .68) 66%, rgba(248, 243, 237, .12) 82%, rgba(248, 243, 237, 0) 100%),
            var(--home-trust-image, url("/images/home/imagefond-module3-clean.webp"));
        min-height: 0;
        padding-top: max(288px, 53.3333vw);
    }
}

/* Homepage hero: client-supplied editorial artwork with accessible HTML copy. */
.home-screen.home-hero-screen {
    background-color: #fbf6f3;
    background-image: var(--home-hero-image, url("/images/home/hero-grossesse-naissance-bebe.webp"));
    background-position: top right;
    background-repeat: no-repeat;
    background-size: auto 100%;
    box-sizing: border-box;
    min-height: min(53.3489vw, 916px);
    padding: 0;
    width: 100%;
}

.home-hero-screen .home-intro-image {
    align-content: center;
    align-items: center;
    box-sizing: border-box;
    gap: clamp(20px, 2vw, 32px);
    grid-template-columns: minmax(0, 49%) minmax(0, 1fr);
    grid-template-rows: auto auto;
    min-height: inherit;
    padding-bottom: clamp(36px, 4vw, 70px);
    padding-top: clamp(36px, 4vw, 70px);
}

.home-intro-image .home-copy {
    gap: clamp(12px, 1.25vw, 20px);
    max-width: 720px;
}

.home-intro-image .home-copy .eyebrow {
    color: var(--mpb-brun-fonce);
    font-size: clamp(13px, 1vw, 16px);
    letter-spacing: .15em;
}

.home-intro-image .brand-script-accent-hero {
    margin: -4px 0 -10px;
    transform: rotate(-1deg);
    width: min(100%, clamp(280px, 29vw, 455px));
}

.home-intro-image .brand-script-accent-hero em {
    color: #e8b4b4;
    display: block;
    font-family: "Segoe Script", "Brush Script MT", Georgia, cursive;
    font-size: clamp(38px, 4vw, 62px);
    font-style: normal;
    line-height: 1.05;
}

.home-intro-image .home-copy h1 {
    color: #302a27;
    font-size: clamp(34px, 3.25vw, 52px);
    line-height: 1.08;
    max-width: 680px;
}

.home-intro-image .home-copy .lead {
    color: #56504c;
    max-width: 650px;
}

.home-intro-image > .hero-search {
    grid-column: 1;
    grid-row: 2;
    margin-top: 0;
    max-width: 820px;
    position: relative;
    width: 100%;
    z-index: 2;
}

@media (max-width: 1100px) {
    .home-screen.home-hero-screen {
        background-position: top center;
        background-size: 100% auto;
        min-height: 0;
    }

    .home-hero-screen .home-intro-image {
        display: grid;
        grid-template-columns: minmax(0, 49%) minmax(0, 1fr);
        grid-template-rows: 53.3489vw auto;
        min-height: 0;
        padding-bottom: clamp(44px, 7vw, 72px);
        padding-top: 0;
    }

    .home-intro-image .home-copy {
        grid-column: 1;
        grid-row: 1;
        max-width: 820px;
        width: 100%;
    }

    .home-intro-image > .hero-search {
        grid-column: 1 / -1;
        grid-row: 2;
        margin-top: clamp(28px, 5vw, 52px);
        max-width: 900px;
        width: 100%;
    }
}

@media (max-width: 680px) {
    .home-screen.home-hero-screen {
        --home-hero-mobile-art-height: clamp(286px, 78vw, 390px);
        background-position: top right;
        background-size: auto var(--home-hero-mobile-art-height);
    }

    .home-hero-screen .home-intro-image {
        gap: 24px;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto;
        padding-bottom: 46px;
        padding-top: calc(var(--home-hero-mobile-art-height) + 28px);
    }

    .home-intro-image .home-copy,
    .home-intro-image > .hero-search {
        grid-column: 1;
    }

    .home-intro-image > .hero-search {
        margin-top: 0;
    }

    .home-intro-image .brand-script-accent-hero {
        margin-bottom: -4px;
        width: min(100%, 360px);
    }

    .home-intro-image .home-copy h1 {
        font-size: clamp(31px, 9vw, 40px);
    }

    .home-intro-image .home-copy .lead {
        font-size: 16px;
        line-height: 1.72;
    }
}

/* Request-tunnel cascade guardrails. */
.request-form-clean {
    grid-template-columns: minmax(230px, 300px) minmax(0, 1fr);
}

.request-form-clean .request-selection,
.request-form-clean .request-fields,
.request-form-clean .request-stage-card {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.request-form-clean .request-selection {
    max-height: none;
    overflow: visible;
}

.request-form-clean .request-fields {
    display: grid;
    gap: 0;
    padding: 0;
}

.request-form-clean .request-stage-card {
    padding-inline: 0;
}

.request-form-clean .request-stage-card + .request-stage-card {
    border-top: 1px solid #ded2c2;
}

.request-form-clean .request-submit-row {
    justify-content: flex-end;
}

@media (max-width: 860px) {
    .request-form-clean {
        grid-template-columns: minmax(0, 1fr);
    }

    .request-form-clean .request-selection {
        position: static;
    }
}

/* Public and professional navigation typography. */
.site-header .main-nav a,
.site-header .mobile-nav-links a {
    font-weight: 400;
    text-transform: uppercase;
}

.site-header .mobile-nav-links a.is-active {
    background: #302a27;
    color: #fff;
    font-weight: 500;
}

/* Team contact — shared public and professional surfaces. */
.contact-page {
    --contact-accent: #e8b4b4;
    background: #fff;
    color: #111;
    padding-bottom: clamp(64px, 7vw, 108px);
}

.contact-page-hero {
    align-items: end;
    border-bottom: 1px solid #dedbd6;
    display: grid;
    gap: clamp(28px, 6vw, 96px);
    grid-template-columns: minmax(0, .95fr) minmax(320px, .75fr);
    max-width: 1240px;
    padding-bottom: clamp(34px, 5vw, 64px);
    padding-top: clamp(48px, 6vw, 86px);
}

.contact-page-hero > div {
    display: grid;
    gap: 14px;
}

.contact-page-hero h1 {
    font-size: clamp(44px, 5.4vw, 76px);
    letter-spacing: -.035em;
    line-height: .98;
    max-width: 720px;
}

.contact-page .eyebrow {
    color: #111;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .14em;
}

.contact-page-lead {
    color: #565656;
    font-size: clamp(17px, 1.45vw, 21px);
    line-height: 1.7;
    margin: 0 0 5px;
    max-width: 560px;
}

.contact-page-layout {
    align-items: start;
    display: grid;
    gap: clamp(48px, 7vw, 112px);
    grid-template-columns: minmax(280px, .75fr) minmax(480px, 1.25fr);
    max-width: 1240px;
    padding-top: clamp(44px, 6vw, 82px);
}

.contact-page-context {
    display: grid;
    gap: 18px;
    padding-top: 8px;
}

.contact-page-accent {
    background: var(--contact-accent);
    display: block;
    height: 4px;
    margin-bottom: 10px;
    width: 72px;
}

.contact-page-context h2,
.contact-form-heading h2,
.contact-success h2 {
    color: #111;
    font-family: var(--font-serif);
    font-weight: 600;
    letter-spacing: -.025em;
}

.contact-page-context h2 {
    font-size: clamp(27px, 2.5vw, 36px);
    line-height: 1.14;
}

.contact-page-context > p:not(.eyebrow) {
    color: #565656;
    font-size: 15px;
    line-height: 1.75;
    margin: 0;
}

.contact-topic-list {
    border-top: 1px solid #dedbd6;
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
}

.contact-topic-list li {
    align-items: baseline;
    border-bottom: 1px solid #dedbd6;
    display: grid;
    gap: 14px;
    grid-template-columns: 32px minmax(0, 1fr);
    padding: 16px 0;
}

.contact-topic-list span {
    color: #8a8178;
    font-size: 11px;
    font-weight: 500;
}

.contact-topic-list strong {
    color: #292929;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.45;
}

.contact-context-link {
    align-items: center;
    color: #111;
    display: inline-flex;
    font-size: 13px;
    font-weight: 600;
    gap: 10px;
    justify-self: start;
    line-height: 1.45;
    margin-top: 6px;
    padding-bottom: 5px;
}

.contact-context-link-label {
    text-decoration: underline;
    text-decoration-color: var(--contact-accent);
    text-decoration-thickness: 2px;
    text-underline-offset: 6px;
}

.contact-context-link span {
    color: #d99090;
    font-size: 18px;
    transition: transform .18s ease;
}

.contact-context-link:hover span {
    transform: translateX(3px);
}

.contact-form-shell {
    background: #fff;
    border: 1px solid #dedbd6;
    border-radius: 10px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, .055);
    min-width: 0;
    padding: clamp(26px, 4vw, 48px);
}

.contact-form-heading {
    border-bottom: 1px solid #dedbd6;
    display: grid;
    gap: 11px;
    margin-bottom: 30px;
    padding-bottom: 26px;
}

.contact-form-heading h2,
.contact-success h2 {
    font-size: clamp(27px, 2.4vw, 36px);
    line-height: 1.12;
}

.contact-form-heading > p:not(.eyebrow),
.contact-success > p:not(.eyebrow) {
    color: #565656;
    font-size: 14px;
    line-height: 1.65;
    margin: 0;
}

.team-contact-form {
    display: grid;
    gap: 22px;
}

.contact-form-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contact-form-field {
    display: grid;
    gap: 8px;
    margin: 0;
    min-width: 0;
}

.contact-form-field-full {
    grid-column: 1 / -1;
}

.contact-form-field label,
.contact-form-consent > label {
    color: #292929;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.45;
}

.contact-form-field input,
.contact-form-field select,
.contact-form-field textarea {
    background: #fafafa;
    border: 1px solid #dedbd6;
    border-radius: 8px;
    box-sizing: border-box;
    color: #111;
    font-family: var(--font-sans);
    font-size: 15px;
    font-weight: 400;
    min-height: 52px;
    outline: none;
    padding: 13px 15px;
    transition: background .18s ease, border-color .18s ease, box-shadow .18s ease;
    width: 100%;
}

.contact-form-field textarea {
    line-height: 1.65;
    min-height: 178px;
    resize: vertical;
}

.contact-form-field input::placeholder,
.contact-form-field textarea::placeholder {
    color: #858585;
    opacity: 1;
}

.contact-form-field input:focus,
.contact-form-field select:focus,
.contact-form-field textarea:focus {
    background: #fff;
    border-color: #111;
    box-shadow: 0 0 0 3px rgba(232, 180, 180, .38);
}

.contact-form-field ul,
.contact-form-consent ul,
.team-contact-form > ul {
    color: #8f3030;
    font-size: 12px;
    line-height: 1.45;
    list-style: none;
    margin: 0;
    padding: 0;
}

.contact-form-field:has(input[aria-invalid="true"]) input,
.contact-form-field:has(select[aria-invalid="true"]) select,
.contact-form-field:has(textarea[aria-invalid="true"]) textarea {
    border-color: #a84646;
}

.contact-form-alert {
    background: #fff7f7;
    border: 1px solid #edc5c5;
    border-left: 4px solid #a84646;
    border-radius: 8px;
    color: #6f2424;
    display: grid;
    gap: 4px;
    padding: 14px 16px;
}

.contact-form-alert strong {
    font-size: 14px;
}

.contact-form-alert p {
    color: #7e3737;
    font-size: 13px;
    margin: 0;
}

.contact-form-honeypot {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.contact-form-consent {
    align-items: start;
    display: grid;
    gap: 10px 12px;
    grid-template-columns: auto minmax(0, 1fr);
    margin: 2px 0 0;
}

.contact-form-consent input[type="checkbox"] {
    accent-color: var(--contact-accent);
    grid-column: 1;
    grid-row: 1;
    height: 19px;
    margin: 1px 0 0;
    width: 19px;
}

.contact-form-consent > label {
    grid-column: 2;
    grid-row: 1;
    font-weight: 400;
}

.contact-form-consent > ul {
    grid-column: 2;
}

.contact-form-submit {
    align-items: center;
    border-top: 1px solid #dedbd6;
    display: flex;
    gap: 18px;
    justify-content: space-between;
    margin-top: 4px;
    padding-top: 24px;
}

.contact-form-submit p {
    color: #757575;
    font-size: 11px;
    line-height: 1.45;
    margin: 0;
}

.contact-form-submit .button-accent {
    background: var(--contact-accent);
    color: #111;
    font-weight: 600;
    min-height: 52px;
    padding-inline: 24px;
}

.contact-form-submit .button-accent:hover {
    background: #d99090;
    color: #111;
}

.contact-success {
    align-content: center;
    display: grid;
    gap: 14px;
    min-height: 390px;
}

.contact-success > span {
    align-items: center;
    background: rgba(232, 180, 180, .32);
    border: 1px solid rgba(217, 144, 144, .5);
    border-radius: 50%;
    color: #6d4242;
    display: inline-flex;
    font-size: 22px;
    height: 52px;
    justify-content: center;
    margin-bottom: 8px;
    width: 52px;
}

.contact-success .button {
    justify-self: start;
    margin-top: 10px;
}

@media (max-width: 960px) {
    .contact-page-hero,
    .contact-page-layout {
        gap: 36px;
        grid-template-columns: minmax(0, 1fr);
    }

    .contact-page-hero {
        align-items: start;
    }

    .contact-page-lead {
        max-width: 720px;
    }

    .contact-page-context {
        max-width: 720px;
    }
}

@media (max-width: 620px) {
    .contact-page {
        padding-bottom: 58px;
    }

    .contact-page-hero {
        padding-bottom: 32px;
        padding-top: 38px;
    }

    .contact-page-hero h1 {
        font-size: clamp(38px, 12vw, 50px);
    }

    .contact-page-layout {
        padding-top: 38px;
    }

    .contact-page-context h2 {
        font-size: 27px;
    }

    .contact-form-shell {
        border-left: 0;
        border-radius: 0;
        border-right: 0;
        box-shadow: none;
        margin-inline: calc(var(--page-gutter) * -1);
        padding: 28px var(--page-gutter);
    }

    .contact-form-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .contact-form-submit {
        align-items: stretch;
        flex-direction: column;
    }

    .contact-form-submit .button-accent,
    .contact-success .button {
        justify-self: stretch;
        width: 100%;
    }
}

/* Dedicated professional registration page. */
.pro-registration-page {
    background:
        radial-gradient(circle at 88% 4%, rgba(232, 180, 180, .24), transparent 28rem),
        linear-gradient(180deg, #fff 0, #fffaf7 34rem, #f8f1eb 100%);
    overflow-x: hidden;
}

.pro-registration-hero {
    align-items: end;
    display: grid;
    gap: clamp(22px, 4vw, 58px);
    grid-template-columns: minmax(0, 1fr) minmax(300px, .62fr);
    padding-bottom: clamp(48px, 6vw, 86px);
    padding-top: clamp(52px, 7vw, 104px);
}

.pro-registration-hero-copy {
    display: grid;
    gap: 16px;
    max-width: 880px;
}

.pro-registration-hero-copy h1 {
    font-size: clamp(46px, 6.2vw, 88px);
    letter-spacing: -.045em;
    line-height: .96;
    max-width: 820px;
}

.pro-registration-hero-copy > p:not(.eyebrow) {
    color: #625852;
    font-size: clamp(17px, 1.5vw, 21px);
    line-height: 1.65;
    max-width: 760px;
}

.pro-registration-hero-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    margin-top: 4px;
}

.pro-registration-hero-actions .button {
    min-height: 52px;
}

.pro-registration-reassurance {
    align-content: end;
    display: grid;
    gap: 10px;
}

.pro-registration-reassurance span {
    align-items: center;
    background: rgba(255, 255, 255, .86);
    border: 1px solid var(--line);
    border-radius: 18px;
    color: var(--ink);
    display: flex;
    font-size: 14px;
    font-weight: 850;
    gap: 11px;
    line-height: 1.35;
    min-height: 52px;
    padding: 13px 16px;
}

.pro-registration-reassurance span::before {
    align-items: center;
    background: var(--champagne);
    border-radius: 50%;
    color: var(--ink);
    content: "✓";
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 950;
    height: 28px;
    justify-content: center;
    width: 28px;
}

.pro-registration-login {
    color: var(--muted);
    font-size: 14px;
    font-weight: 760;
    grid-column: 1 / -1;
    margin: -12px 0 0;
}

.pro-registration-login a {
    color: var(--ink);
    font-weight: 950;
    text-decoration: underline;
    text-decoration-color: var(--champagne);
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

.pro-registration-page .pro-application-section {
    background: rgba(255, 250, 247, .88);
    border-bottom: 1px solid rgba(232, 222, 214, .78);
    padding-bottom: clamp(72px, 8vw, 112px);
    padding-top: clamp(62px, 7vw, 96px);
    width: 100%;
}

.pro-registration-page .pro-application-shell,
.pro-registration-page .professional-application-form,
.pro-registration-page .professional-application-step,
.pro-registration-page .field,
.pro-registration-page .city-input-row {
    min-width: 0;
}

.pro-registration-page .pro-application-intro > p:not(.eyebrow) {
    max-width: 620px;
}

.pro-registration-page .field-label {
    color: #565656;
    display: block;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pro-registration-error-summary {
    border-left-width: 4px;
    display: grid;
    gap: 7px;
    margin: 0;
    scroll-margin-top: 116px;
}

.pro-registration-error-summary:focus {
    box-shadow: 0 0 0 4px rgba(168, 70, 70, .14);
    outline: 0;
}

.pro-registration-error-summary strong {
    color: inherit;
    font-size: 14px;
}

.pro-registration-error-summary ul {
    display: grid;
    gap: 4px;
    margin: 0;
    padding-left: 20px;
}

#professional-application-siren {
    scroll-margin-top: 116px;
}

.pro-registration-page .company-result-button:focus-visible {
    background: #fffaf6;
    box-shadow: inset 0 0 0 3px var(--champagne);
    outline: 0;
}

.pro-registration-page :is(a, button):focus-visible {
    outline: 3px solid var(--champagne);
    outline-offset: 3px;
}

.pro-registration-page .company-result-button:focus-visible {
    outline-offset: 0;
}

@media (min-width: 1061px) {
    .pro-registration-page .pro-application-shell {
        grid-template-areas: "intro form";
        grid-template-columns: minmax(280px, .42fr) minmax(0, .58fr);
    }

    .pro-registration-page .pro-application-intro {
        grid-area: intro;
    }

    .pro-registration-page .professional-application-form {
        grid-area: form;
    }
}

@media (max-width: 1060px) {
    .pro-registration-hero {
        align-items: start;
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-registration-reassurance {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .pro-registration-page .pro-application-shell {
        grid-template-areas:
            "form"
            "intro";
    }

    .pro-registration-login {
        margin-top: -4px;
    }
}

@media (max-width: 760px) {
    .pro-registration-hero {
        gap: 26px;
        padding-bottom: 44px;
        padding-top: 42px;
    }

    .pro-registration-hero-copy h1 {
        font-size: clamp(42px, 13vw, 62px);
    }

    .pro-registration-reassurance {
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-registration-hero-actions .button {
        width: 100%;
    }

    .pro-registration-page .pro-application-section {
        padding-bottom: 60px;
        padding-top: 52px;
    }

    .pro-registration-page .pro-application-intro-title {
        font-size: clamp(34px, 10vw, 42px);
    }

    .pro-registration-page .pro-application-card {
        border-radius: 22px;
        padding: 16px;
    }

    .pro-registration-page .pro-application-card-head,
    .pro-registration-page .professional-application-step,
    .pro-registration-page .pro-application-submit {
        border-radius: 18px;
        padding: 16px;
    }

    .pro-registration-page .company-results,
    .pro-registration-page .city-suggestions {
        max-height: min(320px, 44vh);
    }

}

@media (max-width: 420px) {
    .pro-registration-page .pro-application-card {
        margin-inline: -6px;
        padding: 12px;
    }

    .pro-registration-page .pro-application-card-head,
    .pro-registration-page .professional-application-step,
    .pro-registration-page .pro-application-submit {
        padding: 14px;
    }
}

/* Condensed professional landing. */
.pro-landing-flow {
    display: block;
}

.pro-landing-flow > [data-pro-landing-section] {
    max-width: 1320px;
}

.pro-landing-flow .pro-page-section {
    gap: clamp(18px, 2vw, 28px);
    padding-block: clamp(36px, 3.4vw, 52px);
}

.pro-landing-flow .pro-page-section > .section-heading {
    margin-bottom: 0;
}

.pro-landing-flow .pro-section-heading {
    align-items: end;
}

.pro-landing-flow .pro-section-heading h2 {
    max-width: 720px;
}

.pro-landing-flow .pro-section-heading > p {
    flex: 0 1 390px;
    max-width: 390px;
    font-weight: 550;
    line-height: 1.6;
}

.pro-landing-page[data-pro-landing-section="hero"] {
    padding-block: clamp(34px, 3.4vw, 52px);
}

.pro-landing-flow .pro-landing-hero {
    gap: clamp(34px, 5vw, 72px);
    grid-template-columns: minmax(0, 1fr) minmax(360px, 470px);
    min-height: 0;
}

.pro-landing-flow .pro-landing-copy {
    gap: 16px;
    max-width: 700px;
}

.pro-landing-flow .pro-landing-copy h1 {
    font-size: clamp(42px, 5vw, 68px);
    line-height: 1;
    max-width: 700px;
}

.pro-landing-flow .pro-landing-copy .lead {
    font-size: clamp(16px, 1.25vw, 19px);
    line-height: 1.6;
    max-width: 610px;
}

.pro-landing-flow .pro-trust-strip {
    gap: 8px;
    margin-top: 0;
}

.pro-dashboard-preview-compact {
    gap: 16px;
    padding: 22px;
    border-radius: 28px;
    transform: none;
}

.pro-preview-checklist {
    display: grid;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.pro-preview-checklist li {
    align-items: center;
    background: #fbfaf7;
    border: 1px solid var(--line);
    border-radius: 14px;
    display: grid;
    gap: 10px;
    grid-template-columns: auto minmax(0, 1fr);
    padding: 11px 13px;
}

.pro-preview-checklist li > span {
    align-items: center;
    background: var(--champagne);
    border-radius: 50%;
    color: var(--ink);
    display: inline-flex;
    font-size: 12px;
    font-weight: 950;
    height: 24px;
    justify-content: center;
    width: 24px;
}

.pro-preview-checklist strong {
    color: var(--ink);
    font-size: 13px;
    line-height: 1.4;
}

.pro-dashboard-preview-compact .pro-preview-lead {
    border-radius: 18px;
    padding: 15px;
}

.pro-condensed-benefits .pro-benefit-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pro-condensed-benefits .pro-benefit-card h3 {
    font-size: clamp(22px, 2vw, 27px);
    line-height: 1.1;
}

.pro-condensed-benefits .pro-benefit-card > span {
    font-size: 40px;
}

.pro-process-strip {
    border-top: 1px solid var(--line);
    display: grid;
    gap: clamp(24px, 4vw, 54px);
    grid-template-columns: minmax(220px, .55fr) minmax(0, 1fr);
    padding-top: clamp(28px, 3.5vw, 44px);
}

.pro-process-strip h2 {
    font-size: clamp(28px, 2.8vw, 38px);
    max-width: 340px;
}

.pro-process-list {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.pro-process-list li {
    align-items: start;
    display: grid;
    gap: 10px;
    grid-template-columns: auto minmax(0, 1fr);
}

.pro-process-list li > span {
    align-items: center;
    background: var(--ink);
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-size: 12px;
    font-weight: 900;
    height: 28px;
    justify-content: center;
    width: 28px;
}

.pro-process-list strong,
.pro-process-list small {
    display: block;
}

.pro-process-list strong {
    color: var(--ink);
    font-size: 14px;
    line-height: 1.35;
}

.pro-process-list small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 650;
    line-height: 1.4;
    margin-top: 3px;
}

.pro-pricing-condensed > :is(
    .section-heading,
    .pro-pricing-grid,
    .pro-pricing-note,
    .pro-roi-disclosure
) {
    margin-inline: auto;
    max-width: 1080px;
    width: 100%;
}

.pro-pricing-condensed .pro-pricing-grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.pro-pricing-condensed .pro-price-card {
    gap: 14px;
    padding: 24px;
}

.pro-pricing-condensed .pro-price-card h3 {
    font-size: 32px;
}

.pro-pricing-condensed .pro-price strong {
    font-size: 42px;
}

.pro-pricing-note {
    background: rgba(255, 255, 255, .7);
    border: 1px solid var(--line);
    border-radius: 16px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
    max-width: 1080px;
    padding: 13px 16px;
}

.pro-pricing-note strong {
    color: var(--ink);
}

.pro-roi-disclosure {
    border-block: 1px solid var(--line);
    max-width: 1080px;
    scroll-margin-top: 100px;
    width: 100%;
}

.pro-roi-disclosure > summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: 20px;
    justify-content: space-between;
    list-style: none;
    min-height: 72px;
    padding: 14px 2px;
}

.pro-roi-disclosure > summary::-webkit-details-marker {
    display: none;
}

.pro-roi-disclosure > summary:focus-visible {
    outline: 3px solid var(--ink);
    outline-offset: 4px;
}

.pro-roi-disclosure > summary span:first-child {
    display: grid;
    gap: 3px;
}

.pro-roi-disclosure > summary strong {
    color: var(--ink);
    font-size: 16px;
}

.pro-roi-disclosure > summary small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
}

.pro-roi-disclosure-action {
    color: var(--ink);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    white-space: nowrap;
}

.pro-roi-disclosure-action::after {
    content: " +";
}

.pro-roi-disclosure[open] .pro-roi-disclosure-action {
    font-size: 0;
}

.pro-roi-disclosure[open] .pro-roi-disclosure-action::before {
    content: "Fermer";
    font-size: 12px;
}

.pro-roi-disclosure[open] .pro-roi-disclosure-action::after {
    content: " −";
    font-size: 12px;
}

.pro-roi-disclosure-body {
    padding: 10px 0 24px;
}

.pro-roi-disclosure .pro-roi-controls {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pro-roi-disclosure .pro-roi-control {
    min-width: 0;
    padding: 15px;
}

.pro-roi-disclosure .pro-roi-control strong {
    font-size: 28px;
}

.pro-roi-disclosure .pro-roi-result {
    padding: 22px;
}

.pro-roi-disclosure .pro-roi-main strong {
    font-size: 44px;
}

.pro-landing-flow .pro-resource-teaser {
    border-bottom: 1px solid rgba(232, 222, 214, .78);
    padding-block: clamp(30px, 3.2vw, 44px);
}

.pro-resource-teaser-inner {
    align-items: center;
    display: grid;
    gap: clamp(24px, 3vw, 40px);
    grid-template-columns: minmax(0, 1fr) auto;
    margin-inline: auto;
    width: 100%;
}

.pro-resource-teaser-inner > div:first-child {
    max-width: 820px;
}

.pro-resource-teaser-inner h2 {
    font-size: clamp(25px, 2vw, 32px);
    max-width: 820px;
}

.pro-resource-teaser-inner p:not(.eyebrow) {
    color: var(--muted);
    font-size: 15px;
    line-height: 1.6;
    margin-top: 6px;
    max-width: 720px;
}

.pro-resource-teaser-actions {
    display: grid;
    justify-items: end;
}

.pro-resource-teaser-actions .button {
    min-width: 0;
    padding-inline: 18px;
    white-space: nowrap;
}

.pro-final-cta-condensed {
    align-items: center;
    border-radius: 24px;
    display: grid;
    gap: clamp(24px, 3vw, 40px);
    grid-template-columns: minmax(0, 1fr) auto;
    margin-block: 0;
    margin-inline: auto;
    padding: clamp(26px, 2.8vw, 38px) clamp(28px, 3.6vw, 48px);
    scroll-margin-top: 100px;
}

.pro-final-cta-condensed .eyebrow {
    margin-bottom: 6px;
}

.pro-final-cta-condensed h2 {
    font-size: clamp(28px, 2.2vw, 34px);
    line-height: 1.1;
    max-width: 650px;
}

.pro-final-cta-condensed p {
    font-size: 14px;
    line-height: 1.55;
    margin-top: 8px;
    max-width: 600px;
}

.pro-final-cta-condensed .button-row {
    align-items: center;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 16px;
}

.pro-final-login-link {
    align-items: center;
    color: rgba(255, 255, 255, .82);
    display: inline-flex;
    font-size: 13px;
    font-weight: 750;
    min-height: 44px;
    text-decoration: underline;
    text-underline-offset: 4px;
    white-space: nowrap;
}

.pro-final-login-link:hover,
.pro-final-login-link:focus-visible {
    color: #fff;
}

.pro-final-login-link:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 4px;
}

@media (max-width: 1060px) {
    .pro-landing-flow .pro-landing-hero {
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-dashboard-preview-compact {
        margin: 0;
        max-width: 720px;
    }

    .pro-process-strip,
    .pro-resource-teaser-inner,
    .pro-roi-disclosure .pro-roi-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-resource-teaser-inner {
        gap: 28px;
    }

    .pro-resource-teaser-actions {
        justify-items: start;
    }

    .pro-final-cta-condensed {
        gap: 18px;
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-final-cta-condensed .button-row {
        justify-content: flex-start;
    }
}

@media (max-width: 860px) {
    .pro-landing-flow .pro-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .pro-landing-flow .pro-section-heading > p {
        flex: 0 1 auto;
        max-width: 100%;
    }
}

@media (max-width: 760px) {
    .pro-landing-flow .pro-page-section {
        padding-block: 34px;
    }

    .pro-landing-flow .pro-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .pro-landing-flow .pro-section-heading > p {
        flex-basis: auto;
    }

    .pro-condensed-benefits .pro-benefit-grid,
    .pro-process-list,
    .pro-pricing-condensed .pro-pricing-grid,
    .pro-roi-disclosure .pro-roi-controls {
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-landing-flow .pro-benefit-grid {
        padding-bottom: 0;
    }

    .pro-landing-flow .pro-benefit-card {
        padding-top: 20px;
    }

    .pro-dashboard-preview-compact {
        padding: 16px;
    }

    .pro-dashboard-preview-compact .pro-preview-head,
    .pro-dashboard-preview-compact .pro-preview-lead {
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-roi-disclosure > summary {
        align-items: flex-start;
    }

    .pro-resource-teaser-actions,
    .pro-resource-teaser-actions .button,
    .pro-final-cta-condensed .button-row,
    .pro-final-cta-condensed .button {
        width: 100%;
    }

    .pro-final-cta-condensed {
        align-items: stretch;
        flex-direction: column;
        padding-block: 34px;
    }

    .pro-final-cta-condensed .button-row {
        align-items: stretch;
        flex-direction: column;
        flex-wrap: wrap;
    }

    .pro-final-login-link {
        justify-content: center;
        width: 100%;
    }
}

/* Pro header: one clear access point for registration and sign-in. */
.site-header-pro .pro-public-site-link {
    align-items: center;
    background: #ffffff;
    border: 1px solid #dedbd6;
    border-radius: 8px;
    color: #111111;
    display: inline-flex;
    flex: 0 0 auto;
    gap: 9px;
    justify-content: flex-start;
    min-height: 48px;
    padding: 7px 8px 7px 10px;
    text-decoration: none;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease;
    white-space: nowrap;
}

.site-header-pro .pro-public-site-link-mark {
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(17, 17, 17, .08);
    flex: 0 0 28px;
    height: 28px;
    object-fit: cover;
    width: 28px;
}

.site-header-pro .pro-public-site-link-copy {
    display: grid;
    gap: 1px;
    min-width: 0;
    text-align: left;
}

.site-header-pro .pro-public-site-link-copy strong {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    line-height: 1.1;
    text-transform: uppercase;
}

.site-header-pro .pro-public-site-link-copy small {
    color: #77716c;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .02em;
    line-height: 1.15;
}

.site-header-pro .pro-public-site-link-compact-label {
    display: none;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    line-height: 1.1;
    text-transform: uppercase;
}

.site-header-pro .pro-public-site-link-arrow {
    align-items: center;
    background: #f4f1ed;
    border-radius: 6px;
    color: #111111;
    display: inline-flex;
    flex: 0 0 26px;
    font-size: 13px;
    height: 26px;
    justify-content: center;
    line-height: 1;
    transition: background-color .18s ease, color .18s ease, transform .18s ease;
    width: 26px;
}

.site-header-pro .pro-public-site-link:hover {
    background: #f8f6f3;
    border-color: #bcb7b1;
    color: #111111;
}

.site-header-pro .pro-public-site-link:hover .pro-public-site-link-arrow {
    background: #111111;
    color: #ffffff;
    transform: translate(1px, -1px);
}

.site-header-pro .pro-public-site-link:focus-visible,
.site-header-pro .pro-access-trigger:focus-visible,
.site-header-pro .pro-access-option:focus-visible,
.site-header-pro .mobile-pro-access:focus-visible {
    outline: 3px solid #111111;
    outline-offset: 3px;
}

.site-header-pro .pro-access-menu {
    position: relative;
}

.site-header-pro .pro-access-trigger {
    align-items: center;
    display: inline-flex;
    gap: 13px;
    justify-content: center;
    min-height: 48px;
    padding: 7px 15px;
    white-space: nowrap;
}

.site-header-pro .pro-access-trigger-copy {
    display: grid;
    gap: 2px;
    text-align: left;
}

.site-header-pro .pro-access-trigger-copy strong {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .065em;
    line-height: 1.15;
    text-transform: uppercase;
}

.site-header-pro .pro-access-trigger-copy small {
    color: rgba(255, 255, 255, .66);
    font-size: 9px;
    font-weight: 500;
    letter-spacing: .025em;
    line-height: 1.15;
}

.site-header-pro .pro-access-trigger-chevron {
    border-bottom: 2px solid currentColor;
    border-right: 2px solid currentColor;
    height: 7px;
    margin-top: -4px;
    transform: rotate(45deg);
    transition: margin .18s ease, transform .18s ease;
    width: 7px;
}

.site-header-pro .pro-access-menu.is-open .pro-access-trigger-chevron {
    margin-top: 4px;
    transform: rotate(225deg);
}

.site-header-pro .pro-access-panel {
    background: #ffffff;
    border: 1px solid #dedbd6;
    border-radius: 10px;
    box-shadow: 0 14px 38px rgba(17, 17, 17, .13);
    display: grid;
    gap: 0;
    padding: 6px;
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    width: min(286px, calc(100vw - 36px));
    z-index: 80;
}

.site-header-pro .pro-access-panel[hidden] {
    display: none;
}

.site-header-pro .pro-access-option {
    align-items: center;
    border: 0;
    border-radius: 7px;
    color: #111111;
    display: grid;
    gap: 10px;
    grid-template-columns: 28px minmax(0, 1fr) 14px;
    min-height: 54px;
    padding: 8px 10px;
    text-align: left;
    transition: background-color .18s ease, color .18s ease;
}

.site-header-pro .pro-access-option:hover {
    background: #f6f4f1;
    color: #111111;
}

.site-header-pro .pro-access-register {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.site-header-pro .pro-access-login {
    border-top: 1px solid #ece9e5;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.site-header-pro .pro-access-option-icon {
    align-items: center;
    background: #f4f1ed;
    border-radius: 50%;
    color: #111111;
    display: inline-flex;
    font-size: 15px;
    font-weight: 500;
    height: 28px;
    justify-content: center;
    line-height: 1;
    width: 28px;
}

.site-header-pro .pro-access-option-icon svg {
    fill: none;
    height: 15px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    width: 15px;
}

.site-header-pro .pro-access-register .pro-access-option-icon {
    background: #f7dddd;
}

.site-header-pro .pro-access-option-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.site-header-pro .pro-access-option-copy strong {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
}

.site-header-pro .pro-access-option-copy small {
    color: #565656;
    font-size: 10px;
    line-height: 1.3;
}

.site-header-pro .pro-access-option-arrow {
    color: #8a827a;
    font-size: 14px;
    justify-self: end;
    transition: transform .18s ease;
}

.site-header-pro .pro-access-option:hover .pro-access-option-arrow {
    transform: translateX(2px);
}

.site-header-pro .mobile-pro-actions {
    align-items: stretch;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

.site-header-pro .mobile-pro-access-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
}

.site-header-pro .mobile-pro-access {
    align-items: center;
    border: 1px solid #111111;
    border-radius: 8px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 600;
    justify-content: center;
    letter-spacing: .035em;
    min-height: 48px;
    padding: 10px 12px;
    text-align: center;
    text-transform: uppercase;
}

.site-header-pro .mobile-pro-register {
    background: #111111;
    border-color: #111111;
    box-shadow: inset 3px 0 0 #e8b4b4;
    color: #ffffff;
}

.site-header-pro .mobile-pro-login {
    background: #ffffff;
    border-color: #dedbd6;
    color: #111111;
}

.site-header-pro .mobile-pro-actions .pro-public-site-link {
    align-self: stretch;
    justify-content: flex-start;
    width: 100%;
}

.site-header-pro .mobile-pro-actions .pro-public-site-link-arrow {
    margin-left: auto;
}

@media (max-width: 1120px) {
    .site-header-pro .nav-actions > .pro-public-site-link,
    .site-header-pro .nav-actions > .pro-access-menu {
        display: none;
    }
}

@media (max-width: 860px) {
    .site-header-pro .mobile-pro-actions .pro-public-site-link {
        min-width: 0;
    }
}

/* Public 404/410 and unavailable photographer profiles */
.public-status-page {
    background:
        radial-gradient(circle at 88% 18%, rgba(232, 180, 180, .28), transparent 24rem),
        linear-gradient(135deg, #ffffff 0%, #faf6f1 62%, #f4eee7 100%);
    border-bottom: 1px solid #dedbd6;
    min-height: min(680px, calc(100dvh - 88px));
    padding: clamp(58px, 8vw, 118px) var(--page-gutter, clamp(18px, 3vw, 56px));
}

.public-status-page-inner {
    align-items: center;
    display: grid;
    gap: clamp(42px, 8vw, 110px);
    grid-template-columns: minmax(0, 1fr) minmax(260px, 390px);
    margin-inline: auto;
    max-width: 1120px;
}

.public-status-copy {
    max-width: 720px;
}

.public-status-copy .eyebrow {
    color: #765f53;
    margin: 0 0 18px;
}

.public-status-copy h1 {
    color: #111111;
    font-family: var(--font-display);
    font-size: clamp(38px, 4.3vw, 64px);
    letter-spacing: -.04em;
    line-height: 1.06;
    margin: 0;
    max-width: 760px;
}

.public-status-copy > p:not(.eyebrow) {
    color: #565656;
    font-size: clamp(17px, 1.35vw, 20px);
    line-height: 1.7;
    margin: 24px 0 0;
    max-width: 650px;
}

.public-status-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 14px 24px;
    margin-top: 32px;
}

.public-status-actions .button {
    min-height: 50px;
}

.public-status-home-link {
    border-bottom: 1px solid currentColor;
    color: #111111;
    font-size: 14px;
    font-weight: 600;
    padding-block: 10px 7px;
}

.public-status-home-link:hover {
    color: #765f53;
}

.public-status-visual {
    align-items: center;
    aspect-ratio: 1;
    background: rgba(255, 255, 255, .72);
    border: 1px solid rgba(205, 189, 168, .72);
    border-radius: 50%;
    box-shadow: 0 26px 80px rgba(78, 58, 40, .1), inset 0 0 0 22px rgba(244, 238, 231, .72);
    display: flex;
    justify-content: center;
    position: relative;
}

.public-status-code {
    color: #111111;
    font-family: var(--font-display);
    font-size: clamp(68px, 8vw, 116px);
    font-weight: 600;
    letter-spacing: -.08em;
    line-height: 1;
}

.public-status-heart {
    align-items: center;
    background: #e8b4b4;
    border: 7px solid #ffffff;
    border-radius: 50%;
    bottom: 4%;
    display: flex;
    height: clamp(62px, 6vw, 82px);
    justify-content: center;
    position: absolute;
    right: 3%;
    width: clamp(62px, 6vw, 82px);
}

.public-status-heart svg {
    fill: none;
    height: 34px;
    stroke: #111111;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.2;
    width: 34px;
}

.public-status-footer {
    align-items: center;
    background: #111111;
    color: rgba(255, 255, 255, .72);
    display: flex;
    font-size: 13px;
    gap: 24px;
    justify-content: space-between;
    min-height: 88px;
    padding: 22px var(--page-gutter, clamp(18px, 3vw, 56px));
}

.public-status-footer a {
    color: #ffffff;
    font-weight: 700;
}

/* Member-facing publication explanation */
.profile-public-action-unavailable {
    align-items: center;
    cursor: pointer;
    display: inline-flex;
    gap: 9px;
}

.profile-public-action-status {
    background: #e8b4b4;
    border: 2px solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 0 0 1px #c99b9b;
    flex: 0 0 auto;
    height: 9px;
    width: 9px;
}

html.has-profile-availability-dialog-open,
body.has-profile-availability-dialog-open {
    overflow: hidden;
}

.profile-availability-dialog {
    background: transparent;
    border: 0;
    box-sizing: border-box;
    color: #111111;
    max-height: calc(100dvh - 32px);
    max-width: min(620px, calc(100vw - 32px));
    overflow: visible;
    padding: 0;
    width: 100%;
}

.profile-availability-dialog::backdrop {
    backdrop-filter: blur(5px);
    background: rgba(17, 17, 17, .58);
}

.profile-availability-dialog.is-dialog-fallback {
    inset: 16px;
    margin: auto;
    position: fixed;
    z-index: 1000;
}

.profile-availability-dialog-panel {
    background: #ffffff;
    border: 1px solid #dedbd6;
    border-radius: 22px;
    box-sizing: border-box;
    box-shadow: 0 32px 100px rgba(17, 17, 17, .24);
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    padding: clamp(28px, 5vw, 48px);
    position: relative;
    width: 100%;
}

.profile-availability-dialog-close-form {
    margin: 0;
}

.profile-availability-dialog-close {
    align-items: center;
    background: #f4f1ed;
    border: 1px solid #dedbd6;
    border-radius: 50%;
    color: #111111;
    cursor: pointer;
    display: inline-flex;
    font-size: 26px;
    height: 42px;
    justify-content: center;
    line-height: 1;
    position: absolute;
    right: 18px;
    top: 18px;
    width: 42px;
}

.profile-availability-dialog-icon {
    align-items: center;
    background: #f8e7e7;
    border-radius: 18px;
    display: flex;
    height: 72px;
    justify-content: center;
    margin-bottom: 24px;
    width: 72px;
}

.profile-availability-dialog-icon svg {
    fill: none;
    height: 42px;
    stroke: #4e3a28;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.2;
    width: 42px;
}

.profile-availability-dialog header {
    padding-right: 38px;
}

.profile-availability-dialog .eyebrow {
    color: #765f53;
    margin: 0 0 10px;
}

.profile-availability-dialog h2 {
    color: #111111;
    font-family: var(--font-heading);
    font-size: clamp(27px, 3vw, 38px);
    letter-spacing: -.035em;
    line-height: 1.12;
    margin: 0;
}

.profile-availability-dialog-panel > p {
    color: #565656;
    font-size: 16px;
    line-height: 1.65;
    margin: 20px 0 0;
}

.profile-availability-dialog-status {
    background: #f8f3ed;
    border-left: 4px solid #e8b4b4;
    border-radius: 0 12px 12px 0;
    margin-top: 24px;
    padding: 17px 20px;
}

.profile-availability-dialog-status span {
    color: #111111;
    display: block;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.profile-availability-dialog-status p {
    color: #565656;
    font-size: 14px;
    line-height: 1.55;
    margin: 7px 0 0;
}

.profile-availability-dialog-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

.profile-availability-dialog-actions form {
    margin: 0;
}

.profile-availability-dialog :is(a, button):focus-visible,
.public-status-page :is(a, button):focus-visible {
    outline: 3px solid #111111;
    outline-offset: 3px;
}

@media (max-width: 740px) {
    .public-status-page {
        min-height: 0;
        padding-block: 52px 64px;
    }

    .public-status-page-inner {
        gap: 42px;
        grid-template-columns: minmax(0, 1fr);
    }

    .public-status-visual {
        justify-self: center;
        max-width: 280px;
        order: -1;
        width: 72vw;
    }

    .public-status-copy {
        text-align: center;
    }

    .public-status-copy > p:not(.eyebrow) {
        margin-inline: auto;
    }

    .public-status-actions {
        justify-content: center;
    }

    .public-status-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }
}

@media (max-width: 520px) {
    .profile-availability-dialog {
        max-width: calc(100vw - 24px);
    }

    .profile-availability-dialog-panel {
        border-radius: 16px;
        padding: 26px 20px 22px;
    }

    .profile-availability-dialog-close {
        right: 14px;
        top: 14px;
    }

    .profile-availability-dialog-icon {
        height: 62px;
        width: 62px;
    }

    .profile-availability-dialog-actions,
    .profile-availability-dialog-actions form,
    .profile-availability-dialog-actions .button {
        width: 100%;
    }

    .profile-availability-dialog-actions .button {
        justify-content: center;
        min-height: 48px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .profile-availability-dialog::backdrop {
        backdrop-filter: none;
    }
}

/* Public Pro editorial pages — August 2026 client mockups. */
.pro-community-landing,
.pro-how-page {
    --pro-ink: #141313;
    --pro-copy: #5d5957;
    --pro-cream: #faf4ee;
    --pro-cream-deep: #f3e8de;
    --pro-blush: #faecef;
    --pro-pink: #df8796;
    --pro-pink-dark: #be6876;
    --pro-pink-soft: #f8dfe4;
    --pro-line: #eadfd7;
    background: #ffffff;
    color: var(--pro-ink);
    font-family: var(--pro-font-body);
    overflow: clip;
}

.pro-community-landing *,
.pro-community-landing *::before,
.pro-community-landing *::after,
.pro-how-page *,
.pro-how-page *::before,
.pro-how-page *::after {
    box-sizing: border-box;
}

.pro-community-landing :is(h1, h2, h3),
.pro-how-page :is(h1, h2, h3) {
    color: var(--pro-ink);
    font-family: var(--pro-font-heading);
    font-weight: 600;
    letter-spacing: -.025em;
}

.pro-community-landing :is(p, li),
.pro-how-page :is(p, li) {
    color: var(--pro-copy);
}

.pro-community-landing .eyebrow,
.pro-how-page .eyebrow {
    color: #77716e;
    font-size: var(--pro-label-size);
    font-weight: 600;
    letter-spacing: .14em;
}

.pro-community-landing .button,
.pro-how-page .button {
    border-radius: 999px;
    box-shadow: none;
    min-height: 50px;
    padding: 13px 24px;
}

.pro-community-landing .button-accent,
.pro-how-page .button-accent {
    background: var(--pro-pink);
    box-shadow: 0 15px 32px rgba(190, 104, 118, .2);
    color: #ffffff;
}

.pro-community-landing .button-accent:hover,
.pro-how-page .button-accent:hover {
    background: var(--pro-pink-dark);
}

.pro-community-landing .button-secondary,
.pro-how-page .button-secondary {
    background: #ffffff;
    border-color: #ded4cc;
    color: var(--pro-ink);
}

.pro-community-landing :is(a, button, summary):focus-visible,
.pro-how-page :is(a, button, summary):focus-visible {
    outline: 3px solid var(--pro-ink);
    outline-offset: 4px;
}

.pro-community-landing > [data-pro-landing-section],
.pro-how-page > [data-pro-how-section] {
    width: 100%;
}

.pro-community-section-inner,
.pro-community-charter-card,
.pro-how-section-inner,
.pro-how-hero-inner {
    margin-inline: auto;
    max-width: 1380px;
    width: 100%;
}

/* Community landing. */
.pro-community-section {
    padding-block: var(--pro-section-space);
}

.pro-community-heading {
    display: grid;
    gap: 16px;
    max-width: 940px;
}

.pro-community-heading h2,
.pro-community-charter-copy h2 {
    font-size: var(--pro-section-title-size);
    line-height: var(--pro-heading-line-height);
    font-family: var(--pro-font-heading);
    font-weight: 600;
    letter-spacing: var(--pro-heading-letter-spacing);
}

.pro-community-heading > p:not(.eyebrow),
.pro-community-charter-copy > p {
    font-size: var(--pro-body-size);
    line-height: 1.7;
}

.pro-community-heading > strong {
    color: var(--pro-ink);
    font-size: 16px;
    margin-top: 6px;
}

.pro-community-benefits {
    background: #fffdfb;
    padding-block: 0;
    scroll-margin-top: 88px;
}

.pro-community-benefits-showcase {
    aspect-ratio: auto;
    background: #f6f0ec;
    height: clamp(390px, 33.333vw, 683px);
    min-height: 0;
    overflow: hidden;
    position: relative;
    width: 100%;
}

.pro-community-benefits-art {
    height: 100%;
    inset: 0 0 0 auto;
    max-width: none;
    object-fit: cover;
    object-position: center;
    position: absolute;
    width: min(100%, 2049px);
}

.pro-community-benefits-heading {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: center;
    min-height: 0;
    padding-bottom: clamp(26px, 2.5vw, 42px);
    padding-top: clamp(26px, 2.5vw, 42px);
    position: relative;
    z-index: 1;
}

.pro-community-benefits-heading .eyebrow {
    color: #a97859;
    font-size: var(--pro-label-size);
    letter-spacing: .14em;
    margin-bottom: clamp(14px, 1.5vw, 22px);
}

.pro-community-benefits-heading h1 {
    color: #35231d;
    font-family: var(--pro-font-display);
    font-size: var(--pro-title-size);
    font-weight: 600;
    letter-spacing: var(--pro-heading-letter-spacing);
    line-height: var(--pro-title-line-height);
    max-width: min(590px, 40vw);
}

.pro-community-benefits-heading h1 > span:first-child {
    display: block;
}

.pro-community-benefits-hello-accent {
    display: block;
    letter-spacing: normal;
    line-height: .8;
    margin-top: -.02em;
    width: min(100%, 7.5em);
}

.pro-community-benefits-hello-accent img {
    display: block;
    height: auto;
    max-width: none;
    width: 100%;
}

.pro-community-benefits-hello-accent em {
    color: #e09b8d;
    display: block;
    font-family: "Segoe Script", "Brush Script MT", cursive;
    font-size: .8em;
    font-weight: 500;
    letter-spacing: -.05em;
    line-height: 1.05;
}

.pro-community-benefits-heading > p:not(.eyebrow) {
    color: #302925;
    font-size: var(--pro-lead-size);
    font-weight: 400;
    line-height: 1.65;
    margin: clamp(14px, 1.4vw, 21px) 0 0;
    max-width: min(580px, 44vw);
}

.pro-community-benefits-rule {
    background: #df9d8f;
    display: block;
    height: 3px;
    margin-top: clamp(17px, 1.8vw, 26px);
    width: 54px;
}

.pro-community-benefits-join {
    align-items: center;
    border-bottom: 1px solid #e7ddd5;
    display: grid;
    gap: clamp(34px, 5vw, 78px);
    grid-template-columns: minmax(0, .88fr) minmax(0, 1.25fr);
    max-width: 1480px;
    padding-bottom: clamp(44px, 4.8vw, 68px);
    padding-top: clamp(44px, 4.8vw, 68px);
}

.pro-community-benefits-join h2 {
    color: #2f211d;
    font-family: var(--pro-font-heading);
    font-size: var(--pro-section-title-size);
    font-weight: 600;
    letter-spacing: var(--pro-heading-letter-spacing);
    line-height: var(--pro-heading-line-height);
    margin: 0;
    max-width: 570px;
}

.pro-community-benefits-join p {
    color: #514743;
    font-size: var(--pro-lead-size);
    line-height: 1.65;
    margin: 0;
    max-width: 710px;
}

.pro-community-benefit-list-wrap {
    max-width: 1480px;
    padding-bottom: clamp(34px, 4vw, 58px);
    padding-top: 0;
}

.pro-community-benefit-grid {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.pro-community-benefit-grid li {
    align-items: center;
    display: grid;
    gap: clamp(14px, 1.5vw, 22px);
    grid-template-columns: clamp(78px, 6.6vw, 104px) minmax(0, 1fr);
    min-height: 210px;
    padding: clamp(24px, 2.2vw, 34px) clamp(18px, 2vw, 30px);
}

.pro-community-benefit-grid li:not(:nth-child(4n)) {
    border-right: 1px solid #e7ddd5;
}

.pro-community-benefit-grid li:nth-child(-n + 4) {
    border-bottom: 1px solid #e7ddd5;
}

.pro-community-benefit-icon {
    display: block;
    height: auto;
    width: 100%;
}

.pro-community-benefit-copy {
    align-self: center;
    min-width: 0;
}

.pro-community-benefit-copy > span {
    color: #df9d8f;
    display: block;
    font-family: var(--pro-font-display);
    font-size: var(--pro-number-size);
    font-weight: 600;
    letter-spacing: -.035em;
    line-height: .8;
    margin-bottom: 17px;
}

.pro-community-benefit-copy h3 {
    color: #2d2521;
    font-family: var(--pro-font-heading);
    font-size: var(--pro-card-title-size);
    font-weight: 600;
    letter-spacing: -.015em;
    line-height: 1.35;
    margin: 0;
    text-transform: none;
}

.pro-community-benefit-copy p {
    color: #504742;
    font-size: var(--pro-body-size);
    font-weight: 400;
    line-height: 1.65;
    margin: 12px 0 0;
}

.pro-how-access-grid li > span {
    align-items: center;
    background: var(--pro-blush);
    border-radius: 12px;
    color: var(--pro-pink);
    display: inline-flex;
    font-size: 13px;
    font-weight: 800;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.pro-community-charter {
    background: #ffffff;
}

.pro-community-charter-card {
    align-items: start;
    display: grid;
    gap: clamp(46px, 6vw, 92px);
    grid-template-columns: minmax(0, 1.03fr) minmax(440px, .97fr);
}

.pro-community-charter-copy {
    display: grid;
    gap: clamp(15px, 1.5vw, 22px);
    padding-top: clamp(4px, 1.5vw, 20px);
}

.pro-community-charter-copy .eyebrow {
    color: #b18272;
    font-size: clamp(10px, .9vw, 13px);
    letter-spacing: .16em;
}

.pro-community-charter-copy h2 {
    color: #171413;
    font-family: var(--pro-font-heading);
    font-size: var(--pro-section-title-size);
    font-weight: 600;
    letter-spacing: var(--pro-heading-letter-spacing);
    line-height: var(--pro-heading-line-height);
}

.pro-community-charter-copy h2 .pro-community-charter-hello-accent {
    display: block;
    font: inherit;
    letter-spacing: normal;
    line-height: .85;
    margin-top: -.06em;
    white-space: nowrap;
}

.pro-community-charter-copy h2 .pro-community-charter-hello-accent img {
    display: inline-block;
    height: .86em;
    max-width: none;
    vertical-align: -.15em;
    width: auto;
}

.pro-community-charter-copy h2 .pro-community-charter-hello-accent img + img {
    margin-inline-start: .1em;
}

.pro-community-charter-copy h2 .pro-community-charter-hello-accent em {
    color: var(--pro-pink);
    display: block;
    font-family: "Segoe Script", "Brush Script MT", cursive;
    font-size: .82em;
    font-weight: 500;
    letter-spacing: -.04em;
    white-space: normal;
}

.pro-community-check-list,
.pro-how-dot-list,
.pro-how-verification-list,
.pro-how-offer-card ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.pro-community-check-list {
    columns: 2;
    column-gap: clamp(24px, 3vw, 44px);
}

.pro-community-check-list li {
    break-inside: avoid;
    color: #2f2a28;
    font-size: var(--pro-small-size);
    line-height: 1.45;
    padding: 6px 0 6px 27px;
    position: relative;
}

.pro-community-check-list li::before {
    align-items: center;
    border: 1.5px solid #df7f8d;
    border-radius: 50%;
    color: #df7f8d;
    content: "✓";
    display: flex;
    font-size: 9px;
    font-weight: 800;
    height: 15px;
    justify-content: center;
    left: 0;
    position: absolute;
    top: 9px;
    width: 15px;
}

.pro-how-dot-list li::before {
    background: #efb4bd;
    border-radius: 50%;
    content: "";
    height: 7px;
    left: 0;
    position: absolute;
    top: 12px;
    width: 7px;
}

.pro-community-charter-copy .button {
    justify-self: start;
    margin-top: 8px;
}

.pro-community-charter-cta::after {
    content: "→";
    font-size: 1.35em;
    font-weight: 400;
    line-height: 0;
    margin-left: 24px;
}

.pro-community-charter-cta {
    letter-spacing: .025em;
    text-transform: uppercase;
}

.pro-community-charter-visual {
    display: grid;
    gap: clamp(18px, 2.5vw, 34px);
    min-width: 0;
}

.pro-community-charter-visual-frame {
    position: relative;
    width: 100%;
}

.pro-community-charter-art {
    display: block;
    height: auto;
    width: 100%;
}

.pro-community-charter-foundations {
    inset: 0;
    list-style: none;
    margin: 0;
    padding: 0;
    pointer-events: none;
    position: absolute;
}

.pro-community-charter-foundations li {
    background: rgba(255, 255, 255, .98);
    color: #121111;
    font-size: clamp(10px, 1.15vw, 17px);
    font-weight: 800;
    line-height: 1.42;
    overflow-wrap: anywhere;
    padding: .14em .24em .16em;
    position: absolute;
    text-transform: uppercase;
    width: 29%;
}

.pro-community-charter-foundations li:nth-child(1) {
    left: 34.6%;
    top: 13.6%;
}

.pro-community-charter-foundations li:nth-child(2) {
    left: 73.1%;
    top: 42.55%;
    width: 26.9%;
}

.pro-community-charter-foundations li:nth-child(3) {
    left: 37.4%;
    top: 72.6%;
    width: 28%;
}

.pro-community-charter-foundations strong {
    color: inherit;
    font: inherit;
}

.pro-community-charter-note {
    background:
        radial-gradient(circle at 88% 50%, rgba(237, 180, 187, .2), transparent 28%),
        linear-gradient(105deg, #fffaf6, #fbf1ea);
    border-radius: 20px;
    color: var(--pro-ink);
    display: grid;
    gap: 12px;
    min-height: clamp(150px, 13vw, 205px);
    overflow: hidden;
    padding: clamp(42px, 4vw, 58px) clamp(28px, 3.4vw, 48px) clamp(28px, 3vw, 42px);
    position: relative;
}

.pro-community-charter-note::before {
    color: #dc8590;
    content: "“";
    font-family: Georgia, serif;
    font-size: clamp(62px, 5.5vw, 84px);
    font-weight: 700;
    left: clamp(25px, 3vw, 43px);
    line-height: .7;
    position: absolute;
    top: 18px;
}

.pro-community-charter-note small {
    color: #d87e89;
    font-size: clamp(10px, .9vw, 13px);
    font-weight: 750;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.pro-community-charter-note strong {
    color: #151414;
    font-family: var(--pro-font-body);
    font-size: var(--pro-card-title-size);
    line-height: 1.3;
    max-width: 500px;
    font-weight: 600;
}

.pro-community-resources {
    background: var(--pro-cream);
}

.pro-community-resource-grid {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: clamp(34px, 4vw, 54px) 0 32px;
}

.pro-community-resource-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.pro-community-resource-media {
    align-items: center;
    aspect-ratio: 1.45 / 1;
    background:
        radial-gradient(circle at 78% 24%, rgba(255, 255, 255, .78) 0 8%, transparent 8.5%),
        linear-gradient(135deg, #ead7d3, #f6ebe7 58%, #dfb5b8);
    border: 1px solid #dfc9bf;
    border-radius: 20px;
    display: flex;
    justify-content: center;
    margin-bottom: 18px;
    overflow: hidden;
}

.pro-community-resource-card:nth-child(2) .pro-community-resource-media {
    background: linear-gradient(145deg, #e5ddd4, #f9f2ec 56%, #d9c1b0);
}

.pro-community-resource-card:nth-child(3) .pro-community-resource-media {
    background: linear-gradient(145deg, #ede1dc, #fff8f4 52%, #ddb8bd);
}

.pro-community-resource-card:nth-child(4) .pro-community-resource-media {
    background: linear-gradient(145deg, #e4d8cf, #faf1e8 55%, #cdb4a5);
}

.pro-community-resource-media img {
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
    width: 100%;
}

.pro-community-resource-media:hover img {
    transform: scale(1.025);
}

.pro-community-resource-media > span {
    align-items: center;
    background: rgba(255, 255, 255, .75);
    border-radius: 50%;
    color: var(--pro-pink-dark);
    display: inline-flex;
    font-family: var(--pro-font-heading);
    font-size: 34px;
    font-weight: 700;
    height: 74px;
    justify-content: center;
    width: 74px;
}

.pro-community-resource-card > .eyebrow {
    color: var(--pro-pink);
    font-size: 10px;
    margin-bottom: 8px;
}

.pro-community-resource-card h3 {
    font-size: var(--pro-card-title-size);
    line-height: 1.3;
}

.pro-community-resource-card > p:not(.eyebrow) {
    font-size: var(--pro-body-size);
    line-height: 1.55;
    margin: 9px 0 0;
}

.pro-community-final,
.pro-how-final {
    align-items: center;
    background: var(--pro-ink);
    border-radius: 30px;
    display: grid;
    gap: clamp(28px, 5vw, 70px);
    grid-template-columns: minmax(0, 1fr) auto;
    margin-block: clamp(56px, 6vw, 88px);
    margin-inline: auto;
    max-width: 1380px;
    padding: clamp(36px, 5vw, 66px);
}

.pro-community-final .eyebrow,
.pro-how-final .eyebrow {
    color: #efb4bd;
}

.pro-community-final h2,
.pro-how-final h2 {
    color: #ffffff;
    font-size: var(--pro-section-title-size);
    line-height: 1.3;
}

.pro-community-final p:not(.eyebrow),
.pro-how-final p:not(.eyebrow) {
    color: rgba(255, 255, 255, .68);
    font-size: 15px;
    line-height: 1.6;
    margin: 12px 0 0;
}

.pro-community-final .button-row {
    flex-wrap: nowrap;
}

.pro-community-final .button-secondary {
    border-color: #ffffff;
}

/* Professional “How it works”. */
.pro-how-hero {
    background: linear-gradient(135deg, #fbf1ee 0%, var(--pro-blush) 100%);
}

.pro-how-hero-inner {
    padding-bottom: clamp(62px, 7vw, 104px);
    padding-top: clamp(58px, 7vw, 100px);
}

.pro-how-hero-copy {
    display: grid;
    gap: 20px;
    max-width: 940px;
}

.pro-how-hero-copy h1 {
    font-size: clamp(45px, 5vw, 76px);
    line-height: .99;
    max-width: 820px;
}

.pro-how-hero-copy > p:not(.eyebrow) {
    font-size: clamp(17px, 1.5vw, 22px);
    line-height: 1.65;
    max-width: 940px;
}

.pro-how-hero-copy > strong {
    color: var(--pro-ink);
    font-size: 17px;
    margin-top: 8px;
}

.pro-how-objectives {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    list-style: none;
    margin: clamp(40px, 5vw, 70px) 0 0;
    padding: 0;
}

.pro-how-objectives li {
    background: rgba(255, 255, 255, .84);
    border: 1px solid rgba(237, 222, 219, .82);
    border-radius: 24px;
    box-shadow: 0 15px 35px rgba(81, 58, 57, .05);
    min-height: 190px;
    padding: clamp(23px, 2.8vw, 36px);
}

.pro-how-objectives span {
    color: #efbcc4;
    display: block;
    font-family: var(--pro-font-heading);
    font-size: clamp(45px, 4vw, 62px);
    font-weight: 700;
    line-height: 1;
}

.pro-how-objectives p {
    color: var(--pro-ink);
    font-size: clamp(15px, 1.3vw, 19px);
    line-height: 1.5;
    margin: 18px 0 0;
}

.pro-how-section {
    padding-block: clamp(68px, 7vw, 112px);
    scroll-margin-top: 82px;
}

.pro-how-section:nth-of-type(even) {
    background: var(--pro-cream);
}

.pro-how-section-inner {
    display: grid;
    gap: clamp(34px, 4.5vw, 62px);
}

.pro-how-heading {
    display: grid;
    gap: 15px;
    max-width: 1060px;
}

.pro-how-heading h2 {
    font-size: clamp(35px, 3.9vw, 58px);
    line-height: 1.04;
}

.pro-how-heading > p:not(.eyebrow),
.pro-how-offers-heading > p {
    font-size: clamp(16px, 1.3vw, 19px);
    line-height: 1.65;
    max-width: 840px;
}

.pro-how-split {
    align-items: start;
    display: grid;
    gap: clamp(44px, 7vw, 110px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pro-how-split > div {
    display: grid;
    gap: 18px;
}

.pro-how-split > div > p,
.pro-how-split > div > strong {
    font-size: clamp(15px, 1.3vw, 19px);
    line-height: 1.7;
    margin: 0;
}

.pro-how-split > div > strong {
    color: var(--pro-ink);
}

.pro-how-dot-list {
    display: grid;
    gap: 7px;
}

.pro-how-dot-list li {
    font-size: clamp(14px, 1.15vw, 17px);
    line-height: 1.55;
    padding: 4px 0 4px 24px;
    position: relative;
}

.pro-how-dot-list li::before {
    top: 13px;
}

.pro-how-dark-note {
    background: var(--pro-ink);
    border-radius: 28px;
    display: grid;
    gap: 18px;
    padding: clamp(30px, 4vw, 50px);
}

.pro-how-dark-note > span {
    align-items: center;
    background: var(--pro-pink);
    border-radius: 50%;
    color: #ffffff;
    display: inline-flex;
    font-size: 19px;
    height: 44px;
    justify-content: center;
    width: 44px;
}

.pro-how-dark-note p {
    color: rgba(255, 255, 255, .78);
    font-size: clamp(17px, 1.45vw, 21px);
    line-height: 1.65;
    margin: 0;
}

.pro-how-access {
    background: var(--pro-cream) !important;
}

.pro-how-access-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.pro-how-access-grid li {
    align-items: center;
    background: #ffffff;
    border: 1px solid rgba(234, 223, 215, .76);
    border-radius: 22px;
    display: grid;
    gap: 18px;
    grid-template-columns: auto minmax(0, 1fr);
    min-height: 92px;
    padding: 18px 22px;
}

.pro-how-access-grid p {
    color: var(--pro-ink);
    font-size: 15px;
    line-height: 1.5;
    margin: 0;
}

.pro-how-steps {
    display: grid;
    gap: clamp(22px, 3vw, 40px);
    grid-template-columns: repeat(4, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.pro-how-step {
    min-width: 0;
}

.pro-how-step img {
    aspect-ratio: 1;
    display: block;
    height: auto;
    margin-bottom: 20px;
    width: 100%;
}

.pro-how-step > span {
    align-items: center;
    background: #c1727c;
    border-radius: 50%;
    color: #ffffff;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    height: 32px;
    justify-content: center;
    margin-bottom: 16px;
    width: 32px;
}

.pro-how-step h3 {
    font-size: clamp(18px, 1.6vw, 22px);
    line-height: 1.2;
}

.pro-how-step p {
    font-size: 14px;
    line-height: 1.65;
    margin: 11px 0 0;
}

.pro-how-verification {
    background: var(--pro-cream) !important;
}

.pro-how-verification-list {
    display: grid;
}

.pro-how-verification-list li {
    border-bottom: 1px solid var(--pro-line);
    font-size: clamp(15px, 1.35vw, 19px);
    line-height: 1.5;
    padding: 19px 10px 19px 55px;
    position: relative;
}

.pro-how-verification-list li::before {
    color: var(--pro-pink);
    content: "✓";
    font-size: 21px;
    font-weight: 800;
    left: 10px;
    position: absolute;
    top: 16px;
}

.pro-how-offers {
    background: #ffffff !important;
}

.pro-how-offers-heading {
    align-items: end;
    display: grid;
    gap: 30px;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .45fr);
    max-width: none;
}

.pro-how-offers-heading > div {
    display: grid;
    gap: 15px;
}

.pro-how-offer-grid {
    align-items: stretch;
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pro-how-offer-card {
    background: var(--pro-cream);
    border: 1px solid var(--pro-line);
    border-radius: 26px;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: clamp(24px, 3vw, 38px);
}

.pro-how-offer-card.is-featured {
    background: var(--pro-ink);
    border-color: var(--pro-ink);
    box-shadow: 0 24px 55px rgba(20, 19, 19, .16);
    color: #ffffff;
    transform: translateY(-10px);
}

.pro-how-offer-card > .eyebrow {
    color: var(--pro-pink);
}

.pro-how-offer-card h3 {
    font-size: clamp(28px, 2.8vw, 40px);
    line-height: 1.1;
    margin-top: 12px;
}

.pro-how-offer-card.is-featured h3,
.pro-how-offer-card.is-featured li {
    color: #ffffff;
}

.pro-how-price {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 24px 0 22px;
}

.pro-how-price strong {
    color: var(--pro-ink);
    font-family: var(--pro-font-heading);
    font-size: clamp(34px, 3.2vw, 48px);
    letter-spacing: -.05em;
    line-height: 1;
}

.pro-how-price span {
    color: #77716e;
    font-size: 13px;
    font-weight: 650;
}

.pro-how-offer-card.is-featured .pro-how-price strong {
    color: #ffffff;
}

.pro-how-offer-card.is-featured .pro-how-price span {
    color: rgba(255, 255, 255, .62);
}

.pro-how-offer-card ul {
    display: grid;
    gap: 0;
    margin-bottom: 28px;
}

.pro-how-offer-card li {
    border-top: 1px solid rgba(116, 97, 87, .14);
    color: #3e3936;
    font-size: 14px;
    line-height: 1.5;
    padding: 12px 0 12px 24px;
    position: relative;
}

.pro-how-offer-card li::before {
    color: var(--pro-pink);
    content: "✓";
    font-weight: 900;
    left: 0;
    position: absolute;
}

.pro-how-offer-card.is-featured li {
    border-top-color: rgba(255, 255, 255, .13);
}

.pro-how-offer-card .button {
    margin-top: auto;
    white-space: normal;
    width: 100%;
}

.pro-how-offer-card.is-featured .button-accent {
    background: var(--pro-pink);
}

.pro-how-offer-card-options {
    background: var(--pro-blush);
}

.pro-how-offers-note {
    background: var(--pro-cream);
    border-left: 4px solid var(--pro-pink);
    border-radius: 0 14px 14px 0;
    font-size: 13px;
    line-height: 1.55;
    margin: 0;
    padding: 14px 18px;
}

.pro-how-faq {
    background: var(--pro-cream) !important;
}

.pro-faq-list {
    border-top: 1px solid var(--pro-line);
}

.pro-faq-item {
    border-bottom: 1px solid var(--pro-line);
}

.pro-faq-item summary {
    align-items: center;
    color: var(--pro-ink);
    cursor: pointer;
    display: flex;
    font-size: clamp(15px, 1.3vw, 18px);
    font-weight: 700;
    gap: 24px;
    justify-content: space-between;
    list-style: none;
    min-height: 76px;
    padding: 20px 2px;
}

.pro-faq-item summary::-webkit-details-marker {
    display: none;
}

.pro-faq-item summary > span:last-child {
    flex: 0 0 24px;
    height: 24px;
    position: relative;
    width: 24px;
}

.pro-faq-item summary > span:last-child::before,
.pro-faq-item summary > span:last-child::after {
    background: var(--pro-pink);
    content: "";
    height: 2px;
    left: 5px;
    position: absolute;
    top: 11px;
    transition: transform .18s ease;
    width: 14px;
}

.pro-faq-item summary > span:last-child::after {
    transform: rotate(90deg);
}

.pro-faq-item[open] summary > span:last-child::after {
    transform: rotate(0deg);
}

.pro-faq-item > div {
    max-width: 900px;
    padding: 0 46px 24px 2px;
}

.pro-faq-item > div p {
    font-size: 15px;
    line-height: 1.7;
    margin: 0;
}

.pro-how-final {
    margin-block: clamp(56px, 6vw, 88px);
}

@media (min-width: 1121px) and (max-width: 1420px) {
    .site-header-pro,
    .site-header-pro.site-header-is-compact {
        gap: 14px;
        grid-template-columns: minmax(160px, .7fr) auto max-content;
    }

    .site-header-pro.site-header-is-compact .brand-logo-lockup {
        flex-basis: clamp(132px, 10vw, 158px);
        width: clamp(132px, 10vw, 158px);
    }

    .site-header-pro .nav-actions > .pro-public-site-link {
        gap: 6px;
        padding: 6px;
    }

    .site-header-pro .nav-actions > .pro-public-site-link .pro-public-site-link-copy small {
        display: none;
    }

    .site-header-pro .nav-actions > .pro-public-site-link .pro-public-site-link-arrow {
        flex-basis: 24px;
        height: 24px;
        width: 24px;
    }
}

@media (min-width: 1121px) and (max-width: 1279px) {
    .site-header-pro .nav-actions > .pro-public-site-link .pro-public-site-link-mark,
    .site-header-pro .nav-actions > .pro-public-site-link .pro-public-site-link-copy,
    .site-header-pro .nav-actions > .pro-public-site-link .pro-public-site-link-arrow {
        display: none;
    }

    .site-header-pro .nav-actions > .pro-public-site-link .pro-public-site-link-compact-label {
        display: inline;
    }
}

@media (max-width: 1120px) {
    :is(.site-header-public, .site-header-pro) .mobile-nav-links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1080px) {
    .pro-community-charter-card {
        gap: 42px;
        grid-template-columns: minmax(0, 1fr) minmax(310px, .8fr);
    }

    .pro-community-benefit-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pro-community-benefit-grid li:not(:nth-child(4n)),
    .pro-community-benefit-grid li:nth-child(-n + 4) {
        border-bottom: 0;
        border-right: 0;
    }

    .pro-community-benefit-grid li:nth-child(odd) {
        border-right: 1px solid #e7ddd5;
    }

    .pro-community-benefit-grid li:nth-child(-n + 6) {
        border-bottom: 1px solid #e7ddd5;
    }

    .pro-community-resource-grid,
    .pro-how-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pro-how-step img {
        max-width: 360px;
    }

    .pro-how-offer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pro-how-offer-card-options {
        grid-column: 1 / -1;
    }
}

@media (max-width: 820px) {
    .pro-community-benefits-showcase {
        aspect-ratio: auto;
        height: auto;
        min-height: 0;
        padding-top: clamp(320px, 59vw, 470px);
    }

    .pro-community-benefits-art {
        height: clamp(320px, 59vw, 470px);
        object-position: 78% center;
    }

    .pro-community-benefits-heading {
        height: auto;
        min-height: 0;
        padding-bottom: 52px;
        padding-top: 48px;
    }

    .pro-community-benefits-heading h1,
    .pro-community-benefits-heading > p:not(.eyebrow) {
        max-width: 650px;
    }

    .pro-community-benefits-heading h1 {
        font-size: var(--pro-title-size);
        letter-spacing: var(--pro-heading-letter-spacing);
    line-height: var(--pro-title-line-height);
}

    .pro-community-benefits-join {
        align-items: start;
        gap: 20px;
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-community-benefits-join h2,
    .pro-community-benefits-join p {
        max-width: 650px;
    }

    .pro-how-access-grid,
    .pro-how-split,
    .pro-how-objectives,
    .pro-how-offers-heading {
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-community-charter-card,
    .pro-community-final,
    .pro-how-final {
        align-items: start;
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-community-final .button-row,
    .pro-how-final .button {
        justify-self: start;
    }

    .pro-community-charter-visual {
        margin-inline: auto;
        max-width: 650px;
        width: 100%;
    }

    .pro-how-objectives li {
        min-height: 0;
    }

    .pro-how-objectives span {
        font-size: 44px;
    }

    .pro-how-offer-card.is-featured {
        transform: none;
    }
}

@media (max-width: 620px) {
    .pro-community-section,
    .pro-how-section {
        padding-block: var(--pro-section-space);
    }

    .pro-community-benefits {
        padding-block: 0;
    }

    .pro-community-heading h2,
    .pro-community-charter-copy h2,
    .pro-how-heading h2 {
        font-size: var(--pro-section-title-size);
    }

    .pro-how-hero-copy h1 {
        font-size: clamp(36px, 10vw, 47px);
    }

    .pro-community-benefit-grid,
    .pro-community-resource-grid,
    .pro-how-steps,
    .pro-how-offer-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-how-access-grid li {
        border-radius: 18px;
        min-height: 0;
        padding: 16px;
    }

    .pro-community-final,
    .pro-how-final {
        border-radius: 22px;
        padding: 24px;
    }

    .pro-community-check-list {
        columns: 1;
    }

    .pro-community-resource-grid {
        gap: 30px;
    }

    .pro-community-benefits-showcase {
        padding-top: clamp(300px, 77vw, 390px);
    }

    .pro-community-benefits-art {
        height: clamp(300px, 77vw, 390px);
    }

    .pro-community-benefits-heading {
        padding-bottom: 44px;
        padding-top: 42px;
    }

    .pro-community-benefits-heading .eyebrow {
        margin-bottom: 16px;
    }

    .pro-community-benefits-heading h1 {
        font-size: var(--pro-title-size);
        line-height: var(--pro-title-line-height);
        letter-spacing: var(--pro-heading-letter-spacing);
}

    .pro-community-benefits-heading > p:not(.eyebrow) {
        font-size: 15px;
        line-height: 1.7;
        margin-top: 20px;
    }

    .pro-community-benefit-list-wrap {
        padding-bottom: 24px;
        padding-top: 24px;
    }

    .pro-community-benefits-join {
        padding-bottom: 38px;
        padding-top: 38px;
    }

    .pro-community-benefits-join h2 {
        font-size: var(--pro-section-title-size);
    }

    .pro-community-charter-foundations li {
        font-size: clamp(8px, 2.5vw, 10px);
    }

    .pro-community-charter-note {
        min-height: 0;
    }

    .pro-community-benefit-grid li:nth-child(n) {
        border-bottom: 1px solid #e7ddd5;
        border-right: 0;
        grid-template-columns: 86px minmax(0, 1fr);
        min-height: 0;
        padding: 24px 8px;
    }

    .pro-community-benefit-grid li:last-child {
        border-bottom: 0;
    }

    .pro-community-benefit-copy > span {
        font-size: var(--pro-number-size);
        margin-bottom: 12px;
    }

    .pro-community-benefit-copy h3 {
        font-size: var(--pro-card-title-size);
    }

    .pro-community-benefit-copy p {
        font-size: var(--pro-body-size);
        margin-top: 8px;
    }

    .pro-community-final .button-row,
    .pro-community-final .button,
    .pro-how-final .button {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }

    .pro-how-step {
        display: grid;
        grid-template-columns: 38px minmax(0, 1fr);
    }

    .pro-how-step img {
        grid-column: 1 / -1;
        margin-inline: auto;
        max-width: 330px;
    }

    .pro-how-step > span {
        grid-column: 1;
        grid-row: 2 / span 2;
    }

    .pro-how-step h3,
    .pro-how-step p {
        grid-column: 2;
    }

    .pro-how-step p {
        margin-top: 8px;
    }

    .pro-how-offer-card-options {
        grid-column: auto;
    }

    .pro-how-verification-list li {
        padding-left: 40px;
    }

    .pro-how-verification-list li::before {
        left: 2px;
    }

    .pro-faq-item summary {
        min-height: 68px;
    }

    :is(.site-header-public, .site-header-pro) .mobile-nav-links {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 420px) {
    .pro-community-benefits-showcase {
        padding-top: 290px;
    }

    .pro-community-benefits-art {
        height: 290px;
    }

    .pro-community-charter-cta {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pro-community-resource-media img,
    .pro-faq-item summary > span:last-child::after {
        transition: none;
    }
}

/* Professional resource library — the same open editorial layout as the pro landing. */
.pro-library-page {
    --pro-library-action: var(--pro-accent);
    --pro-library-action-hover: var(--pro-accent-hover);
    --pro-library-blush: #f9f2ed;
    --pro-library-copy: #514743;
    --pro-library-cream: #faf4ee;
    --pro-library-ink: #35231d;
    --pro-library-line: #e7ddd5;
    --pro-library-pink-soft: #f0e5df;
    background: #ffffff;
    color: var(--pro-library-ink);
    font-family: var(--pro-font-body);
    font-size: var(--pro-body-size);
    line-height: 1.65;
    overflow: clip;
}

.pro-library-page *,
.pro-library-page *::before,
.pro-library-page *::after {
    box-sizing: border-box;
}

.pro-library-page :is(h1, h2, h3, h4) {
    color: var(--pro-library-ink);
    font-family: var(--pro-font-heading);
    font-weight: 600;
    letter-spacing: -.025em;
    margin: 0;
}

.pro-library-page :is(p, ol, ul) {
    margin-top: 0;
}

.pro-library-page :is(p, li) {
    color: var(--pro-library-copy);
}

.pro-library-page .eyebrow {
    color: #a97859;
    font-size: var(--pro-label-size);
    font-weight: 700;
    letter-spacing: .14em;
    line-height: 1.45;
    margin-bottom: 12px;
    text-transform: uppercase;
}

.pro-library-page .button {
    border-radius: 999px;
    box-shadow: none;
    font-size: var(--pro-small-size);
    font-weight: 600;
    justify-content: center;
    min-height: 46px;
    padding: 12px 22px;
}

.pro-library-page .button-accent {
    background: var(--pro-library-action);
    border-color: var(--pro-library-action);
    box-shadow: none;
    color: #ffffff;
}

.pro-library-page .button-accent:hover {
    background: var(--pro-library-action-hover);
    border-color: var(--pro-library-action-hover);
    color: #ffffff;
}

.pro-library-page .button-secondary {
    background: #ffffff;
    border-color: var(--pro-border);
    color: var(--pro-library-ink);
}

.pro-library-page .button-secondary:hover {
    background: var(--pro-surface);
    border-color: var(--pro-accent);
    color: var(--pro-library-ink);
}

.pro-library-page :is(a, button):focus-visible {
    outline: 3px solid var(--pro-library-ink);
    outline-offset: 4px;
}

.pro-library-hero {
    background: #f6f0ec;
}

.pro-library-hero-inner,
.pro-library-section-inner {
    margin-inline: auto;
    max-width: 1380px;
    width: 100%;
}

.pro-library-hero-inner {
    display: flex;
}

.pro-library-hero-copy {
    max-width: 780px;
}

.pro-library-hero-copy h1 {
    font-family: var(--pro-font-display);
    font-size: var(--pro-title-size);
    letter-spacing: var(--pro-heading-letter-spacing);
    line-height: var(--pro-title-line-height);
    max-width: 760px;
}

.pro-library-hero-copy > p:not(.eyebrow) {
    font-size: var(--pro-lead-size);
    line-height: 1.65;
    margin: 20px 0 0;
    max-width: 700px;
}

.pro-library-hero-copy .button-row {
    gap: 12px;
    margin-top: 24px;
}

.pro-library-orientation {
    padding: 0;
}

.pro-library-orientation ol {
    display: grid;
    gap: clamp(24px, 3vw, 44px);
    grid-template-columns: repeat(3, minmax(0, 1fr));
    list-style: none;
    margin-bottom: 0;
    padding: 0;
}

.pro-library-orientation li {
    align-items: start;
    display: grid;
    gap: 16px;
    grid-template-columns: 28px minmax(0, 1fr);
    padding: 12px 0 4px;
}

.pro-library-orientation li + li {
    border-left: 1px solid var(--pro-library-line);
    padding-left: clamp(20px, 3vw, 36px);
}

.pro-library-orientation li > span {
    color: #df9d8f;
    display: block;
    font-family: var(--pro-font-heading);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.3;
}

.pro-library-orientation strong {
    color: var(--pro-library-ink);
    display: block;
    font-size: var(--pro-body-size);
    font-weight: 600;
    line-height: 1.4;
}

.pro-library-orientation li p {
    font-size: var(--pro-small-size);
    line-height: 1.55;
    margin: 4px 0 0;
}

.pro-library-section {
    padding-block: var(--pro-section-space);
    scroll-margin-top: 95px;
}

.pro-library-heading {
    max-width: 850px;
}

.pro-library-heading h2 {
    font-size: var(--pro-section-title-size);
    line-height: var(--pro-heading-line-height);
    letter-spacing: var(--pro-heading-letter-spacing);
}

.pro-library-heading > p:not(.eyebrow),
.pro-library-heading-split > div > p:not(.eyebrow) {
    font-size: var(--pro-body-size);
    line-height: 1.7;
    margin: 16px 0 0;
    max-width: 760px;
}

.pro-library-heading-split {
    align-items: end;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) auto;
    max-width: none;
}

.pro-library-heading-split .button {
    margin-bottom: 4px;
}

.pro-library-post-grid {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: clamp(34px, 4vw, 54px);
}

.pro-library-post-card {
    display: grid;
    grid-template-rows: auto 1fr;
    min-width: 0;
}

.pro-library-post-media {
    aspect-ratio: 1.45 / 1;
    background: linear-gradient(135deg, var(--pro-library-pink-soft), var(--pro-library-cream));
    border: 1px solid #dfc9bf;
    border-radius: 20px;
    display: block;
    margin-bottom: 18px;
    overflow: hidden;
}

.pro-library-post-media img {
    display: block;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
    width: 100%;
}

.pro-library-post-media:hover img {
    transform: scale(1.025);
}

.pro-library-post-media > span {
    align-items: center;
    color: var(--pro-accent);
    display: flex;
    font-family: var(--pro-font-display);
    font-size: var(--pro-title-size);
    font-weight: 600;
    height: 100%;
    justify-content: center;
}

.pro-library-post-body {
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    padding: 0;
}

.pro-library-post-body .eyebrow {
    color: #b18272;
    font-size: 10px;
    margin-bottom: 9px;
}

.pro-library-post-body h3 {
    font-size: var(--pro-card-title-size);
    line-height: 1.3;
}

.pro-library-post-body h3 a:hover {
    color: var(--pro-library-action);
}

.pro-library-post-body > p:not(.eyebrow) {
    display: -webkit-box;
    font-size: var(--pro-body-size);
    line-height: 1.55;
    margin: 9px 0 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.pro-library-post-body footer {
    align-items: center;
    border-top: 1px solid var(--pro-library-line);
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    justify-content: space-between;
    margin-top: 18px;
    padding-top: 10px;
}

.pro-library-post-body time {
    color: var(--pro-copy);
    font-size: var(--pro-small-size);
}

.pro-library-post-body footer a,
.pro-library-course-card > a,
.pro-library-masterclasses article > a,
.pro-library-member-note > a {
    align-items: center;
    color: var(--pro-accent);
    display: inline-flex;
    font-size: var(--pro-small-size);
    font-weight: 600;
    gap: 8px;
    min-height: 44px;
}

.pro-library-post-body footer a:hover,
.pro-library-course-card > a:hover,
.pro-library-masterclasses article > a:hover,
.pro-library-member-note > a:hover {
    color: var(--pro-library-action-hover);
    text-decoration: underline;
    text-underline-offset: 4px;
}

.pro-library-feed-state,
.pro-library-empty-card {
    border-top: 1px solid var(--pro-library-line);
    margin-top: clamp(24px, 3vw, 36px);
    padding: clamp(20px, 3vw, 28px) 0 0;
}

.pro-library-feed-state strong,
.pro-library-empty-card strong {
    color: var(--pro-library-ink);
    font-family: var(--pro-font-heading);
    font-size: var(--pro-card-title-size);
    font-weight: 600;
}

.pro-library-feed-state p,
.pro-library-empty-card p {
    font-size: var(--pro-body-size);
    line-height: 1.65;
    margin: 8px 0 0;
}

.pro-library-member {
    background: var(--pro-library-cream);
}

.pro-library-member-layout {
    align-items: start;
    display: grid;
    gap: clamp(32px, 5vw, 72px);
    grid-template-columns: minmax(0, 1.1fr) minmax(330px, .9fr);
    margin-top: clamp(28px, 3vw, 40px);
}

.pro-library-content-column > header h3,
.pro-library-toolbox > header h3,
.pro-library-masterclasses > header h3 {
    font-size: var(--pro-card-title-size);
    line-height: 1.3;
}

.pro-library-course-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    margin-top: 25px;
}

.pro-library-course-card {
    border-top: 1px solid var(--pro-library-line);
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    min-width: 0;
    padding: 24px 0;
}

.pro-library-access {
    align-items: center;
    background: #f0e5df;
    border-radius: 6px;
    color: var(--pro-copy) !important;
    display: inline-flex;
    font-size: var(--pro-label-size) !important;
    font-weight: 700;
    justify-self: start;
    letter-spacing: .08em;
    line-height: 1.3 !important;
    margin: 0 0 16px !important;
    min-height: 27px;
    padding: 6px 10px;
    text-transform: uppercase;
}

.pro-library-access.is-pro {
    background: var(--pro-library-pink-soft);
    color: var(--pro-accent) !important;
}

.pro-library-course-card h4,
.pro-library-masterclasses article h4 {
    font-size: var(--pro-card-title-size);
    line-height: 1.3;
}

.pro-library-course-card > p:not(.pro-library-access) {
    display: -webkit-box;
    font-size: var(--pro-body-size);
    line-height: 1.65;
    margin: 12px 0 16px;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

.pro-library-toolbox {
    border-left: 1px solid var(--pro-library-line);
    padding-left: clamp(24px, 4vw, 56px);
}

.pro-library-toolbox > header .eyebrow {
    color: #a97859;
}

.pro-library-toolbox > header h3 {
    color: var(--pro-library-ink);
}

.pro-library-toolbox ul {
    list-style: none;
    margin: 25px 0 0;
    padding: 0;
}

.pro-library-toolbox li {
    align-items: start;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 20px 0;
}

.pro-library-toolbox li + li {
    border-top: 1px solid var(--pro-library-line);
}

.pro-library-toolbox li strong {
    color: var(--pro-library-ink);
    display: block;
    font-size: var(--pro-body-size);
    font-weight: 600;
    line-height: 1.45;
}

.pro-library-toolbox li p {
    color: var(--pro-library-copy);
    font-size: var(--pro-small-size);
    line-height: 1.6;
    margin: 5px 0 0;
}

.pro-library-toolbox .pro-library-access {
    background: #f0e5df;
    color: var(--pro-library-copy) !important;
    margin-bottom: 0 !important;
}

.pro-library-toolbox .pro-library-access.is-pro {
    background: #f0e5df;
    color: var(--pro-accent) !important;
}

.pro-library-masterclasses {
    border-top: 1px solid var(--pro-border);
    margin-top: var(--pro-section-space);
    padding-top: clamp(28px, 3vw, 40px);
}

.pro-library-masterclasses > div {
    display: grid;
    gap: clamp(24px, 3vw, 44px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 25px;
}

.pro-library-masterclasses article {
    border-top: 1px solid var(--pro-library-line);
    display: grid;
    padding: 24px 0 0;
}

.pro-library-masterclasses article time,
.pro-library-masterclasses article > span {
    color: var(--pro-copy);
    font-size: var(--pro-small-size);
    line-height: 1.55;
    margin-top: 10px;
}

.pro-library-masterclasses article > a {
    margin-top: 12px;
}

.pro-library-member-note {
    align-items: center;
    border-top: 1px solid var(--pro-library-line);
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-top: 24px;
    padding: 24px 0 0;
}

.pro-library-member-note p {
    font-size: var(--pro-small-size);
    line-height: 1.6;
    margin: 0;
}

.pro-library-member-note strong {
    color: var(--pro-library-ink);
}

.pro-library-final {
    align-items: center;
    background-color: #f9f2ed;
    border-radius: 24px;
    display: grid;
    gap: clamp(24px, 4vw, 48px);
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    margin-block: var(--pro-section-space);
    margin-inline: auto;
    max-width: 1380px;
    padding: clamp(24px, 3vw, 40px);
    width: calc(100% - 2 * var(--page-gutter));
}

.pro-library-final .eyebrow {
    align-items: center;
    color: var(--pro-library-copy);
    display: flex;
    gap: 18px;
}

.pro-library-final .eyebrow::before {
    background: #d5a397;
    content: '';
    flex: 0 0 auto;
    height: 1px;
    width: 42px;
}

.pro-library-final h2 {
    color: var(--pro-library-ink);
    font-size: var(--pro-section-title-size);
    line-height: var(--pro-heading-line-height);
}

.pro-library-final p:not(.eyebrow) {
    color: var(--pro-library-copy);
    font-size: var(--pro-body-size);
    line-height: 1.7;
    margin: 12px 0 0;
}

.pro-library-final .button-row {
    border-left: 1px solid var(--pro-library-line);
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    padding-left: clamp(20px, 3vw, 45px);
}

.pro-library-final .button-secondary {
    background: transparent;
    border-color: var(--pro-library-copy);
}

@media (max-width: 1050px) {
    .pro-library-post-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pro-library-member-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-library-toolbox {
        border-left: 0;
        border-top: 1px solid var(--pro-library-line);
        max-width: none;
        padding: 28px 0 0;
    }
}

@media (max-width: 820px) {
    .pro-library-hero-inner,
    .pro-library-heading-split,
    .pro-library-final {
        align-items: start;
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-library-hero-copy {
        max-width: 690px;
    }

    .pro-library-orientation {
        width: 100%;
    }

    .pro-library-heading-split .button,
    .pro-library-final .button-row {
        justify-self: start;
    }

    .pro-library-final .button-row {
        border-left: 0;
        padding-left: 0;
    }
}

@media (max-width: 760px) {
    .pro-library-orientation ol {
        gap: 0;
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-library-orientation li {
        padding: 20px 0;
    }

    .pro-library-orientation li + li {
        border-left: 0;
        border-top: 1px solid var(--pro-library-line);
        padding-left: 0;
    }

    .pro-library-final.pro-editorial-background {
        background-image: none;
    }
}

@media (max-width: 680px) {
    .pro-library-hero-inner {
        gap: 28px;
        padding-block: var(--pro-section-space);
    }

    .pro-library-hero-copy h1 {
        font-size: var(--pro-title-size);
    }

    .pro-library-hero-copy > p:not(.eyebrow) {
        font-size: var(--pro-lead-size);
        margin-top: 19px;
    }

    .pro-library-section {
        padding-block: var(--pro-section-space);
    }

    .pro-library-heading h2 {
        font-size: var(--pro-section-title-size);
    }

    .pro-library-post-grid,
    .pro-library-course-grid,
    .pro-library-masterclasses > div {
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-library-post-body footer {
        align-items: flex-start;
    }

    .pro-library-member-note,
    .pro-library-final {
        align-items: start;
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-library-final {
        border-radius: 18px;
        padding: 24px;
    }

    .pro-library-final .button-row,
    .pro-library-final .button {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }
}

@media (max-width: 460px) {
    .pro-library-page .button,
    .pro-library-hero-copy .button-row {
        width: 100%;
    }

    .pro-library-hero-copy .button-row {
        align-items: stretch;
        flex-direction: column;
    }

    .pro-library-orientation {
        padding: 0;
    }

    .pro-library-toolbox li {
        grid-template-columns: minmax(0, 1fr);
    }

    .pro-library-toolbox .pro-library-access {
        justify-self: start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pro-library-post-media img {
        transition: none;
    }
}
html[data-visual-preview-bridge] [data-visual-section].is-visual-preview-active {
    outline: 4px solid rgba(200, 121, 88, 0.42);
    outline-offset: -4px;
}

.pro-impersonation-banner {
    background: #382f54;
    color: #fff;
    position: relative;
    z-index: 5;
}

.pro-admin-access-form {
    margin: 0;
}

.pro-admin-access-form .button {
    font: inherit;
}

.pro-admin-access-form-mobile button,
.pro-footer-admin-form button {
    appearance: none;
    background: none;
    border: 0;
    box-shadow: none;
    color: inherit;
    cursor: pointer;
    font: inherit;
    min-height: 0;
    padding: 0;
    text-align: left;
    width: 100%;
}

.mobile-nav-links .pro-admin-access-form-mobile button {
    align-items: center;
    border-radius: 999px;
    color: var(--muted);
    display: inline-flex;
    font-size: 14px;
    font-weight: 900;
    justify-content: center;
    min-height: 48px;
    padding: 12px 15px;
    text-align: center;
}

.pro-footer-link-list .pro-footer-admin-form button {
    color: inherit;
    padding: 0;
}

.pro-impersonation-banner__inner {
    align-items: center;
    display: flex;
    gap: 20px;
    justify-content: space-between;
    min-height: 58px;
    padding-block: 10px;
}

.pro-impersonation-banner__inner span {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.pro-impersonation-banner__inner strong {
    color: #f3c5b2;
}

.pro-impersonation-banner__inner a {
    border: 1px solid rgba(255, 255, 255, 0.48);
    border-radius: 999px;
    color: #fff;
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 700;
    padding: 9px 15px;
    text-decoration: none;
}

.pro-impersonation-banner__inner a:hover,
.pro-impersonation-banner__inner a:focus-visible {
    background: #fff;
    color: #382f54;
}

@media (max-width: 680px) {
    .pro-impersonation-banner__inner {
        align-items: stretch;
        flex-direction: column;
        gap: 9px;
        padding-block: 13px;
    }

    .pro-impersonation-banner__inner a {
        align-self: flex-start;
    }
}

.pro-auth-forgot-password {
    align-items: center;
    color: #804447;
    display: inline-flex;
    font-size: 13px;
    font-weight: 500;
    justify-self: end;
    min-height: 44px;
    text-decoration: underline;
    text-underline-offset: 3px;
}
