:root {
    --cd-green: #3d9e3d;
    --cd-green-dark: #2f7f32;
    --cd-green-pale: #eef7ed;
    --cd-orange: #efad4d;
    --cd-blue: #397dac;
    --cd-facebook: #1877f2;
    --cd-text: #252a27;
    --cd-muted: #6c736e;
    --cd-line: #dfe5e0;
    --cd-bg: #ffffff;
    --cd-soft: #f6f8f6;
    --cd-danger: #b83c3c;
    --cd-header-height: 62px;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body.app-v2 {
    margin: 0;
    min-height: 100vh;
    background: var(--cd-bg);
    color: var(--cd-text);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
a { color: var(--cd-green-dark); text-decoration: none; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.app-header {
    position: sticky;
    top: 0;
    z-index: 50;
    height: var(--cd-header-height);
    background: #fff;
    border-bottom: 1px solid var(--cd-line);
}
.app-header-inner {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
}
.app-brand { display: inline-flex; align-items: center; gap: 5px; color: var(--cd-text); }
.app-brand-name { font-family: Georgia, "Times New Roman", serif; font-size: 24px; font-weight: 700; letter-spacing: -.5px; }
.app-brand-name span { color: var(--cd-green); }
.app-brand-feather { width: auto; height: 23px; }
.menu-button,
.drawer-close {
    border: 0;
    background: transparent;
    color: var(--cd-text);
    cursor: pointer;
}
.menu-button { min-height: 44px; display: flex; align-items: center; gap: 7px; padding: 0; font-weight: 700; }
.menu-button i { color: var(--cd-green-dark); font-size: 25px; }
.header-public-link { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; }

.app-main { width: 100%; max-width: 760px; margin: 0 auto; padding: 24px 17px 54px; }
.is-guest .app-main { display: grid; min-height: calc(100vh - var(--cd-header-height)); align-items: center; }

h1, h2 { margin-top: 0; }
h1 { font-size: clamp(30px, 9vw, 40px); line-height: 1.08; letter-spacing: -.8px; }
h2 { font-size: 23px; line-height: 1.2; letter-spacing: -.3px; }
p { margin-top: 0; }

.welcome-v22 { padding: 8px 0 23px; }
.welcome-small,
.section-kicker {
    margin: 0 0 4px;
    color: var(--cd-green-dark);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.welcome-v22 h1 { margin-bottom: 10px; }
.welcome-intro { max-width: 560px; margin-bottom: 0; color: var(--cd-muted); font-size: 16px; }

.account-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin: 0 0 30px;
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}
.account-summary a { min-width: 0; padding: 12px 7px 11px; color: var(--cd-text); text-align: center; }
.account-summary a + a { border-left: 1px solid var(--cd-line); }
.account-summary strong,
.account-summary span { display: block; }
.account-summary strong { font-size: 16px; color: var(--cd-green-dark); }
.account-summary span { margin-top: 2px; overflow: hidden; color: var(--cd-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }

.map-feature {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 76px;
    gap: 10px;
    margin: 0 -17px 30px;
    padding: 26px 17px;
    background: var(--cd-green-pale);
    border-top: 1px solid #dbe9da;
    border-bottom: 1px solid #dbe9da;
}
.map-feature h2 { margin-bottom: 8px; font-size: 29px; }
.map-feature p:not(.section-kicker) { max-width: 460px; margin-bottom: 17px; color: #58635a; }
.map-feature-mark { position: relative; display: flex; align-items: center; justify-content: center; color: var(--cd-green-dark); font-size: 42px; }
.map-feature-mark span { position: absolute; width: 66px; height: 66px; border: 1px solid rgba(47,127,50,.2); border-radius: 50%; }
.button-cta {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 17px;
    background: var(--cd-green-dark);
    color: #fff;
    border-radius: 4px;
    font-weight: 700;
}

.profile-reminder {
    display: grid;
    gap: 12px;
    margin: -4px 0 30px;
    padding: 14px 0 16px;
    border-bottom: 1px solid var(--cd-line);
}
.profile-reminder strong { display: block; margin-bottom: 3px; }
.profile-reminder p { margin: 0; color: var(--cd-muted); font-size: 14px; }
.profile-reminder > a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.home-section { margin: 34px 0 0; }
.home-section-title { margin-bottom: 14px; }
.home-section-title h2 { margin-bottom: 0; }
.tags { display: flex; flex-wrap: wrap; gap: 9px; }
.tags a {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 13px;
    border: 1px solid #b8cdb9;
    border-radius: 3px;
    color: var(--cd-green-dark);
    background: #fff;
    font-size: 14px;
    font-weight: 700;
}
.tags a i { font-size: 16px; }

.simple-links { border-top: 1px solid var(--cd-line); }
.simple-links a {
    min-height: 67px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 11px 1px;
    color: var(--cd-text);
    border-bottom: 1px solid var(--cd-line);
}
.simple-links strong,
.simple-links small { display: block; }
.simple-links strong { font-size: 15px; }
.simple-links small { margin-top: 1px; color: var(--cd-muted); font-size: 12px; }
.simple-links > a > i { flex: 0 0 auto; color: #929a94; }

.facebook-help {
    display: grid;
    grid-template-columns: 30px 1fr;
    gap: 12px;
    margin: 40px 0 0;
    padding: 20px 0 0;
    border-top: 2px solid #dbe7f7;
}
.facebook-help > i { margin-top: 2px; color: var(--cd-facebook); font-size: 25px; }
.facebook-help h2 { margin-bottom: 8px; font-size: 20px; }
.facebook-help p:not(.section-kicker) { margin-bottom: 10px; color: var(--cd-muted); font-size: 14px; }
.facebook-help a { color: var(--cd-facebook); font-weight: 700; }

.drawer-overlay { position: fixed; z-index: 2000; inset: 0; background: rgba(20,25,21,.34); opacity: 0; pointer-events: none; transition: opacity .18s ease; }
.app-drawer { position: fixed; z-index: 2100; top: 0; right: 0; width: min(88vw, 340px); height: 100dvh; display: flex; flex-direction: column; background: #fff; transform: translateX(101%); transition: transform .2s ease; border-left: 1px solid var(--cd-line); }
.app-drawer.is-open { transform: translateX(0); }
.menu-open .drawer-overlay { opacity: 1; pointer-events: auto; }
.drawer-topline { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 13px 18px; border-bottom: 1px solid var(--cd-line); }
.drawer-topline strong,
.drawer-topline span { display: block; }
.drawer-topline strong { font-size: 17px; }
.drawer-topline span { margin-top: 1px; color: var(--cd-muted); font-size: 12px; }
.drawer-close { width: 42px; height: 42px; font-size: 21px; }
.drawer-nav { padding: 9px 17px; }
.drawer-nav a { min-height: 48px; display: flex; align-items: center; gap: 12px; color: var(--cd-text); font-weight: 600; }
.drawer-nav i { width: 22px; color: var(--cd-green-dark); font-size: 18px; text-align: center; }
.drawer-nav .drawer-nav-main { color: var(--cd-green-dark); font-weight: 700; }
.drawer-nav .facebook-icon { color: var(--cd-facebook); }
.drawer-separator { display: block; margin: 6px 0; border-top: 1px solid var(--cd-line); }
.drawer-footer { margin-top: auto; padding: 12px 18px calc(17px + env(safe-area-inset-bottom)); border-top: 1px solid var(--cd-line); }
.drawer-footer a { min-height: 42px; display: flex; align-items: center; gap: 9px; color: var(--cd-muted); font-size: 14px; }
.drawer-footer .logout-link { color: var(--cd-danger); }

.login-shell { width: 100%; max-width: 430px; margin: 0 auto; }
.login-intro { margin-bottom: 25px; }
.login-intro h1 { margin-bottom: 9px; }
.login-intro p { color: var(--cd-muted); }
.login-kicker { display: inline-block; margin-bottom: 4px; color: var(--cd-green-dark); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.login-form { display: grid; gap: 7px; }
.login-form label { margin-top: 8px; font-size: 13px; font-weight: 700; }
.login-form input { width: 100%; min-height: 50px; padding: 0 13px; border: 1px solid #cbd2cd; border-radius: 3px; background: #fff; color: var(--cd-text); outline: none; }
.login-form input:focus { border-color: var(--cd-green-dark); box-shadow: 0 0 0 2px rgba(47,127,50,.1); }
.password-field { position: relative; }
.password-field input { padding-right: 52px; }
.password-toggle { position: absolute; top: 3px; right: 3px; width: 44px; height: 44px; border: 0; background: transparent; color: var(--cd-muted); font-size: 19px; cursor: pointer; }
.btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 16px; border: 0; border-radius: 3px; font-weight: 700; cursor: pointer; }
.btn-primary { background: var(--cd-green-dark); color: #fff; }
.btn-secondary { border: 1px solid #b8cdb9; background: #fff; color: var(--cd-green-dark); }
.btn-large { width: 100%; min-height: 50px; margin-top: 14px; font-size: 16px; }
.login-links { display: flex; flex-direction: column; gap: 14px; margin-top: 20px; text-align: center; font-size: 14px; font-weight: 600; }
.login-help { margin: 26px 0 0; padding-top: 18px; border-top: 1px solid var(--cd-line); color: var(--cd-muted); font-size: 13px; text-align: center; }
.alert { display: flex; gap: 9px; margin-bottom: 18px; padding: 11px 12px; border-left: 3px solid currentColor; background: var(--cd-soft); font-size: 14px; }
.alert-error { color: var(--cd-danger); }
.alert-success { color: var(--cd-green-dark); }

.page-placeholder { min-height: 55vh; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.page-placeholder h1 { margin: 10px 0; }
.page-placeholder p { max-width: 560px; color: var(--cd-muted); }
.placeholder-icon { width: 44px; height: 44px; display: grid; place-items: center; margin-top: 24px; border: 1px solid var(--cd-line); color: var(--cd-green-dark); font-size: 21px; }
.back-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }

.app-footer { display: none; }

/* --- Authentification V2.3 : connexion + creation de compte --- */
.is-guest .app-main {
    display: block;
    min-height: 0;
    max-width: none;
    padding: 0 0 42px;
}

.auth-shell {
    position: relative;
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    background: #fff;
}

.auth-hero {
    width: 100%;
    height: clamp(135px, 38vw, 185px);
    overflow: hidden;
    background: var(--cd-soft);
}

.auth-hero img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center 34%;
    background: white;
}

.auth-feather {
    position: relative;
    z-index: 2;
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin: -29px auto 0;
    background: #fff;
    border: 1px solid var(--cd-line);
    border-radius: 50%;
}

.auth-feather img {
    width: auto;
    height: 30px;
}

.auth-content {
    padding: 15px 18px 0;
}

.auth-intro {
    max-width: 430px;
    margin: 0 auto 20px;
    text-align: center;
}

.auth-intro h1 {
    margin: 0 0 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(27px, 8vw, 35px);
    line-height: 1.1;
    letter-spacing: -.5px;
    color: var(--cd-green-dark);
}

.auth-intro p {
    max-width: 390px;
    margin: 0 auto;
    color: var(--cd-muted);
    font-size: 14px;
    line-height: 1.45;
}

.auth-shell .login-form {
    max-width: 430px;
    margin: 0 auto;
}

.auth-shell .login-form label {
    margin-top: 7px;
}

.auth-shell .login-form input {
    min-height: 48px;
}

.forgot-link {
    width: fit-content;
    display: block;
    margin: 14px auto 0;
    font-size: 13px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.auth-separator {
    position: relative;
    max-width: 430px;
    height: 30px;
    margin: 15px auto 3px;
}

.auth-separator::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    border-top: 1px solid var(--cd-line);
}

.auth-separator span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 42px;
    height: 28px;
    display: grid;
    place-items: center;
    transform: translate(-50%, -50%);
    background: #fff;
    color: var(--cd-muted);
    font-size: 18px;
}

.auth-switch {
    max-width: 430px;
    margin: 18px auto 0;
    text-align: center;
    font-size: 14px;
}

.auth-switch > span {
    display: block;
    margin-bottom: 8px;
    color: var(--cd-muted);
}

.auth-switch > a:not(.btn) {
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.auth-switch-block .btn {
    width: 100%;
}

.auth-shell .login-help {
    max-width: 430px;
    margin: 24px auto 0;
    padding-top: 15px;
}

.password-rules {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px 10px;
    margin: 9px 0 3px;
    color: #808780;
    font-size: 11px;
}

.password-rules span {
    display: flex;
    align-items: center;
    gap: 5px;
}

.password-rules span.is-valid {
    color: var(--cd-green-dark);
}

.cgu-check {
    display: grid !important;
    grid-template-columns: 20px 1fr;
    align-items: start;
    gap: 8px;
    margin: 15px 0 0 !important;
    color: var(--cd-muted);
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.4;
}

.cgu-check input {
    width: 18px !important;
    min-height: 18px !important;
    height: 18px;
    margin: 1px 0 0;
    accent-color: var(--cd-green-dark);
}

.cgu-check a {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.auth-success-panel {
    max-width: 430px;
    margin: 10px auto 0;
    text-align: center;
}

.auth-success-panel > i {
    display: block;
    margin-bottom: 10px;
    color: var(--cd-green-dark);
    font-size: 42px;
}

.auth-success-panel h2 {
    margin-bottom: 8px;
}

.auth-success-panel p {
    color: var(--cd-muted);
}

.auth-success-panel .auth-small {
    font-size: 12px;
}

/* --- Carte V2.5 : mobile-first --- */
.map-v2 { margin: -4px -17px 0; }
.map-v2-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding: 14px 17px 17px; }
.map-v2-head h1 { margin: 0 0 7px; }
.map-v2-intro { max-width: 520px; margin: 0; color: var(--cd-muted); font-size: 14px; line-height: 1.45; }
.map-v2-count { flex: 0 0 auto; padding-bottom: 3px; text-align: right; }
.map-v2-count strong, .map-v2-count span { display: block; }
.map-v2-count strong { color: var(--cd-green-dark); font-family: Georgia, "Times New Roman", serif; font-size: 25px; line-height: 1; }
.map-v2-count span { margin-top: 3px; color: var(--cd-muted); font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
.map-v2-notice { display: flex; gap: 10px; margin: 0 17px 15px; padding: 11px 12px; background: #fff8e8; border-left: 3px solid var(--cd-orange); color: #645437; font-size: 13px; }
.map-v2-notice i { flex: 0 0 auto; margin-top: 1px; }

.map-v2-tools { padding: 0 17px 14px; }
.map-v2-search-wrap { position: relative; }
.map-v2-search-wrap > i { position: absolute; z-index: 2; top: 14px; left: 13px; color: var(--cd-muted); font-size: 17px; pointer-events: none; }
#map-search-city { width: 100%; min-height: 48px; padding: 0 42px; border: 1px solid #cbd2cd; border-radius: 4px; background: #fff; color: var(--cd-text); outline: none; }
#map-search-city:focus { border-color: var(--cd-green-dark); box-shadow: 0 0 0 2px rgba(47,127,50,.08); }
.map-v2-search-results { position: absolute; z-index: 1100; top: calc(100% + 5px); left: 0; right: 0; max-height: 280px; overflow-y: auto; background: #fff; border: 1px solid var(--cd-line); box-shadow: 0 8px 24px rgba(26,38,28,.12); }
.map-v2-search-results button { width: 100%; min-height: 55px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 8px 12px; border: 0; border-bottom: 1px solid var(--cd-line); background: #fff; color: var(--cd-text); text-align: left; cursor: pointer; }
.map-v2-search-results button:last-child { border-bottom: 0; }
.map-v2-search-results strong { font-size: 14px; }
.map-v2-search-results span, .map-v2-search-results p { color: var(--cd-muted); font-size: 12px; }
.map-v2-search-results p { margin: 0; padding: 13px; }

.map-v2-primary-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 8px; }
.map-v2-action { min-width: 0; min-height: 49px; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 7px 5px; border: 1px solid var(--cd-line); border-radius: 4px; background: #fff; color: var(--cd-green-dark); font-size: 12px; font-weight: 700; cursor: pointer; text-align: center; }
.map-v2-action i { flex: 0 0 auto; font-size: 16px; }
.map-v2-action b { min-width: 17px; height: 17px; display: inline-grid; place-items: center; padding: 0 4px; border-radius: 20px; background: var(--cd-green-dark); color: #fff; font-size: 10px; }
.map-v2-action.is-loading { opacity: .55; pointer-events: none; }
.map-v2-gpx-action { cursor: pointer; }

.map-v2-route { display:block; margin:0 17px 12px; padding:12px; background:var(--cd-green-pale); border-left:3px solid var(--cd-green-dark); }
.map-v2-route-main { display:flex; align-items:flex-start; gap:10px; min-width:0; }
.map-v2-route-copy { min-width:0; flex:1 1 auto; }
.map-v2-route strong, .map-v2-route span { display:block; }
.map-v2-route strong { font-size:13px; overflow-wrap:anywhere; }
.map-v2-route span { margin-top:2px; color:var(--cd-muted); font-size:11px; line-height:1.35; }
#map-route-remove { flex:0 0 38px; width:38px; height:38px; border:0; background:transparent; color:var(--cd-muted); cursor:pointer; }
.map-v2-route-controls { display:grid; grid-template-columns:105px minmax(0,1fr); gap:10px; align-items:end; margin-top:10px; }
.map-v2-route label { color:var(--cd-muted); font-size:10px; font-weight:700; text-align:left; }
.map-v2-route select { display:block; width:100%; min-height:38px; margin-top:3px; border:1px solid #bfd0bf; background:#fff; color:var(--cd-text); font-size:12px; }
.map-v2-route-save { min-width:0; }
#map-save-voyage { width:100%; white-space:normal; line-height:1.25; padding:8px 10px; }
#map-route-saved { line-height:1.3; }

.map-v2-stage { position: relative; width: 100%; height: min(64vh, 610px); min-height: 440px; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); background: #edf0ed; }
.map-v2-canvas { width: 100%; height: 100%; }
.map-v2-recenter { position: absolute; z-index: 600; right: 10px; bottom: 10px; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(0,0,0,.16); border-radius: 4px; background: #fff; color: var(--cd-text); box-shadow: 0 1px 5px rgba(0,0,0,.16); cursor: pointer; }
.map-v2-error { height: 100%; display: grid; place-items: center; padding: 20px; color: var(--cd-danger); text-align: center; }

.cd-v2-marker { width: 34px; height: 34px; display: grid; place-items: center; position: relative; border: 2px solid #fff; border-radius: 50% 50% 50% 8px; transform: rotate(-45deg); background: var(--cd-green-dark); color: #fff; box-shadow: 0 2px 7px rgba(0,0,0,.25); }
.cd-v2-marker i { transform: rotate(45deg); font-size: 16px; }
.cd-v2-marker.is-complete::after { content: ""; position: absolute; top: -3px; right: -3px; width: 9px; height: 9px; border: 2px solid #fff; border-radius: 50%; background: var(--cd-orange); }
.cd-v2-marker.is-favorite { background: #c29026; }
.cd-v2-marker.is-voyage-contact::before { content:"\F268"; font-family:"bootstrap-icons"; position:absolute; left:-8px; bottom:-8px; width:20px; height:20px; display:grid; place-items:center; border:2px solid #fff; border-radius:50%; background:#2369ad; color:#fff; font-size:10px; transform:rotate(45deg); box-shadow:0 1px 4px rgba(0,0,0,.22); }

.cd-v2-marker-count {
    position: absolute;
    top: -8px;
    right: -8px;
    min-width: 19px;
    height: 19px;
    padding: 0 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
    border-radius: 999px;
    background: var(--cd-orange);
    color: #fff;
    font-size: 10px;
    line-height: 1;
    font-weight: 800;
    transform: rotate(45deg);
    box-shadow: 0 1px 4px rgba(0,0,0,.2);
}
.cd-v2-poi { width: 28px; height: 28px; display: grid; place-items: center; border: 2px solid #fff; border-radius: 50%; color: #fff; box-shadow: 0 1px 5px rgba(0,0,0,.22); }
.cd-v2-poi-eau { background: #3c8287; }
.cd-v2-poi-gare { background: #496c9b; }
.cd-v2-poi-col { background: #b4533c; }
.cd-v2-poi i { font-size: 13px; }

.map-v2-footbar { min-height: 50px; display: flex; align-items: center; justify-content: flex-start; gap: 12px; padding: 0 17px; border-bottom: 1px solid var(--cd-line); }
.map-v2-footbar div { color: var(--cd-muted); font-size: 12px; }
.map-v2-footbar strong { color: var(--cd-green-dark); font-size: 16px; }
.map-v2-footbar button { min-height: 40px; border: 0; background: transparent; color: var(--cd-green-dark); font-weight: 700; cursor: pointer; }

.map-v2-facebook { display: grid; grid-template-columns: 27px 1fr; gap: 11px; margin: 28px 17px 10px; padding-top: 18px; border-top: 2px solid #dbe7f7; }
.map-v2-facebook > i { color: var(--cd-facebook); font-size: 23px; }
.map-v2-facebook strong { display: block; margin-bottom: 3px; font-size: 15px; }
.map-v2-facebook p { margin-bottom: 8px; color: var(--cd-muted); font-size: 13px; }
.map-v2-facebook a { color: var(--cd-facebook); font-size: 13px; font-weight: 700; }

.map-v2-sheet-backdrop, .map-v2-filter-backdrop { position: fixed; z-index: 1190; inset: 0; background: rgba(20,25,21,.38); opacity: 0; transition: opacity .18s ease; }
.map-v2-sheet-backdrop.is-open, .map-v2-filter-backdrop.is-open { opacity: 1; }
.map-v2-sheet { position: fixed; z-index: 1200; left: 0; right: 0; bottom: 0; max-height: min(78dvh, 680px); overflow-y: auto; padding: 24px 17px calc(20px + env(safe-area-inset-bottom)); background: #fff; border-radius: 12px 12px 0 0; box-shadow: 0 -8px 30px rgba(0,0,0,.16); transform: translateY(102%); transition: transform .2s ease; }
.map-v2-sheet.is-open { transform: translateY(0); }
.map-v2-sheet-close { position: absolute; z-index: 2; top: 10px; right: 10px; width: 42px; height: 42px; border: 0; border-radius: 50%; background: #f4f6f4; color: var(--cd-text); cursor: pointer; }
.map-v2-profile-loading, .map-v2-profile-error { min-height: 160px; display: flex; align-items: center; justify-content: center; gap: 10px; color: var(--cd-muted); font-size: 14px; text-align: center; }
.map-v2-loader { width: 20px; height: 20px; border: 2px solid var(--cd-line); border-top-color: var(--cd-green-dark); border-radius: 50%; animation: mapSpin .7s linear infinite; }
@keyframes mapSpin { to { transform: rotate(360deg); } }
.map-v2-profile-head { display: grid; grid-template-columns: 68px minmax(0,1fr); gap: 13px; align-items: center; padding-right: 38px; }
.map-v2-profile-photo { width: 68px; height: 68px; display: block; object-fit: cover; border-radius: 50%; }
.map-v2-profile-photo-empty { display: grid; place-items: center; background: var(--cd-soft); color: #8c938e; font-size: 27px; }
.map-v2-profile-head h2 { margin: 0 0 2px; font-size: 23px; }
.map-v2-profile-head p { margin: 0; color: var(--cd-muted); font-size: 12px; }
.map-v2-women { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; color: #8b4772; font-size: 11px; font-weight: 700; }
.map-v2-quality { display: flex; gap: 9px; margin: 17px 0 13px; padding: 11px; background: #f7f7f4; color: #6e706b; }
.map-v2-quality.is-good { background: var(--cd-green-pale); color: var(--cd-green-dark); }
.map-v2-quality > i { flex: 0 0 auto; margin-top: 1px; }
.map-v2-quality strong, .map-v2-quality small { display: block; }
.map-v2-quality strong { font-size: 13px; }
.map-v2-quality small { margin-top: 1px; color: var(--cd-muted); font-size: 11px; line-height: 1.35; }
.map-v2-profile-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 13px 0; }
.map-v2-profile-chips span { display: inline-flex; align-items: center; gap: 5px; padding: 6px 8px; background: var(--cd-soft); border: 1px solid var(--cd-line); border-radius: 3px; font-size: 11px; }
.map-v2-profile-chips i { color: var(--cd-green-dark); }
.map-v2-sheet blockquote { margin: 15px 0; padding: 0 0 0 12px; border-left: 2px solid var(--cd-orange); color: #505753; font-family: Georgia, "Times New Roman", serif; font-size: 14px; font-style: italic; line-height: 1.5; }
 .map-v2-profile-actions { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 17px; }
.map-v2-profile-actions .btn { width: 100%; }
.map-v2-favorite-button.is-favorite { border-color: #d4af37; background: #fffaf0; color: #8a6a00; }
.map-v2-favorite-button.is-loading { opacity: .6; cursor: wait; }

.map-v2-filter-panel { position: fixed; z-index: 1200; left: 0; right: 0; bottom: 0; max-height: 82dvh; overflow-y: auto; padding: 0 17px calc(18px + env(safe-area-inset-bottom)); background: #fff; border-radius: 12px 12px 0 0; transform: translateY(102%); transition: transform .2s ease; }
.map-v2-filter-panel.is-open { transform: translateY(0); }
.map-v2-filter-head { min-height: 58px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--cd-line); }
.map-v2-filter-head strong { font-size: 20px; }
.map-v2-filter-head button { width: 42px; height: 42px; border: 0; background: transparent; cursor: pointer; }
.map-v2-filter-body label { min-height: 52px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--cd-line); font-size: 14px; cursor: pointer; }
.map-v2-filter-body input { width: 19px; height: 19px; accent-color: var(--cd-green-dark); }
.map-v2-filter-body span { display: inline-flex; align-items: center; gap: 7px; }
.map-v2-filter-body span i { width: 19px; color: var(--cd-green-dark); text-align: center; }
.map-v2-filter-body hr { margin: 13px 0 0; border: 0; }
.map-v2-filter-title { margin: 10px 0 2px; color: var(--cd-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.map-v2-filter-apply { width: 100%; margin-top: 14px; }
.map-v2-empty { padding-top: 30px; }


/* --- Carte V2.6 : profils partages a une localisation + contacts --- */
.map-v2-location-nav {
    min-height: 42px;
    display: grid;
    grid-template-columns: 42px 1fr 42px;
    align-items: center;
    gap: 6px;
    margin: -2px 36px 14px 0;
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}
.map-v2-location-nav button {
    width: 42px;
    height: 42px;
    border: 0;
    background: transparent;
    color: var(--cd-green-dark);
    font-size: 20px;
    cursor: pointer;
}
.map-v2-location-nav span {
    color: var(--cd-muted);
    font-size: 12px;
    text-align: center;
}
.map-v2-location-nav strong { color: var(--cd-text); }
.map-v2-profile-status { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 5px; }
.map-v2-contact-badge,
.map-v2-contact-badge { font-size: 11px; }

/* V2.9 - Favoris sur la carte : petite plume CycloDort */
.cd-v2-marker.is-favorite::before {
    content: "";
    position: absolute;
    left: -10px;
    bottom: -8px;
    width: 20px;
    height: 20px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #fff url('/plume.png') center / 13px auto no-repeat;
    box-shadow: 0 1px 4px rgba(0,0,0,.22);
    transform: rotate(45deg);
    z-index: 3;
}

/* v2.10 - Respect des panneaux masques */
.map-v2-route[hidden],
#map-gpx-poi-filters[hidden] {
    display: none !important;
}

/* --- Mon profil V2.12 ---------------------------------------------------- */
.profile-v2 { width: 100%; }
.profile-v2-heading { margin: 2px 0 22px; }
.profile-v2-heading h1 { margin-bottom: 9px; }
.profile-v2-heading > p:last-child { max-width: 600px; margin: 0; color: var(--cd-muted); font-size: 14px; line-height: 1.5; }
.profile-v2-heading a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.profile-v2-summary { display: grid; grid-template-columns: 64px 1fr; align-items: center; gap: 14px; margin: 4px 0 19px; }
.profile-v2-avatar { width: 64px; height: 64px; overflow: hidden; display: grid; place-items: center; border-radius: 50%; background: var(--cd-green-pale); color: var(--cd-green-dark); font-family: Georgia, "Times New Roman", serif; font-size: 29px; font-weight: 700; }
.profile-v2-avatar img { width: 100%; height: 100%; object-fit: cover; }
.profile-v2-summary-copy strong, .profile-v2-summary-copy span { display: block; }
.profile-v2-summary-copy strong { margin-bottom: 4px; font-size: 20px; }
.profile-v2-summary-copy span { color: var(--cd-muted); font-size: 13px; line-height: 1.35; }
.profile-v2-summary-copy i { margin-right: 3px; color: var(--cd-green-dark); }

.profile-v2-status { display: grid; grid-template-columns: 1fr; margin-bottom: 28px; border-top: 1px solid var(--cd-line); }
.profile-v2-status > div, .profile-v2-status > a { min-height: 61px; display: grid; grid-template-columns: 27px 1fr; align-items: center; gap: 10px; padding: 9px 1px; border-bottom: 1px solid var(--cd-line); color: var(--cd-text); }
.profile-v2-status i { font-size: 19px; color: var(--cd-muted); }
.profile-v2-status strong, .profile-v2-status small { display: block; }
.profile-v2-status strong { font-size: 14px; }
.profile-v2-status small { margin-top: 1px; color: var(--cd-muted); font-size: 12px; }
.profile-v2-status .is-ok i { color: var(--cd-green-dark); }
.profile-v2-status .is-optional i { color: #8c948e; }
.profile-v2-status > a i { color: var(--cd-green-dark); }

.profile-v2-section { margin: 0 0 13px; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); background: #fff; }
.profile-v2-section + .profile-v2-section { margin-top: 18px; }
.profile-v2-section > summary { min-height: 76px; display: grid; grid-template-columns: 38px 1fr 22px; align-items: center; gap: 10px; padding: 8px 1px; cursor: pointer; list-style: none; }
.profile-v2-section > summary::-webkit-details-marker { display: none; }
.profile-v2-section-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--cd-green-pale); color: var(--cd-green-dark); font-size: 17px; }
.profile-v2-section summary strong, .profile-v2-section summary small { display: block; }
.profile-v2-section summary strong { font-size: 16px; }
.profile-v2-section summary small { margin-top: 2px; color: var(--cd-muted); font-size: 12px; font-weight: 400; }
.profile-v2-chevron { color: var(--cd-muted); transition: transform .18s ease; }
.profile-v2-section[open] .profile-v2-chevron { transform: rotate(180deg); }

.profile-v2-form { display: grid; gap: 7px; padding: 4px 0 22px; }
.profile-v2-form label:not(.profile-v2-file), .profile-v2-choice-group legend { margin-top: 9px; color: var(--cd-text); font-size: 13px; font-weight: 700; }
.profile-v2-form label em, .profile-v2-form label > span { color: var(--cd-muted); font-size: 11px; font-style: normal; font-weight: 500; }
.profile-v2-form input[type="text"], .profile-v2-form input[type="tel"], .profile-v2-form input[type="url"], .profile-v2-form input[type="number"], .profile-v2-form select, .profile-v2-form textarea { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid #cbd2cd; border-radius: 3px; background: #fff; color: var(--cd-text); font: inherit; outline: none; }
.profile-v2-form textarea { min-height: 108px; resize: vertical; line-height: 1.45; }
.profile-v2-form input:focus, .profile-v2-form select:focus, .profile-v2-form textarea:focus { border-color: var(--cd-green-dark); box-shadow: 0 0 0 2px rgba(47,127,50,.1); }
.profile-v2-grid-2 { display: grid; grid-template-columns: 1fr; gap: 7px; }
.profile-v2-grid-2 > div { display: grid; gap: 7px; }
.profile-v2-help { display: flex; gap: 7px; margin: 1px 0 4px; color: var(--cd-muted); font-size: 11px; line-height: 1.4; }
.profile-v2-help i { flex: 0 0 auto; color: var(--cd-green-dark); }

.profile-v2-photo-row { display: grid; grid-template-columns: 76px 1fr; align-items: center; gap: 14px; margin-bottom: 8px; padding: 12px 0 15px; border-bottom: 1px solid var(--cd-line); }
.profile-v2-photo-preview { width: 76px; height: 76px; overflow: hidden; display: grid; place-items: center; border-radius: 50%; background: var(--cd-soft); color: var(--cd-muted); font-size: 28px; }
.profile-v2-photo-preview img { width: 100%; height: 100%; object-fit: cover; }
.profile-v2-bike-preview { border-radius: 5px; }
.profile-v2-file { position: relative; min-height: 48px; display: flex; flex-direction: column; justify-content: center; cursor: pointer; }
.profile-v2-file strong { color: var(--cd-text); font-size: 14px; }
.profile-v2-file span { margin-top: 3px; color: var(--cd-green-dark); font-size: 13px; font-weight: 700; }
.profile-v2-file input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }

.profile-v2-input-prefix { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; border: 1px solid #cbd2cd; border-radius: 3px; overflow: hidden; }
.profile-v2-input-prefix:focus-within { border-color: var(--cd-green-dark); box-shadow: 0 0 0 2px rgba(47,127,50,.1); }
.profile-v2-input-prefix span { padding: 0 0 0 11px; color: var(--cd-muted); font-size: 12px; }
.profile-v2-input-prefix input { border: 0 !important; box-shadow: none !important; min-width: 0; }
.profile-v2-unit-input { display: grid; grid-template-columns: 1fr auto; align-items: center; border: 1px solid #cbd2cd; border-radius: 3px; }
.profile-v2-unit-input:focus-within { border-color: var(--cd-green-dark); box-shadow: 0 0 0 2px rgba(47,127,50,.1); }
.profile-v2-unit-input input { border: 0 !important; box-shadow: none !important; min-width: 0; }
.profile-v2-unit-input span { padding-right: 12px; color: var(--cd-muted); font-size: 13px; }

.profile-v2-submit { width: 100%; min-height: 50px; margin-top: 14px; font-size: 15px; }
.profile-v2-optional-note { display: grid; grid-template-columns: 30px 1fr; gap: 10px; margin: 1px 0 11px; padding: 12px 0; color: var(--cd-muted); border-bottom: 1px solid var(--cd-line); }
.profile-v2-optional-note img { width: auto; height: 27px; margin: 2px auto 0; }
.profile-v2-optional-note p { margin: 0; font-size: 13px; line-height: 1.45; }
.profile-v2-locked { display: flex; gap: 9px; padding: 16px 0 20px; color: var(--cd-muted); font-size: 14px; }

.profile-v2-choice-group { min-width: 0; margin: 9px 0 2px; padding: 0; border: 0; }
.profile-v2-choice-group legend { margin-bottom: 9px; }
.profile-v2-checks { display: flex; flex-wrap: wrap; gap: 7px; }
.profile-v2-checks label, .profile-v2-radio-row label { position: relative; margin: 0 !important; cursor: pointer; }
.profile-v2-checks input, .profile-v2-radio-row input { position: absolute; opacity: 0; pointer-events: none; }
.profile-v2-checks span, .profile-v2-radio-row span { min-height: 39px; display: inline-flex; align-items: center; padding: 8px 11px; border: 1px solid #cbd2cd; border-radius: 3px; background: #fff; color: var(--cd-text) !important; font-size: 12px !important; font-weight: 600 !important; }
.profile-v2-checks input:checked + span, .profile-v2-radio-row input:checked + span { border-color: var(--cd-green-dark); background: var(--cd-green-pale); color: var(--cd-green-dark) !important; }
.profile-v2-radio-row { display: flex; gap: 7px; }
.profile-v2-radio-row span { min-width: 72px; justify-content: center; }

.profile-v2-account { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; margin: 31px 0 5px; padding: 21px 0 0; border-top: 1px solid var(--cd-line); }
.profile-v2-account h2 { margin-bottom: 3px; font-size: 19px; }
.profile-v2-account p:not(.section-kicker) { margin: 0; color: var(--cd-muted); font-size: 13px; word-break: break-all; }
.profile-v2-account > a { font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }


/* --- Mon profil V2.13 : simplification mobile --------------------------- */
.profile-v2-shortcuts { margin: 3px 0 27px; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); }
.profile-v2-shortcuts > a { min-height: 67px; display: grid; grid-template-columns: 38px minmax(0,1fr) 20px; align-items: center; gap: 10px; padding: 9px 1px; color: var(--cd-text); }
.profile-v2-shortcut-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--cd-green-pale); color: var(--cd-green-dark); font-size: 17px; }
.profile-v2-shortcuts strong, .profile-v2-shortcuts small { display: block; }
.profile-v2-shortcuts strong { font-size: 15px; }
.profile-v2-shortcuts small { margin-top: 2px; color: var(--cd-muted); font-size: 12px; line-height: 1.35; }
.profile-v2-shortcuts > a > .bi-chevron-right { color: var(--cd-muted); }

/* --- Profil V2.14 : ajustement manuel de la position --- */
.profile-v2-location {
    margin: 10px 0 5px;
    padding: 14px 0 15px;
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}
.profile-v2-location-copy {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
}
.profile-v2-location-copy > i {
    margin-top: 1px;
    color: var(--cd-green-dark);
    font-size: 19px;
}
.profile-v2-location-copy strong,
.profile-v2-location-copy span {
    display: block;
}
.profile-v2-location-copy strong {
    font-size: 14px;
}
.profile-v2-location-copy span {
    margin-top: 2px;
    color: var(--cd-muted);
    font-size: 12px;
    line-height: 1.4;
}
.profile-v2-location-toggle {
    width: 100%;
    margin-top: 12px;
}
.profile-v2-location-panel[hidden] {
    display: none !important;
}
.profile-v2-location-panel {
    margin-top: 13px;
}
.profile-v2-location-map {
    width: 100%;
    height: 260px;
    overflow: hidden;
    border: 1px solid var(--cd-line);
    border-radius: 4px;
    background: var(--cd-soft);
}
.profile-v2-location-panel > p {
    display: flex;
    gap: 7px;
    margin: 9px 0 0;
    color: var(--cd-muted);
    font-size: 11px;
    line-height: 1.45;
}
.profile-v2-location-panel > p i {
    flex: 0 0 auto;
    color: var(--cd-green-dark);
}


/* --- Profil V2.15 : hierarchie + geolocalisation detaillee ------------ */
.profile-v2-shortcuts { display: none; }

.profile-v2-related {
    margin: 31px 0 5px;
    padding-top: 19px;
    border-top: 1px solid var(--cd-line);
}
.profile-v2-related > a {
    min-height: 64px;
    display: grid;
    grid-template-columns: 40px minmax(0,1fr) 24px;
    align-items: center;
    gap: 11px;
    padding: 5px 0;
    color: var(--cd-text);
}
.profile-v2-related-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 1px solid #b8cdb9;
    border-radius: 3px;
    color: var(--cd-green-dark);
    background: #fff;
    font-size: 18px;
}
.profile-v2-related strong,
.profile-v2-related small { display: block; }
.profile-v2-related strong { font-size: 15px; }
.profile-v2-related small { margin-top: 2px; color: var(--cd-muted); font-size: 12px; line-height: 1.35; }
.profile-v2-related > a > .bi-arrow-right { color: var(--cd-green-dark); font-size: 18px; }

.profile-v2-location-map { height: 300px; }
.profile-v2-location-marker {
    width: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
.profile-v2-location-marker > span {
    position: relative;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 3px solid #fff;
    border-radius: 50% 50% 50% 7px;
    background: var(--cd-green-dark);
    color: #fff;
    box-shadow: 0 2px 7px rgba(25, 52, 29, .28);
    transform: rotate(-45deg);
}
.profile-v2-location-marker > span i {
    font-size: 17px;
    transform: rotate(45deg);
}


/* --- Profil V2.17 : raccourcis de fin de page ------------------------ */
.profile-v2-related {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin: 31px 0 24px;
    padding-top: 19px;
    border-top: 1px solid var(--cd-line);
}
.profile-v2-related > a {
    min-height: 70px;
    padding: 9px 0;
    border-bottom: 1px solid var(--cd-line);
}
.profile-v2-related > a:last-child {
    border-bottom: 0;
}

/* --- Mon hébergement V2.18 ------------------------------------------- */
.hosting-v2 { padding-bottom: 10px; }
.hosting-v2-head { margin-bottom: 22px; }
.hosting-v2-head .section-kicker { margin-bottom: 4px; }
.hosting-v2-head h1 { margin: 0 0 7px; font-family: Georgia, "Times New Roman", serif; font-size: 29px; line-height: 1.15; }
.hosting-v2-head > p:last-child { margin: 0; color: var(--cd-muted); font-size: 14px; line-height: 1.5; }
.hosting-v2-form { display: grid; gap: 18px; }

.hosting-v2-availability { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 13px; padding: 15px 0 17px; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); }
.hosting-v2-availability-copy strong, .hosting-v2-availability-copy small { display: block; }
.hosting-v2-availability-copy strong { margin-top: 4px; font-size: 16px; }
.hosting-v2-availability-copy small { margin-top: 3px; color: var(--cd-muted); font-size: 12px; line-height: 1.4; }
.hosting-v2-state { display: inline-flex; align-items: center; gap: 6px; color: var(--cd-green-dark); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .025em; }
.hosting-v2-state i { font-size: 8px; }
.hosting-v2-availability.is-paused .hosting-v2-state { color: var(--cd-muted); }

.hosting-v2-switch { display: grid; justify-items: center; gap: 3px; cursor: pointer; }
.hosting-v2-switch input { position: absolute; opacity: 0; pointer-events: none; }
.hosting-v2-switch > span { position: relative; width: 52px; height: 30px; display: block; border-radius: 20px; background: #cbd2cd; transition: background .18s ease; }
.hosting-v2-switch > span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.18); transition: transform .18s ease; }
.hosting-v2-switch input:checked + span { background: var(--cd-green-dark); }
.hosting-v2-switch input:checked + span::after { transform: translateX(22px); }
.hosting-v2-switch input:focus-visible + span { outline: 3px solid rgba(47,127,50,.18); outline-offset: 2px; }
.hosting-v2-switch em { color: var(--cd-muted); font-size: 11px; font-style: normal; font-weight: 700; }

.hosting-v2-section { margin: 0; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); background: #fff; }
.hosting-v2-section + .hosting-v2-section { margin-top: 2px; }
.hosting-v2-section > summary { min-height: 75px; display: grid; grid-template-columns: 38px minmax(0,1fr) 20px; align-items: center; gap: 10px; padding: 8px 0; cursor: pointer; list-style: none; }
.hosting-v2-section > summary::-webkit-details-marker { display: none; }
.hosting-v2-section-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--cd-green-pale); color: var(--cd-green-dark); font-size: 17px; }
.hosting-v2-section summary strong, .hosting-v2-section summary small { display: block; }
.hosting-v2-section summary strong { font-size: 16px; }
.hosting-v2-section summary small { margin-top: 2px; color: var(--cd-muted); font-size: 12px; font-weight: 400; line-height: 1.35; }
.hosting-v2-chevron { color: var(--cd-muted); transition: transform .18s ease; }
.hosting-v2-section[open] .hosting-v2-chevron { transform: rotate(180deg); }
.hosting-v2-section-body { display: grid; gap: 20px; padding: 7px 0 23px; }

.hosting-v2-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.hosting-v2-fieldset legend, .hosting-v2-section-body > label { display: block; margin: 0 0 9px; color: var(--cd-text); font-size: 13px; font-weight: 700; }
.hosting-v2-section-body > label span { color: var(--cd-muted); font-size: 11px; font-weight: 500; }
.hosting-v2-options { display: grid; gap: 8px; }
.hosting-v2-options-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.hosting-v2-options-inline { grid-template-columns: repeat(3, minmax(0,1fr)); }
.hosting-v2-options-yesno { grid-template-columns: repeat(2, minmax(0,1fr)); }
.hosting-v2-options label { position: relative; min-width: 0; cursor: pointer; }
.hosting-v2-options input { position: absolute; opacity: 0; pointer-events: none; }
.hosting-v2-options span { min-height: 50px; width: 100%; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 9px 8px; border: 1px solid #cbd2cd; border-radius: 4px; background: #fff; color: var(--cd-text); font-size: 12px; font-weight: 700; text-align: center; line-height: 1.2; }
.hosting-v2-options-grid span { justify-content: flex-start; }
.hosting-v2-options span i { color: var(--cd-green-dark); font-size: 16px; }
.hosting-v2-options input:checked + span { border-color: var(--cd-green-dark); background: var(--cd-green-pale); color: var(--cd-green-dark); }
.hosting-v2-options input:focus-visible + span { outline: 3px solid rgba(47,127,50,.15); outline-offset: 1px; }

.hosting-v2-section textarea { width: 100%; min-height: 106px; margin: 0 0 5px; padding: 11px 12px; border: 1px solid #cbd2cd; border-radius: 4px; background: #fff; color: var(--cd-text); font: inherit; font-size: 15px; line-height: 1.45; resize: vertical; outline: none; }
.hosting-v2-section textarea:focus { border-color: var(--cd-green-dark); box-shadow: 0 0 0 2px rgba(47,127,50,.1); }
.hosting-v2-human-note { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 9px; align-items: start; margin: 0 0 2px; padding: 0 0 14px; border-bottom: 1px solid var(--cd-line); color: var(--cd-muted); font-size: 12px; line-height: 1.45; }
.hosting-v2-human-note img { width: auto; height: 25px; margin: 1px auto 0; }

.hosting-v2-women { display: grid; grid-template-columns: 38px minmax(0,1fr) 40px; align-items: center; gap: 10px; padding: 15px 0; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); }
.hosting-v2-women-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #f7eef4; color: #a14f7d; font-size: 18px; }
.hosting-v2-women strong { display: block; font-size: 14px; }
.hosting-v2-women p { margin: 2px 0 0; color: var(--cd-muted); font-size: 11px; line-height: 1.4; }
.hosting-v2-simple-check { position: relative; width: 38px; height: 38px; cursor: pointer; }
.hosting-v2-simple-check input { position: absolute; opacity: 0; pointer-events: none; }
.hosting-v2-simple-check span { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #cbd2cd; border-radius: 4px; color: transparent; background: #fff; }
.hosting-v2-simple-check input:checked + span { border-color: var(--cd-green-dark); background: var(--cd-green-pale); color: var(--cd-green-dark); }

.hosting-v2-responsibility { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 9px; align-items: start; color: var(--cd-muted); font-size: 11px; line-height: 1.45; cursor: pointer; }
.hosting-v2-responsibility input { width: 19px; height: 19px; margin: 0; accent-color: var(--cd-green-dark); }
.hosting-v2-submit { width: 100%; min-height: 51px; font-size: 15px; }

.hosting-v2-related { margin: 31px 0 24px; padding-top: 19px; border-top: 1px solid var(--cd-line); }
.hosting-v2-related > a { min-height: 70px; display: grid; grid-template-columns: 40px minmax(0,1fr) 24px; align-items: center; gap: 11px; padding: 9px 0; border-bottom: 1px solid var(--cd-line); color: var(--cd-text); }
.hosting-v2-related > a:last-child { border-bottom: 0; }
.hosting-v2-related-icon { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #b8cdb9; border-radius: 3px; color: var(--cd-green-dark); background: #fff; font-size: 18px; }
.hosting-v2-related strong, .hosting-v2-related small { display: block; }
.hosting-v2-related strong { font-size: 15px; }
.hosting-v2-related small { margin-top: 2px; color: var(--cd-muted); font-size: 12px; line-height: 1.35; }
.hosting-v2-related > a > .bi-arrow-right { color: var(--cd-green-dark); font-size: 18px; }

.hosting-v2-locked { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 11px; padding: 18px 0; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); }
.hosting-v2-locked > i { color: var(--cd-orange); font-size: 23px; }
.hosting-v2-locked strong { display: block; margin-bottom: 5px; font-size: 14px; }
.hosting-v2-locked a { font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 370px) {
    .hosting-v2-options-inline { grid-template-columns: 1fr; }
    .hosting-v2-options-yesno { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

/* --- Mes échanges V2.19 ---------------------------------------------- */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.messages-v2 { padding-bottom: 8px; }
.messages-v2-head { margin-bottom: 17px; }
.messages-v2-head h1 { margin: 0 0 7px; font-family: Georgia, "Times New Roman", serif; font-size: 30px; line-height: 1.12; }
.messages-v2-head > p:last-child { margin: 0; color: var(--cd-muted); font-size: 14px; line-height: 1.45; }

.messages-v2-tabs {
    display: flex;
    align-items: center;
    gap: 4px;
    margin: 0 -17px;
    padding: 0 17px 9px;
    border-bottom: 1px solid var(--cd-line);
    overflow-x: auto;
    scrollbar-width: none;
}
.messages-v2-tabs::-webkit-scrollbar { display: none; }
.messages-v2-tabs a {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    padding: 0 13px;
    border-radius: 3px;
    color: var(--cd-muted);
    font-size: 13px;
    font-weight: 700;
}
.messages-v2-tabs a.is-active { background: var(--cd-green-pale); color: var(--cd-green-dark); }
.messages-v2-tabs a span {
    min-width: 20px;
    height: 20px;
    display: inline-grid;
    place-items: center;
    padding: 0 5px;
    border-radius: 10px;
    background: var(--cd-orange);
    color: #fff;
    font-size: 10px;
}

.messages-v2-list { margin: 0 -17px; }
.messages-v2-item {
    position: relative;
    min-height: 91px;
    display: grid;
    grid-template-columns: 52px minmax(0,1fr) 16px;
    align-items: center;
    gap: 11px;
    padding: 13px 17px;
    border-bottom: 1px solid var(--cd-line);
    color: var(--cd-text);
    background: #fff;
}
.messages-v2-item.is-unread { background: #fbfdf9; }
.messages-v2-avatar {
    position: relative;
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    overflow: visible;
    border-radius: 50%;
    background: var(--cd-soft);
    color: #8c948e;
    font-size: 24px;
}
.messages-v2-avatar img { width: 100%; height: 100%; display: block; border-radius: inherit; object-fit: cover; }
.messages-v2-avatar-small { width: 43px; height: 43px; font-size: 20px; }
.messages-v2-unread-dot {
    position: absolute;
    right: -1px;
    bottom: 1px;
    width: 12px;
    height: 12px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--cd-orange);
}
.messages-v2-item-body { min-width: 0; }
.messages-v2-item-top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.messages-v2-item-top strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; }
.messages-v2-item.is-unread .messages-v2-item-top strong { color: var(--cd-green-dark); }
.messages-v2-item-top time { flex: 0 0 auto; color: var(--cd-muted); font-size: 11px; font-weight: 600; }
.messages-v2-item-meta { display: flex; flex-wrap: wrap; gap: 4px 8px; margin-top: 1px; color: var(--cd-muted); font-size: 10px; }
.messages-v2-item-meta span + span::before { content: "·"; margin-right: 8px; }
.messages-v2-item p { margin: 5px 0 0; overflow: hidden; color: #505751; font-size: 12px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.messages-v2-item.is-unread p { color: var(--cd-text); font-weight: 600; }
.messages-v2-chevron { color: #a2a9a4; font-size: 13px; }

.messages-v2-empty-list,
.messages-v2-empty {
    min-height: 45vh;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 30px 0;
}
.messages-v2-empty-list > i,
.messages-v2-empty > i { margin-bottom: 12px; color: var(--cd-green-dark); font-size: 33px; }
.messages-v2-empty-list strong { font-size: 18px; }
.messages-v2-empty-list p,
.messages-v2-empty p { max-width: 480px; margin: 5px 0 13px; color: var(--cd-muted); font-size: 14px; }
.messages-v2-empty-list a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.messages-v2-empty h1 { margin-bottom: 6px; font-size: 27px; }

.messages-v2-thread { margin-top: -8px; }
.messages-v2-thread-head {
    display: grid;
    grid-template-columns: 42px 43px minmax(0,1fr) 42px;
    align-items: center;
    gap: 8px;
    margin: 0 -17px;
    padding: 8px 12px 12px;
    border-bottom: 1px solid var(--cd-line);
    background: #fff;
}
.messages-v2-back,
.messages-v2-profile-link {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: var(--cd-green-dark);
    font-size: 19px;
}
.messages-v2-thread-person { min-width: 0; }
.messages-v2-thread-person h1 { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: Arial, Helvetica, sans-serif; font-size: 16px; line-height: 1.2; letter-spacing: 0; }
.messages-v2-thread-person span { display: block; margin-top: 2px; overflow: hidden; color: var(--cd-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }

.messages-v2-context {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0 -17px;
    padding: 11px 17px;
    border-bottom: 1px solid var(--cd-line);
    background: var(--cd-soft);
}
.messages-v2-context span { display: inline-flex; align-items: center; gap: 5px; color: #5d655f; font-size: 11px; font-weight: 600; }
.messages-v2-context i { color: var(--cd-green-dark); }
.messages-v2-warning,
.messages-v2-error {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 13px 0;
    padding: 10px 11px;
    border-left: 3px solid var(--cd-orange);
    background: #fff8ee;
    color: #67533a;
    font-size: 12px;
    line-height: 1.4;
}
.messages-v2-error { border-left-color: var(--cd-danger); background: #fff3f3; color: var(--cd-danger); }

.messages-v2-conversation { padding: 18px 0 15px; }
.messages-v2-day { display: flex; align-items: center; justify-content: center; margin: 10px 0 14px; }
.messages-v2-day span { padding: 3px 8px; border-radius: 9px; background: var(--cd-soft); color: var(--cd-muted); font-size: 10px; font-weight: 700; }
.messages-v2-bubble-row { display: flex; margin: 7px 0; }
.messages-v2-bubble-row.is-mine { justify-content: flex-end; }
.messages-v2-bubble-row.is-theirs { justify-content: flex-start; }
.messages-v2-bubble { max-width: 84%; padding: 9px 11px 6px; border-radius: 13px; font-size: 14px; line-height: 1.42; overflow-wrap: anywhere; }
.messages-v2-bubble-row.is-theirs .messages-v2-bubble { border-bottom-left-radius: 3px; background: #f0f2f0; color: var(--cd-text); }
.messages-v2-bubble-row.is-mine .messages-v2-bubble { border-bottom-right-radius: 3px; background: var(--cd-green-dark); color: #fff; }
.messages-v2-bubble time { display: block; margin-top: 3px; color: inherit; opacity: .7; font-size: 9px; text-align: right; }

.messages-v2-composer {
    position: sticky;
    bottom: 0;
    z-index: 20;
    display: grid;
    grid-template-columns: minmax(0,1fr) 46px;
    align-items: end;
    gap: 7px;
    margin: 6px -17px -54px;
    padding: 9px 12px calc(10px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--cd-line);
    background: rgba(255,255,255,.97);
    backdrop-filter: blur(8px);
}
.messages-v2-composer textarea {
    width: 100%;
    min-height: 44px;
    max-height: 132px;
    resize: none;
    overflow-y: auto;
    padding: 11px 12px;
    border: 1px solid #cbd2cd;
    border-radius: 18px;
    background: #fff;
    color: var(--cd-text);
    font: inherit;
    font-size: 16px;
    line-height: 1.3;
    outline: none;
}
.messages-v2-composer textarea:focus { border-color: var(--cd-green-dark); box-shadow: 0 0 0 2px rgba(47,127,50,.09); }
.messages-v2-composer button {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: var(--cd-green-dark);
    color: #fff;
    font-size: 18px;
    cursor: pointer;
}

@media (min-width: 600px) {
    .messages-v2-list { margin-left: 0; margin-right: 0; border-top: 1px solid var(--cd-line); }
    .messages-v2-item { padding-left: 12px; padding-right: 12px; }
    .messages-v2-tabs { margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; }
    .messages-v2-thread-head,
    .messages-v2-context { margin-left: 0; margin-right: 0; }
    .messages-v2-composer { margin-left: 0; margin-right: 0; margin-bottom: -54px; }
    .messages-v2-bubble { max-width: 72%; }
}

/* =========================================================
   V2.20 - Profil public + messagerie avancee
   ========================================================= */

.profile-view-v2{
    padding:18px 16px 32px;
    max-width:760px;
    margin:0 auto;
}

.profile-view-v2-hero{
    display:flex;
    gap:14px;
    align-items:center;
    margin-bottom:16px;
}

.profile-view-v2-photo{
    width:76px;
    height:76px;
    border-radius:50%;
    overflow:hidden;
    background:#eef3ef;
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:34px;
    color:#728178;
}

.profile-view-v2-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.profile-view-v2-name{min-width:0;}
.profile-view-v2-name h1{margin:1px 0 3px;font-size:1.65rem;line-height:1.1;}
.profile-view-v2-name p:last-child{margin:0;color:#68716b;font-size:.92rem;}
.profile-view-v2-intro{font-size:1rem;line-height:1.55;margin:0 0 18px;}

.profile-view-v2-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    margin-bottom:8px;
}
.profile-view-v2-actions .btn{min-height:46px;justify-content:center;}
.profile-view-v2-actions .btn[disabled]{opacity:.48;cursor:not-allowed;}
.profile-view-v2-favorite.is-favorite{background:#fff7d8;border-color:#e3c85b;color:#5c4e10;}
.profile-view-v2-quota{margin:8px 0 18px;font-size:.87rem;color:#725a21;display:flex;gap:8px;align-items:flex-start;}

.profile-view-v2-section{
    border-top:1px solid #dfe4df;
    padding:22px 0 4px;
    margin-top:20px;
}
.profile-view-v2-section-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.profile-view-v2-section h2{margin:2px 0 14px;font-size:1.28rem;}
.profile-view-v2-live{font-size:.78rem;color:#317439;white-space:nowrap;padding-top:4px;}
.profile-view-v2-live i{font-size:.55rem;vertical-align:2px;}

.profile-view-v2-facts{
    display:grid;
    grid-template-columns:1fr;
    gap:1px;
    background:#e4e8e4;
    border:1px solid #e4e8e4;
    margin:0 0 14px;
}
.profile-view-v2-facts>div{
    background:#fff;
    padding:13px 14px;
    display:grid;
    grid-template-columns:25px 1fr;
    column-gap:8px;
}
.profile-view-v2-facts>div>i{grid-row:1 / span 2;color:#3e7b48;font-size:1.05rem;}
.profile-view-v2-facts strong{font-size:.88rem;}
.profile-view-v2-facts p{margin:3px 0 0;color:#515a54;line-height:1.4;}
.profile-view-v2-tags{display:flex!important;flex-wrap:wrap;gap:6px!important;}
.profile-view-v2-tags span{background:#f0f4f0;padding:5px 8px;font-size:.82rem;line-height:1.2;}
.profile-view-v2-sub{margin:16px 0;}
.profile-view-v2-sub>strong{display:block;margin-bottom:8px;}
.profile-view-v2-note{display:flex;gap:10px;padding:13px 0;border-top:1px solid #edf0ed;}
.profile-view-v2-note i{color:#4d8054;margin-top:2px;}
.profile-view-v2-note p{margin:4px 0 0;line-height:1.5;}

.profile-view-v2-bike-photo{width:100%;max-height:260px;object-fit:cover;margin:2px 0 14px;}
.profile-view-v2-bike-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.profile-view-v2-bike-grid>div{padding:10px 11px;background:#f5f7f5;min-width:0;}
.profile-view-v2-bike-grid small{display:block;color:#6a746d;font-size:.75rem;margin-bottom:3px;}
.profile-view-v2-bike-grid strong{font-size:.9rem;overflow-wrap:anywhere;}
.profile-view-v2-bike-text{line-height:1.55;}

.profile-view-v2-report{margin-top:26px;border-top:1px solid #e2e5e2;padding-top:14px;}
.profile-view-v2-report summary{cursor:pointer;color:#8a4343;font-size:.91rem;padding:8px 0;}
.profile-view-v2-report details[open] summary{margin-bottom:10px;}
.profile-view-v2-report p{font-size:.9rem;line-height:1.45;}
.profile-view-v2-report-form{display:grid;gap:12px;margin-top:12px;}
.profile-view-v2-report-form label{display:grid;gap:6px;font-weight:600;font-size:.9rem;}
.profile-view-v2-report-form label span{font-weight:400;color:#778079;font-size:.8rem;}
.profile-view-v2-report-form select,
.profile-view-v2-report-form textarea{width:100%;font:inherit;font-size:16px;border:1px solid #cbd2cc;background:#fff;padding:11px 12px;border-radius:4px;}
.profile-view-v2-report-message{padding:10px 12px;background:#f4f7f4;}
.btn-danger{background:#a84040!important;color:#fff!important;border-color:#a84040!important;}
.profile-view-v2-empty{padding:40px 18px;text-align:center;max-width:560px;margin:auto;}
.profile-view-v2-empty>i{font-size:2rem;color:#7a827d;}

/* Messagerie V2.20 */
.messages-v2-role-filters{
    display:flex;
    gap:6px;
    overflow-x:auto;
    scrollbar-width:none;
    margin:9px 0 13px;
}
.messages-v2-role-filters::-webkit-scrollbar{display:none;}
.messages-v2-role-filters a{
    white-space:nowrap;
    text-decoration:none;
    border:1px solid #d5dad6;
    color:#475049;
    padding:8px 11px;
    font-size:.85rem;
    background:#fff;
}
.messages-v2-role-filters a.is-active{background:#edf4ee;border-color:#75977a;color:#285b31;font-weight:700;}

.messages-v2-filters{display:grid;gap:8px;margin-bottom:14px;}
.messages-v2-search{display:flex;align-items:center;gap:8px;border:1px solid #d3d9d4;background:#fff;padding:0 10px;}
.messages-v2-search i{color:#747d76;}
.messages-v2-search input{border:0!important;outline:0;min-height:44px;width:100%;padding:0!important;font-size:16px!important;background:transparent!important;}
.messages-v2-selects{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;}
.messages-v2-selects select{min-width:0;border:1px solid #d3d9d4;background:#fff;padding:9px 7px;font-size:.84rem;}
.messages-v2-selects button{border:0;background:#38483d;color:#fff;padding:0 10px;font-weight:600;}

.messages-v2-thread-tools{display:flex;justify-content:flex-end;margin:6px 0 10px;}
.messages-v2-thread-tools form{margin:0;}
.messages-v2-archive{border:0;background:none;color:#667068;padding:8px 2px;font:inherit;font-size:.85rem;cursor:pointer;}
.messages-v2-archive:disabled{opacity:.4;cursor:not-allowed;}

.messages-v2-new-form{display:grid;gap:14px;margin-top:18px;}
.messages-v2-new-form>label,
.messages-v2-form-row label{display:grid;gap:6px;font-weight:600;font-size:.9rem;}
.messages-v2-new-form label>span,
.messages-v2-form-row label>span{font-weight:400;color:#7a837c;font-size:.8rem;}
.messages-v2-new-form input,
.messages-v2-new-form select,
.messages-v2-new-form textarea{width:100%;font:inherit;font-size:16px;border:1px solid #cbd2cc;background:#fff;padding:11px 12px;border-radius:4px;}
.messages-v2-form-row{display:grid;grid-template-columns:1fr 110px;gap:9px;}
.messages-v2-form-note{font-size:.85rem;color:#667068;margin:0;line-height:1.45;}
.messages-v2-quota{display:flex;gap:11px;background:#fff6dd;border-left:3px solid #c69a34;padding:14px;margin-top:18px;}
.messages-v2-quota i{color:#956b12;font-size:1.2rem;}
.messages-v2-quota strong{display:block;margin-bottom:4px;}
.messages-v2-quota p{margin:0;line-height:1.45;font-size:.9rem;}

@media (max-width:380px){
    .profile-view-v2-actions{grid-template-columns:1fr;}
    .messages-v2-selects{grid-template-columns:1fr 1fr;}
    .messages-v2-selects button{grid-column:1/-1;min-height:42px;}
}

/* Profil public - carte locale V2.22 */
.profile-view-v2-bike-why{
    margin-top:22px;
    padding:18px 16px 17px;
    background:#f8f6ef;
    border-left:3px solid #6d9572;
}
.profile-view-v2-bike-why-heading{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:12px;
}
.profile-view-v2-bike-why-heading img{
    width:38px;
    height:38px;
    object-fit:contain;
    flex:0 0 auto;
    opacity:.9;
}
.profile-view-v2-bike-why-heading span{
    display:block;
    margin-bottom:2px;
    color:#7a7568;
    font-size:.74rem;
    font-weight:700;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.profile-view-v2-bike-why h3{
    margin:0;
    color:#33453a;
    font-size:1.08rem;
    line-height:1.3;
}
.profile-view-v2-bike-story{
    position:relative;
    padding-left:14px;
}
.profile-view-v2-bike-story:before{
    content:"“";
    position:absolute;
    left:-2px;
    top:-7px;
    color:#9ab09d;
    font-family:Georgia, serif;
    font-size:2rem;
    line-height:1;
}
.profile-view-v2-bike-story p{
    margin:0;
    color:#4f5751;
    font-size:.96rem;
    line-height:1.7;
}
.profile-view-v2-local-map-section{
    overflow:visible;
}
.profile-view-v2-map-radius{
    flex:0 0 auto;
    padding:5px 8px;
    background:#eef4ef;
    color:#3f6545;
    font-size:.78rem;
    font-weight:700;
}
.profile-view-v2-map-intro{
    margin:-4px 0 12px;
    color:#657069;
    font-size:.9rem;
    line-height:1.45;
}
.profile-view-v2-local-map{
    width:100%;
    height:360px;
    background:#eef1ee;
    border:1px solid #dfe5df;
    z-index:1;
}
.profile-view-v2-map-legend{
    display:flex;
    flex-wrap:wrap;
    gap:8px 13px;
    margin-top:10px;
    color:#657069;
    font-size:.78rem;
}
.profile-view-v2-map-legend span{
    display:inline-flex;
    align-items:center;
    gap:5px;
}
.profile-view-v2-map-legend .bi-house-heart-fill{color:var(--cd-green-dark);}
.profile-view-v2-map-legend .bi-train-front-fill{color:#496c9b;}
.profile-view-v2-map-legend .bi-triangle-fill{color:#b4533c;}
.profile-view-v2-map-legend .bi-droplet-fill{color:#3c8287;}
.profile-map-legend-house{
    width:12px;
    height:12px;
    display:inline-block;
    border-radius:50%;
    background:var(--cd-green-dark);
    box-shadow:0 0 0 3px #f3b346;
}
.cd-v2-marker.is-current-profile{
    background:var(--cd-green-dark);
    box-shadow:0 0 0 4px #f3b346,0 2px 7px rgba(0,0,0,.25);
}
.profile-local-map-members{
    display:grid;
    gap:5px;
    margin-top:7px;
}
.profile-local-map-members a{
    color:#2f6c38;
    font-weight:600;
}
\n\n/* V2.25 - Historique des echanges depuis un profil */\n.profile-view-v2-history{\n    margin:4px 0 22px;\n    border-top:1px solid #e1e5e1;\n    border-bottom:1px solid #e1e5e1;\n}\n.profile-view-v2-history summary{\n    min-height:52px;\n    padding:12px 2px;\n    display:flex;\n    align-items:center;\n    justify-content:space-between;\n    gap:12px;\n    cursor:pointer;\n    list-style:none;\n}\n.profile-view-v2-history summary::-webkit-details-marker{display:none;}\n.profile-view-v2-history-label{display:flex;align-items:center;gap:9px;min-width:0;color:#26352d;}\n.profile-view-v2-history-label i{color:var(--cd-green);font-size:1.05rem;}\n.profile-view-v2-history-label strong{font-size:.92rem;}\n.profile-view-v2-history-open{display:flex;align-items:center;gap:5px;flex:none;font-size:.82rem;color:#67736c;}\n.profile-view-v2-history[open] .profile-view-v2-history-open i{transform:rotate(180deg);}\n.profile-view-v2-history-open i{transition:transform .18s ease;}\n.profile-view-v2-history-list{display:grid;gap:0;padding-bottom:8px;}\n.profile-view-v2-history-item{\n    display:block;\n    padding:13px 2px 14px;\n    border-top:1px solid #edf0ed;\n    color:inherit;\n    text-decoration:none;\n}\n.profile-view-v2-history-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px;font-size:.76rem;color:#748078;}\n.profile-view-v2-history-top em{display:inline-flex;align-items:center;gap:4px;font-style:normal;color:#7b6547;background:#f5f0e8;padding:3px 7px;border-radius:999px;white-space:nowrap;}\n.profile-view-v2-history-trip{display:block;margin:0 0 5px;font-size:.84rem;color:#385143;font-weight:600;}\n.profile-view-v2-history-item p{margin:0;color:#4e5b53;font-size:.87rem;line-height:1.4;}\n.profile-view-v2-history-link{display:inline-flex;align-items:center;gap:5px;margin-top:7px;font-size:.79rem;font-weight:600;color:var(--cd-green);}\n
/* Mes contacts ------------------------------------------------------------ */
.contacts-page {
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
    padding: 22px 16px 48px;
}

.contacts-header {
    margin-bottom: 18px;
}

.contacts-header .eyebrow {
    margin: 0 0 4px;
    color: var(--color-primary, #188a6b);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.contacts-header h1 {
    margin: 0 0 7px;
    font-size: clamp(1.65rem, 7vw, 2.1rem);
}

.contacts-header > p:last-child {
    margin: 0;
    color: #68726f;
    line-height: 1.45;
}

.contacts-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin-bottom: 20px;
}

.contacts-tabs a {
    min-width: 0;
    min-height: 62px;
    padding: 9px 5px 8px;
    border: 1px solid #dde4e1;
    border-radius: 13px;
    color: #52605c;
    background: #fff;
    text-decoration: none;
    display: grid;
    grid-template-columns: auto auto;
    grid-template-rows: auto auto;
    justify-content: center;
    align-content: center;
    column-gap: 5px;
    row-gap: 2px;
    text-align: center;
}

.contacts-tabs a i {
    grid-column: 1;
    grid-row: 1;
    font-size: .95rem;
}

.contacts-tabs a span {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    font-size: .8rem;
    font-weight: 750;
    white-space: nowrap;
}

.contacts-tabs a b {
    grid-column: 1 / -1;
    grid-row: 2;
    color: #89928f;
    font-size: .72rem;
    font-weight: 700;
}

.contacts-tabs a.is-active {
    border-color: #208b6e;
    background: #edf8f4;
    color: #126d56;
}

.contacts-tabs a.is-active b {
    color: #39806d;
}

.contacts-list {
    border-top: 1px solid #e5e9e7;
}

.contacts-card {
    border-bottom: 1px solid #e5e9e7;
}

.contacts-card-main {
    min-height: 88px;
    padding: 13px 2px;
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    color: inherit;
    text-decoration: none;
}

.contacts-avatar {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    overflow: hidden;
    display: grid;
    place-items: center;
    background: #eef3f1;
    color: #77817e;
    font-size: 1.65rem;
}

.contacts-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.contacts-card-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.contacts-card-copy strong {
    font-size: 1rem;
    line-height: 1.2;
}

.contacts-location,
.contacts-meta {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contacts-location {
    color: #65706d;
    font-size: .85rem;
}

.contacts-location i,
.contacts-meta i {
    margin-right: 5px;
}

.contacts-meta {
    color: #8a928f;
    font-size: .77rem;
}

.contacts-meta .bi-feather,
.contacts-card-copy .bi-feather {
    color: #e59b34;
}

.contacts-chevron {
    color: #abb2af;
    font-size: .95rem;
}

.contacts-message-link {
    width: max-content;
    max-width: calc(100% - 70px);
    margin: -5px 0 11px 70px;
    padding: 5px 0;
    display: inline-flex;
    gap: 6px;
    align-items: center;
    color: #17785f;
    font-size: .82rem;
    font-weight: 700;
    text-decoration: none;
}

.contacts-empty {
    padding: 42px 18px 30px;
    text-align: center;
}

.contacts-empty > img {
    width: 38px;
    height: auto;
    margin-bottom: 8px;
}

.contacts-empty > i {
    display: block;
    margin-bottom: 10px;
    color: #238469;
    font-size: 2rem;
}

.contacts-empty h2 {
    margin: 0 0 7px;
    font-size: 1.15rem;
}

.contacts-empty p {
    max-width: 430px;
    margin: 0 auto 18px;
    color: #6f7976;
    line-height: 1.5;
}

@media (min-width: 640px) {
    .contacts-page {
        padding-inline: 24px;
    }

    .contacts-tabs a {
        min-height: 52px;
        grid-template-columns: auto auto auto;
        grid-template-rows: 1fr;
        gap: 7px;
        padding-inline: 12px;
    }

    .contacts-tabs a i,
    .contacts-tabs a span,
    .contacts-tabs a b {
        grid-row: 1;
    }

    .contacts-tabs a i { grid-column: 1; }
    .contacts-tabs a span { grid-column: 2; }
    .contacts-tabs a b { grid-column: 3; }
}


/* ============================================================
   PARAMETRES V2
   ============================================================ */
.settings-page {
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    padding: 22px 16px 48px;
}

.settings-header {
    margin-bottom: 24px;
}

.settings-header h1 {
    margin: 0 0 7px;
    font-size: clamp(1.65rem, 7vw, 2.1rem);
}

.settings-header > p:last-child {
    margin: 0;
    color: #68726f;
    line-height: 1.5;
}

.settings-flash {
    margin-bottom: 18px;
    padding: 12px 14px;
    border-radius: 10px;
    font-size: .9rem;
    line-height: 1.45;
}

.settings-flash-success {
    background: #edf8f4;
    color: #14664f;
    border: 1px solid #cfe7de;
}

.settings-flash-error {
    background: #fff1ef;
    color: #9a382e;
    border: 1px solid #f0cbc5;
}

.settings-section {
    padding: 21px 0;
    border-top: 1px solid #e1e7e4;
}

.settings-section:last-child {
    border-bottom: 1px solid #e1e7e4;
}

.settings-section-heading {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
}

.settings-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #edf7f3;
    color: #19765e;
    font-size: 1.1rem;
}

.settings-section-heading h2 {
    margin: 0 0 2px;
    font-size: 1.07rem;
}

.settings-section-heading p {
    margin: 0;
    color: #7a8481;
    font-size: .82rem;
    overflow-wrap: anywhere;
}

.settings-section > p {
    margin: 14px 0 0;
    color: #68726f;
    line-height: 1.5;
    font-size: .9rem;
}

.settings-details {
    margin-top: 15px;
}

.settings-details > summary {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 0 2px;
    list-style: none;
    cursor: pointer;
    color: #176f59;
    font-size: .9rem;
    font-weight: 750;
}

.settings-details > summary::-webkit-details-marker {
    display: none;
}

.settings-details > summary i {
    transition: transform .2s ease;
}

.settings-details[open] > summary i {
    transform: rotate(180deg);
}

.settings-form {
    margin-top: 8px;
    padding: 16px 0 4px;
    border-top: 1px dashed #dce4e1;
}

.settings-form label {
    display: block;
    margin: 15px 0 6px;
    color: #303936;
    font-size: .86rem;
    font-weight: 700;
}

.settings-form > label:first-of-type {
    margin-top: 0;
}

.settings-form input[type="password"],
.settings-form input[type="text"] {
    width: 100%;
    min-height: 48px;
    box-sizing: border-box;
    border: 1px solid #cfd8d4;
    border-radius: 10px;
    background: #fff;
    padding: 11px 13px;
    font: inherit;
    font-size: 16px;
}

.settings-form input:focus {
    outline: 2px solid rgba(30, 132, 103, .18);
    border-color: #228267;
}

.settings-form .password-field {
    position: relative;
}

.settings-form .password-field input {
    padding-right: 50px;
}

.settings-form .password-toggle {
    position: absolute;
    right: 3px;
    top: 50%;
    transform: translateY(-50%);
    min-width: 44px;
    min-height: 44px;
}

.settings-field-help {
    margin: 6px 0 0;
    color: #808986;
    font-size: .76rem;
    line-height: 1.4;
}

.settings-form .btn {
    width: 100%;
    min-height: 48px;
    margin-top: 20px;
}

.settings-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.settings-status span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #9aa29f;
}

.settings-status.is-on {
    color: #26765f;
}

.settings-status.is-on span {
    background: #2d956f;
}

.settings-status.is-off {
    color: #a56b2b;
}

.settings-status.is-off span {
    background: #d7903c;
}

.settings-arrow-link {
    min-height: 44px;
    margin-top: 8px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #176f59;
    font-size: .9rem;
    font-weight: 750;
    text-decoration: none;
}

.settings-danger {
    margin-top: 8px;
}

.settings-danger .settings-icon {
    background: #fff0ed;
    color: #bd5145;
}

.settings-delete-details > summary {
    color: #a94338;
}

.settings-warning {
    margin-bottom: 16px;
    padding: 12px 13px;
    border-left: 3px solid #cf6659;
    background: #fff6f4;
    color: #764841;
    font-size: .83rem;
    line-height: 1.45;
}

.settings-warning strong,
.settings-warning span {
    display: block;
}

.settings-warning strong {
    margin-bottom: 3px;
    color: #9f4339;
}

.settings-delete-button {
    border: 1px solid #b8473b !important;
    background: #fff !important;
    color: #a93e34 !important;
}

@media (min-width: 640px) {
    .settings-page {
        padding-inline: 24px;
    }

    .settings-form .btn {
        width: auto;
        min-width: 240px;
    }
}

/* =========================================================
   V2.30 - MES VOYAGES
   ========================================================= */
.voyages-v2{
    padding-bottom:32px;
}

.voyages-v2-head{
    display:flex;
    flex-direction:column;
    gap:18px;
    margin-bottom:20px;
}

.voyages-v2-head h1{
    margin:2px 0 8px;
}

.voyages-v2-head p:not(.section-kicker){
    margin:0;
    max-width:680px;
    line-height:1.55;
}

.voyages-v2-new{
    width:100%;
    min-height:48px;
}

.voyages-v2-create{
    margin:18px 0 26px;
    padding:18px;
    border:1px solid var(--border, #dfe5e1);
    background:#fff;
    border-radius:14px;
}

.voyages-v2-create[hidden],
.voyage-v2-edit[hidden],
.voyages-v2-file-name[hidden],
.map-v2-save-panel[hidden],
.map-v2-save-backdrop[hidden],
#map-route-saved[hidden],
#map-save-voyage[hidden]{
    display:none !important;
}

.voyages-v2-create-title{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:18px;
}

.voyages-v2-create-title strong{
    display:block;
    font-size:1.1rem;
}

.voyages-v2-create-title span{
    display:block;
    margin-top:3px;
    font-size:.9rem;
    color:#66706a;
}

.voyages-v2-create-title button{
    border:0;
    background:transparent;
    width:42px;
    height:42px;
    font-size:1.2rem;
}

.voyages-v2-form{
    display:grid;
    gap:10px;
}

.voyages-v2-form label:not(.voyages-v2-file),
.voyage-v2-edit label{
    font-weight:700;
}

.voyages-v2-form label span{
    font-weight:400;
    color:#758078;
    font-size:.85rem;
}

.voyages-v2-form input[type="text"],
.voyages-v2-form input[type="date"],
.voyages-v2-form input[type="number"],
.voyages-v2-form textarea,
.voyage-v2-edit input,
.voyage-v2-edit textarea{
    width:100%;
    min-height:48px;
    font-size:16px;
}

.voyages-v2-file{
    display:flex;
    align-items:center;
    gap:13px;
    min-height:66px;
    padding:12px 14px;
    border:1px dashed #9fb6a4;
    border-radius:12px;
    cursor:pointer;
    background:#f8fbf8;
}

.voyages-v2-file > i{
    font-size:1.45rem;
    color:#397d43;
}

.voyages-v2-file strong,
.voyages-v2-file small{
    display:block;
}

.voyages-v2-file small{
    margin-top:2px;
    color:#6c756e;
    font-weight:400;
}

.voyages-v2-file-name{
    margin:0 0 4px;
    font-size:.9rem;
    color:#397d43;
    word-break:break-word;
}

.voyages-v2-list{
    display:grid;
    gap:14px;
}

.voyage-v2-card{
    padding:16px 0 18px;
    border-bottom:1px solid #e4e8e5;
}

.voyage-v2-card:first-child{
    border-top:1px solid #e4e8e5;
}

.voyage-v2-card-main{
    display:flex;
    align-items:flex-start;
    gap:12px;
}

.voyage-v2-icon{
    flex:0 0 42px;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#eff6ef;
    color:#397d43;
    font-size:1.15rem;
}

.voyage-v2-info{
    min-width:0;
    flex:1;
}

.voyage-v2-title-row{
    display:flex;
    align-items:flex-start;
    gap:8px;
    flex-wrap:wrap;
}

.voyage-v2-title-row h2{
    margin:0;
    font-size:1.08rem;
    line-height:1.3;
}

.voyage-v2-public,
.voyage-v2-past{
    display:inline-flex;
    align-items:center;
    gap:4px;
    font-size:.76rem;
    line-height:1;
    padding:5px 7px;
    border-radius:999px;
    background:#f1f4f2;
    color:#5f6962;
}

.voyage-v2-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px 13px;
    margin-top:8px;
    color:#69736c;
    font-size:.86rem;
}

.voyage-v2-meta span{
    display:inline-flex;
    align-items:center;
    gap:5px;
}

.voyage-v2-past{
    margin-top:9px;
}

.voyage-v2-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:14px;
}

.voyage-v2-actions .btn{
    min-width:0;
    padding-left:9px;
    padding-right:9px;
}

.voyage-v2-edit{
    display:grid;
    gap:10px;
    margin-top:14px;
    padding:14px;
    background:#f7f9f7;
    border-radius:10px;
}

.voyage-v2-edit label{
    display:grid;
    gap:6px;
}

.voyages-v2-empty{
    text-align:center;
    padding:34px 18px;
    border-top:1px solid #e4e8e5;
    border-bottom:1px solid #e4e8e5;
}

.voyages-v2-empty img{
    width:38px;
    height:auto;
    margin-bottom:8px;
}

.voyages-v2-empty strong{
    display:block;
    font-size:1.05rem;
}

.voyages-v2-empty p{
    margin:7px auto 0;
    max-width:420px;
    color:#69736c;
}

.voyages-v2-share-note{
    display:flex;
    gap:13px;
    margin-top:26px;
    padding-top:18px;
    border-top:1px solid #e4e8e5;
}

.voyages-v2-share-note > i{
    color:#8a6848;
    font-size:1.25rem;
}

.voyages-v2-share-note strong{
    display:block;
}

.voyages-v2-share-note p{
    margin:4px 0 0;
    color:#6c756e;
    line-height:1.5;
    font-size:.9rem;
}

/* =========================================================
   V2.30 - LIEN LA CARTE <-> MES VOYAGES
   ========================================================= */
.map-v2-voyage-context{
    display:flex;
    align-items:center;
    gap:11px;
    margin:0 0 12px;
    padding:10px 0 12px;
    border-bottom:1px solid #e4e8e5;
}

.map-v2-voyage-context > i{
    font-size:1.25rem;
    color:#397d43;
}

.map-v2-voyage-context div{
    flex:1;
    min-width:0;
}

.map-v2-voyage-context span,
.map-v2-voyage-context strong{
    display:block;
}

.map-v2-voyage-context span{
    font-size:.76rem;
    color:#758078;
}

.map-v2-voyage-context strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.map-v2-voyage-context a{
    font-size:.82rem;
    font-weight:700;
}

.map-v2-gpx-list{
    margin:0 17px 12px;
    border:1px solid var(--cd-line);
    background:#fff;
}
.map-v2-gpx-list-head{
    display:flex;
    justify-content:space-between;
    gap:10px;
    padding:9px 11px;
    border-bottom:1px solid var(--cd-line);
    font-size:.8rem;
}
.map-v2-gpx-list-head span{ color:var(--cd-muted); }
.map-v2-gpx-item{
    min-height:42px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:6px 8px 6px 11px;
    border-bottom:1px solid var(--cd-line);
}
.map-v2-gpx-item:last-child{ border-bottom:0; }
.map-v2-gpx-item > span{
    min-width:0;
    flex:1 1 auto;
    display:flex;
    align-items:center;
    gap:7px;
    font-size:.8rem;
    overflow-wrap:anywhere;
}
.map-v2-gpx-item > span i{ color:var(--cd-green-dark); }
.map-v2-gpx-item button{
    flex:0 0 40px;
    width:40px;
    height:40px;
    border:0;
    background:transparent;
    color:#9b3c3c;
    cursor:pointer;
}
.map-v2-voyage-contact-badge{
    display:inline-flex;
    align-items:center;
    gap:5px;
    color:#2369ad;
    font-weight:700;
    font-size:.75rem;
}

.map-v2-route-save{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    min-width:0;
}

#map-route-saved{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#397d43;
    font-size:.84rem;
    font-weight:700;
}

#map-save-voyage{
    min-height:40px;
    font-size:.84rem;
}

.map-v2-save-backdrop{
    position:fixed;
    inset:0;
    z-index:2200;
    background:rgba(20,30,24,.42);
    opacity:0;
    transition:opacity .18s ease;
}

.map-v2-save-backdrop.is-open{
    opacity:1;
}

.map-v2-save-panel{
    position:fixed;
    z-index:2210;
    left:0;
    right:0;
    bottom:0;
    padding:24px 18px calc(22px + env(safe-area-inset-bottom));
    background:#fff;
    border-radius:20px 20px 0 0;
    transform:translateY(102%);
    transition:transform .18s ease;
    max-height:88%;
    overflow:auto;
}

.map-v2-save-panel.is-open{
    transform:translateY(0);
}

.map-v2-save-panel h2{
    margin:3px 42px 8px 0;
}

.map-v2-save-panel > p:not(.section-kicker){
    margin:0 0 18px;
    color:#68736b;
    line-height:1.5;
}

#map-save-form{
    display:grid;
    gap:9px;
}

#map-save-form label{
    font-weight:700;
}

#map-save-form label span{
    font-weight:400;
    font-size:.85rem;
    color:#758078;
}

#map-save-form input,
#map-save-form textarea{
    width:100%;
    min-height:48px;
    font-size:16px;
}
#map-save-form textarea{
    min-height:96px;
    resize:vertical;
}
.voyages-v2-form textarea,
.voyage-v2-edit textarea{
    min-height:96px;
    resize:vertical;
}
.voyage-v2-intro{
    margin:8px 0 0;
    color:#5f6962;
    font-size:.92rem;
    line-height:1.45;
}

.map-v2-save-error{
    margin:3px 0;
    color:#a23333;
    font-size:.9rem;
}

@media (min-width:700px){
    .voyages-v2-head{
        flex-direction:row;
        align-items:flex-end;
        justify-content:space-between;
    }
    .voyages-v2-new{
        width:auto;
    }
    .map-v2-save-panel{
        left:50%;
        right:auto;
        bottom:50%;
        width:min(520px, calc(100% - 36px));
        border-radius:18px;
        transform:translate(-50%, calc(50% + 20px));
        opacity:0;
    }
    .map-v2-save-panel.is-open{
        transform:translate(-50%, 50%);
        opacity:1;
    }
}


.voyage-v2-contacted{ color:#2369ad !important; font-weight:700; }
.voyage-v2-delete{ margin:0; }
.voyage-v2-delete-button{ color:#9b3c3c !important; }
@media (max-width:420px){
    .map-v2-route-controls{ grid-template-columns:1fr; }
    .map-v2-route label{ max-width:120px; }
    .map-v2-voyage-context{ grid-template-columns:auto minmax(0,1fr); }
    .map-v2-voyage-context a{ grid-column:2; justify-self:start; }
}

/* V2.33 - Carte : reperes personnels, favoris hors cluster et historique d'echange */
.cd-v2-marker.is-favorite { background: var(--cd-green-dark); }
.cd-v2-marker.is-complete::after,
.cd-v2-marker.is-favorite::before,
.cd-v2-marker.is-voyage-contact::before { content: none !important; }
.cd-v2-marker-signal {
    position:absolute;
    z-index:5;
    display:grid;
    place-items:center;
    border:2px solid #fff;
    border-radius:50%;
    transform:rotate(45deg);
    box-shadow:0 1px 4px rgba(0,0,0,.22);
}
.cd-v2-marker-signal.is-quality {
    top:-5px;
    left:-5px;
    width:11px;
    height:11px;
    background:var(--cd-orange);
}
.cd-v2-marker-signal.is-favorite {
    top:-10px;
    right:-10px;
    width:21px;
    height:21px;
    background:#fff url('/plume.png') center / 13px auto no-repeat;
}
.cd-v2-marker-signal.is-contact {
    right:-10px;
    bottom:-10px;
    width:21px;
    height:21px;
    background:#fff;
    color:#36433b;
    font-size:10px;
}
.cd-v2-marker-signal.is-contact i,
.cd-v2-marker-signal.is-voyage-contact i { transform:none; font-size:10px; }
.cd-v2-marker-signal.is-voyage-contact {
    left:-10px;
    bottom:-10px;
    width:21px;
    height:21px;
    background:#2369ad;
    color:#fff;
}
.cd-v2-own-marker {
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border:3px solid #fff;
    border-radius:50%;
    background:#171a18;
    color:#fff;
    box-shadow:0 2px 8px rgba(0,0,0,.28);
}
.cd-v2-own-marker i { font-size:16px; }
.cd-v2-own-marker.is-inline { flex:none; width:42px; height:42px; margin-bottom:10px; }
.map-v2-symbol-legend {
    display:flex;
    flex-wrap:wrap;
    gap:8px 14px;
    padding:9px 17px 11px;
    border-bottom:1px solid var(--cd-line);
    background:#fff;
    color:var(--cd-muted);
    font-size:11px;
}
.map-v2-symbol-legend > span { display:inline-flex; align-items:center; gap:5px; }
.map-v2-legend-quality { width:9px; height:9px; border-radius:50%; background:var(--cd-orange); box-shadow:0 0 0 2px #fff,0 0 0 3px #e4e7e4; }
.map-v2-legend-contact { color:#36433b; font-size:13px; }
.map-v2-legend-feather { width:17px; height:17px; border:1px solid #dfe3df; border-radius:50%; background:#fff url('/plume.png') center / 11px auto no-repeat; }
.map-v2-legend-own { width:18px; height:18px; display:grid; place-items:center; border-radius:50%; background:#171a18; color:#fff; font-size:9px; }
.map-v2-own-sheet > p:not(.section-kicker) { margin:0 0 10px; color:var(--cd-muted); font-size:13px; }
.map-v2-own-sheet > small { display:block; margin:12px 0 0; color:var(--cd-muted); line-height:1.45; }
.map-v2-own-status { display:inline-flex; align-items:center; gap:5px; margin-top:3px; padding:5px 8px; background:var(--cd-green-pale); color:var(--cd-green-dark); font-size:11px; font-weight:700; }
.map-v2-own-status.is-paused { background:#f5f0e8; color:#7b6547; }

/* V2.34 - Donner mon avis */
.review-page { padding-bottom: 24px; }
.review-header { position:relative; padding:8px 0 22px; }
.review-header-feather { float:right; width:55px; height:55px; margin:0 0 8px 15px; display:grid; place-items:center; border-radius:50%; background:#fff9ef; }
.review-header-feather img { width:34px; height:auto; }
.review-header h1 { margin-bottom:10px; }
.review-header > p:last-child { margin:0; max-width:610px; color:var(--cd-muted); line-height:1.55; }
.review-flash { margin:0 0 20px; padding:12px 14px; border-left:4px solid var(--cd-green); background:var(--cd-green-pale); color:#345238; }
.review-flash-error { border-color:var(--cd-danger); background:#fbefef; color:#843434; }
.review-current-status { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:0 0 20px; padding:13px 0; border-top:1px solid var(--cd-line); border-bottom:1px solid var(--cd-line); }
.review-current-status span,.review-current-status strong { display:block; }
.review-current-status span { margin-bottom:2px; color:var(--cd-muted); font-size:.78rem; }
.review-current-status strong { font-size:.96rem; }
.review-mini-stars { display:flex; gap:2px; color:var(--cd-orange); font-size:17px; white-space:nowrap; }
.review-admin-answer { margin:0 0 22px; padding:15px 16px; background:#f7f7f1; border-left:3px solid var(--cd-orange); }
.review-admin-answer span { display:block; margin-bottom:5px; color:#756139; font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.review-admin-answer p { margin:0; line-height:1.55; }
.review-form { display:grid; gap:22px; }
.review-rating { margin:0; padding:0; border:0; }
.review-rating legend,.review-field label { display:block; margin-bottom:10px; font-weight:700; }
.review-stars { display:grid; grid-template-columns:repeat(5,1fr); gap:7px; }
.review-stars label { min-width:0; cursor:pointer; }
.review-stars input { position:absolute; opacity:0; pointer-events:none; }
.review-stars span { min-height:55px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; border:1px solid var(--cd-line); background:#fff; color:#c5c9c6; transition:.15s ease; }
.review-stars i { font-size:22px; }
.review-stars small { color:var(--cd-muted); font-size:10px; }
.review-stars input:checked + span { border-color:var(--cd-orange); background:#fff8ec; color:var(--cd-orange); box-shadow:inset 0 0 0 1px var(--cd-orange); }
.review-stars input:focus-visible + span { outline:3px solid rgba(57,125,172,.22); outline-offset:2px; }
.review-field textarea { width:100%; min-height:150px; padding:13px 14px; border:1px solid #cfd6d0; border-radius:0; background:#fff; color:var(--cd-text); font:inherit; font-size:16px; line-height:1.5; resize:vertical; }
.review-field textarea:focus { outline:3px solid rgba(61,158,61,.12); border-color:var(--cd-green); }
.review-publication { display:flex; align-items:flex-start; gap:11px; padding:14px; background:var(--cd-soft); cursor:pointer; }
.review-publication input { flex:none; width:20px; height:20px; margin:2px 0 0; accent-color:var(--cd-green-dark); }
.review-publication span,.review-publication strong,.review-publication small { display:block; }
.review-publication strong { margin-bottom:3px; font-size:.93rem; }
.review-publication small { color:var(--cd-muted); line-height:1.4; }
.review-moderation-note { display:flex; align-items:flex-start; gap:7px; margin:16px 0 0; color:var(--cd-muted); font-size:.8rem; line-height:1.4; }
.review-moderation-note i { flex:none; color:var(--cd-green-dark); font-size:15px; }
.drawer-nav-secondary { padding-left:18px !important; font-size:.93rem; }
.drawer-nav-secondary i { color:var(--cd-orange) !important; }
@media (min-width:700px) {
    .review-stars { max-width:410px; }
    .review-header-feather { width:64px; height:64px; }
    .review-header-feather img { width:39px; }
}


/* PWA - invitation d'installation */
.pwa-install-banner {
    width: min(94%, 680px);
    margin: 10px auto 0;
    padding: 12px;
    background: #fff;
    border: 1px solid #dfe7df;
    border-radius: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow: 0 4px 14px rgba(0,0,0,.07);
}

.pwa-install-banner[hidden],
.pwa-install-status[hidden] {
    display: none !important;
}

.pwa-install-banner-text {
    min-width: 0;
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
}

.pwa-install-banner-text > i {
    font-size: 1.45rem;
    color: #398f42;
}

.pwa-install-banner-text strong,
.pwa-install-banner-text span {
    display: block;
}

.pwa-install-banner-text span {
    margin-top: 2px;
    font-size: .82rem;
    color: #667066;
    line-height: 1.3;
}

.pwa-install-banner .btn {
    width: auto;
    flex: 0 0 auto;
    padding: 9px 13px;
}

.pwa-install-dismiss {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    border: 0;
    background: transparent;
    color: #6d756d;
    border-radius: 50%;
}

.pwa-install-status {
    width: min(94%, 680px);
    margin: 8px auto 0;
    padding: 9px 12px;
    background: #eef7ef;
    color: #255c2b;
    border-radius: 10px;
    font-size: .88rem;
}

.pwa-install-status.is-error {
    background: #fff1f0;
    color: #8a2921;
}

@media (max-width: 520px) {
    .pwa-install-banner {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .pwa-install-banner-text {
        flex-basis: calc(100% - 46px);
    }

    .pwa-install-banner .btn {
        flex: 1 1 100%;
    }
}

/* === V2.38 : connexion persistante + notifications push === */
.auth-remember{
    display:flex;
    align-items:center;
    gap:10px;
    margin:4px 0 16px;
    font-size:.95rem;
    color:#4e5156;
    cursor:pointer;
}
.auth-remember input{
    width:20px;
    height:20px;
    flex:0 0 auto;
    accent-color:#2f7f32;
}
.settings-push-state{
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:14px;
    font-weight:600;
    color:#62666a;
}
.settings-push-dot{
    width:10px;
    height:10px;
    border-radius:50%;
    background:#a7aaad;
    flex:0 0 auto;
}
.settings-push-state.is-active{
    color:#236b29;
}
.settings-push-state.is-active .settings-push-dot{
    background:#2f7f32;
}
.settings-push-actions{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    margin-top:16px;
}
.settings-secondary-button{
    min-height:44px;
    border:1px solid #d6d8d9;
    background:#fff;
    color:#363a3d;
    padding:10px 14px;
    font:inherit;
    font-weight:600;
    cursor:pointer;
}
.settings-push-message{
    margin-top:12px;
    padding:11px 12px;
    background:#eef7ef;
    color:#235e28;
    line-height:1.45;
}
.settings-push-message.is-error{
    background:#fff0ee;
    color:#9a362e;
}
.settings-help{
    margin:.7rem 0 0;
    color:#6f7376;
    font-size:.9rem;
    line-height:1.45;
}
@media (min-width:700px){
    .settings-push-actions{
        flex-direction:row;
        align-items:center;
    }
}

/* =========================================================
   CycloDort V2.40 - Chat en direct + Nous soutenir
   A ajouter a la fin de /css/moncompte-v2.css
   ========================================================= */

/* Le lien "Donner mon avis" doit rester aligne avec le reste du menu. */
.drawer-nav a[href*="page=avis"],
.drawer-nav a[href*="page=soutenir"] {
    margin-left: 0 !important;
    padding-left: 0 !important;
}

/* Messagerie en direct */
.messages-v2-live-status {
    min-height: 20px;
    margin: 4px 0;
    color: var(--cd-muted);
    font-size: 12px;
}

.messages-v2-new-message {
    position: sticky;
    z-index: 4;
    bottom: 82px;
    display: flex;
    align-items: center;
    gap: 7px;
    width: max-content;
    margin: 0 auto 8px;
    padding: 8px 13px;
    border: 1px solid #c9d8ca;
    border-radius: 999px;
    background: #fff;
    color: var(--cd-green-dark);
    box-shadow: 0 4px 15px rgba(0,0,0,.08);
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.messages-v2-new-message[hidden] {
    display: none !important;
}

.messages-v2-composer button:disabled {
    opacity: .55;
    cursor: wait;
}

/* Nous soutenir */
.support-v2 {
    max-width: 760px;
    margin: 0 auto;
}

.support-v2-head {
    max-width: 650px;
    margin-bottom: 36px;
}

.support-v2-head h1 {
    margin-bottom: 14px;
}

.support-v2-head > p:last-child {
    margin-bottom: 0;
    color: var(--cd-muted);
    font-size: 17px;
}

.support-v2-actions {
    border-top: 1px solid var(--cd-line);
}

.support-v2-action {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 15px;
    padding: 24px 0;
    border-bottom: 1px solid var(--cd-line);
}

.support-v2-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--cd-green-pale);
    color: var(--cd-green-dark);
    font-size: 20px;
}

.support-v2-action h2 {
    margin: 2px 0 6px;
    font-size: 20px;
}

.support-v2-action p {
    margin-bottom: 12px;
    color: var(--cd-muted);
    font-size: 14px;
}

.support-v2-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--cd-green-dark);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.support-v2-donate {
    margin: 44px 0 0;
    padding: 28px 0 0;
    border-top: 2px solid var(--cd-green-dark);
}

.support-v2-donate h2 {
    margin-bottom: 9px;
    font-size: 27px;
}

.support-v2-donate > p:not(.section-kicker) {
    max-width: 640px;
    color: var(--cd-muted);
}

.support-v2-donate-note {
    font-size: 14px;
}

.support-v2-amounts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-top: 24px;
}

.support-v2-amount {
    min-width: 0;
    padding: 16px 8px 14px;
    border: 1px solid #cad7cb;
    border-radius: 4px;
    background: #fff;
    color: var(--cd-text);
    text-align: center;
}

.support-v2-amount strong,
.support-v2-amount span {
    display: block;
}

.support-v2-amount strong {
    color: var(--cd-green-dark);
    font-size: 24px;
}

.support-v2-amount span {
    margin-top: 3px;
    color: var(--cd-muted);
    font-size: 11px;
    line-height: 1.25;
}

.support-v2-amount.is-main {
    border-color: var(--cd-green-dark);
    background: var(--cd-green-pale);
}

.support-v2-paypal {
    margin: 13px 0 0 !important;
    font-size: 12px;
}

.support-v2-paypal-missing {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 20px;
    padding: 13px 0;
    color: var(--cd-muted);
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}

.support-v2-paypal-missing > i {
    color: #153b6d;
    font-size: 25px;
}

.support-v2-paypal-missing strong,
.support-v2-paypal-missing span {
    display: block;
}

.support-v2-paypal-missing strong {
    color: var(--cd-text);
    font-size: 14px;
}

.support-v2-paypal-missing span {
    margin-top: 2px;
    font-size: 12px;
}

.support-v2-thanks {
    display: flex;
    gap: 12px;
    margin-top: 42px;
    padding-top: 22px;
    border-top: 1px solid var(--cd-line);
}

.support-v2-thanks > span {
    color: var(--cd-orange);
    font-size: 22px;
    line-height: 1;
}

.support-v2-thanks p {
    margin: 0;
    color: var(--cd-muted);
    font-size: 14px;
}

@media (max-width: 430px) {
    .support-v2-amounts {
        gap: 6px;
    }

    .support-v2-amount {
        padding-left: 5px;
        padding-right: 5px;
    }

    .support-v2-amount strong {
        font-size: 22px;
    }
}

/* =========================================================
   CycloDort V2.41 - Livre d'or + partage
   ========================================================= */
.messages-v2-guestbook{margin-top:32px;padding-top:24px;border-top:1px solid var(--cd-line)}
.messages-v2-guestbook-head{display:flex;align-items:center;gap:11px;margin-bottom:10px}
.messages-v2-guestbook-head img{width:auto;height:42px;flex:0 0 auto}
.messages-v2-guestbook-head span{display:block;margin-bottom:2px;color:var(--cd-muted);font-size:10px;font-weight:700;letter-spacing:.08em}
.messages-v2-guestbook-head h2{margin:0;font-size:19px}
.messages-v2-guestbook>p{color:var(--cd-muted);font-size:13px}
.messages-v2-guestbook-success,.messages-v2-guestbook-wait,.messages-v2-guestbook-existing{display:flex;align-items:flex-start;gap:8px}
.messages-v2-guestbook-success{margin:10px 0 14px;padding:10px 11px;border-left:3px solid var(--cd-green-dark);background:var(--cd-green-pale);color:var(--cd-green-dark);font-size:13px;font-weight:700}
.messages-v2-guestbook-existing{margin:12px 0;color:var(--cd-green-dark)!important;font-weight:600}
.messages-v2-guestbook-details{margin-top:13px;border-top:1px solid var(--cd-line);border-bottom:1px solid var(--cd-line)}
.messages-v2-guestbook-details summary{display:flex;align-items:center;gap:8px;padding:14px 0;color:var(--cd-green-dark);font-weight:700;cursor:pointer;list-style:none}
.messages-v2-guestbook-details summary::-webkit-details-marker{display:none}
.messages-v2-guestbook-details form{padding:0 0 16px}
.messages-v2-guestbook-details label{display:block;margin-bottom:7px;font-size:12px;font-weight:700}
.messages-v2-guestbook-details textarea{width:100%;min-height:120px;padding:11px 12px;border:1px solid #cbd2cd;border-radius:3px;resize:vertical;font:inherit}
.messages-v2-guestbook-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px}
.messages-v2-guestbook-actions>span{color:var(--cd-muted);font-size:11px}
.messages-v2-guestbook-actions .button-cta{width:auto;margin:0}
.support-v2-share{display:grid;grid-template-columns:58px 1fr;gap:16px;margin:0 0 34px;padding:24px 0 28px;border-top:2px solid var(--cd-green-dark);border-bottom:1px solid var(--cd-line)}
.support-v2-share-visual{display:flex;justify-content:center}.support-v2-share-visual img{width:auto;height:52px}
.support-v2-share h2{margin-bottom:7px}.support-v2-share p{color:var(--cd-muted)}
.support-v2-share-main{width:auto;margin-top:4px}
.support-v2-share-fallback{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.support-v2-share-fallback[hidden]{display:none!important}
.support-v2-share-fallback a,.support-v2-share-fallback button{display:inline-flex;align-items:center;gap:6px;min-height:39px;padding:8px 10px;border:1px solid var(--cd-line);border-radius:3px;background:#fff;color:var(--cd-text);font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.support-v2-share-feedback{min-height:20px;margin:9px 0 0!important;color:var(--cd-green-dark)!important;font-size:12px;font-weight:700}
.support-v2-action.is-muted{opacity:.78}.support-v2-coming-soon{display:inline-block;color:var(--cd-muted);font-size:12px;font-weight:700}
@media (max-width:430px){.support-v2-share{grid-template-columns:42px 1fr;gap:11px}.support-v2-share-visual img{height:42px}.support-v2-share-main{width:100%}.messages-v2-guestbook-actions{align-items:flex-end}}

/* CycloDort V2.42 - menu Nous soutenir */
.drawer-nav .drawer-nav-support {
    align-items: center;
}
.drawer-nav .drawer-nav-support > span {
    min-width: 0;
}
.drawer-nav .drawer-nav-support strong,
.drawer-nav .drawer-nav-support small {
    display: block;
}
.drawer-nav .drawer-nav-support strong {
    color: var(--cd-text);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
}
.drawer-nav .drawer-nav-support small {
    margin-top: 2px;
    color: var(--cd-muted);
    font-size: 10px;
    font-weight: 400;
    line-height: 1.2;
}

/* =========================================================
   CycloDort V2.44 - Dons PayPal
   ========================================================= */
.support-v2-donation {
    opacity: 1 !important;
}

.support-v2-donation-amounts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 18px;
}

.support-v2-donation-amounts form {
    margin: 0;
}

.support-v2-donation-choice {
    width: 100%;
    height: 100%;
    padding: 15px 8px 13px;
    border: 1px solid #cad7cb;
    border-radius: 4px;
    background: #fff;
    color: var(--cd-text);
    text-align: center;
    font: inherit;
    cursor: pointer;
}

.support-v2-donation-choice:hover,
.support-v2-donation-choice:focus-visible {
    border-color: var(--cd-green-dark);
}

.support-v2-donation-choice.is-main {
    border-color: var(--cd-green-dark);
    background: var(--cd-green-pale);
}

.support-v2-donation-choice strong,
.support-v2-donation-choice span,
.support-v2-donation-choice small {
    display: block;
}

.support-v2-donation-choice strong {
    color: var(--cd-green-dark);
    font-size: 24px;
}

.support-v2-donation-choice span {
    margin-top: 3px;
    font-size: 12px;
    font-weight: 700;
}

.support-v2-donation-choice small {
    margin-top: 3px;
    color: var(--cd-muted);
    font-size: 10px;
    line-height: 1.2;
}

.support-v2-paypal-note {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 12px 0 0 !important;
    color: var(--cd-muted) !important;
    font-size: 11px !important;
}

.support-v2-donation-success,
.support-v2-donation-info,
.support-v2-donation-error {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 13px 0;
    padding: 11px 12px;
    border-radius: 3px;
    font-size: 13px;
}

.support-v2-donation-success {
    background: var(--cd-green-pale);
    color: var(--cd-green-dark);
    border-left: 3px solid var(--cd-green-dark);
}

.support-v2-donation-success strong,
.support-v2-donation-success span {
    display: block;
}

.support-v2-donation-success span {
    margin-top: 2px;
    font-weight: 400;
}

.support-v2-donation-info {
    background: #f6f6f2;
    color: var(--cd-muted);
    border-left: 3px solid #a9aaa3;
}

.support-v2-donation-error {
    background: #fff4f2;
    color: #842b21;
    border-left: 3px solid #b84b3e;
}

@media (max-width: 430px) {
    .support-v2-donation-amounts {
        gap: 6px;
    }

    .support-v2-donation-choice {
        padding-left: 5px;
        padding-right: 5px;
    }

    .support-v2-donation-choice strong {
        font-size: 22px;
    }
}

/* CycloDort V2.45 - retour PayPal directement sur le bloc don */
#faire-un-don {
    scroll-margin-top: 92px;
    outline: none;
}

/* =========================================================
   CycloDort V2.46 - Nous soutenir
   3 sections nettes, une seule séparation, boutons dons chartés
   ========================================================= */

.support-v2 {
    max-width: 760px;
    margin: 0 auto;
}

/* Une seule logique de séparation entre les trois sous-sections. */
.support-v2-share {
    margin: 0;
    padding: 24px 0;
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}

.support-v2-actions {
    border-top: 0;
}

.support-v2-action {
    padding: 24px 0;
    border-bottom: 1px solid var(--cd-line);
}

/* Evite la double ligne entre Partager et Avis. */
.support-v2-share + .support-v2-actions .support-v2-action:first-child {
    border-top: 0;
}

/* Les trois sections doivent garder la même hiérarchie visuelle. */
.support-v2-share h2,
.support-v2-action h2 {
    margin: 0 0 7px;
    font-size: 20px;
    line-height: 1.2;
}

.support-v2-share p,
.support-v2-action p {
    margin-top: 0;
}

/* Bouton principal de partage. */
.support-v2 .support-v2-share-main {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 16px;
    border: 0;
    border-radius: 4px;
    background: var(--cd-green-dark);
    color: #fff;
    font: inherit;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

/* Choix de montant : reset explicite pour éviter le rendu bouton navigateur. */
.support-v2 .support-v2-donation-amounts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    margin-top: 18px;
}

.support-v2 .support-v2-donation-amounts form {
    margin: 0;
    min-width: 0;
}

.support-v2 button.support-v2-donation-choice {
    appearance: none;
    -webkit-appearance: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    min-height: 92px;
    margin: 0;
    padding: 12px 7px;
    border: 1px solid #c7d3c8;
    border-radius: 5px;
    background: #fff;
    color: var(--cd-text);
    box-shadow: none;
    font-family: inherit;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
}

.support-v2 button.support-v2-donation-choice strong {
    display: block;
    margin: 0;
    color: var(--cd-green-dark);
    font-size: 25px;
    font-weight: 800;
    line-height: 1;
}

.support-v2 button.support-v2-donation-choice span {
    display: block;
    margin-top: 7px;
    color: var(--cd-text);
    font-size: 12px;
    font-weight: 700;
}

.support-v2 button.support-v2-donation-choice small {
    display: block;
    margin-top: 4px;
    color: var(--cd-muted);
    font-size: 10px;
    font-weight: 400;
    line-height: 1.25;
}

.support-v2 button.support-v2-donation-choice.is-main {
    border-color: var(--cd-green-dark);
    background: var(--cd-green-pale);
}

.support-v2 button.support-v2-donation-choice:hover,
.support-v2 button.support-v2-donation-choice:focus-visible {
    border-color: var(--cd-green-dark);
    outline: 2px solid transparent;
    box-shadow: 0 0 0 2px rgba(31, 111, 65, .10);
}

/* Mobile : les 3 sous-sections restent immédiatement lisibles. */
@media (max-width: 640px) {
    .support-v2-head {
        margin-bottom: 22px;
    }

    .support-v2-share,
    .support-v2-action {
        display: grid;
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 11px;
        padding: 20px 0;
    }

    .support-v2-share {
        margin: 0;
    }

    .support-v2-share-visual,
    .support-v2-icon {
        width: 38px;
        height: 38px;
        align-items: center;
        justify-content: center;
    }

    .support-v2-share-visual img {
        max-width: 32px;
        height: auto;
    }

    .support-v2-icon {
        font-size: 18px;
    }

    .support-v2-share h2,
    .support-v2-action h2 {
        font-size: 18px;
    }

    .support-v2-share p,
    .support-v2-action p {
        font-size: 13px;
        line-height: 1.45;
    }

    .support-v2 .support-v2-share-main {
        width: 100%;
    }

    .support-v2-share-fallback {
        gap: 6px;
    }

    .support-v2-share-fallback a,
    .support-v2-share-fallback button {
        flex: 1 1 auto;
        justify-content: center;
    }

    .support-v2 .support-v2-donation-amounts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }

    .support-v2 button.support-v2-donation-choice {
        min-height: 86px;
        padding: 10px 4px;
    }

    .support-v2 button.support-v2-donation-choice strong {
        font-size: 23px;
    }

    .support-v2 button.support-v2-donation-choice span {
        font-size: 10px;
    }

    .support-v2 button.support-v2-donation-choice small {
        display: none;
    }

    .support-v2-thanks {
        margin-top: 24px;
    }
}

/* =========================================================
   CycloDort V2.48 - Historique des dons du membre
   ========================================================= */

.support-v2-donation-history {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--cd-line);
}

.support-v2-donation-history-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.support-v2-donation-history-head .section-kicker {
    margin-bottom: 3px;
}

.support-v2-donation-history-head h3 {
    margin: 0;
    font-size: 18px;
}

.support-v2-donation-total {
    text-align: right;
}

.support-v2-donation-total span,
.support-v2-donation-total strong {
    display: block;
}

.support-v2-donation-total span {
    color: var(--cd-muted);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.support-v2-donation-total strong {
    margin-top: 2px;
    color: var(--cd-green-dark);
    font-size: 18px;
}

.support-v2-donation-history-list {
    border-top: 1px solid var(--cd-line);
}

.support-v2-donation-history-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 11px 0;
    border-bottom: 1px solid var(--cd-line);
}

.support-v2-donation-history-main {
    display: flex;
    align-items: baseline;
    gap: 9px;
    min-width: 0;
}

.support-v2-donation-history-main strong {
    color: var(--cd-text);
    font-size: 15px;
}

.support-v2-donation-history-main time {
    color: var(--cd-muted);
    font-size: 12px;
}

.support-v2-donation-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 700;
}

.support-v2-donation-status.is-success {
    color: var(--cd-green-dark);
}

.support-v2-donation-status.is-pending {
    color: #7a6500;
}

.support-v2-donation-status.is-error {
    color: #9b2f24;
}

.support-v2-donation-status.is-refund,
.support-v2-donation-status.is-muted {
    color: var(--cd-muted);
}

.support-v2-donation-history-note {
    margin: 8px 0 0 !important;
    color: var(--cd-muted) !important;
    font-size: 10px !important;
}

@media (max-width: 430px) {
    .support-v2-donation-history-head {
        align-items: flex-start;
    }

    .support-v2-donation-history-item {
        gap: 10px;
    }

    .support-v2-donation-history-main {
        display: block;
    }

    .support-v2-donation-history-main time {
        display: block;
        margin-top: 2px;
    }

    .support-v2-donation-status {
        max-width: 135px;
        text-align: right;
        line-height: 1.2;
    }
}

/* =========================================================
   CycloDort V2.49 - Accueil
   ========================================================= */

.home-v249 {
    padding-bottom: 10px;
}

.home-v249-intro {
    padding: 7px 0 22px;
}

.home-v249-intro h1 {
    margin: 0 0 7px;
}

.home-v249-intro > p:last-child {
    margin: 0;
    color: var(--cd-muted);
    font-size: 16px;
}

.home-v249-map {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 62px;
    align-items: center;
    gap: 14px;
    margin: 0 -17px 31px;
    padding: 23px 17px;
    background: var(--cd-green-dark);
    color: #fff;
}

.home-v249-map-kicker {
    display: block;
    margin-bottom: 4px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    opacity: .72;
}

.home-v249-map strong,
.home-v249-map small {
    display: block;
}

.home-v249-map strong {
    font-size: 25px;
    line-height: 1.15;
}

.home-v249-map small {
    margin-top: 5px;
    font-size: 12px;
    opacity: .78;
}

.home-v249-map-icon {
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    border: 1px solid rgba(255,255,255,.38);
    border-radius: 50%;
    font-size: 26px;
}

.home-v249-block {
    margin: 0 0 32px;
}

.home-v249-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 13px;
}

.home-v249-section-head h2 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 22px;
}

.home-v249-section-head > a {
    flex: 0 0 auto;
    margin-top: 19px;
    color: var(--cd-green-dark);
    font-size: 12px;
    font-weight: 700;
}

.home-v249-trip {
    padding: 0 0 25px;
    border-bottom: 1px solid var(--cd-line);
}

.home-v249-trip-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 15px;
    margin: 13px 0 17px;
    color: var(--cd-muted);
    font-size: 12px;
}

.home-v249-trip-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.home-v249-trip-meta i {
    color: var(--cd-green-dark);
}

.home-v249-trip-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 13px 18px;
}

.home-v249-primary-link {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 9px 13px;
    border-radius: 4px;
    background: var(--cd-green-dark);
    color: #fff;
    font-weight: 700;
}

.home-v249-trip-actions > a:last-child {
    color: var(--cd-green-dark);
    font-size: 13px;
    font-weight: 700;
}

.home-v249-no-trip {
    display: grid;
    gap: 15px;
    padding-bottom: 26px;
    border-bottom: 1px solid var(--cd-line);
}

.home-v249-no-trip h2 {
    margin-bottom: 7px;
}

.home-v249-no-trip p:not(.section-kicker) {
    max-width: 570px;
    margin: 0;
    color: var(--cd-muted);
    font-size: 14px;
}

.home-v249-no-trip .home-v249-primary-link {
    justify-self: start;
}

.home-v249-count {
    display: inline-grid;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    place-items: center;
    border-radius: 11px;
    background: var(--cd-green-dark);
    color: #fff;
    font-size: 11px;
    line-height: 1;
}

.home-v249-thread-list {
    border-top: 1px solid var(--cd-line);
}

.home-v249-thread-list > a {
    display: grid;
    grid-template-columns: 8px minmax(0, 1fr) 15px;
    align-items: center;
    gap: 9px;
    min-height: 67px;
    padding: 10px 0;
    border-bottom: 1px solid var(--cd-line);
    color: var(--cd-text);
}

.home-v249-thread-list > a > i {
    color: #9aa19b;
    font-size: 12px;
}

.home-v249-thread-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: transparent;
}

.home-v249-thread-list > a.is-unread .home-v249-thread-dot {
    background: var(--cd-green-dark);
}

.home-v249-thread-body {
    min-width: 0;
}

.home-v249-thread-top {
    display: flex;
    justify-content: space-between;
    gap: 9px;
}

.home-v249-thread-top strong {
    overflow: hidden;
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-v249-thread-top time {
    flex: 0 0 auto;
    color: var(--cd-muted);
    font-size: 10px;
}

.home-v249-thread-body small {
    display: block;
    overflow: hidden;
    margin-top: 2px;
    color: var(--cd-muted);
    font-size: 12px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-v249-thread-list > a.is-unread strong {
    color: var(--cd-green-dark);
}

.home-v249-empty {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 11px;
    padding: 16px 0 3px;
    color: var(--cd-muted);
}

.home-v249-empty > i {
    color: var(--cd-green-dark);
    font-size: 24px;
}

.home-v249-empty strong {
    color: var(--cd-text);
}

.home-v249-empty p {
    margin: 3px 0 0;
    font-size: 12px;
}

.home-v249-shortcuts {
    margin: 4px 0 34px;
    border-top: 1px solid var(--cd-line);
}

.home-v249-shortcuts > a {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) 15px;
    align-items: center;
    gap: 11px;
    min-height: 67px;
    padding: 10px 0;
    border-bottom: 1px solid var(--cd-line);
    color: var(--cd-text);
}

.home-v249-shortcuts > a > i:first-child {
    color: var(--cd-green-dark);
    font-size: 20px;
}

.home-v249-shortcuts > a > i:last-child {
    color: #9aa19b;
    font-size: 12px;
}

.home-v249-shortcuts strong,
.home-v249-shortcuts small {
    display: block;
}

.home-v249-shortcuts strong {
    font-size: 14px;
}

.home-v249-shortcuts small {
    margin-top: 2px;
    color: var(--cd-muted);
    font-size: 11px;
}

.home-v249-community {
    padding: 22px 0 5px;
    border-top: 2px solid var(--cd-green-dark);
}

.home-v249-community > div:first-child > strong {
    display: block;
    font-size: 17px;
}

.home-v249-community-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 15px;
}

.home-v249-community-links a {
    display: inline-flex;
    min-height: 39px;
    align-items: center;
    gap: 6px;
    padding: 8px 11px;
    border: 1px solid #b8cdb9;
    border-radius: 3px;
    color: var(--cd-green-dark);
    font-size: 12px;
    font-weight: 700;
}

@media (min-width: 680px) {
    .home-v249-map {
        margin-left: 0;
        margin-right: 0;
        padding-left: 22px;
        padding-right: 22px;
        border-radius: 4px;
    }
}

@media (max-width: 430px) {
    .home-v249-intro {
        padding-bottom: 18px;
    }

    .home-v249-map {
        margin-bottom: 27px;
    }

    .home-v249-map strong {
        font-size: 23px;
    }

    .home-v249-section-head h2 {
        font-size: 20px;
    }

    .home-v249-trip-actions .home-v249-primary-link {
        flex: 1 1 auto;
    }

    .home-v249-community-links {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }

    .home-v249-community-links a {
        justify-content: center;
        padding-left: 5px;
        padding-right: 5px;
    }
}

/* =========================================================
   CycloDort V2.50 - Accueil, visages dans les échanges
   ========================================================= */

.home-v249-thread-list > a {
    grid-template-columns: 46px minmax(0, 1fr) 15px;
    min-height: 74px;
    gap: 11px;
}

.home-v249-thread-avatar {
    position: relative;
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    overflow: visible;
    border-radius: 50%;
    background: var(--cd-green-pale);
    color: var(--cd-green-dark);
    font-size: 18px;
}

.home-v249-thread-avatar img {
    display: block;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
}

.home-v249-thread-unread {
    position: absolute;
    right: -1px;
    bottom: 1px;
    width: 10px;
    height: 10px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--cd-green-dark);
}

.home-v249-thread-dot {
    display: none;
}

@media (max-width: 430px) {
    .home-v249-thread-list > a {
        grid-template-columns: 44px minmax(0, 1fr) 13px;
    }

    .home-v249-thread-avatar,
    .home-v249-thread-avatar img {
        width: 40px;
        height: 40px;
    }
}

/* =========================================================
   CycloDort V2.51 - Accueil plus chaleureux
   ========================================================= */

.home-v251-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(230px, .88fr);
    min-height: 290px;
    margin: 0 0 34px;
    overflow: hidden;
    border-radius: 5px;
    background: #f3f7f1;
}

.home-v251-hero-copy {
    position: relative;
    z-index: 2;
    padding: 34px 30px 30px;
}

.home-v251-hero-copy h1 {
    margin: 0 0 7px;
    font-size: clamp(34px, 4vw, 48px);
    line-height: 1;
}

.home-v251-hero-copy > p:not(.section-kicker) {
    margin: 0;
    color: var(--cd-muted);
    font-size: 17px;
}

.home-v251-hero-photo {
    min-height: 290px;
    background:
        linear-gradient(90deg, rgba(243,247,241,1) 0%, rgba(243,247,241,.18) 28%, rgba(243,247,241,0) 50%),
        url('/cyclistes-cantal.png') center 42% / cover no-repeat;
}

.home-v251-hero-cta {
    display: inline-grid;
    grid-template-columns: 24px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 10px;
    min-width: 285px;
    margin-top: 28px;
    padding: 13px 14px;
    border-radius: 4px;
    background: var(--cd-green-dark);
    color: #fff;
}

.home-v251-hero-cta > i:first-child {
    font-size: 18px;
}

.home-v251-hero-cta > i:last-child {
    font-size: 14px;
    opacity: .8;
}

.home-v251-hero-cta strong,
.home-v251-hero-cta small {
    display: block;
}

.home-v251-hero-cta strong {
    font-size: 15px;
}

.home-v251-hero-cta small {
    margin-top: 2px;
    font-size: 10px;
    opacity: .76;
}

/* Le voyage devient un moment de la page, pas une ligne technique. */
.home-v249-trip,
.home-v251-no-trip {
    position: relative;
    margin-bottom: 34px;
    padding: 24px 0 28px;
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}

.home-v249-trip::before,
.home-v251-no-trip::before {
    content: "";
    position: absolute;
    top: -1px;
    left: 0;
    width: 72px;
    height: 3px;
    background: #e6a23c;
}

.home-v251-no-trip {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 16px;
}

.home-v251-no-trip-icon {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 50%;
    background: #fff3dd;
    color: #b86d00;
    font-size: 22px;
}

.home-v251-no-trip h2 {
    margin: 0 0 6px;
}

.home-v251-no-trip p:not(.section-kicker) {
    max-width: 620px;
    margin: 0 0 15px;
    color: var(--cd-muted);
    font-size: 14px;
}

/* Conversations : un peu plus aérées, comme une vraie messagerie. */
.home-v249-messages {
    margin-bottom: 29px;
}

.home-v249-thread-list {
    border-top: 0;
}

.home-v249-thread-list > a {
    margin: 0 -8px;
    padding: 11px 8px;
    border-bottom: 0;
    border-radius: 4px;
}

.home-v249-thread-list > a + a {
    margin-top: 3px;
}

.home-v249-thread-list > a:hover {
    background: #f6f8f5;
}

/* Présence humaine, sans créer un réseau social. */
.home-v251-people {
    margin: 0 0 34px;
    padding: 24px 0;
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}

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

.home-v251-people-list > a {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    min-width: 0;
    padding: 10px;
    background: #f7f9f6;
    border-radius: 4px;
    color: var(--cd-text);
}

.home-v251-person-avatar {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: var(--cd-green-pale);
    color: var(--cd-green-dark);
}

.home-v251-person-avatar img {
    width: 48px;
    height: 48px;
    object-fit: cover;
}

.home-v251-people-list strong,
.home-v251-people-list small {
    display: block;
}

.home-v251-people-list strong {
    overflow: hidden;
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-v251-people-list small {
    margin-top: 2px;
    color: var(--cd-muted);
    font-size: 10px;
}

/* Raccourcis plus discrets : ils ne doivent plus faire "menu principal". */
.home-v249-shortcuts {
    margin-top: 0;
}

.home-v249-shortcuts > a {
    min-height: 61px;
}

.home-v249-community {
    margin-top: 6px;
    padding-top: 25px;
}

/* Mobile */
@media (max-width: 640px) {
    .home-v251-hero {
        display: block;
        min-height: 0;
        margin: 0 -17px 28px;
        border-radius: 0;
    }

    .home-v251-hero-copy {
        padding: 26px 17px 22px;
    }

    .home-v251-hero-copy h1 {
        font-size: 37px;
    }

    .home-v251-hero-copy > p:not(.section-kicker) {
        font-size: 15px;
    }

    .home-v251-hero-photo {
        min-height: 145px;
        background:
            linear-gradient(180deg, rgba(243,247,241,.96) 0%, rgba(243,247,241,.18) 34%, rgba(243,247,241,0) 62%),
            url('/cyclistes-cantal.png') center 38% / cover no-repeat;
    }

    .home-v251-hero-cta {
        width: 100%;
        min-width: 0;
        margin-top: 22px;
    }

    .home-v249-trip,
    .home-v251-no-trip {
        padding-top: 21px;
        padding-bottom: 23px;
    }

    .home-v251-no-trip {
        grid-template-columns: 44px minmax(0, 1fr);
        gap: 12px;
    }

    .home-v251-no-trip-icon {
        width: 42px;
        height: 42px;
        font-size: 19px;
    }

    .home-v251-people-list {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .home-v251-people-list > a {
        grid-template-columns: 42px minmax(0, 1fr);
        padding: 8px;
    }

    .home-v251-person-avatar,
    .home-v251-person-avatar img {
        width: 40px;
        height: 40px;
    }
}

@media (max-width: 370px) {
    .home-v251-people-list {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   CycloDort V2.52 - Hero avec aperçu réel de la carte
   ========================================================= */

.home-v251-hero-photo {
    position: relative;
    min-height: 290px;
    overflow: hidden;
    background: #edf3ea;
}

.home-v251-hero-photo::before {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0 auto 0 0;
    width: 76px;
    pointer-events: none;
    background: linear-gradient(90deg, #f3f7f1 0%, rgba(243,247,241,.78) 36%, rgba(243,247,241,0) 100%);
}

.home-v251-hero-photo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center center;
}

@media (max-width: 640px) {
    .home-v251-hero-photo {
        min-height: 190px;
    }

    .home-v251-hero-photo::before {
        inset: 0;
        width: auto;
        height: 48px;
        background: linear-gradient(180deg, #f3f7f1 0%, rgba(243,247,241,.65) 38%, rgba(243,247,241,0) 100%);
    }

    .home-v251-hero-photo img {
        object-position: center 43%;
    }
}

/* =========================================================
   CycloDort V2.61 - Appel au don sur l'accueil
   ========================================================= */

.home-v261-donation {
    position: relative;
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 16px;
    margin: 2px 0 34px;
    padding: 24px 0 25px;
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}

.home-v261-donation::before {
    content: "";
    position: absolute;
    top: -1px;
    left: 0;
    width: 82px;
    height: 3px;
    background: #e6a23c;
}

.home-v261-donation-icon {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 4px;
}

.home-v261-donation-icon img {
    display: block;
    width: auto;
    height: 47px;
}

.home-v261-donation-copy h2 {
    margin: 0 0 9px;
    font-size: 21px;
    line-height: 1.25;
}

.home-v261-donation-copy > p:not(.section-kicker) {
    max-width: 650px;
    margin: 0 0 9px;
    color: var(--cd-muted);
    font-size: 13px;
    line-height: 1.55;
}

.home-v261-donation-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;
    margin-top: 15px;
}

.home-v261-donation-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 42px;
    padding: 9px 14px;
    border-radius: 4px;
    background: var(--cd-green-dark);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
}

.home-v261-donation-actions span {
    color: var(--cd-green-dark);
    font-size: 12px;
    font-weight: 700;
}

.home-v261-donation-copy > small {
    display: block;
    margin-top: 12px;
    color: var(--cd-muted);
    font-size: 10px;
}

@media (max-width: 430px) {
    .home-v261-donation {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 11px;
        margin-bottom: 29px;
        padding-top: 21px;
        padding-bottom: 22px;
    }

    .home-v261-donation-icon img {
        height: 38px;
    }

    .home-v261-donation-copy h2 {
        font-size: 18px;
    }

    .home-v261-donation-copy > p:not(.section-kicker) {
        font-size: 12px;
    }

    .home-v261-donation-actions {
        display: block;
    }

    .home-v261-donation-actions a {
        width: 100%;
    }

    .home-v261-donation-actions span {
        display: block;
        margin-top: 8px;
    }
}

