@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');

:root {
    --ink: #173448;
    --muted: #71838d;
    --navy: #102b3f;
    --teal: #286f68;
    --mint: #d8ebe1;
    --paper: #fbfaf6;
    --line: #e8e9e3;
    --serif: 'Playfair Display', Georgia, serif;
    --sans: 'DM Sans', Arial, sans-serif;
}

html { overflow-x: clip; }

body {
    min-height: 100vh;
    overflow-x: clip;
    color: var(--ink);
    background: var(--paper);
    font-family: var(--sans);
    font-size: 15px;
}

.site-nav {
    min-height: 76px;
    background: var(--navy);
}

.navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #fff;
    font-size: 21px;
    font-weight: 700;
    letter-spacing: -.8px;
}

.navbar-brand:hover { color: #fff; }
.brand-logo { width: 150px; max-width: 220px; height: 52px; object-fit: cover; }
.brand-name { display: grid; max-width: 280px; gap: 3px; color: #fff; font-size: 13px; font-weight: 700; letter-spacing: 0; line-height: 1.25; overflow-wrap: anywhere; white-space: normal; }
.brand-name small { color: #d6e1e5; font-size: 9px; font-weight: 400; }
.brand-light { color: #b5d9c6; }
.nav-welcome { color: #d6e1e5; font-size: 13px; }
.site-nav .nav-link { color: #d6e1e5; font-size: 14px; }
.btn-nav-cta { padding: 10px 16px; border-radius: 6px; background: var(--mint); color: var(--navy); font-size: 13px; font-weight: 700; }
.btn-nav-cta:hover { background: #e5f0e8; color: var(--navy); }
.btn-nav-logout { padding: 7px 13px; border: 1px solid #476070; color: #fff; font-size: 13px; }
.btn-nav-logout:hover { border-color: #cfe5d8; color: #cfe5d8; }

.page-container { min-height: calc(100vh - 144px); padding-top: 42px; padding-bottom: 76px; }
.site-footer { margin-top: auto; padding: 0; border-top: 1px solid var(--line); color: #839098; font-size: 12px; }
.footer-row { padding: 24px 0; border-bottom: 1px solid var(--line); }
.footer-company, .footer-brand, .footer-contact { display: flex; align-items: center; gap: 13px; }
.footer-company { justify-content: space-between; gap: 20px; }
.footer-brand img { width: auto; max-width: 110px; height: 38px; object-fit: contain; }
.footer-brand strong { color: var(--ink); font-size: 13px; }
.footer-contact { flex-wrap: wrap; justify-content: end; gap: 8px 18px; }
.footer-contact a { color: var(--teal); text-decoration: none; }
.footer-contact span { color: #839098; }
.footer-services h2, .footer-newsletter h2 { margin: 0 0 12px; color: var(--ink); font-family: var(--serif); font-size: 20px; font-weight: 500; }
.footer-services nav { display: flex; flex-wrap: wrap; gap: 10px 24px; }
.footer-services a { color: var(--teal); text-decoration: none; }
.footer-services a:hover, .footer-contact a:hover { text-decoration: underline; }
.footer-newsletter { display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 0; }
.footer-newsletter p { margin: 0; color: #839098; }
.footer-newsletter form { display: grid; width: min(100%, 440px); grid-template-columns: minmax(0, 1fr) auto; gap: 9px; }
.footer-newsletter form .form-control { min-height: 41px; }
.footer-newsletter form > button { grid-column: 2; grid-row: 1 / span 2; }
.footer-newsletter-consent { grid-column: 1; display: flex; align-items: center; gap: 7px; color: #839098; font-size: 11px; }
.footer-newsletter-consent input { accent-color: var(--teal); }
.footer-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.back-to-top { position: fixed; z-index: 1030; right: max(20px, env(safe-area-inset-right)); bottom: max(20px, env(safe-area-inset-bottom)); display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border: 1px solid rgb(255 255 255 / 22%); border-radius: 999px; background: var(--navy); box-shadow: 0 5px 18px rgb(16 43 63 / 22%); color: #fff; cursor: pointer; font: 600 11px/1 var(--sans); transition: background .18s ease, transform .18s ease; }
.back-to-top:hover { transform: translateY(-2px); background: var(--teal); }
.back-to-top > span:first-child { font-size: 17px; line-height: .8; }
.back-to-top:focus-visible { outline: 3px solid var(--brand-accent, #d2e6d9); outline-offset: 3px; }
.back-to-top[hidden] { display: none; }
.eyebrow { margin: 0 0 12px; color: var(--teal); font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; }
.muted-copy { color: var(--muted); font-size: 14px; }

.auth-layout { display: grid; min-height: 590px; grid-template-columns: 1.04fr .96fr; align-items: center; gap: 9%; max-width: 1000px; margin: 12px auto; }
.auth-story { padding: 35px 0 40px 25px; }
.auth-story h1, .page-heading h1, .file-heading h1 { margin: 0; color: var(--ink); font-family: var(--serif); font-size: clamp(38px, 5vw, 56px); font-weight: 500; letter-spacing: -1.5px; line-height: 1.13; }
.auth-story h1 em { color: var(--teal); font-weight: 500; }
.story-copy { max-width: 365px; margin-top: 19px; color: var(--muted); font-size: 15px; line-height: 1.8; }
.story-route { display: flex; width: 250px; align-items: center; margin-top: 42px; }
.route-dot { width: 11px; height: 11px; border: 2px solid var(--teal); border-radius: 50%; background: var(--paper); }
.route-dot-end { border-color: #d6aa71; background: #d6aa71; }
.route-line { width: 170px; height: 1px; background: #c8d5cc; }
.route-caption { margin: 11px 0 0; color: #87948f; font-size: 11px; letter-spacing: .3px; }
.auth-card { padding: 41px 42px 32px; border: 1px solid #ecebe5; border-radius: 11px; background: #fff; box-shadow: 0 12px 40px rgb(32 53 50 / 5%); }
.card-kicker { margin-bottom: 9px; color: var(--teal); font-size: 11px; font-weight: 700; letter-spacing: .7px; }
.auth-card h2, .admin-create-panel h2 { margin: 0; font-family: var(--serif); font-size: 27px; font-weight: 500; letter-spacing: -.5px; }
.form-label { margin-bottom: 7px; color: #354e5a; font-size: 12px; font-weight: 600; }
.form-control, .form-select { min-height: 44px; border-color: #dfe4e1; border-radius: 6px; color: var(--ink); font-family: var(--sans); font-size: 13px; }
.form-control:focus, .form-select:focus { border-color: #79a99a; box-shadow: 0 0 0 .2rem rgb(40 111 104 / 11%); }
.form-text { color: #85928f; font-size: 11px; }
.btn-primary { border-color: var(--teal); background: var(--teal); font-size: 13px; font-weight: 600; }
.btn-primary:hover, .btn-primary:focus { border-color: #205c56; background: #205c56; }
.btn-tall { min-height: 47px; }
.auth-switch { margin: 22px 0 0; color: var(--muted); font-size: 12px; text-align: center; }
.auth-switch a { color: var(--teal); font-weight: 700; text-decoration: none; }

.page-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin: 12px 0 44px; }
.page-heading h1, .file-heading h1 { font-size: clamp(34px, 4vw, 46px); }
.page-heading .muted-copy, .file-heading .muted-copy { margin: 11px 0 0; }
.heading-stamp { display: flex; align-items: center; gap: 10px; padding: 11px 17px; border: 1px solid #e4e8e1; border-radius: 30px; color: #657a73; font-size: 11px; line-height: 1.55; }
.heading-stamp span { color: #b48751; font-size: 23px; }
.empty-state { max-width: 640px; margin: 75px auto; padding: 52px 35px; border: 1px solid var(--line); border-radius: 9px; background: #fff; text-align: center; }
.empty-icon { display: inline-grid; width: 47px; height: 47px; place-items: center; margin-bottom: 20px; border-radius: 50%; background: #edf4ed; color: var(--teal); font-size: 23px; }
.empty-state h2 { margin: 0 0 11px; font-family: var(--serif); font-size: 27px; font-weight: 500; }
.empty-state > p:last-child { max-width: 440px; margin: auto; color: var(--muted); font-size: 13px; line-height: 1.8; }
.empty-state-small { margin: 20px auto; padding: 38px 25px; }
.section-label { display: flex; justify-content: space-between; margin-bottom: 15px; color: #85938d; font-size: 10px; font-weight: 700; letter-spacing: 1.1px; }
.section-label span:last-child { letter-spacing: .2px; text-transform: none; }
.case-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); gap: 17px; }
.case-card { display: block; padding: 23px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: inherit; text-decoration: none; transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.client-case-grid .case-card { width: 100%; max-width: 480px; }
.case-card:hover { transform: translateY(-2px); border-color: #bdd2c4; box-shadow: 0 8px 24px rgb(31 65 55 / 6%); color: inherit; }
.case-card-top { display: flex; justify-content: space-between; align-items: center; }
.case-tag { color: #87958f; font-size: 9px; font-weight: 700; letter-spacing: 1px; }
.case-arrow { color: #a0b1a8; font-size: 19px; }
.case-card h2 { margin: 24px 0 2px; font-family: var(--serif); font-size: 24px; font-weight: 500; }
.case-subtitle { margin-bottom: 21px; color: var(--muted); font-size: 12px; }
.progress-meta { display: flex; justify-content: space-between; margin-bottom: 8px; color: #71817a; font-size: 10px; }
.case-progress { height: 5px; border-radius: 8px; background: #edf0ec; }
.case-progress .progress-bar { border-radius: 8px; background: #6e9c81; }
.case-card-bottom { display: flex; justify-content: space-between; margin-top: 20px; padding-top: 14px; border-top: 1px solid #eff0ec; color: var(--teal); font-size: 11px; font-weight: 700; }

.admin-heading { align-items: center; }
.admin-count { display: flex; align-items: center; gap: 12px; padding: 12px 19px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.admin-count strong { color: var(--teal); font-family: var(--serif); font-size: 32px; font-weight: 500; }
.admin-count span { color: var(--muted); font-size: 10px; line-height: 1.5; }
.admin-create-panel { margin-bottom: 36px; padding: 22px 24px 24px; border: 1px solid #e7e9e2; border-radius: 8px; background: #fff; }
.panel-heading { display: flex; justify-content: space-between; align-items: start; margin-bottom: 19px; }
.panel-heading .eyebrow { margin-bottom: 5px; }
.admin-create-panel h2 { font-size: 22px; }
.panel-spark { color: #ba9767; font-size: 24px; }
.admin-create-panel .btn { min-height: 44px; }
.admin-case-list { overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.admin-case-row { display: grid; grid-template-columns: 42px 1.1fr 1fr minmax(120px, .7fr) 20px; align-items: center; gap: 13px; padding: 17px 19px; border-bottom: 1px solid #eff0ec; color: inherit; text-decoration: none; }
.admin-case-row:last-child { border-bottom: 0; }
.admin-case-row:hover { background: #fcfdf9; }
.admin-case-symbol { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 50%; background: #eff5ef; color: var(--teal); font-size: 16px; }
.admin-case-client strong, .admin-case-destination strong { display: block; font-size: 12px; font-weight: 600; }
.admin-case-client small, .admin-case-destination small { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; }
.admin-case-progress > span:first-child { display: block; margin-bottom: 6px; color: #74857d; font-size: 10px; }
.admin-case-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.admin-case-actions a, .admin-row-delete { padding: 5px 8px; border: 1px solid #dfe6df; border-radius: 4px; background: #fff; color: var(--teal); font: inherit; font-size: 9px; font-weight: 600; text-decoration: none; }
.admin-case-actions a:hover { border-color: #aac6b5; background: #f3f7f1; }
.admin-case-actions form { margin: 0; }
.admin-case-actions .admin-row-delete { border-color: #ead2d0; color: #a34d48; cursor: pointer; }
.admin-case-actions .admin-row-delete:hover { background: #fff5f4; }
.admin-edit-file { display: grid; gap: 16px; margin: 0 0 24px; padding: 20px; border: 1px solid #e5e9e1; border-radius: 8px; background: #fff; scroll-margin-top: 20px; }
.admin-edit-file h2 { margin: 0; color: #2d4a56; font-family: var(--serif); font-size: 21px; font-weight: 500; }
.admin-edit-file .eyebrow { margin-bottom: 5px; }
.admin-user-count { display: inline-grid; min-width: 27px; height: 27px; place-items: center; margin-left: 4px; border-radius: 50%; background: #edf4ee; color: var(--teal); font: 600 11px/1 var(--sans); vertical-align: 4px; }
.admin-collapsible-section { margin-bottom: 34px; padding: 15px 18px 0; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.admin-collapsible-toggle { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding-bottom: 14px; cursor: pointer; list-style: none; }
.admin-collapsible-toggle::-webkit-details-marker { display: none; }
.admin-collapsible-toggle > span:first-child { display: grid; gap: 4px; }
.admin-collapsible-toggle .eyebrow { margin: 0; color: #87958e; font-size: 9px; font-weight: 700; letter-spacing: 1px; }
.admin-collapsible-toggle strong { color: #2d4a56; font-family: var(--serif); font-size: 23px; font-weight: 500; }
.admin-collapsible-toggle-label { display: flex; align-items: center; gap: 10px; color: var(--teal); font-size: 10px; font-weight: 600; }
.admin-collapsible-collapse, .admin-collapsible-section[open] .admin-collapsible-expand { display: none; }
.admin-collapsible-section[open] .admin-collapsible-collapse { display: inline; }
.admin-collapsible-chevron { display: inline-block; font-size: 18px; transition: transform .18s ease; }
.admin-collapsible-section[open] .admin-collapsible-chevron { transform: rotate(180deg); }
.admin-users-heading { align-items: center; margin-bottom: 12px; }
.admin-users-heading > .muted-copy { font-size: 10px; }
.admin-travel-files-section { margin-bottom: 38px; }
.admin-travel-files-heading { align-items: center; margin-bottom: 12px; }
.admin-travel-files-heading > .muted-copy { font-size: 10px; }
.admin-user-list { margin-bottom: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.admin-user-table { --bs-table-bg: transparent; --bs-table-border-color: #eff0ec; color: var(--ink); font-size: 11px; }
.admin-user-table th { padding: 13px 17px; background: #f8f9f6; color: #7d8c85; font-size: 9px; font-weight: 700; letter-spacing: .7px; text-transform: uppercase; white-space: nowrap; }
.admin-user-table td { padding: 14px 17px; vertical-align: middle; white-space: nowrap; }
.admin-user-table td:first-child { min-width: 210px; white-space: normal; }
.admin-user-table td strong, .admin-user-table td small { display: block; }
.admin-user-table td strong { font-size: 11px; font-weight: 600; }
.admin-user-table td small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.admin-user-role, .admin-user-status { display: inline-block; padding: 4px 8px; border-radius: 20px; font-size: 9px; font-weight: 600; }
.admin-user-role { background: #eff4f2; color: #526d61; }
.admin-user-status.is-verified { background: #e7f2e8; color: #43734f; }
.admin-user-status.is-unverified { background: #fff4df; color: #9a712f; }
.admin-user-actions { display: flex; align-items: start; gap: 8px; }
.admin-user-actions form { margin: 0; }
.admin-user-edit > summary, .admin-user-delete { display: inline-block; padding: 5px 8px; border: 1px solid #dfe6df; border-radius: 4px; background: #fff; color: var(--teal); cursor: pointer; font: inherit; font-size: 9px; font-weight: 600; list-style: none; }
.admin-user-edit > summary::-webkit-details-marker { display: none; }
.admin-user-edit > summary:hover { border-color: #aac6b5; background: #f3f7f1; }
.admin-user-delete { border-color: #ead2d0; color: #a34d48; }
.admin-user-delete:hover { background: #fff5f4; }
.admin-user-edit-form { display: grid; min-width: 220px; gap: 7px; margin-top: 8px; padding: 11px; border: 1px solid #e7eae3; border-radius: 6px; background: #fff; }
.admin-user-edit-form label { color: #71817a; font-size: 9px; font-weight: 600; }
.admin-user-edit-form .form-control { min-height: 33px; font-size: 10px; }
.admin-user-edit-form .btn { justify-self: start; margin-top: 3px; font-size: 10px; }
.admin-user-list [hidden] { display: none !important; }

.back-link-wrap { margin: 0 0 24px; }
.back-link { color: var(--teal); font-size: 12px; font-weight: 600; text-decoration: none; }
.back-link:hover { color: #174e49; }
.file-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; padding-bottom: 26px; border-bottom: 1px solid var(--line); }
.file-heading .eyebrow { margin-bottom: 9px; }
.file-heading h1 { font-size: clamp(34px, 4vw, 44px); }
.file-progress-card { width: 185px; flex: 0 0 185px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.file-progress-card > span { display: block; color: var(--muted); font-size: 10px; }
.file-progress-card > strong { display: block; margin: 2px 0 8px; color: var(--teal); font-family: var(--serif); font-size: 26px; font-weight: 500; }
.file-progress-card small { display: block; margin-top: 7px; color: #7a8983; font-size: 9px; }
.client-note { display: flex; align-items: center; gap: 10px; margin: 20px 0 7px; padding: 12px 15px; border: 1px solid #e3ebe3; border-radius: 6px; background: #f3f7f1; color: #61766b; font-size: 11px; }
.note-icon { display: grid; width: 17px; height: 17px; flex: 0 0 17px; place-items: center; border-radius: 50%; background: #dceade; color: var(--teal); font-size: 11px; font-weight: 700; }
.milestone-list { max-width: 790px; margin: 29px auto 0; }
.milestone-row { display: grid; grid-template-columns: 52px 1fr; gap: 18px; }
.milestone-marker-col { position: relative; display: flex; justify-content: center; }
.milestone-marker { z-index: 1; display: grid; width: 35px; height: 35px; place-items: center; border: 1px solid #e0e4de; border-radius: 50%; background: var(--paper); color: #91a099; font-size: 10px; font-weight: 700; }
.marker-complete { border-color: #c9e0d0; background: #e3f0e6; color: #397354; font-size: 15px; }
.marker-denied { border-color: #efd8ce; background: #faede8; color: #a7543c; font-size: 14px; }
.milestone-connector { position: absolute; top: 35px; bottom: 0; width: 1px; background: #e5e9e3; }
.milestone-content { min-width: 0; padding: 1px 0 26px; }
.milestone-title-line { display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.milestone-overline { margin: 0 0 3px; color: #99a59f; font-size: 9px; font-weight: 700; letter-spacing: 1px; }
.milestone-title-line h2 { margin: 0; color: #314b59; font-family: var(--serif); font-size: 19px; font-weight: 500; }
.status-badge { flex: 0 0 auto; padding: 5px 9px; border-radius: 20px; font-size: 9px; font-weight: 600; }
.status-pending { background: #f0f1ed; color: #79847f; }
.status-progress { background: #fff4df; color: #9a712f; }
.status-completed { background: #e7f2e8; color: #43734f; }
.status-canceled { background: #f0eaf5; color: #73548c; }
.status-denied { background: #f9eae5; color: #a24d36; }
.milestone-note { margin: 9px 0 0; color: #71817a; font-size: 11px; line-height: 1.7; }
.milestone-note strong { color: #466153; }
.milestone-help { margin: 8px 0 0; color: #929d98; font-size: 10px; }
.milestone-editor { margin-top: 10px; }
.milestone-editor summary { display: inline-block; color: var(--teal); cursor: pointer; font-size: 10px; font-weight: 600; list-style: none; }
.milestone-editor summary::-webkit-details-marker { display: none; }
.milestone-editor summary::after { content: ' +'; }
.milestone-editor[open] summary::after { content: ' −'; }
.milestone-edit-form { margin-top: 13px; padding: 15px; border: 1px solid #e7eae3; border-radius: 7px; background: #fff; }
.label-optional { color: #97a19d; font-weight: 400; }

@media (max-width: 767px) {
    .page-container { padding-top: 27px; padding-bottom: 48px; }
    .auth-layout { min-height: auto; grid-template-columns: 1fr; gap: 12px; margin: 0 auto; }
    .auth-story { padding: 18px 4px 15px; }
    .auth-story h1 { font-size: 42px; }
    .story-copy { margin-top: 12px; font-size: 13px; }
    .story-route, .route-caption { display: none; }
    .auth-card { padding: 27px 23px 24px; }
    .page-heading { align-items: start; margin: 8px 0 30px; }
    .heading-stamp { display: none; }
    .admin-heading { align-items: center; }
    .admin-count { padding: 8px 11px; }
    .admin-count strong { font-size: 26px; }
    .admin-create-panel { padding: 18px; }
    .admin-case-row { grid-template-columns: 36px 1fr 20px; gap: 10px; padding: 14px; }
    .admin-case-symbol { width: 31px; height: 31px; }
    .admin-case-destination { grid-column: 2; grid-row: 2; }
    .admin-case-progress { grid-column: 2; grid-row: 3; }
    .admin-case-row > .case-arrow { grid-column: 3; grid-row: 1; }
    .file-heading { align-items: start; flex-direction: column; }
    .file-progress-card { width: 100%; flex-basis: auto; }
    .milestone-list { margin-top: 23px; }
    .milestone-row { grid-template-columns: 39px 1fr; gap: 10px; }
    .milestone-marker { width: 31px; height: 31px; }
    .milestone-connector { top: 31px; }
    .milestone-title-line { align-items: start; }
    .milestone-title-line h2 { font-size: 17px; }
}

.footer-signin { color: var(--teal); font-weight: 600; text-decoration: none; }
.footer-signin:hover { color: var(--navy); }

.home-hero { position: relative; display: grid; min-height: 485px; grid-template-columns: 1.03fr .97fr; align-items: center; gap: 20px; overflow: hidden; margin: -42px calc((100vw - 100%) / -2) 0; padding: 65px max(32px, calc((100vw - 1080px) / 2)); background: #f0f3eb; }
.hero-copy { z-index: 1; padding: 10px 0; }
.hero-eyebrow { display: flex; align-items: center; gap: 9px; color: #557b6d; }
.hero-eyebrow-dot { width: 7px; height: 7px; border-radius: 50%; background: #c28d4a; }
.home-hero h1 { margin: 0; color: var(--ink); font-family: var(--serif); font-size: clamp(42px, 5.1vw, 64px); font-weight: 500; letter-spacing: -2px; line-height: 1.08; }
.home-hero h1 em, .home-intro h2 em, .services-heading h2 em, .process-intro h2 em { color: var(--teal); font-weight: 500; }
.hero-description { max-width: 455px; margin: 21px 0 24px; color: #677c7d; font-size: 14px; line-height: 1.85; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 11px; }
.btn-hero-primary { padding: 13px 19px; border: 1px solid var(--teal); border-radius: 5px; background: var(--teal); color: white; font-size: 12px; font-weight: 600; }
.btn-hero-primary:hover { border-color: #205c56; background: #205c56; color: white; }
.btn-hero-secondary { padding: 13px 18px; border: 1px solid #cbd5cc; border-radius: 5px; color: #365b55; font-size: 12px; font-weight: 600; }
.btn-hero-secondary:hover { border-color: #93aea1; background: #e8eee7; color: var(--teal); }
.hero-trust { display: flex; align-items: center; gap: 9px; margin-top: 29px; color: #778a83; font-size: 10px; }
.trust-stars { color: #c18c4e; font-size: 17px; }
.hero-art { position: relative; min-height: 350px; overflow: hidden; border-radius: 48% 48% 10px 10px; background: linear-gradient(154deg, #d9e9df 0%, #e7eddf 47%, #c9ddd0 100%); }
.art-sun { position: absolute; top: 42px; right: 70px; width: 86px; height: 86px; border-radius: 50%; background: #e6c99c; }
.art-orbit { position: absolute; z-index: 1; width: 330px; height: 122px; border: 1px solid rgb(89 133 113 / 38%); border-radius: 50%; transform: rotate(-24deg); }
.orbit-one { top: 70px; left: 35px; }
.orbit-two { top: 96px; left: -10px; width: 420px; border-color: rgb(89 133 113 / 22%); }
.art-plane { position: absolute; z-index: 2; top: 100px; left: 42%; color: #294d50; font-size: 28px; transform: rotate(-18deg); }
.art-hill { position: absolute; right: -15%; bottom: -70px; left: -15%; height: 205px; border-radius: 50% 50% 0 0; }
.hill-back { bottom: -90px; left: -30%; background: #a8c7b2; transform: rotate(-9deg); }
.hill-front { right: -37%; bottom: -120px; height: 240px; background: #729b82; transform: rotate(10deg); }
.art-card { position: absolute; z-index: 3; display: flex; align-items: center; gap: 11px; padding: 12px 15px; border: 1px solid rgb(255 255 255 / 76%); border-radius: 7px; background: rgb(255 255 255 / 91%); box-shadow: 0 10px 26px rgb(25 58 49 / 10%); }
.art-card-top { top: 38px; left: 18px; }
.art-card-bottom { right: 18px; bottom: 48px; }
.art-card-icon { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: #e9f2e8; color: var(--teal); }
.art-card strong, .art-card small { display: block; }
.art-card strong { color: #29484d; font-size: 10px; }
.art-card small { color: #84938b; font-size: 8px; }
.art-pin { color: #b17c42; font-size: 24px; }
.art-ground-label { position: absolute; z-index: 4; bottom: 15px; left: 23px; color: rgb(255 255 255 / 88%); font-size: 8px; font-weight: 700; letter-spacing: 1.5px; }
.home-intro { display: grid; grid-template-columns: 1fr .72fr; align-items: center; gap: 70px; padding: 77px 0 74px; border-bottom: 1px solid var(--line); }
.home-intro h2, .services-heading h2, .process-intro h2 { margin: 0; font-family: var(--serif); font-size: clamp(30px, 3.5vw, 41px); font-weight: 500; letter-spacing: -1px; line-height: 1.2; }
.home-intro > p { margin: 12px 0 0; color: #778680; font-size: 13px; line-height: 1.9; }
.inspiration-section { padding: 50px 0 20px; }
.inspiration-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.inspiration-heading h2 { margin: 0; color: var(--ink); font-family: var(--serif); font-size: clamp(26px, 3vw, 35px); font-weight: 500; letter-spacing: -.7px; }
.inspiration-heading .eyebrow { margin-bottom: 6px; }
.inspiration-heading > .service-link { flex: 0 0 auto; margin-bottom: 5px; }
.inspiration-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 13px; }
.inspiration-card { position: relative; display: block; min-width: 0; height: 235px; overflow: hidden; border-radius: 7px; background: #dbe5dc; color: #fff; isolation: isolate; }
.inspiration-card-wide { height: 285px; grid-row: span 2; }
.inspiration-card img, .inspiration-shade { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; }
.inspiration-card img { object-fit: cover; transition: transform .45s ease; }
.inspiration-card:hover img { transform: scale(1.045); }
.inspiration-shade { background: linear-gradient(180deg, rgb(16 43 63 / 0%) 27%, rgb(12 34 44 / 70%) 100%); }
.inspiration-card-link { position: absolute; z-index: 1; inset: 0; }
.inspiration-card-link:focus-visible { outline: 3px solid #fff; outline-offset: -6px; }
.inspiration-caption { position: absolute; z-index: 2; right: 18px; bottom: 20px; left: 18px; display: grid; gap: 5px; pointer-events: none; }
.inspiration-caption small { color: #e0eee5; font-size: 8px; font-weight: 700; letter-spacing: 1.25px; }
.inspiration-caption strong { font-family: var(--serif); font-size: clamp(18px, 2vw, 25px); font-weight: 500; }
.inspiration-card:not(.inspiration-card-wide) .inspiration-caption strong { font-size: 19px; }
.services-section { padding: 77px 0 80px; }
.services-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 30px; }
.services-heading > p { max-width: 330px; margin: 0 0 5px; color: #778680; font-size: 12px; line-height: 1.8; }
.services-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.service-card { min-height: 365px; padding: 23px; border: 1px solid #e7e9e2; border-radius: 7px; background: #fff; }
.service-featured { background: #f2f6f0; }
.service-card-photo-wrap { position: relative; height: 138px; margin: -23px -23px 18px; overflow: hidden; border-radius: 7px 7px 0 0; background: #dbe5dc; }
.service-card-photo { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.service-card:hover .service-card-photo { transform: scale(1.04); }
.service-icon { display: grid; width: 39px; height: 39px; place-items: center; margin-bottom: 17px; border-radius: 50%; font-size: 18px; }
.icon-travel { background: #e3eee3; color: #376e5c; }
.icon-study { background: #f2ecdd; color: #9d763f; }
.icon-visa { background: #e6edf1; color: #466c80; }
.icon-passport { background: #ecede6; color: #707952; }
.icon-support { background: #f3e9e2; color: #a36d4c; }
.service-number { margin: 0 0 7px; color: #87958d; font-size: 8px; font-weight: 700; letter-spacing: 1.05px; }
.service-card h3 { margin: 0 0 8px; color: #284653; font-family: var(--serif); font-size: 19px; font-weight: 500; }
.service-card > p:not(.service-number):not(.eyebrow) { min-height: 42px; margin: 0 0 16px; color: #788781; font-size: 10px; line-height: 1.7; }
.service-link { color: var(--teal); font-size: 10px; font-weight: 700; text-decoration: none; }
.service-link:hover { color: var(--navy); }
.service-card-note { position: relative; min-height: 365px; overflow: hidden; background: #173b47; }
.service-card-note .eyebrow { color: #bfdbc9; font-size: 8px; }
.service-card-note h3 { color: white; }
.service-card-note > p:not(.eyebrow) { color: #c4d3cf !important; }
.service-card-note .service-link { color: #d8e9db; }
.note-spark { position: absolute; top: 11px; right: 17px; color: #bad3be; font-size: 47px; opacity: .55; }
.home-process { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; padding: 59px 48px; border-radius: 8px; background: #edf2eb; }
.process-intro h2 { font-size: 36px; }
.process-intro > p:not(.eyebrow) { max-width: 330px; margin: 14px 0 20px; color: #74857d; font-size: 11px; line-height: 1.8; }
.btn-process { padding: 10px 15px; border: 1px solid #b9cdc0; border-radius: 5px; color: #315e52; font-size: 10px; font-weight: 700; }
.btn-process:hover { background: #dce9df; color: var(--teal); }
.process-steps { display: grid; align-content: center; }
.process-step { display: grid; grid-template-columns: 39px 1fr; gap: 14px; padding: 16px 0; border-bottom: 1px solid #d8e2d8; }
.process-step:last-child { border: 0; }
.process-index { color: #799786; font-family: var(--serif); font-size: 18px; }
.process-step h3 { margin: 0 0 4px; color: #304e58; font-size: 12px; font-weight: 700; }
.process-step p { margin: 0; color: #798880; font-size: 10px; line-height: 1.7; }
.home-cta { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 70px; padding: 34px 38px; border: 1px solid #e5e9e1; border-radius: 8px; background: #fff; }
.home-cta .eyebrow { margin-bottom: 8px; }
.home-cta h2 { margin: 0; color: var(--ink); font-family: var(--serif); font-size: 27px; font-weight: 500; }
.home-cta p:last-child { margin: 7px 0 0; color: var(--muted); font-size: 11px; }

@media (max-width: 767px) {
    .home-hero { min-height: auto; grid-template-columns: 1fr; gap: 30px; margin: -27px -12px 0; padding: 50px 24px 34px; }
    .home-hero h1 { font-size: clamp(39px, 10vw, 53px); }
    .hero-description { font-size: 12px; }
    .hero-art { min-height: 275px; margin: 0 6px; }
    .art-sun { top: 32px; right: 46px; width: 68px; height: 68px; }
    .art-orbit { top: 53px; left: 12px; transform: scale(.8) rotate(-24deg); transform-origin: left top; }
    .orbit-two { top: 76px; left: -22px; }
    .art-plane { top: 79px; }
    .art-card-top { top: 22px; left: 10px; }
    .art-card-bottom { right: 10px; bottom: 38px; }
    .home-intro { grid-template-columns: 1fr; gap: 10px; padding: 52px 0; }
    .home-intro > p { max-width: 520px; }
    .inspiration-section { padding: 35px 0 4px; }
    .inspiration-grid { grid-template-columns: 1fr 1fr; gap: 9px; }
    .inspiration-card { height: 190px; }
    .inspiration-card-wide { height: 230px; }
    .inspiration-caption { right: 12px; bottom: 15px; left: 12px; }
    .services-section { padding: 53px 0; }
    .services-heading { align-items: start; flex-direction: column; gap: 11px; }
    .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .service-card, .service-card-note { min-height: 350px; padding: 17px; }
    .service-card-photo-wrap { height: 125px; margin: -17px -17px 15px; }
    .service-card h3 { font-size: 17px; }
    .home-process { grid-template-columns: 1fr; gap: 24px; padding: 34px 23px; }
    .home-cta { align-items: start; flex-direction: column; margin-top: 43px; padding: 26px 23px; }
}

@media (max-width: 420px) {
    .brand-name { max-width: 100%; font-size: 11px; }
    .brand-name small { font-size: 8px; }
    .services-grid { grid-template-columns: 1fr; }
    .service-card, .service-card-note { min-height: auto; }
    .inspiration-heading { align-items: start; flex-direction: column; }
    .inspiration-grid { grid-template-columns: 1fr; }
    .inspiration-card, .inspiration-card-wide { height: 220px; grid-row: auto; }
    .service-card > p:not(.service-number):not(.eyebrow) { min-height: 0; }
}

@media (max-width: 575px) {
    .page-container { padding-right: 16px; padding-left: 16px; }
    .site-nav .navbar-brand { max-width: calc(100% - 64px); }
    .brand-logo { width: 120px; max-width: 120px; height: 42px; }
    .admin-users-section, .admin-travel-files-section { padding-right: 12px; padding-left: 12px; }
    .admin-collapsible-toggle { gap: 8px; }
    .admin-collapsible-toggle strong { font-size: 20px; }
    .admin-collapsible-toggle-label { gap: 5px; font-size: 9px; }
    .admin-travel-files-heading { align-items: stretch; }
    .admin-user-edit-form { position: relative; min-width: min(220px, 60vw); }
    .footer-newsletter form { grid-template-columns: minmax(0, 1fr); }
    .footer-newsletter form > button { grid-column: 1; grid-row: auto; min-height: 42px; }
    .footer-newsletter-consent { grid-column: 1; }
}

@media (max-width: 359px) {
    .site-nav .navbar-brand { gap: 6px; }
    .brand-logo { width: 98px; max-width: 98px; height: 34px; }
    .brand-name { font-size: 10px; }
    .brand-name small { font-size: 7px; }
    .admin-collapsible-toggle-label { max-width: 96px; text-align: right; }
    .admin-collapsible-chevron { display: none; }
    .auth-card { padding-right: 17px; padding-left: 17px; }
    .home-hero { padding-right: 18px; padding-left: 18px; }
}

img, svg, video, canvas { max-width: 100%; }
input, select, textarea, button { max-width: 100%; }
.admin-case-client, .admin-case-destination, .milestone-title-line, .service-detail-copy, .service-detail-main { min-width: 0; }
.admin-case-client small, .admin-case-destination strong, .footer-contact, .footer-brand strong { overflow-wrap: anywhere; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

.email-settings-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 25px; }
.email-settings-heading h1 { margin: 0; color: var(--ink); font-family: var(--serif); font-size: clamp(32px, 4vw, 43px); font-weight: 500; letter-spacing: -1px; }
.email-settings-heading .muted-copy { margin: 8px 0 0; }
.email-settings-mark { display: grid; width: 55px; height: 55px; place-items: center; border-radius: 50%; background: #eaf1e8; color: var(--teal); font-size: 25px; }
.email-settings-card, .smtp-help-card { padding: 23px; border: 1px solid #e5e9e1; border-radius: 8px; background: #fff; }
.email-security-note { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 5px; background: #f0f5ef; color: #5c7467; font-size: 10px; line-height: 1.7; }
.email-settings-form-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; margin-top: 22px; }
.email-settings-form-grid .form-label { display: block; min-height: 18px; }
.email-settings-form-grid .label-optional { font-size: 9px; }
.smtp-password-field { grid-column: span 2; }
.smtp-from-name { grid-column: span 2; }
.smtp-last-updated { margin: 15px 0 0; color: #89958f; font-size: 9px; }
.smtp-settings-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; padding-top: 17px; border-top: 1px solid #eff0ec; }
.smtp-settings-actions .btn { min-height: 41px; font-size: 11px; }
.smtp-help-card { margin-top: 17px; }
.smtp-help-card .eyebrow { margin-bottom: 5px; font-size: 9px; }
.smtp-help-card h2 { margin: 0 0 17px; color: #2c4a56; font-family: var(--serif); font-size: 22px; font-weight: 500; }
.smtp-port-guide { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.smtp-port-guide > span { display: grid; min-width: 130px; gap: 3px; padding: 10px 12px; border: 1px solid #e8ebe5; border-radius: 5px; }
.smtp-port-guide strong { color: var(--teal); font-family: var(--serif); font-size: 19px; font-weight: 500; }
.smtp-port-guide small { color: #7e8b84; font-size: 9px; }
.smtp-help-card .muted-copy { font-size: 10px; }
.company-settings-card { margin-bottom: 30px; }
.company-profile-grid, .company-color-grid, .company-image-grid { display: grid; gap: 16px; }
.company-profile-grid { grid-template-columns: 1fr 1fr; }
.company-address-field { grid-column: 1 / -1; }
.company-section-heading { margin: 26px 0 13px; color: #2c4a56; font-family: var(--serif); font-size: 21px; font-weight: 500; }
.company-color-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.company-color-control .form-label, .company-image-control .form-label { display: block; }
.form-control-color { width: 100%; min-width: 52px; min-height: 44px; padding: 5px; }
.company-image-grid { grid-template-columns: 1fr 1fr; }
.company-image-preview { display: flex; min-height: 90px; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding: 10px; border: 1px solid #e8ebe5; border-radius: 5px; }
.company-image-preview img { width: auto; max-width: min(220px, 60%); height: 65px; object-fit: contain; }
.company-image-preview label { display: flex; align-items: center; gap: 6px; color: #71817a; font-size: 10px; }
.company-favicon-preview img { width: 40px; height: 40px; }
.company-settings-actions { margin-top: 25px; padding-top: 18px; border-top: 1px solid #eff0ec; }
.admin-hero-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-hero-actions .admin-hero-button { font-size: 9px; }

@media (max-width: 767px) {
    .footer-company, .footer-newsletter { align-items: flex-start; flex-direction: column; }
    .footer-contact { justify-content: flex-start; }
    .footer-newsletter form { width: 100%; }
    .email-settings-card, .smtp-help-card { padding: 17px; }
    .email-settings-form-grid { grid-template-columns: 1fr 1fr; gap: 13px; }
    .company-color-grid { grid-template-columns: 1fr 1fr; }
    .company-profile-grid, .company-image-grid { grid-template-columns: 1fr; }
    .company-address-field { grid-column: auto; }
    .smtp-password-field, .smtp-from-name { grid-column: span 2; }
    .admin-hero-actions { gap: 7px; }
}

@media (max-width: 420px) {
    .email-settings-heading { align-items: start; }
    .email-settings-mark { width: 42px; height: 42px; font-size: 20px; }
    .email-settings-form-grid { grid-template-columns: 1fr; }
    .company-color-grid { grid-template-columns: 1fr 1fr; }
    .smtp-password-field, .smtp-from-name { grid-column: auto; }
    .smtp-settings-actions { flex-direction: column; }
    .smtp-settings-actions .btn { width: 100%; }
}

.forgot-password-row { margin: -10px 0 17px; text-align: right; }
.forgot-password-row a, .verification-resend-prompt a { color: var(--teal); font-size: 11px; font-weight: 600; text-decoration: none; }
.forgot-password-row a:hover, .verification-resend-prompt a:hover { text-decoration: underline; }
.verification-resend-prompt { margin: -7px 0 17px; font-size: 11px; text-align: center; }

.hero-art { min-height: 350px; isolation: isolate; border-radius: 48% 48% 10px 10px; background: #b9d0c2; }
.hero-photo, .hero-photo-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-photo { z-index: -2; object-fit: cover; }
.hero-photo-shade { z-index: -1; background: linear-gradient(180deg, rgb(17 43 49 / 4%) 35%, rgb(17 43 49 / 35%) 100%); }
.hero-art .art-card { z-index: 1; }
.hero-art .art-card-top { top: 38px; left: 18px; }
.hero-art .art-card-bottom { right: 18px; bottom: 47px; }
.service-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin: -14px 0 28px; color: #97a29c; font-size: 10px; }
.service-breadcrumb a { color: var(--teal); text-decoration: none; }
.service-breadcrumb a:hover { text-decoration: underline; }
.service-detail-hero { display: grid; grid-template-columns: 1fr .94fr; align-items: center; gap: 45px; padding-bottom: 43px; border-bottom: 1px solid var(--line); }
.service-detail-copy .eyebrow { margin-bottom: 13px; }
.service-detail-copy h1 { max-width: 520px; margin: 0; color: var(--ink); font-family: var(--serif); font-size: clamp(39px, 4.6vw, 57px); font-weight: 500; letter-spacing: -1.7px; line-height: 1.12; }
.service-detail-intro { max-width: 480px; margin: 17px 0 22px; color: #71817b; font-size: 13px; line-height: 1.9; }
.service-photo { position: relative; height: 315px; margin: 0; overflow: hidden; border-radius: 8px; background: #dbe5dc; }
.service-photo img { width: 100%; height: 100%; object-fit: cover; }
.service-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 285px; align-items: start; gap: 46px; max-width: 990px; margin: 0 auto; padding: 54px 0 42px; }
.service-detail-main > .eyebrow { margin-bottom: 8px; }
.service-detail-main > h2 { max-width: 600px; margin: 0 0 13px; color: #294552; font-family: var(--serif); font-size: 31px; font-weight: 500; letter-spacing: -.6px; line-height: 1.2; }
.service-body-copy { margin: 0; color: #71817b; font-size: 12px; line-height: 1.95; }
.service-list-heading { margin: 28px 0 14px; color: #2f4b54; font-family: var(--serif); font-size: 21px; font-weight: 500; }
.service-includes { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 19px; }
.service-include { display: grid; grid-template-columns: 23px 1fr; gap: 10px; }
.include-check { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: #e8f1e8; color: #47785b; font-size: 11px; }
.service-include h4, .service-process-item h4 { margin: 2px 0 5px; color: #36515b; font-size: 11px; font-weight: 700; }
.service-include p, .service-process-item p { margin: 0; color: #7d8983; font-size: 10px; line-height: 1.75; }
.service-how { margin-top: 35px; padding: 24px; border-radius: 7px; background: #f0f4ee; }
.service-how > .eyebrow { margin-bottom: 7px; }
.service-how > h3 { margin: 0 0 11px; color: #294552; font-family: var(--serif); font-size: 23px; font-weight: 500; }
.service-process-item { display: grid; grid-template-columns: 31px 1fr; gap: 10px; padding: 14px 0; border-top: 1px solid #dce5da; }
.service-process-item > span { color: #6a8c78; font-family: var(--serif); font-size: 16px; }
.service-process-item h4 { margin-top: 1px; }
.service-detail-aside { display: grid; gap: 13px; }
.service-aside-card { position: relative; padding: 22px; border: 1px solid #e6e9e2; border-radius: 7px; background: white; }
.service-aside-card .eyebrow { margin-bottom: 9px; font-size: 9px; }
.service-aside-card h3 { margin: 0 0 9px; color: #304b56; font-family: var(--serif); font-size: 21px; font-weight: 500; line-height: 1.25; }
.service-aside-card > p:not(.eyebrow) { margin: 0; color: #78867f; font-size: 10px; line-height: 1.8; }
.aside-spark { position: absolute; top: 14px; right: 16px; color: #bb9564; font-size: 22px; }
.aside-cta { border-color: #dfe8df; background: #f0f4ee; }
.aside-cta .service-link { display: block; margin-top: 15px; }
.aside-login { display: block; margin-top: 12px; color: #75877e; font-size: 9px; text-decoration: none; }
.aside-login:hover { color: var(--teal); text-decoration: underline; }
.service-disclaimer { max-width: 990px; margin: 0 auto; padding: 13px 16px; border-left: 2px solid #c8d8cb; background: #f6f7f2; color: #7b8982; font-size: 9px; line-height: 1.8; }
.service-bottom-cta { display: flex; justify-content: space-between; align-items: center; gap: 20px; max-width: 990px; margin: 22px auto 0; padding: 24px 0 0; }
.service-bottom-cta .eyebrow { margin-bottom: 6px; font-size: 8px; }
.service-bottom-cta h2 { margin: 0; color: #304b56; font-family: var(--serif); font-size: 22px; font-weight: 500; }

@media (max-width: 767px) {
    .hero-art { min-height: 275px; }
    .hero-art .art-card-top { top: 22px; left: 10px; }
    .hero-art .art-card-bottom { right: 10px; bottom: 35px; }
    .service-breadcrumb { margin-top: -4px; margin-bottom: 20px; }
    .service-detail-hero { grid-template-columns: 1fr; gap: 24px; padding-bottom: 29px; }
    .service-detail-copy h1 { font-size: clamp(37px, 10vw, 49px); }
    .service-photo { height: 245px; }
    .service-detail-layout { grid-template-columns: 1fr; gap: 20px; padding: 36px 0 27px; }
    .service-detail-main > h2 { font-size: 27px; }
    .service-detail-aside { grid-template-columns: 1fr 1fr; }
    .service-aside-card { padding: 17px; }
    .service-bottom-cta { align-items: start; flex-direction: column; }
}

@media (max-width: 480px) {
    .service-includes { grid-template-columns: 1fr; }
    .service-detail-aside { grid-template-columns: 1fr; }
    .service-how { padding: 19px; }
}

.milestone-title-line > div { flex: 1; min-width: 0; }
.milestone-title-line > div .form-control { margin-top: 3px; }
.milestone-delete-form { margin-top: 9px; }
.admin-add-milestone { max-width: 790px; margin: 8px auto 25px; padding: 21px; border: 1px solid #e3e8df; border-radius: 7px; background: #fff; }
.admin-add-milestone > div:first-child { margin-bottom: 16px; }
.admin-add-milestone .eyebrow { margin-bottom: 5px; font-size: 9px; }
.admin-add-milestone h2 { margin: 0; color: #304b56; font-family: var(--serif); font-size: 22px; font-weight: 500; }
.admin-add-milestone .muted-copy { margin: 5px 0 0; font-size: 11px; }
.admin-add-milestone-form { display: grid; grid-template-columns: 1.1fr .7fr 1.1fr auto; align-items: end; gap: 12px; }
.admin-add-milestone-form .form-label { font-size: 10px; }
.admin-add-milestone-form .form-control, .admin-add-milestone-form .form-select { min-height: 40px; font-size: 11px; }
.admin-add-milestone-form .btn { min-height: 40px; white-space: nowrap; font-size: 11px; }
.milestone-limit-note { margin: 0; color: #829088; font-size: 11px; }

@media (max-width: 767px) {
    .milestone-title-line > div { width: 100%; }
    .admin-add-milestone { padding: 17px; }
    .admin-add-milestone-form { grid-template-columns: 1fr 1fr; }
    .admin-add-milestone-form > div:first-child, .admin-add-milestone-form > div:nth-child(4) { grid-column: 1 / -1; }
    .admin-add-milestone-form > button { grid-column: 1 / -1; }
}

@media (max-width: 420px) {
    .admin-add-milestone-form { grid-template-columns: 1fr; }
    .admin-add-milestone-form > div, .admin-add-milestone-form > div:first-child, .admin-add-milestone-form > div:nth-child(4), .admin-add-milestone-form > button { grid-column: 1; }
}

.client-dashboard-hero { position: relative; display: flex; min-height: 238px; align-items: center; justify-content: space-between; gap: 24px; overflow: hidden; margin: -42px calc((100vw - 100%) / -2) 25px; padding: 38px max(32px, calc((100vw - 1080px) / 2)); background: #173b47; color: #fff; }
.client-hero-photo { position: absolute; inset: 0; background: linear-gradient(90deg, rgb(15 43 54 / 94%) 0%, rgb(15 43 54 / 82%) 48%, rgb(15 43 54 / 38%) 100%), url('https://images.unsplash.com/photo-1470770841072-f978cf4d019e?auto=format&fit=crop&w=1600&q=80') center 54% / cover; }
.client-hero-content, .client-hero-count { position: relative; z-index: 1; }
.client-hero-content { max-width: 570px; }
.client-hero-content .eyebrow { margin-bottom: 9px; color: #c3ddcd; }
.client-hero-content h1 { margin: 0; color: #fff; font-family: var(--serif); font-size: clamp(33px, 4vw, 43px); font-weight: 500; letter-spacing: -1px; }
.client-hero-content > p:not(.eyebrow) { margin: 10px 0 16px; color: #e0e9e6; font-size: 12px; line-height: 1.7; }
.client-hero-button { padding: 10px 15px; border: 1px solid rgb(225 241 229 / 43%); border-radius: 5px; color: white; font-size: 10px; font-weight: 600; }
.client-hero-button:hover { background: rgb(255 255 255 / 13%); color: white; }
.client-hero-count { display: grid; min-width: 133px; padding: 17px; border: 1px solid rgb(255 255 255 / 28%); border-radius: 7px; background: rgb(255 255 255 / 10%); backdrop-filter: blur(5px); }
.client-hero-count > span { color: #d3e3d9; font-size: 8px; font-weight: 700; letter-spacing: 1px; }
.client-hero-count strong { margin-top: 4px; color: white; font-family: var(--serif); font-size: 36px; font-weight: 500; line-height: 1.1; }
.client-hero-count small { margin-top: 5px; color: #d3e3d9; font-size: 9px; }
.dashboard-stat-grid, .admin-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; margin-bottom: 36px; }
.dashboard-stat-card, .admin-stat-card { position: relative; display: grid; min-height: 116px; grid-template-columns: 39px 1fr; grid-template-rows: auto auto auto; align-content: center; column-gap: 12px; padding: 17px 19px; border: 1px solid #e7e9e2; border-radius: 7px; background: #fff; }
.dashboard-stat-icon, .admin-stat-icon { display: grid; width: 37px; height: 37px; grid-column: 1; grid-row: 1 / 4; place-items: center; align-self: center; border-radius: 50%; font-size: 16px; }
.stat-icon-journey, .files-icon, .clients-icon { background: #e8f0e8; color: #47745b; }
.stat-icon-done, .completed-icon { background: #e7f2e8; color: #447650; }
.stat-icon-active, .progress-icon { background: #f6efe1; color: #987644; }
.dashboard-stat-label, .admin-stat-label { color: #819087; font-size: 8px; font-weight: 700; letter-spacing: .95px; }
.dashboard-stat-card > strong, .admin-stat-card > strong { color: #2c4b57; font-family: var(--serif); font-size: 25px; font-weight: 500; line-height: 1.1; }
.dashboard-stat-card > small, .admin-stat-card > small { color: #87938d; font-size: 9px; }
.dashboard-section-label { scroll-margin-top: 24px; margin-bottom: 13px; }
.client-case-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.client-case-grid .case-card { padding: 20px; }
.client-file-status { color: #6b9274; font-size: 8px; font-weight: 700; letter-spacing: .65px; }
.client-file-status span { margin-right: 3px; font-size: 7px; }
.client-destination-line { display: flex; align-items: center; justify-content: space-between; margin-top: 21px; }
.client-destination-line h2 { margin: 0; }
.client-destination-line .case-arrow { align-self: start; }
.client-case-grid .case-subtitle { margin: 4px 0 19px; }
.client-next-step { display: grid; gap: 4px; margin-top: 17px; padding: 11px 12px; border-radius: 5px; background: #f4f6f1; }
.next-step-label { color: #89988e; font-size: 8px; font-weight: 700; letter-spacing: .8px; }
.client-next-step strong { color: #446253; font-size: 10px; font-weight: 600; }
.dashboard-empty { margin: 15px auto 45px; }
.empty-service-link { display: inline-block; margin-top: 19px; color: var(--teal); font-size: 11px; font-weight: 700; text-decoration: none; }
.client-dashboard-help { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 42px; padding: 21px 24px; border: 1px solid #e5e9e1; border-radius: 7px; background: #fff; }
.client-dashboard-help .eyebrow { margin-bottom: 6px; font-size: 8px; }
.client-dashboard-help h2 { margin: 0; color: #34505a; font-family: var(--serif); font-size: 20px; font-weight: 500; }
.client-dashboard-help p:last-child { margin: 5px 0 0; color: #829088; font-size: 10px; }
.client-help-link { flex: 0 0 auto; color: var(--teal); font-size: 10px; font-weight: 700; text-decoration: none; }

.admin-dashboard-hero { position: relative; display: flex; min-height: 215px; align-items: center; justify-content: space-between; gap: 25px; overflow: hidden; margin: -42px calc((100vw - 100%) / -2) 22px; padding: 33px max(32px, calc((100vw - 1080px) / 2)); background: linear-gradient(108deg, #163945 0%, #1f514d 62%, #35695a 100%); color: white; }
.admin-dashboard-hero::after { position: absolute; top: -100px; right: 12%; width: 330px; height: 330px; border: 1px solid rgb(220 238 223 / 14%); border-radius: 50%; box-shadow: 0 0 0 34px rgb(220 238 223 / 5%), 0 0 0 70px rgb(220 238 223 / 4%); content: ''; }
.admin-hero-copy { position: relative; z-index: 1; max-width: 625px; }
.admin-hero-copy .eyebrow { margin-bottom: 9px; color: #c4ddce; }
.admin-hero-copy h1 { margin: 0; color: white; font-family: var(--serif); font-size: clamp(34px, 4vw, 43px); font-weight: 500; letter-spacing: -.8px; }
.admin-hero-copy > p:not(.eyebrow) { max-width: 510px; margin: 9px 0 15px; color: #d7e5df; font-size: 11px; line-height: 1.75; }
.admin-hero-button { padding: 10px 15px; border: 1px solid rgb(225 241 229 / 40%); border-radius: 5px; color: white; font-size: 10px; font-weight: 600; }
.admin-hero-button:hover { background: rgb(255 255 255 / 12%); color: white; }
.admin-hero-aside { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; padding: 13px 17px; border: 1px solid rgb(255 255 255 / 21%); border-radius: 7px; background: rgb(255 255 255 / 7%); color: #e2eee5; font-family: var(--serif); font-size: 13px; line-height: 1.5; }
.admin-hero-mark { color: #d4e7c7; font-size: 31px; }
.admin-stat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 31px; }
.admin-stat-card { min-height: 103px; padding: 14px; }
.admin-stat-icon { width: 33px; height: 33px; font-size: 14px; }
.admin-stat-card > strong { font-size: 23px; }
.admin-dashboard-create { scroll-margin-top: 22px; margin-bottom: 31px; }
.admin-dashboard-create .panel-heading { align-items: center; }
.admin-list-heading { display: flex; justify-content: space-between; align-items: end; gap: 18px; margin-bottom: 13px; }
.admin-list-heading .eyebrow { margin-bottom: 4px; }
.admin-list-heading h2 { margin: 0; color: #2d4a56; font-family: var(--serif); font-size: 26px; font-weight: 500; }
.admin-search-wrap { display: flex; min-width: 245px; align-items: center; gap: 8px; padding-left: 11px; border: 1px solid #dfe4e1; border-radius: 5px; background: white; color: #71857a; }
.admin-search-wrap > span:not(.visually-hidden) { font-size: 19px; }
.admin-search-wrap input { width: 100%; min-height: 37px; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; font-size: 10px; }
.admin-search-wrap:focus-within { border-color: #79a99a; box-shadow: 0 0 0 .15rem rgb(40 111 104 / 10%); }
.admin-dashboard-case-list .admin-case-row { grid-template-columns: 36px 1.1fr 1fr minmax(105px, .7fr) minmax(155px, auto); }
.admin-dashboard-case-list .admin-row-open { color: var(--teal); font-size: 9px; font-weight: 600; }
.admin-dashboard-case-list .admin-case-actions { justify-content: end; }
.admin-no-results { margin: 0; padding: 22px; color: #71817a; font-size: 11px; text-align: center; }
.admin-dashboard-case-list [hidden] { display: none !important; }

@media (max-width: 991px) {
    .site-nav > .container { flex-wrap: wrap; }
    .site-nav .navbar-brand { min-width: 0; max-width: calc(100% - 68px); flex: 1 1 auto; margin-right: 8px; }
    .site-nav .brand-name { min-width: 0; max-width: 100%; overflow-wrap: anywhere; white-space: normal; }
    .site-nav .navbar-toggler { flex: 0 0 auto; }
}

@media (min-width: 768px) and (max-width: 991px) {
    .home-intro { gap: 36px; }
    .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-detail-hero { gap: 26px; }
    .service-detail-layout { grid-template-columns: minmax(0, 1fr) 250px; gap: 25px; }
    .admin-dashboard-case-list .admin-case-row { grid-template-columns: 36px minmax(0, 1fr) minmax(0, 1fr); }
    .admin-dashboard-case-list .admin-case-progress { grid-column: 2; }
    .admin-dashboard-case-list .admin-case-actions { grid-column: 3; }
}

@media (max-width: 767px) {
    .client-dashboard-hero { min-height: 240px; align-items: start; flex-direction: column; justify-content: center; margin-top: -27px; padding: 28px 24px; }
    .client-hero-photo { background-position: 56% center; }
    .client-hero-count { position: absolute; right: 18px; bottom: 17px; min-width: 105px; padding: 9px 11px; }
    .client-hero-count > span, .client-hero-count small { font-size: 7px; }
    .client-hero-count strong { font-size: 24px; }
    .client-hero-content { padding-right: 75px; }
    .client-hero-content h1 { font-size: 31px; }
    .client-hero-content > p:not(.eyebrow) { font-size: 10px; }
    .dashboard-stat-grid { gap: 8px; margin-bottom: 27px; }
    .dashboard-stat-card { min-height: 95px; grid-template-columns: 1fr; grid-template-rows: 23px auto auto; gap: 3px; padding: 12px 10px; }
    .dashboard-stat-icon { display: none; }
    .dashboard-stat-label { font-size: 7px; letter-spacing: .55px; }
    .dashboard-stat-card > strong { font-size: 22px; }
    .dashboard-stat-card > small { font-size: 8px; }
    .client-dashboard-help { align-items: start; flex-direction: column; margin-top: 30px; padding: 18px; }
    .admin-dashboard-hero { min-height: 205px; align-items: start; flex-direction: column; justify-content: center; margin-top: -27px; padding: 27px 24px; }
    .admin-hero-copy { padding-right: 15px; }
    .admin-hero-aside { display: none; }
    .admin-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-bottom: 25px; }
    .admin-stat-card { min-height: 88px; }
    .admin-list-heading { align-items: stretch; flex-direction: column; gap: 10px; }
    .admin-search-wrap { min-width: 0; }
    .admin-dashboard-case-list .admin-case-row { grid-template-columns: 36px 1fr; }
    .admin-dashboard-case-list .admin-case-destination { grid-column: 2; grid-row: 2; }
    .admin-dashboard-case-list .admin-case-progress { grid-column: 2; grid-row: 3; }
    .admin-dashboard-case-list .admin-case-actions { grid-column: 2; grid-row: 4; justify-content: start; }
    .service-detail-layout { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
    .client-hero-content { padding-right: 24px; }
    .client-hero-count { right: 12px; bottom: 12px; }
    .client-hero-content > p:not(.eyebrow) { max-width: 245px; }
}
