:root {
  color-scheme: light;
  --ink: #20342e;
  --muted: #77827c;
  --green: #255d49;
  --green-dark: #194735;
  --lime: #d4e768;
  --paper: #f7f5ef;
  --white: #fffefa;
  --line: #e7e6dd;
  font-family: "DM Sans", sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body { margin: 0; background: var(--paper); color: var(--ink); }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }

.site-header {
  min-height: 78px; display: grid; grid-template-columns: auto minmax(220px, 1fr) minmax(280px, 1.15fr) auto; align-items: center;
  gap: clamp(12px, 1.2vw, 20px); padding: 0 clamp(24px, 4vw, 72px); background: rgba(32,68,53,.98);
  position: sticky; top: 0; z-index: 10; border-bottom: 2px solid rgba(212,231,104,.8);
  box-shadow: 0 5px 18px rgba(22,48,37,.12); backdrop-filter: blur(14px);
}

.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

.support-main { width: min(1040px, 88%); min-height: calc(100vh - 150px); margin: 0 auto; padding: 62px 0 68px; }
.support-hero { padding: 44px clamp(24px, 7vw, 82px); border-radius: 8px; background: #e9eee4; text-align: center; }
.support-hero h1 { max-width: 720px; margin: 12px auto; font: 700 clamp(32px, 5vw, 48px)/1.12 Manrope, sans-serif; letter-spacing: -1.7px; }
.support-hero > p:not(.section-kicker) { max-width: 620px; margin: 0 auto 22px; color: #627169; font-size: 14px; line-height: 1.7; }
.support-chat-cta { padding: 13px 19px; border: 0; border-radius: 4px; background: var(--green); color: white; font-weight: 700; cursor: pointer; }
.support-chat-cta:hover { background: var(--green-dark); }
.support-section { padding: 48px 0 34px; }
.support-section-heading { margin-bottom: 19px; }
.support-section-heading .section-kicker, .support-host-callout .section-kicker { color: #879446; }
.support-section-heading h2, .support-host-callout h2 { margin: 8px 0 0; font: 700 clamp(24px, 3vw, 32px)/1.2 Manrope, sans-serif; letter-spacing: -.7px; }
.support-faq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.support-faq { padding: 23px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); }
.support-faq h3 { margin-bottom: 9px; font: 700 16px/1.4 Manrope, sans-serif; }
.support-faq p, .support-host-callout p { margin-bottom: 14px; color: #68756e; font-size: 13px; line-height: 1.65; }
.support-faq a, .support-host-callout > a { color: var(--green); font-size: 12px; font-weight: 700; }
.support-faq a:hover, .support-host-callout > a:hover { text-decoration: underline; text-underline-offset: 3px; }
.support-host-callout { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 27px; border-radius: 6px; background: #f0efdf; }
.support-host-callout > div { max-width: 650px; }
.support-host-callout p { margin: 10px 0 0; }
.support-contact { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 13px; padding: 24px 27px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); }
.support-contact .section-kicker { margin-bottom: 7px; color: #879446; }
.support-contact h2 { margin: 0 0 7px; font: 700 20px Manrope, sans-serif; }
.support-contact p:last-child { margin: 0; color: #68756e; font-size: 12px; }
.support-contact-actions { display: grid; justify-items: end; gap: 10px; }
.support-contact-actions a { color: var(--green); font-size: 12px; font-weight: 700; overflow-wrap: anywhere; }
.support-contact-actions a:hover { text-decoration: underline; text-underline-offset: 3px; }
.support-note { margin: 26px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }

.assistant-launcher { position: fixed; z-index: 20; right: 24px; bottom: 24px; width: 60px; height: 60px; display: grid; place-items: center; padding: 0; overflow: hidden; border: 3px solid var(--white); border-radius: 50%; background: var(--green); color: white; box-shadow: 0 8px 26px rgba(18, 52, 37, .28); cursor: pointer; }
.assistant-launcher img { width: 100%; height: 100%; display: block; object-fit: cover; }
.assistant-launcher:hover { background: var(--green-dark); transform: translateY(-1px); }
.assistant-panel { position: fixed; z-index: 21; right: 24px; bottom: 92px; width: min(370px, calc(100vw - 32px)); height: min(510px, calc(100dvh - 120px)); display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--white); box-shadow: 0 14px 45px rgba(22, 48, 37, .22); }
.assistant-panel[hidden] { display: none; }
.assistant-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 13px 16px; background: var(--green); color: white; }
.assistant-avatar { width: 38px; height: 38px; flex: 0 0 auto; border: 2px solid rgba(255,255,255,.8); border-radius: 50%; object-fit: cover; }
.assistant-header > div { display: grid; gap: 4px; }
.assistant-title { font: 700 15px Manrope, sans-serif; }
.assistant-subtitle { color: rgba(255,255,255,.78); font-size: 11px; }
.assistant-close { width: 32px; height: 32px; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; background: transparent; color: white; font-size: 22px; line-height: 1; cursor: pointer; }
.assistant-messages { flex: 1; overflow-y: auto; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 15px; }
.assistant-message { max-width: 90%; padding: 10px 12px; border-radius: 10px; font-size: 12px; line-height: 1.55; }
.assistant-message p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.assistant-message-assistant { background: #eef0e8; }
.assistant-message-visitor { align-self: flex-end; background: var(--green); color: white; }
.assistant-message a { display: inline-block; margin-top: 8px; color: var(--green); font-size: 11px; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.assistant-quick-replies { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 14px 11px; }
.assistant-disclaimer { margin: 0; padding: 0 14px 9px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.assistant-suggestion { padding: 7px 9px; border: 1px solid #d9ded5; border-radius: 20px; background: transparent; color: var(--green); font-size: 10px; cursor: pointer; }
.assistant-suggestion:hover { background: #edf0e5; }
.assistant-form { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--line); }
.assistant-input { min-width: 0; flex: 1; padding: 10px 11px; border: 1px solid #d9ded5; border-radius: 4px; outline-color: var(--green); font-size: 12px; }
.assistant-send { padding: 0 14px; border: 0; border-radius: 4px; background: var(--green); color: white; font-size: 11px; font-weight: 700; cursor: pointer; }
.brand { display: inline-flex; align-items: center; gap: 9px; color: var(--white); font: 800 23px Manrope, sans-serif; letter-spacing: -1.4px; }
.brand-mark { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50% 50% 50% 12%; color: var(--green-dark); background: var(--lime); font: italic 800 22px Georgia, serif; transform: rotate(-8deg); }
.main-nav { display: flex; justify-content: center; gap: clamp(13px, 1.5vw, 20px); min-width: 0; }
.main-nav a, .host-link { color: rgba(255,254,250,.88); font-size: 12px; font-weight: 600; white-space: nowrap; transition: color .2s; }
.main-nav a:hover, .host-link:hover { color: var(--lime); }
.main-nav a[aria-current="page"], .main-nav a.is-selected { color: var(--lime); }
.mobile-only { display: none !important; }
.global-search { width: 100%; max-width: 360px; min-width: 0; justify-self: center; display: flex; align-items: center; overflow: hidden; border: 1px solid rgba(255,254,250,.38); border-radius: 5px; background: rgba(255,255,255,.98); }
.global-search:focus-within { border-color: var(--lime); box-shadow: 0 0 0 2px rgba(212,231,104,.25); }
.global-search input { width: 100%; min-width: 0; padding: 10px 12px; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 11px; }
.global-search input::placeholder { color: #6e7a72; opacity: 1; }
.global-search button { align-self: stretch; min-width: 38px; border: 0; background: var(--lime); color: var(--green-dark); font-size: 22px; line-height: 1; cursor: pointer; }
.global-search button:hover { background: #e2ef9b; }
.header-actions { display: flex; align-items: center; gap: clamp(8px, 1.4vw, 18px); }
.guest-link { padding: 9px 13px; border: 1px solid rgba(255,254,250,.38); border-radius: 4px; color: var(--white); font-size: 11px; font-weight: 700; white-space: nowrap; transition: background .2s, border-color .2s; }
.guest-link:hover { border-color: var(--lime); background: rgba(255,255,255,.1); }
.account-link { color: var(--white); font-size: 11px; font-weight: 700; white-space: nowrap; }
.account-link:hover { color: var(--lime); text-decoration: underline; text-underline-offset: 3px; }
.language-toggle, .profile-button, .host-link { border: 0; background: none; cursor: pointer; }
.language-toggle { border: 1px solid rgba(255,254,250,.42); border-radius: 4px; color: var(--white); font-size: 11px; font-weight: 700; letter-spacing: .5px; padding: 8px; }
.language-toggle:hover { border-color: var(--lime); color: var(--lime); }
.host-link { padding: 10px 0; }
.profile-button { width: 34px; height: 34px; border: 1px solid #d9ded5; border-radius: 50%; font-size: 16px; }

.hero { min-height: 555px; margin: 0 2.3%; border-radius: 8px; position: relative; overflow: hidden; background: #496b5b; color: white; }
.hero-image, .hero-shade { position: absolute; inset: 0; }
.hero-image { overflow: hidden; background: #344d40; }
.hero-image img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 48%; transform: scale(1.015); }
.hero-image img.is-changing { animation: hero-arrive 1.1s ease-out both; }
@keyframes hero-arrive {
  from { opacity: .55; transform: scale(1.075); }
  to { opacity: 1; transform: scale(1.015); }
}
.hero-shade { background: linear-gradient(90deg, rgba(16, 40, 32, .73) 0%, rgba(21, 43, 34, .44) 49%, rgba(23, 42, 35, .12) 100%), linear-gradient(0deg, rgba(13, 33, 25, .3), transparent 48%); }
.hero-content { position: relative; z-index: 1; max-width: 1020px; padding: 75px 0 54px 9.4%; }
.eyebrow, .section-kicker { font-size: 10px; font-weight: 700; letter-spacing: 1.8px; }
.eyebrow { color: #e2eeae; display: flex; align-items: center; gap: 8px; margin: 0 0 19px; }
.eyebrow-dot, .location-pulse { background: var(--lime); width: 7px; height: 7px; border-radius: 50%; }
h1, h2, h3, p { margin-top: 0; }
.hero h1 { font: 700 clamp(39px, 5vw, 62px)/1.09 Manrope, sans-serif; letter-spacing: -2.6px; margin: 0; }
.hero-copy { color: rgba(255,255,255,.84); font-size: 14px; margin: 16px 0 31px; }
.search-panel { width: min(880px, 100%); min-height: 76px; display: flex; align-items: stretch; padding: 8px; background: var(--white); border-radius: 6px; color: var(--ink); box-shadow: 0 12px 36px rgba(7,28,20,.16); }
.search-field { min-width: 0; display: flex; align-items: center; gap: 11px; padding: 0 18px; border-right: 1px solid #e8e9e4; }
.destination-field { position: relative; flex: 1.25; }
.destination-field .field-content { position: relative; flex: 1; }
.commune-suggestions { position: absolute; z-index: 6; top: calc(100% + 14px); left: -30px; right: -18px; max-height: min(310px, 48vh); overflow-y: auto; padding: 8px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); color: var(--ink); box-shadow: 0 14px 32px rgba(7,28,20,.2); }
.commune-suggestions[hidden] { display: none; }
.commune-group-label { position: sticky; top: -8px; padding: 8px 10px 5px; background: var(--white); color: #879446; font-size: 9px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.commune-option { padding: 8px 10px; border-radius: 4px; color: var(--ink); font-size: 12px; cursor: pointer; }
.commune-option:hover, .commune-option[aria-selected="true"] { background: #edf0e5; color: var(--green-dark); }
.commune-list-empty { padding: 12px 10px; color: var(--muted); font-size: 11px; }
.date-field { flex: 1.4; }
.guests-field { flex: .8; }
.field-icon { font-size: 23px; color: var(--green); line-height: 1; }
.calendar-icon { font-size: 18px; }
.people-icon { font-size: 22px; }
.field-content { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.field-label { color: var(--ink); font-size: 11px; font-weight: 700; }
.field-content input, .field-content select { width: 100%; min-width: 0; border: 0; outline: 0; color: #748078; background: transparent; font-size: 11px; }
.field-content select { appearance: none; cursor: pointer; }
.field-content input::placeholder { color: #89918b; opacity: 1; }
.date-range { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.date-choice { min-width: 0; display: flex; flex-direction: column; gap: 3px; color: #89918b; font-size: 9px; }
.date-choice input { width: 100%; min-width: 0; padding: 0; color: #748078; font-size: 10px; }
.date-choice input::-webkit-calendar-picker-indicator { cursor: pointer; }
.search-button { align-self: center; min-height: 54px; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 0 22px; border: 0; border-radius: 4px; background: var(--green); color: white; font-size: 12px; font-weight: 700; cursor: pointer; transition: background .2s; }
.search-button:hover { background: var(--green-dark); }
.search-button span:first-child { font-size: 18px; }
.hero-footnote { color: rgba(255,255,255,.84); font-size: 11px; margin: 18px 0 0; }
.hero-footnote span:first-child { color: var(--lime); font-size: 15px; vertical-align: -1px; margin-right: 3px; }
.hero-location { position: absolute; right: 36px; bottom: 28px; display: flex; align-items: center; gap: 8px; font-size: 11px; color: rgba(255,255,255,.9); }
.location-pulse { width: 6px; height: 6px; }
.hero-controls { position: absolute; z-index: 2; right: 27px; bottom: 55px; display: flex; align-items: center; gap: 8px; }
.hero-arrow { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.48); border-radius: 50%; background: rgba(20,43,33,.28); color: white; cursor: pointer; }
.hero-arrow:hover { background: rgba(20,43,33,.65); }
.hero-toggle { width: 28px; height: 28px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.48); border-radius: 50%; background: rgba(20,43,33,.28); color: white; font-size: 11px; cursor: pointer; }
.hero-toggle:hover { background: rgba(20,43,33,.65); }
.hero-dots { display: flex; gap: 6px; align-items: center; }
.hero-dot { width: 7px; height: 7px; padding: 0; border: 1px solid white; border-radius: 50%; background: transparent; cursor: pointer; }
.hero-dot.is-active { width: 18px; border-radius: 8px; background: white; }
@media (prefers-reduced-motion: reduce) {
  .hero-image img.is-changing { animation: none; }
}

.content-section { padding: 78px 9.4% 72px; }
.accommodation-main { min-height: calc(100vh - 150px); }
.accommodation-heading { padding: 60px 9.4% 22px; }
.accommodation-heading h1 { max-width: 700px; margin: 0 0 10px; font: 700 clamp(30px, 4vw, 43px)/1.15 Manrope, sans-serif; letter-spacing: -1.6px; }
.accommodation-heading > p:last-child { color: var(--muted); font-size: 13px; margin: 0; }
.accommodation-results { padding-top: 18px; }
.accommodation-toolbar { align-items: center; }
.accommodation-search { display: flex; align-items: center; gap: 8px; width: min(250px, 100%); padding: 10px 12px; border: 1px solid #dcded6; border-radius: 4px; color: var(--green); background: var(--white); }
.accommodation-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 11px; color: var(--ink); }
.empty-back { display: inline-block; padding: 11px 15px; border-radius: 4px; background: var(--green); color: white; font-size: 11px; }
.role-main { min-height: calc(100vh - 160px); padding: 55px 9.4% 60px; }
.role-intro { margin-bottom: 29px; }
.role-intro h1 { max-width: 720px; margin: 0 0 10px; font: 700 clamp(30px, 4vw, 43px)/1.15 Manrope, sans-serif; letter-spacing: -1.6px; }
.role-intro > p:last-child { margin: 0; color: var(--muted); font-size: 13px; }
.role-layout { display: grid; grid-template-columns: minmax(260px, .86fr) minmax(0, 1.14fr); gap: 24px; align-items: stretch; }
.role-options { display: flex; flex-direction: column; gap: 9px; }
.role-option { width: 100%; min-height: 76px; display: flex; align-items: center; gap: 13px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 5px; background: var(--white); text-align: left; cursor: pointer; transition: border-color .2s, box-shadow .2s, transform .2s; }
.role-option:hover { border-color: #b7c4b7; transform: translateY(-1px); }
.role-option.is-selected { border-color: var(--green); box-shadow: 0 0 0 1px var(--green); }
.role-icon { width: 37px; height: 37px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: #edf0e5; color: var(--green); font-size: 19px; }
.role-option-copy { min-width: 0; display: flex; flex: 1; flex-direction: column; gap: 4px; }
.role-option-copy strong { font: 700 12px Manrope, sans-serif; }
.role-option-copy > span { color: var(--muted); font-size: 10px; line-height: 1.45; }
.role-arrow { color: #85938a; font-size: 22px; }
.role-detail { min-height: 414px; border: 1px solid var(--line); border-radius: 5px; background: #fbfaf5; }
.role-placeholder { min-height: 414px; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 35px; text-align: center; }
.placeholder-star { width: 42px; height: 42px; display: grid; place-items: center; margin-bottom: 12px; border-radius: 50%; background: #edf0e5; color: #879446; font-size: 20px; }
.role-placeholder h2 { max-width: 320px; font: 700 20px Manrope, sans-serif; margin: 0 0 8px; }
.role-placeholder p { max-width: 300px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.role-detail-content { padding: 28px 30px; }
.detail-kicker { color: #879446; font-size: 9px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; }
.role-detail-content h2 { margin: 8px 0 10px; font: 700 23px/1.25 Manrope, sans-serif; letter-spacing: -.5px; }
.role-description { color: #6f7b73; font-size: 12px; line-height: 1.65; margin: 0 0 22px; }
.role-detail-content h3 { font: 700 12px Manrope, sans-serif; margin: 0 0 11px; }
.role-steps { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 9px; }
.role-steps li { position: relative; padding-left: 22px; color: #5f6e64; font-size: 11px; line-height: 1.55; }
.role-steps li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--green); font-weight: 700; }
.listing-types { margin-top: 21px; padding: 14px 15px; border-radius: 4px; background: #edf0e5; font-size: 10px; }
.listing-types ul { display: flex; gap: 8px; flex-wrap: wrap; list-style: none; padding: 0; margin: 10px 0 0; }
.listing-types li { display: flex; align-items: center; gap: 6px; padding: 7px 9px; border-radius: 3px; background: var(--white); color: #536159; }
.listing-types li span { color: var(--green); font-weight: 700; }
.selection-hint { color: var(--muted); font-size: 10px; margin: 14px 0 0; }
.role-cta { display: inline-flex; align-items: center; justify-content: center; gap: 10px; margin-top: 22px; padding: 12px 16px; border-radius: 4px; background: var(--green); color: white; font-size: 11px; font-weight: 700; }
.role-note { display: flex; align-items: flex-start; gap: 8px; max-width: 740px; margin: 23px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.role-note span:first-child { color: #879446; }
.host-steps { margin-top: 43px; padding-top: 28px; border-top: 1px solid var(--line); }
.host-steps > h2 { margin: 0 0 19px; font: 700 24px Manrope, sans-serif; letter-spacing: -.6px; }
.host-steps-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; padding: 0; margin: 0; list-style: none; counter-reset: hoststep; }
.host-steps-grid li { min-height: 112px; display: flex; flex-direction: column; gap: 15px; padding: 16px; border: 1px solid var(--line); border-radius: 5px; background: var(--white); }
.host-steps-grid li > span { color: #879446; font: 700 11px Manrope, sans-serif; letter-spacing: 1px; }
.host-steps-grid strong { font: 600 12px/1.5 Manrope, sans-serif; }
.traveler-main { min-height: calc(100vh - 160px); padding: 58px 9.4% 65px; }
.traveler-intro { margin-bottom: 30px; }
.traveler-intro h1 { max-width: 720px; margin: 0 0 10px; font: 700 clamp(30px, 4vw, 43px)/1.15 Manrope, sans-serif; letter-spacing: -1.6px; }
.traveler-intro > p:last-child { color: var(--muted); font-size: 13px; margin: 0; }
.traveler-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.traveler-service { min-height: 280px; display: flex; flex-direction: column; align-items: flex-start; padding: 24px 22px; border: 1px solid var(--line); border-radius: 5px; background: var(--white); transition: border-color .2s, transform .2s, box-shadow .2s; }
.traveler-service:hover { transform: translateY(-3px); border-color: #b7c4b7; box-shadow: 0 8px 24px rgba(32,52,46,.07); }
.service-icon { width: 42px; height: 42px; display: grid; place-items: center; margin-bottom: 20px; border-radius: 50%; background: #edf0e5; color: var(--green); font-size: 21px; }
.service-kicker { color: #879446; font-size: 8px; font-weight: 700; letter-spacing: 1.2px; }
.traveler-service h2 { margin: 8px 0; font: 700 18px/1.3 Manrope, sans-serif; }
.traveler-service p { color: var(--muted); font-size: 11px; line-height: 1.65; margin: 0 0 22px; }
.service-link { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 8px; margin-top: auto; color: var(--green); font-size: 10px; font-weight: 700; }
.service-link span:last-child { font-size: 15px; }
.visit-main { min-height: calc(100vh - 160px); padding: 54px 9.4% 72px; }
.visit-intro { max-width: 720px; margin-bottom: 30px; }
.visit-intro h1 { margin: 0 0 11px; font: 700 clamp(34px, 4vw, 48px)/1.12 Manrope, sans-serif; letter-spacing: -1.8px; }
.visit-intro > p:not(.section-kicker) { max-width: 600px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.visit-destinations { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.visit-destinations span { padding: 7px 11px; border: 1px solid #dfe2d8; border-radius: 20px; color: var(--green); background: var(--white); font-size: 10px; font-weight: 700; }
.visit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 19px; }
.visit-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--white); }
.visit-card-image-link { display: block; overflow: hidden; }
.visit-card-image-link:focus-visible, .visit-card h2 a:focus-visible { outline: 3px solid var(--green); outline-offset: 3px; }
.visit-card > img { display: block; width: 100%; aspect-ratio: 1.55; object-fit: cover; background: #e4e6dc; }
.visit-card-image-link img { display: block; width: 100%; aspect-ratio: 1.55; object-fit: cover; background: #e4e6dc; transition: transform .25s ease; }
.visit-card-image-link:hover img { transform: scale(1.035); }
.visit-card-body { display: flex; min-height: 200px; flex-direction: column; align-items: flex-start; padding: 18px 18px 15px; }
.visit-place { margin: 0 0 7px; color: #879446; font-size: 9px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; }
.visit-card h2 { margin: 0 0 8px; font: 700 17px/1.35 Manrope, sans-serif; }
.visit-card h2 a:hover { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.visit-card-body > p:not(.visit-place) { margin: 0 0 17px; color: var(--muted); font-size: 11px; line-height: 1.65; }
.visit-credit { margin-top: auto; color: var(--green); font-size: 9px; font-weight: 600; text-underline-offset: 3px; }
.visit-credit:hover { text-decoration: underline; }
.visit-detail-main { width: min(100% - 10%, 960px); min-height: calc(100vh - 160px); margin: 0 auto; padding: 35px 0 70px; }
.visit-back { display: inline-block; margin-bottom: 20px; color: var(--green); font-size: 11px; font-weight: 700; }
.visit-back:hover { text-decoration: underline; text-underline-offset: 3px; }
.visit-detail { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: var(--white); }
.visit-detail-hero { max-height: 430px; overflow: hidden; background: #e4e6dc; }
.visit-detail-hero[hidden] { display: none; }
.visit-detail-hero { position: relative; }
.visit-detail-hero > img { display: block; width: 100%; max-height: 430px; aspect-ratio: 2.15; object-fit: cover; }
.visit-detail-hero > img.is-changing { animation: visit-gallery-arrive .8s ease-out both; }
@keyframes visit-gallery-arrive {
  from { opacity: .62; transform: scale(1.025); }
  to { opacity: 1; transform: scale(1); }
}
.visit-gallery-controls { position: absolute; right: 18px; bottom: 17px; display: flex; align-items: center; gap: 9px; padding: 7px 9px; border: 1px solid rgba(255,255,255,.35); border-radius: 24px; background: rgba(24, 46, 37, .58); backdrop-filter: blur(6px); }
.visit-gallery-controls[hidden] { display: none; }
.visit-gallery-arrow, .visit-gallery-toggle { width: 30px; height: 30px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; background: transparent; color: white; cursor: pointer; }
.visit-gallery-toggle { font-size: 10px; }
.visit-gallery-arrow:hover, .visit-gallery-toggle:hover { background: rgba(255,255,255,.2); }
.visit-gallery-dots { display: flex; align-items: center; gap: 6px; }
.visit-gallery-dot { width: 8px; height: 8px; padding: 0; border: 1px solid white; border-radius: 50%; background: transparent; cursor: pointer; }
.visit-gallery-dot[aria-current="true"] { width: 18px; border-radius: 8px; background: white; }
.visit-detail-content { padding: 30px 34px 24px; }
.visit-detail-content h1 { margin: 0 0 12px; font: 700 clamp(29px, 4vw, 42px)/1.15 Manrope, sans-serif; letter-spacing: -1.5px; }
.visit-detail-summary { max-width: 720px; margin: 0 0 23px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.visit-detail-address { display: flex; flex-direction: column; gap: 6px; margin: 0 0 18px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: #f6f8f1; }
.visit-detail-address-label { margin: 0; color: #879446; font-size: 9px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; }
.visit-detail-address-link { color: var(--green-dark); font-size: 12px; font-weight: 600; line-height: 1.5; }
.visit-detail-address-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.visit-detail-lines { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 30px; margin: 0; padding: 0; list-style: none; counter-reset: visit-line; }
.visit-detail-lines li { min-height: 48px; display: flex; align-items: flex-start; gap: 10px; padding: 12px 0; border-top: 1px solid var(--line); color: #536259; font-size: 11px; line-height: 1.55; counter-increment: visit-line; }
.visit-detail-lines li::before { content: counter(visit-line, decimal-leading-zero); flex: 0 0 auto; color: #879446; font-size: 9px; font-weight: 700; letter-spacing: .4px; }
.visit-detail-credit { display: inline-block; margin: 0 34px 28px; }
.traveler-note { display: flex; align-items: flex-start; gap: 12px; max-width: 800px; margin-top: 26px; padding: 17px; border-radius: 5px; background: #edf0e5; }
.traveler-note .trust-icon { background: var(--white); }
.traveler-note p { margin: 0; color: #657269; font-size: 11px; line-height: 1.6; }
.traveler-account-cta { margin-top: 19px; }
.account-main { min-height: calc(100vh - 150px); display: flex; justify-content: center; align-items: flex-start; padding: 45px 20px 60px; }
.account-card { width: min(100%, 470px); padding: 30px 34px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); box-shadow: 0 10px 36px rgba(32,52,46,.05); }
.account-back { display: inline-block; margin: 0 0 26px; color: var(--green); font-size: 11px; font-weight: 600; }
.account-card > .section-kicker { margin-bottom: 8px; }
.account-card h1 { margin: 0 0 8px; font: 700 27px/1.2 Manrope, sans-serif; letter-spacing: -.8px; }
.account-subtitle { color: var(--muted); font-size: 11px; line-height: 1.55; margin: 0 0 20px; }
.account-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 4px; background: #f0f1eb; margin-bottom: 17px; }
.account-tab { min-height: 36px; border: 0; border-radius: 3px; background: transparent; color: #647168; font-size: 11px; font-weight: 600; cursor: pointer; }
.account-tab.is-active { background: var(--white); color: var(--green); box-shadow: 0 1px 5px rgba(32,52,46,.12); }
.account-notice { margin: 0 0 15px; padding: 11px 12px; border-radius: 4px; background: #edf0e5; color: #4c6254; font-size: 10px; line-height: 1.6; overflow-wrap: anywhere; }
.account-notice.error { background: #f9e9e5; color: #8d3f32; }
.account-notice.success { background: #e8f1e7; color: #315d3b; }
.account-notice[hidden], .account-form[hidden], .account-tabs[hidden], .account-form [hidden], .account-session[hidden] { display: none; }
.account-form { display: flex; flex-direction: column; gap: 13px; }
.form-field { display: flex; flex-direction: column; gap: 6px; }
.form-field label { color: #3a4a41; font-size: 10px; font-weight: 700; }
.form-field input, .form-field select { width: 100%; min-height: 40px; padding: 9px 11px; border: 1px solid #dfe2d9; border-radius: 3px; outline: 0; background: #fff; color: var(--ink); font-size: 11px; }
.form-field input:focus, .form-field select:focus { border-color: var(--green); box-shadow: 0 0 0 2px rgba(37,93,73,.12); }
.form-field small { color: var(--muted); font-size: 9px; }
.account-submit { width: 100%; min-height: 43px; margin-top: 3px; border: 0; border-radius: 4px; background: var(--green); color: white; font-size: 11px; font-weight: 700; cursor: pointer; }
.account-submit:hover:not(:disabled) { background: var(--green-dark); }
.account-submit:disabled { cursor: not-allowed; opacity: .52; }
.account-footnote { margin: 15px 0 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.account-session { padding: 24px 0 5px; text-align: center; }
.session-icon { width: 42px; height: 42px; display: inline-grid; place-items: center; border-radius: 50%; background: #e8f1e7; color: var(--green); font-weight: 700; }
.account-session h2 { margin: 12px 0 7px; font: 700 19px Manrope, sans-serif; }
.account-session p { color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.secondary-submit { background: #edf0e5; color: var(--green); }
.account-main:has(.account-dashboard:not([hidden])) { padding: 0 0 60px; flex-direction: column; align-items: stretch; }
.account-dashboard[hidden] { display: none; }
.dashboard-hero { background: var(--green-dark); color: #fff; padding: 34px max(20px, calc((100% - 860px) / 2)) 70px; display: flex; align-items: center; gap: 16px; }
.dashboard-hero > div { flex: 1; min-width: 0; }
.dashboard-avatar { flex: none; width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: var(--lime); color: var(--green-dark); font: 800 22px Manrope, sans-serif; }
.dashboard-hero h1 { margin: 0 0 4px; font: 800 26px/1.2 Manrope, sans-serif; letter-spacing: -.6px; overflow-wrap: anywhere; }
.dashboard-hero p { margin: 0; color: #cfe0d6; font-size: 12px; overflow-wrap: anywhere; }
.dashboard-signout { flex: none; padding: 9px 14px; border: 1px solid rgba(255,255,255,.4); border-radius: 4px; background: transparent; color: #fff; font-size: 11px; font-weight: 600; font-family: inherit; cursor: pointer; }
.dashboard-signout:hover { background: rgba(255,255,255,.12); }
.dashboard-grid { width: min(100% - 40px, 860px); margin: -40px auto 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-items: stretch; }
.dashboard-detail { width: min(100% - 40px, 620px); margin: -40px auto 0; }
.dashboard-card, .dashboard-panel { padding: 18px 18px 8px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); box-shadow: 0 6px 22px rgba(32,52,46,.06); }
.dashboard-panel { padding: 24px 26px 26px; }
.dashboard-card h2 { margin: 0 0 8px; font: 700 14px Manrope, sans-serif; }
.dashboard-panel h2 { margin: 0 0 16px; font: 800 22px Manrope, sans-serif; letter-spacing: -.5px; }
.dashboard-panel h3 { margin: 0 0 10px; font: 700 14px Manrope, sans-serif; }
.dashboard-link { display: flex; align-items: center; gap: 10px; padding: 11px 0; color: var(--ink); font-size: 12px; font-weight: 500; }
.dashboard-link::after { content: "›"; margin-left: auto; color: var(--ink); font-size: 18px; }
.dashboard-link:hover { color: var(--green); }
.dashboard-icon { flex: none; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 0; border-top: 1px solid var(--line); font-size: 12px; }
.dashboard-row > span:last-child { color: var(--muted); text-align: right; overflow-wrap: anywhere; }
.dashboard-intro, .dashboard-muted { margin: 0 0 14px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.dashboard-hint { color: var(--muted); font-size: 10px; }
.dashboard-form { margin-top: 12px; }
.dashboard-check { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 12px; cursor: pointer; }
.dashboard-check input { margin-top: 3px; accent-color: var(--green); }
.dashboard-check span { display: flex; flex-direction: column; gap: 3px; }
.dashboard-check small { color: var(--muted); font-size: 10px; line-height: 1.5; }
.dashboard-empty { padding: 18px 0 4px; }
.dashboard-empty p { margin: 0 0 14px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.dashboard-list { margin: 0 0 18px; padding-left: 18px; color: var(--ink); font-size: 12px; line-height: 1.8; }
.dashboard-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.dashboard-cta { display: inline-flex; align-items: center; justify-content: center; width: auto; padding: 0 18px; }
.dashboard-inline-button { border: 0; background: none; color: #8d3f32; font-size: 11px; font-weight: 600; font-family: inherit; cursor: pointer; }
.dashboard-panel .account-back { display: inline-block; margin-bottom: 14px; }
@media (max-width: 860px) { .dashboard-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .dashboard-grid { grid-template-columns: 1fr; } .dashboard-hero { flex-wrap: wrap; } }
.section-heading { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 29px; }
.section-kicker { color: #879446; margin: 0 0 10px; font-size: 9px; }
.section-heading h2, .experience-copy h2 { font: 700 31px/1.2 Manrope, sans-serif; letter-spacing: -1.1px; margin: 0 0 7px; }
.section-subtitle { color: var(--muted); font-size: 12px; margin: 0; }
.text-link { font-size: 11px; font-weight: 700; padding-bottom: 5px; }
.text-link span:last-child { margin-left: 8px; color: var(--green); font-size: 15px; }
.discovery-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 23px; }
.category-tabs { display: flex; gap: 7px; }
.category-tab { border: 1px solid transparent; border-radius: 30px; background: transparent; padding: 9px 16px; color: #6f7b73; font-size: 11px; cursor: pointer; }
.category-tab:hover { border-color: #ccd5c5; }
.category-tab.is-active { background: var(--green); color: white; }
.filter-button { background: transparent; border: 1px solid #dcded6; padding: 9px 13px; border-radius: 4px; font-size: 10px; cursor: pointer; }
.filter-button span:first-child { margin-right: 5px; color: var(--green); font-size: 14px; }
.results-line { color: var(--muted); font-size: 11px; margin: -10px 0 14px; min-height: 13px; }
.listing-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 23px 17px; }
.listing-card { min-width: 0; cursor: pointer; }
.card-image-wrap { position: relative; aspect-ratio: 1.24; border-radius: 5px; overflow: hidden; background: #d8dfd5; }
.card-image { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.listing-card:hover .card-image { transform: scale(1.045); }
.card-badge { position: absolute; left: 11px; top: 11px; border-radius: 2px; background: rgba(255,254,250,.94); padding: 6px 8px; color: #50665a; font-size: 8px; font-weight: 700; letter-spacing: .45px; text-transform: uppercase; }
.favorite-button { position: absolute; top: 9px; right: 9px; width: 30px; height: 30px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,254,250,.94); color: #536159; font-size: 17px; cursor: pointer; }
.favorite-button.is-saved { color: #d15e4e; }
.card-details { padding: 12px 1px 0; }
.card-title-line { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.card-title { margin: 0; font: 700 13px Manrope, sans-serif; line-height: 1.4; }
.card-rating { white-space: nowrap; font-size: 10px; color: #536159; }
.card-rating span { color: #d0a842; font-size: 12px; }
.card-location, .card-caption { color: #7d8780; font-size: 10px; margin: 4px 0 0; }
.card-price { font-size: 11px; margin: 10px 0 0; color: #536159; }
.card-price strong { color: var(--ink); font-weight: 700; }
.card-price small { color: var(--muted); font-size: 9px; }
.empty-state { text-align: center; padding: 52px 10px; color: var(--muted); }
.empty-state[hidden] { display: none; }
.empty-state > span { color: var(--green); font-size: 28px; }
.empty-state h3 { font: 700 19px Manrope, sans-serif; color: var(--ink); margin: 8px 0; }
.empty-state p { font-size: 12px; }
.empty-state button { border: 0; border-radius: 4px; padding: 11px 15px; color: white; background: var(--green); font-size: 11px; cursor: pointer; }
.load-more-wrap { display: flex; justify-content: center; padding-top: 36px; }
.load-more { padding: 13px 20px; background: transparent; border: 1px solid #ccd2c8; border-radius: 4px; font-size: 11px; font-weight: 700; cursor: pointer; }
.load-more span:last-child { color: var(--green); margin-left: 8px; }
.demo-listings-notice { margin: 0 0 19px; padding: 12px 15px; border: 1px solid #e8e2c7; border-radius: 5px; background: #f5f1df; color: #696647; font-size: 11px; line-height: 1.55; }
.demo-listings-notice[hidden] { display: none; }
.demo-card-label { display: inline-block; max-width: 62px; padding: 4px 7px; border-radius: 3px; background: #f5f1df; color: #696647; font-size: 8px; font-weight: 700; line-height: 1.3; text-align: right; text-transform: uppercase; white-space: normal; }
.nigeria-destinations,
.benin-destinations { padding: 0 9.4% 70px; scroll-margin-top: 95px; }
.nigeria-destinations .section-heading,
.benin-destinations .section-heading { margin-bottom: 22px; }
.nigeria-destination-features,
.benin-destination-features { display: grid; gap: 20px; }
.obudu-feature { margin-top: 34px; padding: 28px; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 28px; align-items: center; border: 1px solid #e7e8df; border-radius: 6px; background: #fbfaf6; scroll-margin-top: 100px; }
.nigeria-destination-feature { margin: 0; }
.obudu-feature-copy h3 { margin: 0 0 7px; color: var(--green-dark); font: 700 25px/1.2 Manrope, sans-serif; }
.obudu-feature-copy > p:not(.section-kicker) { margin: 13px 0 0; color: #68736c; font-size: 12px; line-height: 1.75; }
.obudu-feature-copy .obudu-location { margin-top: 0; color: #879080; font-size: 11px; }
.destination-detail-button { display: inline-block; margin-top: 17px; padding: 8px 11px; border: 0; border-radius: 3px; background: #e9eddb; color: var(--green-dark); font-size: 10px; font-weight: 700; cursor: pointer; }
.destination-detail-button:hover, .destination-detail-button:focus-visible { background: #dce6b9; }
.destination-detail-button:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.obudu-photo-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 120px; gap: 7px; }
.obudu-photo-grid img { width: 100%; height: 100%; min-width: 0; object-fit: cover; border-radius: 3px; }
.obudu-photo-grid img:first-child { grid-column: span 2; grid-row: span 2; }
.destination-description { max-width: 520px; }
.destination-slideshow { position: relative; min-width: 0; overflow: hidden; border-radius: 4px; background: #26382d; }
.destination-photo-stage { height: 370px; position: relative; overflow: hidden; background: #26382d; }
.destination-slide-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 1; }
.destination-slide-image[hidden] { display: none; }
.destination-slide-image.is-changing { animation: destination-photo-fade .65s ease both; }
@keyframes destination-photo-fade { from { opacity: .3; } to { opacity: 1; } }
.destination-photo-status { position: absolute; inset: 0; display: grid; place-content: center; gap: 8px; margin: 0; padding: 22px; background: rgba(27,43,34,.88); color: white; font-size: 12px; line-height: 1.55; text-align: center; }
.destination-photo-status[hidden], .destination-photo-caption[hidden] { display: none; }
.destination-photo-status button { justify-self: center; padding: 8px 13px; border: 1px solid rgba(255,255,255,.55); border-radius: 3px; background: transparent; color: white; cursor: pointer; }
.destination-photo-caption { position: absolute; right: 0; bottom: 0; left: 0; display: flex; flex-direction: column; gap: 4px; padding: 42px 16px 12px; background: linear-gradient(transparent, rgba(12,21,16,.88)); color: white; }
.destination-photo-title { font-size: 10px; line-height: 1.4; }
.destination-photo-credit { font-size: 9px; line-height: 1.4; overflow-wrap: anywhere; }
.destination-photo-credit a { color: #e4edc6; text-decoration: underline; }
.destination-slide-controls { min-height: 50px; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 7px 10px; background: #27382f; color: white; }
.destination-slide-controls button { flex: 0 0 auto; width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; background: transparent; color: white; cursor: pointer; }
.destination-slide-controls button:focus-visible { outline: 2px solid var(--lime); outline-offset: 2px; }
.destination-slide-arrow { font-size: 18px; }
.destination-slide-toggle { font-size: 11px; }
.destination-slide-dots { display: flex; align-items: center; justify-content: center; gap: 6px; }
.destination-slide-dots button { width: 8px; height: 8px; padding: 0; border: 0; background: rgba(255,255,255,.54); }
.destination-slide-dots button[aria-current="true"] { background: var(--lime); transform: scale(1.25); }
.destination-photo-counter { min-width: 49px; font-size: 9px; text-align: center; }
.olumo-feature { margin-top: 22px; }
.olumo-feature h4 { margin: 19px 0 0; color: var(--green-dark); font: 700 14px/1.35 Manrope, sans-serif; }
.olumo-feature h4 + p { margin-top: 7px; }
.olumo-feature .olumo-address-heading { margin-top: 20px; }
.olumo-feature .olumo-address { overflow-wrap: anywhere; }
.olumo-feature .olumo-hours, .olumo-feature .olumo-meaning { font-size: 11px; }
.olumo-slideshow { position: relative; min-width: 0; overflow: hidden; border-radius: 4px; background: #e9eddb; }
.olumo-slides { position: relative; height: 390px; }
.olumo-slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .65s ease; }
.olumo-slide.is-active { opacity: 1; }
.olumo-slide-controls { position: absolute; right: 10px; bottom: 10px; left: 10px; display: flex; align-items: center; justify-content: center; gap: 9px; }
.olumo-slide-controls button { min-width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; background: rgba(20,35,29,.7); color: white; cursor: pointer; }
.olumo-slide-controls button:focus-visible { outline: 2px solid var(--lime); outline-offset: 2px; }
.olumo-slide-arrow { font-size: 19px; }
.olumo-slide-toggle { font-size: 12px; }
.olumo-slide-dots { display: flex; align-items: center; gap: 6px; padding: 0 5px; }
.olumo-slide-dots button { min-width: 9px; width: 9px; height: 9px; padding: 0; border: 0; background: rgba(255,255,255,.65); }
.olumo-slide-dots button[aria-current="true"] { background: var(--lime); transform: scale(1.3); }
@media (prefers-reduced-motion: reduce) {
  .olumo-slide { transition: none; }
  .destination-slide-image.is-changing { animation: none; }
}

.experience-banner { margin: 0 9.4% 78px; min-height: 300px; position: relative; display: grid; grid-template-columns: 1fr 1.02fr; border-radius: 6px; overflow: hidden; background: #e9ecdf; }
.experience-copy { padding: 40px 10% 39px 11%; align-self: center; }
.experience-copy h2 { font-size: 29px; margin-bottom: 13px; }
.experience-copy > p:not(.section-kicker) { max-width: 335px; color: #6b786e; font-size: 12px; line-height: 1.7; margin: 0 0 19px; }
.banner-link { display: inline-flex; gap: 10px; align-items: center; color: var(--green); font-size: 11px; font-weight: 700; }
.experience-photo { min-height: 300px; background: url("https://images.unsplash.com/photo-1513364776144-60967b0f800f?auto=format&fit=crop&w=1100&q=80") center/cover; }
.banner-stamp { position: absolute; right: calc(50% - 34px); top: 30px; width: 78px; height: 78px; border-radius: 50%; background: var(--lime); display: grid; place-content: center; text-align: center; color: var(--green-dark); font-size: 7px; font-weight: 800; letter-spacing: .7px; line-height: 1.45; transform: rotate(9deg); }
.banner-stamp span:last-child { font-size: 18px; line-height: 1; }

.trust-strip { padding: 0 11.5% 60px; display: grid; grid-template-columns: repeat(3,1fr); gap: 32px; }
.trust-strip > div { display: flex; align-items: flex-start; gap: 13px; }
.trust-icon { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: #e9eddb; color: var(--green); font-size: 15px; }
.trust-strip p { display: flex; flex-direction: column; gap: 5px; margin: 0; }
.trust-strip strong { font: 700 12px Manrope, sans-serif; }
.trust-strip p span { color: var(--muted); font-size: 10px; line-height: 1.5; }
.site-footer { display: grid; grid-template-columns: minmax(210px, 1.2fr) minmax(190px, .8fr) minmax(230px, 1fr); gap: 30px 52px; padding: 42px clamp(24px, 7.2vw, 110px) 20px; background: #193f33; color: rgba(255,255,255,.72); font-size: 11px; }
.footer-brand { color: var(--white); font-size: 20px; }
.footer-brand .brand-mark { width: 27px; height: 27px; font-size: 18px; }
.footer-brand-block { display: grid; align-content: start; gap: 13px; }
.site-footer p { max-width: 300px; margin: 0; color: rgba(255,255,255,.66); line-height: 1.65; }
.footer-heading { margin: 0 0 13px; color: var(--lime); font-size: 10px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; }
.footer-links, .footer-contact { display: grid; align-content: start; justify-items: start; gap: 11px; }
.footer-links a, .footer-contact a { color: rgba(255,255,255,.86); font-size: 11px; overflow-wrap: anywhere; transition: color .2s; }
.footer-links a:hover, .footer-contact a:hover { color: var(--lime); text-decoration: underline; text-underline-offset: 3px; }
.footer-bottom { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 12px; padding-top: 17px; border-top: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.56); font-size: 10px; }

.listing-dialog { width: min(520px, calc(100% - 32px)); max-height: min(85vh, 780px); padding: 0; border: 0; border-radius: 8px; background: var(--white); color: var(--ink); box-shadow: 0 24px 80px rgba(15,34,25,.25); }
.listing-dialog::backdrop { background: rgba(14,31,24,.55); backdrop-filter: blur(3px); }
.dialog-close { position: absolute; top: 12px; right: 12px; z-index: 1; width: 32px; height: 32px; border: 0; border-radius: 50%; background: rgba(255,254,250,.95); font-size: 21px; cursor: pointer; }
.dialog-image { width: 100%; height: 245px; object-fit: cover; display: block; }
.dialog-body { padding: 23px 26px 27px; }
.dialog-category { color: #879446; font-size: 9px; font-weight: 700; letter-spacing: 1px; }
.dialog-body h2 { font: 700 23px Manrope, sans-serif; margin: 8px 0; }
.dialog-body p { color: #6f7b73; font-size: 12px; line-height: 1.7; }
.dialog-meta { display: flex; gap: 16px; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 11px; }
.destination-detail-dialog { width: min(700px, calc(100% - 32px)); max-height: min(85vh, 800px); padding: 0; border: 0; border-radius: 8px; background: var(--white); color: var(--ink); box-shadow: 0 24px 80px rgba(15,34,25,.25); }
.destination-detail-dialog::backdrop { background: rgba(14,31,24,.55); backdrop-filter: blur(3px); }
.destination-detail-close { position: absolute; top: 12px; right: 12px; z-index: 1; width: 34px; height: 34px; border: 0; border-radius: 50%; background: #eef0e5; color: var(--green-dark); font-size: 23px; line-height: 1; cursor: pointer; }
.destination-detail-content { padding: 38px 42px 42px; }
.destination-detail-content h2 { margin: 0 42px 22px 0; color: var(--green-dark); font: 700 28px/1.2 Manrope, sans-serif; }
.destination-detail-content h3 { margin: 25px 0 7px; color: var(--green-dark); font: 700 16px/1.35 Manrope, sans-serif; }
.destination-detail-content p { margin: 0; color: #5f6d64; font-size: 13px; line-height: 1.8; }
.destination-map-link { display: inline-flex; margin: 0; color: var(--green); font-size: 13px; font-weight: 700; line-height: 1.5; text-decoration: underline; text-underline-offset: 3px; }
.contact-button { width: 100%; margin-top: 18px; padding: 13px; border: 0; border-radius: 4px; background: var(--green); color: white; font-size: 12px; font-weight: 700; cursor: pointer; }
.toast { position: fixed; z-index: 5; left: 50%; bottom: 24px; transform: translate(-50%, 12px); padding: 11px 16px; border-radius: 4px; color: white; background: var(--ink); font-size: 11px; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; }
.toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 1200px) {
  .site-header { grid-template-columns: auto minmax(0, 1fr) auto; padding: 8px 5%; gap: 8px 14px; }
  .brand { grid-column: 1; grid-row: 1; }
  .main-nav { grid-column: 2 / 4; grid-row: 1; justify-content: flex-start; gap: 13px; margin-left: 0; overflow-x: auto; scrollbar-width: none; }
  .global-search { width: 100%; max-width: none; grid-column: 1 / 3; grid-row: 2; }
  .header-actions { grid-column: 3; grid-row: 2; justify-self: end; }
}
@media (max-width: 900px) {
  .site-header { grid-template-columns: auto minmax(0, 1fr) auto; padding: 8px 5%; gap: 8px 14px; }
  .brand { grid-column: 1; grid-row: 1; }
  .main-nav { justify-content: flex-start; gap: 13px; margin-left: 0; overflow-x: auto; scrollbar-width: none; }
  .main-nav { grid-column: 2 / 4; grid-row: 1; }
  .global-search { width: 100%; grid-column: 1 / 3; grid-row: 2; }
  .header-actions { grid-column: 3; grid-row: 2; justify-self: end; }
  .main-nav::-webkit-scrollbar { display: none; }
  .main-nav a { font-size: 11px; }
  .header-actions { gap: 9px; }
  .traveler-services { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .visit-main { padding-left: 6%; padding-right: 6%; }
  .visit-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .hero-content { padding-left: 6%; }
  .content-section { padding-left: 6%; padding-right: 6%; }
  .listing-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 25px 18px; }
  .experience-banner { margin-left: 6%; margin-right: 6%; }
  .trust-strip { padding-left: 7%; padding-right: 7%; gap: 18px; }
}
@media (max-width: 820px) and (min-width: 641px) {
  .site-header { grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; padding: 8px 3%; }
  .main-nav { gap: 9px; }
  .main-nav a, .host-link { font-size: 10px; }
  .header-actions { gap: 7px; }
  .guest-link { display: none; }
}
@media (max-width: 640px) {
  html { scroll-padding-top: 108px; }
  .site-header { min-height: 0; grid-template-columns: auto minmax(0, 1fr); gap: 0 12px; padding: 8px 5% 0; }
  .brand { font-size: 21px; }
  .global-search { grid-column: 1 / -1; grid-row: 2; margin-top: 8px; }
  .global-search input { padding: 9px 11px; }
  .header-actions { grid-column: 2; grid-row: 1; }
  .main-nav { grid-column: 1 / -1; grid-row: 3; justify-content: flex-start; gap: 20px; min-height: 39px; margin-top: 7px; overflow-x: auto; border-top: 1px solid rgba(255,255,255,.18); scrollbar-width: none; }
  .main-nav::-webkit-scrollbar { display: none; }
  .main-nav a { flex: 0 0 auto; font-size: 11px; }
  .header-actions { justify-content: flex-end; gap: 10px; }
  .header-actions .host-link, .header-actions .guest-link, .header-actions .account-link { display: none; }
  .header-actions .account-link { display: inline; }
  .main-nav .mobile-only { display: inline-flex !important; }
  .main-nav .mobile-only[href^="account.html"] { display: none !important; }
  .guest-link { display: none; }
  .account-link { font-size: 9px; }
  .hero { min-height: 570px; margin: 0 10px; }
  .hero-image img { object-position: 57% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(16,40,32,.72), rgba(21,43,34,.25)), linear-gradient(0deg, rgba(13,33,25,.46), transparent 60%); }
  .hero-content { padding: 68px 6% 48px; }
  .hero h1 { font-size: 43px; letter-spacing: -1.8px; }
  .hero-copy { max-width: 300px; line-height: 1.5; margin-bottom: 24px; }
  .search-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 4px 12px 12px; }
  .search-field { padding: 12px 6px; border-bottom: 1px solid #e8e9e4; }
  .destination-field { grid-column: 1 / -1; }
  .commune-suggestions { left: -6px; right: -6px; top: calc(100% + 14px); max-height: 240px; }
  .date-field { grid-column: 1 / -1; border-right: 0; }
  .date-range { gap: 18px; }
  .date-choice input { font-size: 12px; }
  .guests-field { grid-column: 1 / -1; border-right: 0; }
  .search-button { grid-column: 1 / -1; width: 100%; min-height: 46px; margin-top: 10px; }
  .hero-location { right: 16px; bottom: 16px; max-width: 68%; font-size: 9px; }
  .hero-controls { right: auto; left: 16px; bottom: 12px; gap: 5px; }
  .hero-arrow { width: 26px; height: 26px; }
  .hero-dots { gap: 4px; }
  .hero-dot { width: 6px; height: 6px; }
  .hero-dot.is-active { width: 14px; }
  .content-section { padding: 56px 5% 52px; }
  .role-main { padding: 38px 5% 45px; }
  .role-intro { margin-bottom: 22px; }
  .role-intro h1 { font-size: 32px; }
  .role-layout { grid-template-columns: 1fr; gap: 15px; }
  .role-option { min-height: 70px; padding: 11px 12px; }
  .role-detail, .role-placeholder { min-height: 260px; }
  .role-detail-content { padding: 23px 20px; }
  .role-detail-content h2 { font-size: 21px; }
  .role-placeholder { padding: 25px; }
  .host-steps { margin-top: 33px; padding-top: 23px; }
  .host-steps-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .host-steps-grid li { min-height: 100px; padding: 13px; gap: 11px; }
  .host-steps-grid strong { font-size: 11px; }
  .traveler-main { padding: 38px 5% 45px; }
  .traveler-intro { margin-bottom: 22px; }
  .traveler-intro h1 { font-size: 32px; }
  .traveler-services { grid-template-columns: 1fr; gap: 11px; }
  .traveler-service { min-height: 220px; padding: 20px; }
  .visit-main { padding: 38px 5% 48px; }
  .visit-intro { margin-bottom: 23px; }
  .visit-intro h1 { font-size: 34px; }
  .visit-grid { grid-template-columns: 1fr; gap: 13px; }
  .visit-card > img { aspect-ratio: 1.55; }
  .visit-card-body { min-height: 180px; padding: 17px; }
  .visit-detail-main { width: 90%; padding: 24px 0 45px; }
  .visit-detail-hero img { aspect-ratio: 1.35; }
  .visit-gallery-controls { right: 10px; bottom: 10px; gap: 6px; padding: 5px 7px; }
  .visit-gallery-arrow, .visit-gallery-toggle { width: 28px; height: 28px; }
  .visit-detail-content { padding: 23px 18px 18px; }
  .visit-detail-lines { grid-template-columns: 1fr; }
  .visit-detail-lines li { min-height: 42px; }
  .visit-detail-credit { margin: 0 18px 22px; }
  .service-icon { margin-bottom: 14px; }
  .account-main { padding: 28px 12px 42px; }
  .account-card { padding: 24px 20px; }
  .account-card h1 { font-size: 24px; }
  .accommodation-heading { padding: 40px 5% 12px; }
  .accommodation-heading h1 { font-size: 32px; }
  .accommodation-results { padding-top: 20px; }
  .accommodation-toolbar { align-items: stretch; }
  .accommodation-search { width: 100%; }
  .section-heading { align-items: flex-start; gap: 10px; }
  .section-heading h2 { font-size: 25px; }
  .section-subtitle { max-width: 250px; line-height: 1.5; }
  .text-link { white-space: nowrap; margin-top: 24px; font-size: 10px; }
  .discovery-toolbar { align-items: flex-start; flex-direction: column; gap: 12px; }
  .category-tabs { width: 100%; overflow-x: auto; padding-bottom: 3px; }
  .category-tab { white-space: nowrap; padding: 8px 13px; }
  .filter-button { align-self: flex-end; margin-top: -1px; }
  .listing-grid { gap: 22px 11px; }
  .card-image-wrap { aspect-ratio: 1.05; }
  .card-badge { top: 7px; left: 7px; padding: 5px 6px; font-size: 7px; }
  .favorite-button { top: 6px; right: 6px; width: 27px; height: 27px; }
  .card-title { font-size: 11px; }
  .card-rating { font-size: 9px; }
  .card-location, .card-caption { font-size: 9px; }
  .experience-banner { margin: 0 5% 52px; grid-template-columns: 1fr; }
  .experience-copy { padding: 34px 8%; }
  .experience-copy h2 { font-size: 26px; }
  .experience-photo { min-height: 195px; }
  .banner-stamp { right: 24px; top: auto; bottom: 154px; width: 66px; height: 66px; }
  .trust-strip { padding: 0 8% 42px; grid-template-columns: 1fr; gap: 20px; }
  .site-footer { grid-template-columns: 1fr 1fr; gap: 24px 18px; padding: 30px 6% 17px; }
  .footer-brand-block { grid-column: 1 / -1; }
  .footer-links, .footer-contact { gap: 10px; }
  .footer-heading { margin-bottom: 3px; }
  .footer-bottom { flex-direction: column; gap: 6px; }
  .support-main { width: 90%; padding: 34px 0 44px; }
  .support-hero { padding: 32px 20px; }
  .support-hero h1 { letter-spacing: -1px; }
  .support-section { padding: 35px 0 25px; }
  .support-faq-grid { grid-template-columns: 1fr; gap: 10px; }
  .support-faq { padding: 19px; }
  .support-host-callout { align-items: flex-start; flex-direction: column; padding: 21px; }
  .support-contact { align-items: flex-start; flex-direction: column; padding: 21px; }
  .support-contact-actions { justify-items: start; }
  .assistant-launcher { right: 15px; bottom: 15px; width: 54px; height: 54px; }
  .assistant-panel { right: 10px; bottom: 75px; width: min(370px, calc(100vw - 40px)); height: min(520px, calc(100dvh - 95px)); }
  .dialog-image { height: 190px; }
}
@media (prefers-reduced-motion: reduce) {
  .visit-detail-hero > img.is-changing { animation: none; }
  .visit-card-image-link img { transition: none; }
  }

  .sejour-guides {
    padding: 38px 9.4% 35px;
    background: var(--white);
    border-bottom: 1px solid var(--line);
    scroll-margin-top: 88px;
  }
  .sejour-guides-heading { margin: 0 auto 19px; text-align: center; }
  .sejour-guides-heading .section-kicker { margin-bottom: 7px; color: #879446; }
  .sejour-guides-heading h2 { margin: 0 0 6px; font: 700 clamp(22px, 3vw, 30px)/1.2 Manrope, sans-serif; letter-spacing: -.7px; }
  .sejour-guides-heading > p:last-child { margin: 0; color: var(--muted); font-size: 12px; }
  .sejour-guides-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; max-width: 1180px; margin: 0 auto; }
  .sejour-guide-card { min-width: 0; display: grid; grid-template-columns: 38px minmax(0, 1fr) 14px; align-items: center; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 5px; background: #fbfaf5; transition: border-color .18s, transform .18s, box-shadow .18s; }
  .sejour-guide-card:hover, .sejour-guide-card:focus-visible { transform: translateY(-2px); border-color: #bac7b7; box-shadow: 0 7px 18px rgba(32,52,46,.07); }
  .sejour-guide-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: #edf0e5; color: var(--green); font-size: 19px; }
  .sejour-guide-card > span:nth-child(2) { min-width: 0; display: grid; gap: 4px; }
  .sejour-guide-card strong { color: var(--ink); font: 700 12px Manrope, sans-serif; }
  .sejour-guide-card small { color: var(--muted); font-size: 9px; line-height: 1.4; }
  .sejour-guide-arrow { color: var(--green); font-size: 13px; }

.main-nav .marketplace-nav-link { padding: 8px 10px; border-radius: 20px; background: #eef0e8; color: var(--green); font-weight: 700; }
.main-nav .marketplace-nav-link:hover, .main-nav .marketplace-nav-link.is-selected { background: var(--green); color: white; }

.home-promo { width: min(1180px, 88%); min-height: 330px; display: grid; grid-template-columns: 1.06fr .94fr; overflow: hidden; margin: 30px auto 0; border: 1px solid var(--line); border-radius: 9px; background: var(--white); box-shadow: 0 15px 35px rgba(32,52,46,.07); }
.home-promo-visual { position: relative; min-height: 330px; overflow: hidden; display: grid; place-items: center; background: linear-gradient(135deg, #d8e3d0, #a8bc9b); }
.home-promo-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.home-promo-image[hidden] { display: none; }
.home-promo-visual::after { position: absolute; inset: 35% 0 0; content: ""; background: linear-gradient(0deg, rgba(14,35,27,.35), transparent); pointer-events: none; }
.home-promo-label { position: absolute; z-index: 2; left: 20px; bottom: 18px; padding: 7px 10px; border: 1px solid rgba(255,255,255,.7); border-radius: 20px; background: rgba(23,54,41,.74); color: white; font: 700 9px Manrope, sans-serif; letter-spacing: .8px; }
.home-promo-property-art { position: absolute; inset: 0; display: none; overflow: hidden; background: linear-gradient(145deg, #eee8d8, #d6c49e); }
.home-promo-visual[data-space="realestate"] { background: #e8dfca; }
.home-promo-visual[data-space="realestate"] .home-promo-property-art { display: block; }
.promo-property-sun { position: absolute; top: 13%; right: 20%; width: 82px; height: 82px; border-radius: 50%; background: #d7d88f; }
.promo-property-building { position: absolute; z-index: 1; right: 21%; bottom: 15%; color: #8f815f; font-size: clamp(150px, 21vw, 240px); line-height: .95; text-shadow: 0 10px 25px rgba(54,48,33,.12); }
.promo-property-ground { position: absolute; right: -12%; bottom: -29%; width: 125%; height: 55%; border-radius: 50% 50% 0 0; background: #bdc694; }
.home-promo-copy { align-self: center; padding: 34px clamp(25px, 4vw, 55px); }
.home-promo-copy .section-kicker { margin: 0 0 11px; color: #879446; font-size: 9px; font-weight: 700; letter-spacing: 1.3px; }
.home-promo-copy h2 { max-width: 440px; margin: 0 0 11px; font: 800 clamp(25px, 3.3vw, 39px)/1.12 Manrope, sans-serif; letter-spacing: -1.2px; }
.home-promo-copy > p:not(.section-kicker) { max-width: 440px; margin: 0; color: #66736b; font-size: 13px; line-height: 1.7; }
.home-promo-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 21px; color: var(--green); font-size: 12px; font-weight: 700; }
.home-promo-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.home-promo-link > span:last-child { font-size: 16px; }
.home-promo-controls { display: flex; align-items: center; gap: 10px; margin-top: 28px; }
.home-promo-arrow, .home-promo-toggle { width: 31px; height: 31px; display: grid; place-items: center; padding: 0; border: 1px solid #d9ded5; border-radius: 50%; background: transparent; color: var(--green); cursor: pointer; }
.home-promo-arrow:hover, .home-promo-toggle:hover { background: #edf0e5; border-color: #b7c4b7; }
.home-promo-dots { display: flex; align-items: center; gap: 6px; margin: 0 2px; }
.home-promo-dot { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 8px; background: #cbd2c6; cursor: pointer; transition: width .2s, background .2s; }
.home-promo-dot.is-active { width: 19px; background: var(--green); }
.home-promo-toggle { margin-left: auto; font-size: 10px; }
.home-promo-visual.is-changing .home-promo-image, .home-promo-visual.is-changing .home-promo-property-art { animation: promo-arrive .7s ease-out both; }
@keyframes promo-arrive { from { opacity: .55; transform: scale(1.025); } to { opacity: 1; transform: scale(1); } }

.home-main { width: min(1180px, 88%); min-height: calc(100vh - 240px); margin: 0 auto; padding: clamp(46px, 8vw, 100px) 0 52px; }
.home-intro { max-width: 760px; margin: 0 auto 34px; text-align: center; }
.home-intro .section-kicker { margin-bottom: 11px; color: #879446; }
.home-intro h1 { margin: 0 0 12px; font: 800 clamp(34px, 5vw, 56px)/1.1 Manrope, sans-serif; letter-spacing: -2px; }
.home-intro > p:last-child { margin: 0; color: var(--muted); font-size: 15px; }
.home-marketplaces { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.home-marketplace-card { min-height: 285px; display: grid; grid-template-columns: 56px minmax(0, 1fr); align-content: center; align-items: start; gap: 20px; padding: clamp(23px, 4vw, 42px); border: 1px solid var(--line); border-radius: 8px; background: var(--white); background-position: center; background-size: cover; transition: transform .2s, box-shadow .2s, border-color .2s; }
.home-marketplace-card:hover, .home-marketplace-card:focus-visible { transform: translateY(-3px); border-color: #c3d0b1; box-shadow: 0 16px 38px rgba(32,52,46,.09); }
.africa-travel-hero { padding: clamp(48px, 8vw, 100px) 8% 60px; text-align: center; background: linear-gradient(135deg, #f0f3e6, #fbfaf5); }
.africa-travel-hero .section-kicker { color: #879446; margin-bottom: 14px; }
.africa-travel-hero h1 { max-width: 820px; margin: 0 auto 15px; font: 800 clamp(34px, 5vw, 56px)/1.12 Manrope, sans-serif; letter-spacing: -1.8px; }
.africa-travel-hero > p:last-child { max-width: 720px; margin: 0 auto; color: var(--muted); font-size: 14px; line-height: 1.7; }
.africa-country-section { width: min(1180px, 88%); margin: 0 auto; padding: 62px 0 45px; }
.africa-country-section .section-heading { margin-bottom: 24px; }
.africa-country-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.africa-country-card { min-height: 350px; display: flex; align-items: flex-end; padding: clamp(22px, 4vw, 38px); border-radius: 7px; overflow: hidden; position: relative; isolation: isolate; color: white; background-position: center; background-size: cover; }
.africa-country-card::before { position: absolute; z-index: -1; content: ""; inset: 0; background: linear-gradient(0deg, rgba(14,34,26,.88), rgba(14,34,26,.08) 90%); }
.africa-country-benin { background-image: url("images/cover/ganvie.png"); }
.africa-country-nigeria { background-image: url("https://images.unsplash.com/photo-1480714378408-67cf0d13bc1b?auto=format&fit=crop&w=1000&q=80"); }
.africa-country-content { max-width: 450px; }
.africa-country-tag { display: inline-block; margin-bottom: 10px; padding: 6px 9px; border-radius: 3px; background: rgba(255,255,255,.94); color: var(--green-dark); font-size: 8px; font-weight: 800; letter-spacing: .8px; }
.africa-country-content h3 { margin: 0 0 8px; font: 800 clamp(24px, 3vw, 34px)/1.2 Manrope, sans-serif; }
.africa-country-content p { max-width: 380px; margin: 0 0 17px; color: rgba(255,255,255,.88); font-size: 12px; line-height: 1.65; }
.africa-country-cta { display: inline-flex; align-items: center; gap: 11px; padding: 11px 14px; border-radius: 4px; background: white; color: var(--green-dark); font-size: 11px; font-weight: 700; }
.africa-country-cta:hover, .africa-country-cta:focus-visible { background: var(--lime); }
.africa-country-cta span:last-child { font-size: 15px; }
.africa-travel-footnote { margin: 22px 0 0; color: var(--muted); font-size: 11px; text-align: center; }
.africa-travel-immo { width: min(1180px, 88%); margin: 0 auto 72px; padding: 21px 25px; display: flex; justify-content: space-between; align-items: center; gap: 16px; border: 1px solid var(--line); border-radius: 6px; }
.africa-travel-immo p { margin: 0; color: var(--muted); font-size: 12px; }
.africa-travel-immo a { display: inline-flex; align-items: center; gap: 9px; flex: 0 0 auto; color: var(--green); font-size: 11px; font-weight: 700; }
.home-sejour-card { border-color: #dfe6d0; background-image: linear-gradient(90deg, rgba(251,252,246,.96), rgba(247,249,240,.88) 58%, rgba(247,249,240,.5)), url("images/home-africa-travel.png"); }
.home-immo-card { border-color: #e8d8bd; background-image: linear-gradient(90deg, rgba(253,250,244,.96), rgba(249,244,234,.88) 58%, rgba(249,244,234,.48)), url("images/home-immo-wakago.png"); }
.home-marketplace-icon { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: #dfe8d0; color: var(--green); font-size: 27px; }
.home-immo-card .home-marketplace-icon { background: #e8d8bd; color: #765832; }
.home-marketplace-content { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.home-marketplace-content .section-kicker { margin: 0; padding: 6px 9px; border-radius: 999px; background: rgba(232,239,215,.96); color: #365321; font-size: 10px; font-weight: 800; letter-spacing: .9px; line-height: 1.2; }
.home-immo-card .home-marketplace-content .section-kicker { background: rgba(242,226,202,.97); color: #65451f; }
.home-marketplace-content > strong { font: 800 clamp(25px, 3vw, 34px)/1.2 Manrope, sans-serif; letter-spacing: -.7px; }
.home-marketplace-content > span:not(.section-kicker):not(.home-marketplace-cta) { max-width: 410px; color: #657169; font-size: 13px; line-height: 1.7; }
.home-marketplace-cta { display: inline-flex; align-items: center; gap: 10px; margin-top: 7px; color: var(--green); font-size: 12px; font-weight: 700; }
.home-marketplace-cta > span { font-size: 16px; }
.home-note { margin: 26px auto 0; color: var(--muted); font-size: 11px; text-align: center; }
.home-page .site-footer { grid-template-columns: minmax(210px, 1.2fr) minmax(190px, .8fr) minmax(230px, 1fr); }

.immo-main { width: min(1180px, 88%); margin: 0 auto; padding: 34px 0 64px; }
.immo-hero {
  min-height: 290px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: 45px 7%;
  border-radius: 8px;
  background: #e9eee4;
}
.immo-hero-copy { position: relative; z-index: 1; max-width: 580px; }
.immo-hero-copy .section-kicker { color: #78883d; }
.immo-hero h1 { max-width: 570px; margin: 12px 0; font: 800 clamp(34px, 4.5vw, 52px)/1.08 Manrope, sans-serif; letter-spacing: -1.8px; }
.immo-hero-copy > p:not(.section-kicker) { max-width: 490px; color: #5c6c62; font-size: 15px; line-height: 1.7; }
.immo-publish-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 9px; color: var(--green); font-size: 13px; font-weight: 700; }
.immo-publish-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.immo-hero-art { position: absolute; inset: 0 0 0 auto; width: 39%; overflow: hidden; }
.immo-art-sun { position: absolute; top: 25px; right: 20%; width: 72px; height: 72px; border-radius: 50%; background: #d7e594; }
.immo-art-house { position: absolute; right: 17%; bottom: 27px; color: #8b9a5c; font-size: 156px; line-height: .95; }
.immo-art-ground { position: absolute; right: -35px; bottom: -80px; width: 115%; height: 150px; border-radius: 50% 50% 0 0; background: #dce4cd; }
.immo-search-section { margin: 22px 0 48px; padding: 22px 25px 24px; border: 1px solid var(--line); border-radius: 7px; background: var(--white); }
.immo-filter-group { display: flex; align-items: center; gap: 20px; margin-bottom: 18px; }
.immo-filter-label, .immo-select-field > span, .immo-city-field > span { display: block; margin-bottom: 7px; color: #55645c; font-size: 11px; font-weight: 700; }
.immo-filter-label { margin: 0; }
.immo-filter-tabs { display: flex; gap: 6px; }
.immo-filter { min-height: 35px; padding: 8px 13px; border: 1px solid var(--line); border-radius: 4px; background: transparent; color: #56635d; font-size: 11px; cursor: pointer; }
.immo-filter:hover, .immo-filter.is-active { border-color: var(--green); background: var(--green); color: white; }
.immo-search-controls { display: grid; grid-template-columns: 1fr 1fr 1fr auto; align-items: end; gap: 13px; }
.immo-select-field select, .immo-city-field input { width: 100%; height: 43px; padding: 0 12px; border: 1px solid var(--line); border-radius: 4px; background: #fff; color: var(--ink); font-size: 12px; }
.immo-search-submit { min-height: 43px; display: inline-flex; justify-content: center; align-items: center; gap: 8px; padding: 0 18px; border-radius: 4px; background: var(--green); color: white; font-size: 12px; font-weight: 700; }
.immo-search-submit:hover { background: var(--green-dark); }
.immo-results-section { scroll-margin-top: 105px; }
.immo-results-section .section-heading { margin-bottom: 15px; }
.immo-results-section .section-heading h2 { margin: 6px 0; font: 700 clamp(24px, 3vw, 32px) Manrope, sans-serif; letter-spacing: -.7px; }
.immo-results-section .section-subtitle { min-height: 15px; margin: 0; color: var(--muted); font-size: 11px; }
.immo-demo-notice { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 18px; padding: 12px 15px; border: 1px solid #e8e2c7; border-radius: 5px; background: #f5f1df; color: #696647; font-size: 11px; line-height: 1.55; }
.immo-listing-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }
.immo-listing-card { overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--white); }
.immo-card-image { height: 152px; position: relative; overflow: hidden; background: #e7eae2; }
.immo-card-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .3s ease; }
.immo-listing-card:hover .immo-card-image img { transform: scale(1.04); }
.immo-card-image-room { background: linear-gradient(140deg, #e7eddf, #d1dfc4); }
.immo-card-image-apartment { background: linear-gradient(140deg, #e7eaf0, #d2dbe7); }
.immo-card-image-shop { background: linear-gradient(140deg, #f0e8d9, #e4d4b9); }
.immo-card-image-land { background: linear-gradient(140deg, #e9edcf, #d2db9d); }
.immo-demo-badge { position: absolute; top: 11px; left: 11px; padding: 6px 8px; border-radius: 3px; background: rgba(255,254,250,.9); color: #6b704b; font: 700 8px Manrope, sans-serif; letter-spacing: .5px; }
.immo-card-details { padding: 15px; }
.immo-card-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.immo-card-meta span { padding: 5px 7px; border-radius: 3px; background: #f0f1e9; color: #68734c; font-size: 9px; font-weight: 700; }
.immo-card-details h3 { margin: 11px 0 7px; font: 700 15px/1.35 Manrope, sans-serif; }
.immo-card-location { margin: 0; color: #748078; font-size: 10px; }
.immo-card-description { min-height: 34px; margin: 12px 0; color: #657169; font-size: 10px; line-height: 1.6; }
.immo-card-link { display: inline-flex; gap: 7px; align-items: center; color: var(--green); font-size: 10px; font-weight: 700; }
.immo-card-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.immo-empty-state { padding: 55px 15px; text-align: center; color: #758078; }
.immo-empty-state[hidden], .immo-listing-grid[hidden] { display: none; }
.immo-empty-state > span { font-size: 38px; }
.immo-empty-state h3 { margin: 10px 0 5px; color: var(--ink); font: 700 18px Manrope, sans-serif; }
.immo-empty-state p { font-size: 12px; }
.immo-access-card { display: grid; grid-template-columns: 54px minmax(0, 1fr) minmax(230px, .75fr); align-items: center; gap: 22px; margin-top: 40px; padding: 27px; border-radius: 7px; background: #e9eee4; }
.immo-access-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: #d7e2ca; color: var(--green); font-size: 26px; }
.immo-access-copy .section-kicker { color: #78883d; }
.immo-access-copy h2 { margin: 8px 0; font: 700 21px/1.25 Manrope, sans-serif; }
.immo-access-copy > p:last-child { margin: 0; color: #647168; font-size: 11px; line-height: 1.6; }
.immo-price-box { display: grid; gap: 8px; padding: 16px; border: 1px solid rgba(32,52,46,.12); border-radius: 5px; background: var(--white); }
.immo-price-box strong { font: 700 18px Manrope, sans-serif; }
.immo-price-box > span { color: #657169; font-size: 10px; line-height: 1.5; }
.immo-price-box > a { justify-self: start; margin-top: 3px; color: var(--green); font-size: 11px; font-weight: 700; }
.immo-prototype-note { margin: 17px 0 0; color: #717c75; font-size: 10px; line-height: 1.6; text-align: center; }
.global-results-main { width: min(1180px, 88%); min-height: calc(100vh - 160px); margin: 0 auto; padding: 52px 0 68px; }
.global-results-intro { margin-bottom: 28px; }
.global-results-intro .section-kicker { margin-bottom: 10px; color: #879446; }
.global-results-intro h1 { margin: 0 0 10px; font: 800 clamp(30px, 4vw, 43px)/1.15 Manrope, sans-serif; letter-spacing: -1.5px; }
.global-results-intro > p:last-child { margin: 0; color: var(--muted); font-size: 13px; }
.global-results-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }
.global-result-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--white); transition: transform .2s, box-shadow .2s; }
.global-result-card:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(32,52,46,.09); }
.global-result-link { height: 100%; display: flex; flex-direction: column; }
.global-result-image { width: 100%; height: 176px; display: block; object-fit: cover; background: #e9eee4; }
.global-result-content { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 17px; }
.global-result-tag { margin-bottom: 8px; padding: 5px 8px; border-radius: 3px; background: #edf0e5; color: var(--green); font-size: 9px; font-weight: 700; }
.global-result-content h2 { margin: 0 0 8px; font: 700 16px/1.35 Manrope, sans-serif; }
.global-result-content > p:not(.global-result-location) { margin: 0 0 10px; color: #68756e; font-size: 11px; line-height: 1.6; }
.global-result-location { margin: 0 0 14px; color: var(--muted); font-size: 10px; }
.global-result-cta { margin-top: auto; color: var(--green); font-size: 11px; font-weight: 700; }
.global-results-empty { margin-top: 14px; padding: 28px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); text-align: center; }
.global-results-empty[hidden] { display: none; }
.global-results-empty h2 { margin-bottom: 8px; font: 700 19px Manrope, sans-serif; }
.global-results-empty p { margin: 0; color: var(--muted); font-size: 12px; }
@media (max-width: 900px) {
  .home-promo { width: 90%; grid-template-columns: 1fr 1fr; min-height: 300px; }
  .home-promo-visual { min-height: 300px; }
  .home-promo-copy { padding: 27px 24px; }
  .home-promo-copy h2 { font-size: 29px; }
  .home-main { width: 90%; padding-top: 58px; }
  .home-marketplaces { gap: 12px; }
  .home-marketplace-card { min-height: 260px; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; padding: 24px; }
  .home-marketplace-icon { width: 44px; height: 44px; font-size: 22px; }
  .home-page .site-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 20px; padding: 34px 5% 18px; }
  .immo-main { width: 90%; }
  .immo-listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .immo-access-card { grid-template-columns: 45px minmax(0, 1fr); }
  .immo-price-box { grid-column: 2; }
  .immo-page .site-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 20px; padding: 34px 5% 18px; }
  .global-results-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .global-results-main { width: 90%; }
}
@media (max-width: 640px) {
  .home-promo { grid-template-columns: 1fr; margin-top: 17px; }
  .home-promo-visual { min-height: 205px; }
  .home-promo-copy { padding: 22px 20px 19px; }
  .home-promo-copy h2 { font-size: 27px; }
  .home-promo-copy > p:not(.section-kicker) { font-size: 11px; }
  .home-promo-link { margin-top: 14px; }
  .home-promo-controls { margin-top: 19px; }
  .home-main { width: 90%; min-height: auto; padding: 44px 0 38px; }
  .home-intro { margin-bottom: 23px; }
  .home-intro h1 { font-size: 36px; letter-spacing: -1.2px; }
  .home-intro > p:last-child { font-size: 12px; }
  .home-marketplaces { grid-template-columns: 1fr; gap: 11px; }
  .home-marketplace-card { min-height: 205px; grid-template-columns: 42px minmax(0, 1fr); gap: 13px; padding: 22px 18px; }
  .home-marketplace-icon { width: 42px; height: 42px; font-size: 21px; }
  .home-marketplace-content { gap: 9px; }
  .home-marketplace-content > strong { font-size: 27px; }
  .home-marketplace-content > span:not(.section-kicker):not(.home-marketplace-cta) { font-size: 11px; }
  .home-note { font-size: 10px; line-height: 1.5; }
  .home-page .site-footer { grid-template-columns: 1fr 1fr; gap: 24px 18px; padding: 30px 6% 17px; }
  .immo-main { width: 90%; padding: 20px 0 42px; }
  .immo-hero { min-height: 285px; padding: 34px 7%; }
  .immo-hero-copy { max-width: 78%; }
  .immo-hero h1 { font-size: 34px; letter-spacing: -1.2px; }
  .immo-hero-copy > p:not(.section-kicker) { font-size: 12px; }
  .immo-hero-art { width: 44%; opacity: .65; }
  .immo-art-sun { right: 9%; width: 48px; height: 48px; }
  .immo-art-house { right: 2%; bottom: 32px; font-size: 105px; }
  .immo-search-section { margin: 14px 0 35px; padding: 17px 14px; }
  .immo-filter-group { align-items: flex-start; flex-direction: column; gap: 9px; }
  .immo-filter-tabs { width: 100%; }
  .immo-filter { flex: 1; padding: 8px 7px; font-size: 10px; }
  .immo-search-controls { grid-template-columns: 1fr 1fr; gap: 10px; }
  .immo-search-controls > .immo-select-field:first-child { grid-column: 1 / -1; }
  .immo-city-field { grid-column: 1 / -1; }
  .immo-search-submit { grid-column: 1 / -1; }
  .immo-listing-grid { grid-template-columns: 1fr; gap: 12px; }
  .immo-card-image { height: 170px; }
  .immo-access-card { grid-template-columns: 40px minmax(0, 1fr); gap: 13px; margin-top: 29px; padding: 18px; }
  .immo-access-icon { width: 40px; height: 40px; font-size: 21px; }
  .immo-access-copy h2 { font-size: 18px; }
  .immo-price-box { grid-column: 1 / -1; }
  .global-results-main { padding: 34px 0 45px; }
  .global-results-grid { grid-template-columns: 1fr; gap: 12px; }
  .global-result-image { height: 190px; }
}
@media (max-width: 900px) {
  .sejour-guides-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nigeria-destinations,
  .benin-destinations { padding-left: 6%; padding-right: 6%; }
  .obudu-feature { grid-template-columns: 1fr; gap: 20px; padding: 22px; }
  .destination-photo-stage { height: 330px; }
  .olumo-slides { height: 340px; }
}
@media (max-width: 640px) {
  .sejour-guides { padding: 29px 5%; scroll-margin-top: 108px; }
  .nigeria-destinations,
  .benin-destinations { padding: 0 5% 46px; scroll-margin-top: 108px; }
  .nigeria-destination-card,
  .benin-destination-card { min-height: 160px; padding: 13px; }
  .nigeria-destination-card > span,
  .benin-destination-card > span { font-size: 7px; line-height: 1.4; }
  .nigeria-destination-card h3,
  .benin-destination-card h3 { font-size: 14px; }
  .obudu-feature { margin-top: 22px; padding: 17px; }
  .obudu-feature-copy h3 { font-size: 22px; }
  .obudu-photo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 95px; gap: 5px; }
  .obudu-photo-grid img:first-child { grid-column: span 2; grid-row: span 2; }
  .destination-photo-stage { height: 285px; }
  .destination-slide-controls { gap: 5px; padding-right: 6px; padding-left: 6px; }
  .destination-slide-controls button { width: 29px; height: 29px; }
  .destination-slide-dots { gap: 4px; }
  .destination-slide-dots button { width: 7px; height: 7px; }
  .destination-photo-counter { min-width: 43px; font-size: 8px; }
  .olumo-slides { height: 300px; }
  .sejour-guides-heading { margin-bottom: 15px; }
  .sejour-guides-heading > p:last-child { font-size: 10px; line-height: 1.5; }
  .sejour-guides-grid { gap: 8px; }
  .sejour-guide-card { grid-template-columns: 32px minmax(0, 1fr) 11px; gap: 7px; padding: 10px 8px; }
  .sejour-guide-icon { width: 32px; height: 32px; font-size: 16px; }
  .sejour-guide-card strong { font-size: 10px; }
  .sejour-guide-card small { font-size: 8px; }
}
@media (max-width: 900px) {
  .africa-country-section, .africa-travel-immo { width: 90%; }
}
@media (max-width: 640px) {
  .africa-travel-hero { padding: 43px 6% 39px; }
  .africa-travel-hero h1 { font-size: 34px; letter-spacing: -1.1px; }
  .africa-travel-hero > p:last-child { font-size: 11px; }
  .africa-country-section { padding: 39px 0 32px; }
  .africa-country-grid { grid-template-columns: 1fr; gap: 13px; }
  .africa-country-card { min-height: 265px; padding: 22px; }
  .africa-travel-immo { margin-bottom: 45px; padding: 17px; align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .home-promo-dot { transition: none; }
  .home-promo-visual.is-changing .home-promo-image, .home-promo-visual.is-changing .home-promo-property-art { animation: none; }
  .sejour-guide-card { transition: none; }
}

/* Benin destination gallery aliases */
.benin-destinations { padding: 72px 8% 88px; }
.benin-destination-features { display: grid; gap: 20px; }
.benin-destination-features .destination-feature { }
@media (max-width: 700px) { .benin-destinations { padding: 46px 5% 58px; } }

/* Réservation et favoris */
.waka-dialog { width: min(440px, calc(100vw - 24px)); max-height: calc(100vh - 24px); padding: 0; border: 0; border-radius: 8px; overflow: auto; }
.waka-dialog::backdrop { background: rgba(20, 30, 25, .55); }
.waka-dialog-form { position: relative; display: grid; gap: 13px; padding: 24px; }
.waka-dialog-close { position: absolute; top: 10px; right: 12px; border: 0; background: transparent; font-size: 26px; line-height: 1; cursor: pointer; }
.waka-dialog-head h2 { margin: 0 0 4px; font: 800 20px/1.2 Manrope, sans-serif; }
.waka-dialog-head p, .waka-note { margin: 0; color: #5d6a62; font-size: 13px; }
.waka-field { display: grid; gap: 5px; font-size: 12px; font-weight: 700; }
.waka-field input, .waka-field select, .waka-field textarea { width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 4px; font: inherit; font-weight: 400; }
.waka-total { margin: 0; font-weight: 800; }
.waka-status { margin: 0; padding: 10px; border-radius: 4px; font-size: 12px; }
.waka-status.is-ok { background: #e3f1e6; color: #1d5a31; }
.waka-status.is-error { background: #fbe7e4; color: #8f2b1f; }
.waka-primary { display: inline-flex; justify-content: center; align-items: center; min-height: 42px; padding: 0 18px; border: 0; border-radius: 4px; background: var(--green); color: #fff; font: 700 13px Manrope, sans-serif; cursor: pointer; }
.waka-primary:hover { background: var(--green-dark); }
.waka-primary:disabled { opacity: .6; cursor: wait; }
.card-actions { display: flex; gap: 8px; margin-top: 10px; }
.card-actions .waka-primary { min-height: 34px; padding: 0 14px; font-size: 12px; }
.waka-heart { min-height: 34px; padding: 0 12px; border: 1px solid var(--line); border-radius: 4px; background: #fff; color: var(--green); font: 700 12px Manrope, sans-serif; cursor: pointer; }
.waka-heart.is-saved { background: #e8f0e4; }
.dashboard-booking { display: grid; gap: 6px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.dashboard-booking .dashboard-actions { margin-top: 4px; }
.dashboard-badge { display: inline-block; padding: 2px 8px; border-radius: 10px; background: #edf0e5; font-size: 11px; font-weight: 700; }
.dashboard-badge.is-pending { background: #fff3d6; }
.dashboard-badge.is-confirmed, .dashboard-badge.is-completed { background: #e3f1e6; }
.dashboard-badge.is-cancelled { background: #f1e3e1; }
.dashboard-list-box { padding: 10px 0; border-bottom: 1px solid var(--line); }
.dashboard-list-box summary { cursor: pointer; }

/* ===== Espace PRO ===== */
.pro-shell { max-width: 1120px; margin: 0 auto; padding: 24px 16px 64px; font-family: "DM Sans", sans-serif; }
.pro-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.pro-head h1 { margin: 0; font-family: "Manrope", sans-serif; }
.pro-muted { color: #6b6b6b; }
.pro-card { background: #fff; border: 1px solid #e4e0d6; border-radius: 14px; padding: 18px; margin: 14px 0; }
.pro-center { text-align: center; max-width: 520px; margin: 48px auto; }
.pro-tabs { display: flex; gap: 6px; overflow-x: auto; border-bottom: 1px solid #e4e0d6; margin: 16px 0; }
.pro-tabs a { padding: 10px 14px; text-decoration: none; color: #333; white-space: nowrap; border-bottom: 3px solid transparent; }
.pro-tabs a.is-active { border-color: #0b6b4f; color: #0b6b4f; font-weight: 700; }
.pro-btn, .pro-actions button, .pro-chat aside button { background: #0b6b4f; color: #fff; border: 0; border-radius: 10px; padding: 9px 14px; cursor: pointer; font: inherit; text-decoration: none; display: inline-block; }
.pro-btn.ghost { background: #fff; color: #0b6b4f; border: 1px solid #0b6b4f; }
.pro-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.pro-actions button { padding: 5px 9px; font-size: 13px; }
.pro-form { display: grid; gap: 12px; }
.pro-form label, .pro-filters label { display: grid; gap: 4px; font-weight: 600; font-size: 14px; }
.pro-form input, .pro-form select, .pro-form textarea, .pro-filters input, .pro-filters select, .pro-inline input, .pro-inline select { padding: 9px 10px; border: 1px solid #cfcabd; border-radius: 8px; font: inherit; width: 100%; box-sizing: border-box; }
.pro-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.pro-check { display: flex !important; align-items: center; gap: 8px; }
.pro-check input { width: auto; }
.pro-filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin-bottom: 12px; }
.pro-inline { display: flex; gap: 8px; margin: 8px 0; }
.pro-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 12px 0; }
.pro-kpi { background: #fff; border: 1px solid #e4e0d6; border-radius: 14px; padding: 14px; display: grid; gap: 2px; }
.pro-kpi strong { font-size: 22px; font-family: "Manrope", sans-serif; }
.pro-kpi span, .pro-kpi small { color: #6b6b6b; font-size: 13px; }
.pro-chart { display: flex; align-items: flex-end; gap: 12px; height: 180px; padding: 12px; background: #fff; border: 1px solid #e4e0d6; border-radius: 14px; }
.pro-bar { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 4px; }
.pro-bar span { width: 100%; background: #0b6b4f; border-radius: 6px 6px 0 0; min-height: 2px; }
.pro-list { list-style: none; padding: 0; margin: 8px 0; display: grid; gap: 8px; }
.pro-list li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 12px; background: #fff; border: 1px solid #e4e0d6; border-radius: 10px; }
.pro-list small { color: #6b6b6b; }
.pro-table-wrap { overflow-x: auto; }
.pro-table { width: 100%; border-collapse: collapse; background: #fff; }
.pro-table th, .pro-table td { padding: 10px; border-bottom: 1px solid #eee; text-align: left; vertical-align: top; font-size: 14px; }
.pro-badge { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 12px; background: #eee; }
.st-confirmed, .kyc-verified { background: #d8f3e7; color: #0b6b4f; }
.st-pending, .kyc-pending { background: #fff1c9; color: #8a6200; }
.st-cancelled, .st-declined, .kyc-rejected { background: #fde0dd; color: #a02a1e; }
.st-completed { background: #dde8fb; color: #234d9c; }
.pro-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; margin-top: 14px; }
.pro-offer { background: #fff; border: 1px solid #e4e0d6; border-radius: 14px; padding: 12px; }
.pro-offer img, .pro-noimg { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; background: #eee; display: grid; place-items: center; color: #888; }
.pro-logo { max-width: 120px; border-radius: 10px; }
.pro-bell { position: relative; background: #fff; border: 1px solid #e4e0d6; border-radius: 999px; width: 44px; height: 44px; cursor: pointer; font-size: 18px; }
.pro-dot { position: absolute; top: -4px; right: -4px; background: #d33; color: #fff; border-radius: 999px; font-size: 11px; padding: 1px 6px; }
.pro-chat { display: grid; grid-template-columns: 180px 1fr; gap: 12px; margin-bottom: 16px; }
.pro-chat aside { display: grid; gap: 6px; align-content: start; }
.pro-chat aside button.is-active { background: #063d2d; }
.pro-msgs { min-height: 200px; max-height: 340px; overflow-y: auto; display: grid; gap: 6px; align-content: start; padding: 10px; background: #fff; border: 1px solid #e4e0d6; border-radius: 10px; }
.pro-msgs p { margin: 0; padding: 8px 12px; border-radius: 12px; max-width: 75%; display: grid; }
.pro-msgs .me { background: #d8f3e7; justify-self: end; }
.pro-msgs .them { background: #eee; }
.pro-msgs small { color: #777; font-size: 11px; }
.pro-reviews blockquote { margin: 6px 0 0; padding-left: 10px; border-left: 3px solid #0b6b4f; color: #444; }
.pro-dialog { border: 0; border-radius: 14px; padding: 18px; max-width: 460px; width: calc(100% - 32px); }
.pro-toast { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); background: #063d2d; color: #fff; padding: 10px 18px; border-radius: 10px; z-index: 9999; }
.pro-toast.is-error { background: #a02a1e; }
@media (max-width: 640px) { .pro-chat { grid-template-columns: 1fr; } }.dashboard-danger { background: #fff; color: #a02a1e; border: 1px solid #a02a1e; }
.dashboard-pro-banner { display: block; max-width: 1100px; margin: 16px auto; padding: 16px 20px; background: #c8e63c; color: #063d2d; font-weight: 800; border-radius: 14px; text-decoration: none; text-align: center; font-size: 18px; }

/* ===== WakaListingCard ===== */
.lc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 22px; }
.lc-card { --lc-green: #0b6b4f; display: flex; flex-direction: column; background: #fff; border: 1px solid #e8e4d9; border-radius: 18px; box-shadow: 0 2px 10px rgba(6, 61, 45, .07); overflow: hidden; font-family: "DM Sans", sans-serif; transition: box-shadow .25s ease, transform .25s ease; }
.lc-card:hover { box-shadow: 0 10px 28px rgba(6, 61, 45, .15); transform: translateY(-2px); }
.lc-head { padding: 12px 14px 10px; display: grid; gap: 4px; }
.lc-head-line { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.lc-category { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--lc-green); }
.lc-badges { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.lc-badge { font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: #eee; color: #333; }
.lc-badge-new { background: #c8e63c; color: #063d2d; }
.lc-badge-verified { background: #d8f3e7; color: var(--lc-green); }
.lc-place { margin: 0; display: flex; align-items: center; gap: 5px; font-size: 13px; color: #666; }
.lc-media { position: relative; aspect-ratio: 16 / 9; background: #ece8dc; overflow: hidden; }
.lc-media-hit { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; display: block; }
.lc-slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .7s ease; will-change: opacity; }
.lc-slide.is-active { opacity: 1; }
.lc-noimg { position: absolute; inset: 0; display: grid; place-items: center; color: #999; }
.lc-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to bottom, rgba(0,0,0,.18), transparent 35%, transparent 65%, rgba(0,0,0,.28)); }
.lc-fav { position: absolute; top: 10px; right: 10px; width: 38px; height: 38px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: #333; display: grid; place-items: center; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.2); transition: transform .15s ease, color .15s ease; }
.lc-fav:hover { transform: scale(1.1); }
.lc-fav.is-saved { color: #e0245e; }
.lc-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border-radius: 50%; border: 0; background: rgba(255,255,255,.9); font-size: 20px; line-height: 1; cursor: pointer; opacity: 0; transition: opacity .2s ease; }
.lc-arrow-prev { left: 8px; } .lc-arrow-next { right: 8px; }
.lc-media:hover .lc-arrow, .lc-media:focus-within .lc-arrow { opacity: 1; }
.lc-dots { position: absolute; left: 0; right: 0; bottom: 8px; display: flex; justify-content: center; gap: 5px; }
.lc-dot { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.6); cursor: pointer; transition: width .25s ease, background .25s ease; }
.lc-dot.is-active { width: 18px; border-radius: 4px; background: #fff; }
.lc-body { padding: 14px; display: grid; gap: 9px; flex: 1; align-content: start; }
.lc-title { margin: 0; font: 800 17px/1.25 "Manrope", sans-serif; color: #17261f; }
.lc-desc { margin: 0; color: #666; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lc-amenities { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.lc-amenities li { display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border-radius: 999px; background: #f5f2e8; font-size: 12px; color: #444; }
.lc-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 13px; color: #555; }
.lc-rating b { color: #17261f; }
.lc-chip { font-size: 12px; padding: 2px 8px; border-radius: 6px; background: #f1f1ee; }
.lc-chip-ok { background: #e3f6ec; color: var(--lc-green); }
.lc-price { margin: 2px 0 0; }
.lc-price strong { font: 800 19px "Manrope", sans-serif; color: #17261f; }
.lc-price small { color: #777; }
.lc-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.lc-btn { flex: 1 1 auto; padding: 10px 12px; border-radius: 10px; font: 700 14px "DM Sans", sans-serif; cursor: pointer; border: 1px solid var(--lc-green); transition: background .2s ease, color .2s ease; }
.lc-btn-primary { background: var(--lc-green); color: #fff; }
.lc-btn-primary:hover { background: #084f3a; }
.lc-btn-ghost { background: #fff; color: var(--lc-green); }
.lc-btn-ghost:hover { background: #eef7f2; }
.lc-card :focus-visible { outline: 3px solid #c8e63c; outline-offset: 2px; }
.lc-lightbox { border: 0; padding: 0; background: rgba(0,0,0,.92); max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; }
.lc-lightbox::backdrop { background: rgba(0,0,0,.9); }
.lc-lb-figure { margin: 0; height: 100%; display: grid; grid-template-rows: 1fr auto; place-items: center; padding: 56px 64px 16px; box-sizing: border-box; }
.lc-lb-figure img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; animation: lcfade .35s ease; }
.lc-lb-figure figcaption { color: #fff; text-align: center; display: grid; gap: 2px; padding-top: 10px; }
.lc-lb-figure figcaption span, .lc-lb-figure small { color: #ccc; }
.lc-lb-close { position: absolute; top: 12px; right: 16px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.15); color: #fff; font-size: 28px; cursor: pointer; }
.lc-lb-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255,255,255,.15); color: #fff; font-size: 30px; cursor: pointer; }
.lc-lb-prev { left: 12px; } .lc-lb-next { right: 12px; }
.lc-contact { --lc-green: #0b6b4f; border: 0; border-radius: 16px; padding: 20px; width: min(440px, calc(100% - 32px)); }
.lc-contact textarea { width: 100%; box-sizing: border-box; padding: 10px; border: 1px solid #cfcabd; border-radius: 8px; font: inherit; }
.lc-contact-status { min-height: 1.2em; color: var(--lc-green, #0b6b4f); font-size: 14px; }
@keyframes lcfade { from { opacity: 0; transform: scale(.98); } to { opacity: 1; transform: none; } }
@media (hover: none) { .lc-arrow { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .lc-slide, .lc-card, .lc-lb-figure img { transition: none; animation: none; } }
@media (max-width: 480px) { .lc-grid { grid-template-columns: 1fr; } .lc-lb-figure { padding: 56px 8px 12px; } }.lc-actions { margin-top: auto; padding-top: 4px; }

/* ===== Espace PRO : disposition tableau de bord (menu latéral) ===== */
.pro-shell { max-width: 1280px; }
.pro-app { display: grid; grid-template-columns: 250px 1fr; background: #f4f1e8; border-radius: 18px; overflow: hidden; border: 1px solid #e4e0d6; min-height: 640px; }
.pro-side { background: #fff; border-right: 1px solid #e4e0d6; display: flex; flex-direction: column; }
.pro-side-brand { display: flex; align-items: center; gap: 10px; padding: 18px; background: #2b5a43; color: #fff; font: 800 22px "Manrope", sans-serif; text-decoration: none; letter-spacing: .04em; }
.pro-profile { display: flex; align-items: center; gap: 10px; margin: 14px; padding: 12px; background: #4a4535; color: #fff; border-radius: 12px; }
.pro-profile img, .pro-avatar { width: 48px; height: 48px; border-radius: 10px; object-fit: cover; flex: none; }
.pro-avatar { display: grid; place-items: center; background: #c8e63c; color: #063d2d; font: 800 20px "Manrope", sans-serif; }
.pro-avatar.sm { width: 38px; height: 38px; border-radius: 50%; font-size: 15px; }
.pro-profile div { display: grid; min-width: 0; }
.pro-profile strong { font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pro-profile small { font-size: 11px; color: #ddd; overflow: hidden; text-overflow: ellipsis; }
.pro-profile em { font-style: normal; font-size: 10px; width: fit-content; margin-top: 3px; }
.pro-nav { display: grid; padding: 4px 0; flex: 1; align-content: start; }
.pro-nav a { display: flex; align-items: center; gap: 12px; padding: 13px 20px; color: #2a2a2a; text-decoration: none; font-weight: 500; border-left: 3px solid transparent; }
.pro-nav a span { width: 22px; text-align: center; }
.pro-nav a:hover { background: #f5f3ec; }
.pro-nav a.is-active { background: #eef3ee; border-color: #2b5a43; font-weight: 700; color: #1f4a35; }
.pro-support { margin: 14px; padding: 10px 14px; border: 1px solid #cfcabd; border-radius: 10px; color: #2b5a43; font-weight: 700; text-decoration: none; background: #fbfaf5; }
.pro-main { padding: 18px 22px 28px; min-width: 0; }
.pro-topbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.pro-topbar h1 { margin: 0; font: 800 26px "Manrope", sans-serif; color: #2b3b32; }
.pro-topbar h1 span { font-weight: 500; }
.pro-kpis-top { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.pro-kpis-top .pro-kpi { display: flex; align-items: center; gap: 12px; border-radius: 12px; }
.pro-kpis-top .pro-kpi i { font-style: normal; font-size: 30px; }
.pro-kpis-top .pro-kpi strong { font-size: 22px; }
.pro-stars { color: #f0a500; font-size: 14px; letter-spacing: 1px; }
.pro-two { display: grid; grid-template-columns: 1.6fr 1fr; gap: 16px; margin-top: 16px; }
.pro-two-even { grid-template-columns: 1fr 1fr; }
.pro-widget { background: #fff; border: 1px solid #e4e0d6; border-radius: 12px; padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.pro-widget h2 { margin: 0; padding: 14px 18px; font: 700 16px "Manrope", sans-serif; border-bottom: 1px solid #eee; }
.pro-line-chart { width: 100%; height: 220px; padding: 10px 14px 0; box-sizing: border-box; }
.pro-grid-line { stroke: #ececec; stroke-width: 1; }
.pro-area { fill: rgba(70, 160, 110, .22); }
.pro-line { fill: none; stroke: #2b8a5c; stroke-width: 2.5; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.pro-dotpt { fill: #2b8a5c; stroke: #fff; stroke-width: 2; }
.pro-axis { font-size: 12px; fill: #777; }
.pro-totals { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #eee; margin-top: auto; }
.pro-totals div { padding: 14px 18px; display: grid; }
.pro-totals div + div { border-left: 1px solid #eee; }
.pro-totals strong { font: 800 20px "Manrope", sans-serif; }
.pro-totals small { color: #777; }
.pro-rows { list-style: none; margin: 0; padding: 0; flex: 1; }
.pro-rows li { display: flex; align-items: center; gap: 12px; padding: 11px 18px; border-bottom: 1px solid #f0eee6; }
.pro-rows li > div { flex: 1; min-width: 0; display: grid; }
.pro-rows strong { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pro-rows small { color: #777; font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pro-rows .pro-time { flex: none; }
.pro-empty { color: #888; justify-content: center; padding: 22px 18px !important; }
.pro-thumb { width: 48px; height: 48px; border-radius: 8px; background: #ece8dc; overflow: hidden; flex: none; }
.pro-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pro-pill { flex: none; padding: 5px 12px; border-radius: 6px; font-size: 12px; font-weight: 700; color: #fff; background: #888; }
.pro-pill.st-confirmed, .pro-pill.st-completed { background: #2b6a47; color: #fff; }
.pro-pill.st-pending { background: #f0a030; color: #fff; }
.pro-pill.st-cancelled, .pro-pill.st-declined { background: #c8433a; color: #fff; }
.pro-pill.st-draft { background: #fde0dd; color: #a02a1e; }
.pro-more { display: block; text-align: center; padding: 13px; color: #2b3b32; text-decoration: none; border-top: 1px solid #eee; font-weight: 500; }
.pro-more-btn { margin: 12px auto 14px; border: 0; width: fit-content; padding: 10px 26px; background: #2b5a43; color: #fff; border-radius: 6px; font-weight: 700; }
@media (max-width: 900px) {
  .pro-app { grid-template-columns: 1fr; }
  .pro-side { border-right: 0; border-bottom: 1px solid #e4e0d6; }
  .pro-nav { display: flex; overflow-x: auto; }
  .pro-nav a { white-space: nowrap; border-left: 0; border-bottom: 3px solid transparent; padding: 12px 14px; }
  .pro-nav a.is-active { border-bottom-color: #2b5a43; }
  .pro-two, .pro-two-even { grid-template-columns: 1fr; }
  .pro-support { display: none; }
}.pro-kpis-top .pro-kpi > div { display: grid; gap: 2px; min-width: 0; } .pro-kpis-top .pro-kpi strong { white-space: nowrap; } .pro-profile em.pro-badge { color: #333; } .pro-profile em.kyc-verified { color: #0b6b4f; } .pro-profile em.kyc-pending { color: #8a6200; } .pro-profile em.kyc-rejected { color: #a02a1e; }

/* Navigation mobile (mobile-nav.js) */
.mnav-bar, .mnav-overlay, .mnav-drawer { display: none; }
@media (max-width: 640px) {
  html { scroll-padding-top: 64px; }
  .site-header { display: block; min-height: 0; padding: env(safe-area-inset-top) 4% 0; }
  .site-header > .brand, .site-header > .main-nav, .site-header > .global-search, .site-header > .header-actions { display: none !important; }
  .mnav-bar { display: flex; align-items: center; justify-content: space-between; height: 56px; }
  .mnav-logo { display: inline-flex; color: #fff; text-decoration: none; }
  .mnav-logo .brand-mark { width: 36px; height: 36px; font-size: 22px; }
  .mnav-icons { display: flex; align-items: center; gap: 4px; }
  .mnav-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; color: #fff; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .mnav-btn:active, .mnav-btn:hover { background: rgba(255,255,255,.14); }
  .mnav-btn:focus-visible, .mnav-item:focus-visible { outline: 2px solid var(--lime); outline-offset: 2px; }
  .mnav-lang { position: absolute; right: 2px; bottom: 5px; font: 800 9px/1 Manrope, sans-serif; background: var(--lime); color: #1d3a2d; border-radius: 6px; padding: 2px 3px; }
  .mnav-overlay { display: block; position: fixed; inset: 0; z-index: 998; background: rgba(10,25,18,.55); opacity: 0; pointer-events: none; transition: opacity .25s ease; }
  .mnav-overlay[hidden] { display: none; }
  .mnav-open .mnav-overlay { opacity: 1; pointer-events: auto; }
  .mnav-drawer { display: flex; flex-direction: column; position: fixed; top: 0; right: 0; bottom: 0; z-index: 999; width: min(86vw, 340px); background: #fff; color: #1d3a2d; box-shadow: -12px 0 32px rgba(0,0,0,.2); transform: translateX(100%); visibility: hidden; transition: transform .28s cubic-bezier(.4,0,.2,1), visibility 0s .28s; padding-bottom: env(safe-area-inset-bottom); overflow-y: auto; }
  .mnav-open .mnav-drawer { transform: none; visibility: visible; transition: transform .28s cubic-bezier(.4,0,.2,1); }
  .mnav-open { overflow: hidden; }
  .mnav-head { display: flex; align-items: center; gap: 10px; padding: 12px 12px 12px 18px; background: #204435; color: #fff; }
  .mnav-head strong { flex: 1; font: 800 17px Manrope, sans-serif; }
  .mnav-head .brand-mark { width: 32px; height: 32px; font-size: 20px; }
  .mnav-list { display: flex; flex-direction: column; padding: 10px; gap: 2px; }
  .mnav-item { display: flex; align-items: center; gap: 14px; width: 100%; min-height: 50px; padding: 0 14px; border: 0; border-radius: 12px; background: none; color: inherit; font: 600 15px "DM Sans", sans-serif; text-align: left; text-decoration: none; cursor: pointer; }
  .mnav-item:hover, .mnav-item:active { background: #eef3e8; }
  .mnav-item svg { flex: 0 0 auto; color: #2b5a43; }
  .mnav-item.is-primary { margin-top: 10px; justify-content: center; background: #2b5a43; color: #fff; }
  .mnav-item.is-primary svg { color: #fff; }
}
@media (prefers-reduced-motion: reduce) { .mnav-overlay, .mnav-drawer { transition: none !important; } }
/* ===== Header desktop premium (>= 901px) ===== */
.guest-link, .pro-nav-link { display: none; }
.role-traveler .guest-link { display: inline-flex; }
.role-pro .pro-nav-link { display: inline-flex; }
@media (min-width: 901px) {
  .site-header { min-height: 76px; grid-template-columns: auto auto minmax(200px, 1fr) auto; gap: 8px clamp(14px, 2vw, 32px); background: rgba(255,255,255,.96); border-bottom: 1px solid #e8ebe3; box-shadow: 0 1px 12px rgba(22,48,37,.07); }
  .site-header .brand { color: var(--green-dark); }
  .site-header .main-nav { justify-content: flex-start; gap: 4px; overflow: visible; }
  .site-header .main-nav a, .site-header .main-nav .marketplace-nav-link { padding: 9px 14px; border-radius: 999px; background: transparent; color: #3b4d45; font-size: 14px; font-weight: 600; transition: background .2s, color .2s; }
  .site-header .main-nav a:hover, .site-header .main-nav a.is-selected, .site-header .main-nav a[aria-current="page"] { background: #eef3e8; color: var(--green-dark); }
  .site-header .main-nav .mobile-only[href="host.html"] { display: inline-flex !important; }
  .site-header .host-link { display: none; }
  .site-header .global-search { max-width: 420px; justify-self: end; border: 1px solid #dfe3d9; border-radius: 999px; background: #fff; box-shadow: 0 2px 8px rgba(22,48,37,.08); transition: box-shadow .2s, border-color .2s; }
  .site-header .global-search:hover { box-shadow: 0 4px 14px rgba(22,48,37,.14); }
  .site-header .global-search:focus-within { border-color: var(--green); box-shadow: 0 0 0 3px rgba(37,93,73,.15); }
  .site-header .global-search input { padding: 12px 6px 12px 20px; font-size: 14px; }
  .site-header .global-search button { align-self: center; min-width: 36px; width: 36px; height: 36px; margin: 4px; border-radius: 50%; background: var(--green); color: #fff; font-size: 18px; }
  .site-header .global-search button:hover { background: var(--green-dark); }
  .site-header .header-actions { gap: 8px; }
  .site-header .guest-link, .site-header .pro-nav-link { align-items: center; padding: 9px 16px; border: 1px solid var(--green); border-radius: 999px; background: transparent; color: var(--green); font-size: 13px; font-weight: 700; }
  .site-header .pro-nav-link { background: var(--green); color: #fff; }
  .site-header .guest-link:hover { background: #eef3e8; }
  .site-header .pro-nav-link:hover { background: var(--green-dark); text-decoration: none; }
  .site-header .account-link:not(.pro-nav-link) { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px 8px 10px; border: 1px solid #dfe3d9; border-radius: 999px; color: #2c3e36; font-size: 13px; }
  .site-header .account-link:not(.pro-nav-link):hover { box-shadow: 0 2px 8px rgba(22,48,37,.14); text-decoration: none; color: var(--green-dark); }
  .site-header .account-link:not(.pro-nav-link)::before { content: ""; width: 22px; height: 22px; background: currentColor; -webkit-mask: var(--ico-user) center / contain no-repeat; mask: var(--ico-user) center / contain no-repeat; }
  .site-header .language-toggle { display: inline-flex; align-items: center; gap: 6px; padding: 9px 12px; border: 1px solid transparent; border-radius: 999px; color: #2c3e36; font-size: 13px; }
  .site-header .language-toggle::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--ico-globe) center / contain no-repeat; mask: var(--ico-globe) center / contain no-repeat; }
  .site-header .language-toggle:hover { background: #eef3e8; border-color: transparent; color: var(--green-dark); }
}
:root {
  --ico-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4 4-6 8-6s8 2 8 6'/%3E%3C/svg%3E");
  --ico-globe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c3 3 3 15 0 18M12 3c-3 3-3 15 0 18'/%3E%3C/svg%3E");
}
/* ===== Accueil immersif (.hm-*) ===== */
.hm { background: var(--paper); }
.hm-section { max-width: 1200px; margin: 0 auto; padding: 72px 24px 0; }
.hm-head { max-width: 680px; margin: 0 0 32px; }
.hm-head h2 { margin: 6px 0 10px; font: 800 clamp(26px, 3vw, 38px)/1.15 Manrope, sans-serif; letter-spacing: -1px; color: var(--green-dark); }
.hm-head p { margin: 0; color: #5f6e66; font-size: 16px; line-height: 1.6; }
.hm-head-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; max-width: none; }
.hm-kicker { margin: 0; color: #7a8a2e; font: 800 12px Manrope, sans-serif; letter-spacing: 1.6px; }
.hm-chip { display: inline-block; width: fit-content; padding: 5px 10px; border-radius: 999px; background: #eef3e8; color: var(--green); font: 800 10px Manrope, sans-serif; letter-spacing: 1px; }
.hm-chip-light { background: rgba(255,255,255,.9); color: var(--green-dark); }
.hm-link { color: var(--green); font-weight: 700; font-size: 14px; }
.hm-link::after { content: " →"; transition: margin .2s; }
a:hover > .hm-link::after, a.hm-link:hover::after, a:hover .hm-link::after { margin-left: 4px; }
.hm-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px; border-radius: 999px; font: 700 15px "DM Sans", sans-serif; transition: transform .2s, background .2s, box-shadow .2s; }
.hm-btn:hover { transform: translateY(-2px); }
.hm-btn-primary { background: var(--lime); color: var(--green-dark); box-shadow: 0 8px 22px rgba(0,0,0,.25); }
.hm-btn-primary:hover { background: #e2ef9b; }
.hm-btn-ghost { border: 1.5px solid rgba(255,255,255,.7); color: #fff; background: rgba(255,255,255,.08); backdrop-filter: blur(6px); }
.hm-btn-ghost:hover { background: rgba(255,255,255,.2); }
.hm-btn:focus-visible, .hm-space:focus-visible, .hm-dest:focus-visible, .hm-country:focus-visible { outline: 3px solid var(--lime); outline-offset: 3px; }

.hm-hero { position: relative; min-height: min(78vh, 680px); display: flex; align-items: center; overflow: hidden; background: #1d3a2d; color: #fff; }
.hm-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; animation: hm-zoom 22s ease-out both; }
.hm-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,36,27,.78) 0%, rgba(14,36,27,.45) 55%, rgba(14,36,27,.15) 100%), linear-gradient(0deg, rgba(14,36,27,.45), transparent 40%); }
.hm-hero-copy { position: relative; width: min(1200px, 100%); margin: 0 auto; padding: 80px 24px; }
.hm-hero .hm-kicker { color: var(--lime); }
.hm-hero h1 { max-width: 720px; margin: 14px 0 18px; font: 800 clamp(38px, 5.4vw, 68px)/1.04 Manrope, sans-serif; letter-spacing: -2px; text-wrap: balance; }
.hm-hero-sub { max-width: 560px; margin: 0 0 32px; color: rgba(255,255,255,.9); font-size: 18px; line-height: 1.6; }
.hm-hero-cta { display: flex; flex-wrap: wrap; gap: 12px; }
@keyframes hm-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }

.hm-cards2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.hm-space { display: flex; flex-direction: column; overflow: hidden; border-radius: 20px; background: #fff; box-shadow: 0 2px 6px rgba(22,48,37,.06), 0 14px 34px rgba(22,48,37,.08); transition: transform .25s, box-shadow .25s; }
.hm-space:hover { transform: translateY(-4px); box-shadow: 0 4px 10px rgba(22,48,37,.08), 0 22px 44px rgba(22,48,37,.14); }
.hm-space img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.hm-space-body { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 24px 26px 28px; }
.hm-space-body strong { font: 800 26px Manrope, sans-serif; letter-spacing: -.8px; color: var(--green-dark); }
.hm-space-body > span:not(.hm-chip):not(.hm-link) { color: #5f6e66; font-size: 15px; line-height: 1.6; }

.hm-dest-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.hm-dest { position: relative; display: block; overflow: hidden; aspect-ratio: 4/3; border-radius: 20px; background: #1d3a2d; color: #fff; box-shadow: 0 12px 28px rgba(22,48,37,.14); }
.hm-dest img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.hm-dest:hover img { transform: scale(1.06); }
.hm-dest-shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,28,20,.82) 0%, rgba(10,28,20,.1) 60%); }
.hm-dest-body { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 20px; }
.hm-dest-body strong { font: 800 22px Manrope, sans-serif; letter-spacing: -.5px; }
.hm-dest-cta { font-size: 14px; font-weight: 700; color: var(--lime); }
.hm-mobile-text, .hm-mobile-only { display: none; }

.hm-why { padding-bottom: 80px; }
.hm-why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 0; padding: 0; list-style: none; }
.hm-why-grid li { padding: 26px 22px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.hm-why-grid h3 { margin: 16px 0 8px; font: 800 18px Manrope, sans-serif; color: var(--green-dark); }
.hm-why-grid p { margin: 0; color: #5f6e66; font-size: 14px; line-height: 1.6; }
.hm-ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: #eef3e8; }
.hm-ico svg { width: 26px; height: 26px; fill: none; stroke: var(--green); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

@media (max-width: 1000px) { .hm-dest-grid { grid-template-columns: repeat(2, 1fr); } .hm-why-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 760px) { .hm-cards2 { grid-template-columns: 1fr; } }

/* Accueil mobile : mobile-first, cartes verticales */
@media (max-width: 640px) {
  .hm-section { padding: 40px 16px 0; }
  .hm-head { margin-bottom: 20px; }
  .hm-head p { font-size: 14px; }
  .hm-hero { min-height: 0; display: block; }
  .hm-hero-img { position: relative; height: auto; aspect-ratio: 16/9; animation: none; }
  .hm-hero-shade { aspect-ratio: 16/9; bottom: auto; background: linear-gradient(0deg, rgba(14,36,27,.55), transparent 60%); }
  .hm-hero-copy { padding: 22px 16px 28px; background: #1d3a2d; }
  .hm-hero h1 { margin: 8px 0 10px; font-size: 28px; letter-spacing: -.8px; }
  .hm-hero-sub { margin-bottom: 20px; font-size: 14px; }
  .hm-btn { width: 100%; min-height: 50px; }
  .hm-btn-ghost { display: none; }
  .hm-mobile-only { display: block; }
  .hm-desktop-text { display: none; }
  .hm-mobile-text { display: inline; }
  .hm-all { display: none; }
  .hm-country-list { display: grid; gap: 14px; }
  .hm-country { position: relative; display: block; overflow: hidden; border-radius: 16px; box-shadow: 0 8px 22px rgba(22,48,37,.14); }
  .hm-country img { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; }
  .hm-country-body { position: absolute; inset: auto 0 0 0; display: flex; justify-content: space-between; align-items: center; padding: 16px; background: linear-gradient(0deg, rgba(10,28,20,.85), transparent); color: #fff; }
  .hm-country-body strong { font: 800 22px Manrope, sans-serif; }
  .hm-country-body .hm-link { color: var(--lime); }
  .hm-space-body { padding: 18px; }
  .hm-space-body strong { font-size: 21px; }
  .hm-dest-grid { grid-template-columns: 1fr; gap: 14px; }
  .hm-dest { aspect-ratio: 16/10; border-radius: 16px; }
  .hm-why-grid { grid-template-columns: 1fr; gap: 12px; }
  .hm-why-grid li { display: grid; grid-template-columns: 48px 1fr; column-gap: 14px; padding: 16px; }
  .hm-why-grid .hm-ico { grid-row: span 2; }
  .hm-why-grid h3 { margin: 0 0 4px; font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) { .hm-hero-img { animation: none; } .hm-dest img, .hm-space, .hm-btn { transition: none; } }
.site-header .main-nav .marketplace-nav-link.is-selected { background: #eef3e8; color: var(--green-dark); }
@media (max-width: 640px) {
  .mnav-search { display: flex; margin: 14px 10px 4px; border: 1px solid #dfe3d9; border-radius: 999px; background: #fff; overflow: hidden; }
  .mnav-search input { flex: 1; min-width: 0; padding: 0 16px; height: 46px; border: 0; outline: 0; font-size: 15px; background: transparent; }
  .mnav-search button { width: 46px; border: 0; background: var(--green); color: #fff; display: grid; place-items: center; cursor: pointer; }
  .mnav-search:focus-within { border-color: var(--green); box-shadow: 0 0 0 3px rgba(37,93,73,.15); }
}
@media (min-width: 901px) and (max-width: 1180px) { .site-header .main-nav a { padding: 8px 9px; font-size: 13px; } }
.pro-top-actions { display: flex; align-items: center; gap: 8px; }
.pro-lang { height: 40px; min-width: 44px; padding: 0 12px; border: 1px solid #dfe3d9; border-radius: 999px; background: #fff; color: var(--green-dark); font: 800 12px Manrope, sans-serif; cursor: pointer; }
.pro-lang:hover { background: #eef3e8; }
/* ===== Paramètres du compte : sidebar, cartes, affichage ===== */
body { zoom: var(--text-scale, 1); }
.dashboard-detail.set-wide { width: min(100% - 40px, 1080px); margin-top: -40px; }
.set-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 26px; align-items: start; }
.set-nav { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 4px; padding: 10px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); box-shadow: 0 6px 22px rgba(32,52,46,.06); }
.set-nav-link { display: flex; align-items: center; gap: 11px; padding: 11px 12px; border-radius: 10px; color: var(--ink); font: 600 13.5px "DM Sans", sans-serif; }
.set-nav-link .dashboard-icon { width: 19px; height: 19px; flex: none; }
.set-nav-link:hover { background: rgba(37,93,73,.08); }
.set-nav-link[aria-current="page"] { background: var(--green); color: #fff; }
.set-nav-link.is-danger { color: #b3382b; margin-top: 6px; border-top: 1px solid var(--line); border-radius: 0 0 10px 10px; }
.set-nav-link.is-danger[aria-current="page"] { background: #b3382b; color: #fff; }
.set-main { min-width: 0; }
.set-main .account-back { font-size: 13px; }
.set-main .dashboard-panel { padding: 26px 28px 28px; border-radius: 14px; }
.set-main .dashboard-panel.is-stack { padding: 0; border: 0; background: transparent; box-shadow: none; }
.set-head { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
.set-head h2 { margin: 0 0 3px; font: 800 26px Manrope, sans-serif; letter-spacing: -.6px; }
.set-head p { margin: 0; color: var(--muted); font-size: 14px; }
.set-ic { display: inline-grid; place-items: center; width: 42px; height: 42px; flex: none; border-radius: 12px; background: #e6efe0; color: var(--green); }
.set-ic .dashboard-icon { width: 21px; height: 21px; }
.set-ic.big { width: 52px; height: 52px; border-radius: 15px; }
.set-ic.big .dashboard-icon { width: 26px; height: 26px; }
.set-ic.small { width: 38px; height: 38px; border-radius: 11px; }
.set-stack { display: flex; flex-direction: column; gap: 18px; }
.set-card { padding: 22px 24px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); box-shadow: 0 6px 22px rgba(32,52,46,.06); }
.set-card-head { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 16px; }
.set-card-copy { flex: 1; min-width: 0; }
.set-card-copy h3 { margin: 0 0 3px; font: 800 17px Manrope, sans-serif; }
.set-card-copy p { margin: 0; color: var(--muted); font-size: 13.5px; line-height: 1.5; }
.set-card.is-danger { border-color: #efc9c3; }
.set-card.is-danger .set-ic { background: #fbe6e2; color: #b3382b; }
.set-card.is-danger .set-card-copy h3 { color: #b3382b; }
.set-card .account-form, .set-form { gap: 14px; }
.set-card .form-field label { font-size: 13px; }
.set-card .form-field input, .set-card .form-field select { min-height: 44px; font-size: 14px; border-radius: 10px; }
.set-card .account-notice { font-size: 13px; padding: 11px 13px; border-radius: 10px; }
.set-card .account-submit, .set-btn { min-height: 44px; padding: 0 20px; border-radius: 999px; font-size: 14px; font-weight: 700; width: auto; align-self: flex-start; cursor: pointer; }
.set-card .dashboard-list { margin: 0 0 14px; font-size: 13.5px; color: var(--ink); }
.set-card .dashboard-danger, .set-card.is-danger .set-btn { background: #c0392b; border-color: #c0392b; color: #fff; }
.set-card .dashboard-danger:hover { background: #a02f23; }
.set-body { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.set-muted { color: var(--muted); font-size: 13.5px; line-height: 1.55; margin: 0; }
.set-muted.small { font-size: 12.5px; }
.set-ok { margin: 0; padding: 12px 14px; border-radius: 10px; background: #e8f1e7; color: #315d3b; font-size: 13.5px; }
.set-meter { display: flex; flex-direction: column; gap: 5px; }
.set-meter-track { height: 6px; border-radius: 99px; background: var(--line); overflow: hidden; }
.set-meter-bar { display: block; height: 100%; width: 0; border-radius: 99px; background: #c0392b; transition: width .25s, background .25s; }
.set-meter[data-score="2"] .set-meter-bar { background: #e0a526; }
.set-meter[data-score="3"] .set-meter-bar { background: #8cbf3a; }
.set-meter[data-score="4"] .set-meter-bar { background: #2e8b57; }
.set-meter-label { color: var(--muted); font-size: 12px; min-height: 14px; }
.set-switch { position: relative; width: 50px; height: 28px; flex: none; padding: 0; border: 0; border-radius: 99px; background: #c9cfc6; cursor: pointer; transition: background .2s; }
.set-switch[aria-checked="true"] { background: var(--green); }
.set-switch-knob { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s; }
.set-switch[aria-checked="true"] .set-switch-knob { transform: translateX(22px); }
.set-switch:focus-visible, .set-option:focus-visible, .set-nav-link:focus-visible { outline: 3px solid rgba(37,93,73,.35); outline-offset: 2px; }
.set-switch:disabled { opacity: .6; cursor: wait; }
.set-2fa-setup { display: flex; gap: 24px; flex-wrap: wrap; width: 100%; }
.set-qr { padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.set-qr img { display: block; }
.set-2fa-steps { flex: 1; min-width: 240px; display: flex; flex-direction: column; gap: 10px; align-items: flex-start; font-size: 13.5px; }
.set-2fa-steps p { margin: 0; }
.set-2fa-steps .form-field { width: 100%; max-width: 260px; }
.set-secret { padding: 8px 10px; border-radius: 8px; background: #eef1e8; color: #20342e; font: 600 13px ui-monospace, Consolas, monospace; word-break: break-all; }
.set-list { width: 100%; display: flex; flex-direction: column; gap: 10px; padding: 0; margin: 0; list-style: none; }
.set-item { display: flex; align-items: center; gap: 13px; width: 100%; padding: 13px 14px; border: 1px solid var(--line); border-radius: 12px; flex-wrap: wrap; }
.set-item-copy { flex: 1; min-width: 160px; display: flex; flex-direction: column; gap: 3px; }
.set-item-copy strong { font-size: 14px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.set-item-copy small { color: var(--muted); font-size: 12.5px; }
.set-pill { padding: 2px 9px; border-radius: 99px; background: #e6efe0; color: var(--green); font: 700 11px "DM Sans", sans-serif; }
.set-pill.ok { background: #dff3e5; color: #1f7a3f; }
.set-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; font-weight: 600; font-size: 14px; }
.set-preview { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; width: 100%; }
.set-theme-tile { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 14px; border: 2px solid transparent; border-radius: 12px; font-size: 13px; }
.set-theme-tile.light { background: #fffefa; color: #20342e; border-color: #e7e6dd; }
.set-theme-tile.dark { background: #17211d; color: #e8efe9; border-color: #2c3a34; }
.set-theme-tile.is-current { border-color: var(--green); box-shadow: 0 0 0 3px rgba(37,93,73,.18); }
.set-theme-tile small { opacity: .7; }
.set-theme-bar { width: 44px; height: 6px; border-radius: 4px; background: #255d49; margin-bottom: 6px; }
.set-theme-name { position: absolute; top: 10px; right: 12px; font: 700 11px "DM Sans", sans-serif; opacity: .7; }
.set-range-row { display: flex; align-items: center; gap: 12px; width: 100%; }
.set-range { flex: 1; accent-color: var(--green); height: 28px; }
.set-a { font-weight: 800; color: var(--muted); } .set-a.small { font-size: 12px; } .set-a.big { font-size: 22px; }
.set-range-value { min-width: 46px; text-align: right; font-size: 14px; }
.set-size-sample { margin: 0; padding: 14px 16px; border-radius: 10px; background: #f1f3ec; color: #20342e; line-height: 1.55; }
.set-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; width: 100%; }
.set-option { display: flex; flex-direction: column; gap: 5px; align-items: flex-start; padding: 14px; border: 2px solid var(--line); border-radius: 12px; background: transparent; text-align: left; cursor: pointer; font: inherit; color: var(--ink); }
.set-option[aria-checked="true"] { border-color: var(--green); background: rgba(37,93,73,.07); }
.set-option strong { font-size: 14px; } .set-option small { color: var(--muted); font-size: 12px; }
.set-diagram { display: grid; width: 100%; height: 54px; margin-bottom: 4px; grid-template-columns: repeat(3, 1fr); gap: 3px; }
.set-diagram i { border-radius: 3px; background: #cfd8c8; }
.set-diagram.compact { grid-template-columns: repeat(6, 1fr); gap: 2px; }
.set-diagram.compact i:nth-child(n+4) { display: block; }
.set-diagram.large { grid-template-columns: repeat(2, 1fr); gap: 7px; }
.set-diagram.large i:nth-child(n+5) { display: none; }

/* Mise en page globale (Affichage > Mise en page) */
html[data-layout="compact"] .listing-grid, html[data-layout="compact"] .lc-grid, html[data-layout="compact"] .immo-listing-grid { gap: 12px; }
html[data-layout="compact"] .content-section { padding-top: 28px; padding-bottom: 28px; }
html[data-layout="large"] .listing-grid, html[data-layout="large"] .lc-grid, html[data-layout="large"] .immo-listing-grid { gap: 32px; }
html[data-layout="large"] .content-section { padding-top: 64px; padding-bottom: 64px; }
html[data-layout="compact"] .set-card { padding: 16px 18px; }
html[data-layout="large"] .set-card { padding: 28px 30px; }

@media (max-width: 860px) {
  .set-layout { grid-template-columns: 1fr; gap: 16px; }
  .set-nav { position: static; flex-direction: row; overflow-x: auto; padding: 8px; gap: 6px; scrollbar-width: none; }
  .set-nav::-webkit-scrollbar { display: none; }
  .set-nav-link { flex: none; white-space: nowrap; padding: 9px 13px; }
  .set-nav-link.is-danger { margin-top: 0; border-top: 0; border-radius: 10px; }
  .set-main .dashboard-panel { padding: 20px 18px; }
  .set-card { padding: 18px 16px; }
  .set-head h2 { font-size: 21px; }
  .set-options { grid-template-columns: 1fr; }
  .set-preview { grid-template-columns: 1fr; }
  .set-item .set-btn { width: 100%; }
}

/* ===== Mode sombre ===== */
html[data-theme="dark"] { color-scheme: dark; --ink: #e8efe9; --muted: #9db0a5; --paper: #101815; --white: #1a2520; --line: #2b3a33; }
html[data-theme="dark"] body { background: var(--paper); color: var(--ink); }
html[data-theme="dark"] .dashboard-card, html[data-theme="dark"] .dashboard-panel, html[data-theme="dark"] .account-card,
html[data-theme="dark"] .lc-card, html[data-theme="dark"] .set-card, html[data-theme="dark"] .set-nav, html[data-theme="dark"] .hm-card,
html[data-theme="dark"] .visit-card, html[data-theme="dark"] .hm-dest, html[data-theme="dark"] .hm-benefit { background: var(--white); border-color: var(--line); color: var(--ink); }
html[data-theme="dark"] .form-field input, html[data-theme="dark"] .form-field select { background: #131c18; border-color: #34463d; color: var(--ink); }
html[data-theme="dark"] .form-field label, html[data-theme="dark"] .dashboard-label, html[data-theme="dark"] .dashboard-link { color: var(--ink); }
html[data-theme="dark"] .set-ic { background: #243a30; color: #9fe0bd; }
html[data-theme="dark"] .set-card.is-danger { border-color: #5b2c27; }
html[data-theme="dark"] .set-card.is-danger .set-ic { background: #3d2320; color: #ff9d92; }
html[data-theme="dark"] .set-nav-link { color: var(--ink); }
html[data-theme="dark"] .set-nav-link:hover { background: rgba(255,255,255,.06); }
html[data-theme="dark"] .set-nav-link[aria-current="page"] { background: var(--green); color: #fff; }
html[data-theme="dark"] .set-size-sample { background: #131c18; color: var(--ink); }
html[data-theme="dark"] .set-pill { background: #243a30; color: #9fe0bd; }
html[data-theme="dark"] .account-notice { background: #22302a; color: #cfe0d5; }
html[data-theme="dark"] .account-notice.error { background: #3d2320; color: #ffb4aa; }
html[data-theme="dark"] .account-notice.success { background: #1f3a2a; color: #a8e0b9; }
html[data-theme="dark"] .set-ok { background: #1f3a2a; color: #a8e0b9; }
html[data-theme="dark"] .dashboard-row { border-color: var(--line); }
html[data-theme="dark"] .account-back { color: #9fe0bd; }
html[data-theme="dark"] .site-header { background: #17231e; }@media (min-width: 901px) {
  html[data-theme="dark"] .site-header { background: rgba(23,35,30,.97); border-bottom-color: #2b3a33; }
  html[data-theme="dark"] .site-header .brand, html[data-theme="dark"] .site-header .main-nav a, html[data-theme="dark"] .site-header .main-nav .marketplace-nav-link,
  html[data-theme="dark"] .site-header .header-actions a, html[data-theme="dark"] .site-header .header-actions button { color: #e8efe9; }
  html[data-theme="dark"] .site-header .main-nav a:hover, html[data-theme="dark"] .site-header .main-nav a.is-selected, html[data-theme="dark"] .site-header .main-nav a[aria-current="page"] { background: #243a30; color: #fff; }
  html[data-theme="dark"] .site-header .global-search { background: #131c18; border-color: #34463d; }
  html[data-theme="dark"] .site-header .global-search input { background: transparent; color: #e8efe9; }
}
html[data-theme="dark"] .hm-section, html[data-theme="dark"] .content-section { color: var(--ink); }html[data-theme="dark"] .hm-head h2, html[data-theme="dark"] .section-heading h2 { color: #e8efe9; }
html[data-theme="dark"] .hm-head p { color: var(--muted); }
html[data-theme="dark"] .hm-kicker { color: #c6dc5a; }
html[data-theme="dark"] .hm-head-row a { color: #9fe0bd; }
/* Accueil par pays : héros animé, sélecteur de pays, offres publiées */
.hm-country-bar { max-width: 1200px; margin: 0 auto; padding: 14px 24px 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 14px; color: #5f6e66; }
.hm-country-bar select { min-height: 38px; padding: 0 12px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font: 600 14px "DM Sans", sans-serif; color: var(--green-dark); }
.hm-country-note { font-weight: 600; color: var(--green-dark); }
.hm-hero-slides { position: absolute; inset: 0; }
.hm-slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; opacity: 0; transition: opacity 1s ease-in-out; }
.hm-slide.is-active { opacity: 1; }
.hm-hero-slides .hm-slide:first-child:only-child { opacity: 1; }
.hm-dots { display: flex; gap: 8px; margin-top: 26px; }
.hm-dot { width: 28px; height: 6px; padding: 0; border: 0; border-radius: 999px; background: rgba(255,255,255,.4); cursor: pointer; transition: background .3s, width .3s; }
.hm-dot.is-active { width: 44px; background: var(--lime); }
.hm-dot:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.hm-offers { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; align-items: start; }
.hm-offers.is-empty { display: block; }
.hm-empty { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 22px 24px; border: 1px dashed var(--line); border-radius: 18px; background: #fff; }
.hm-empty p { margin: 0; color: #5f6e66; }
.hm-host-cta { display: flex; justify-content: center; padding-bottom: 72px; }
@media (max-width: 1100px) { .hm-offers { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) {
  .hm-country-bar { padding: 12px 16px 0; }
  .hm-hero-slides { position: relative; aspect-ratio: 16/9; inset: auto; }
  .hm-hero-shade { aspect-ratio: 16/9; }
  .hm-offers { grid-template-columns: 1fr; }
  .hm-dots { margin-top: 18px; }
  .hm-host-cta { padding-bottom: 40px; }
}
@media (prefers-reduced-motion: reduce) { .hm-slide { transition: none; } }
html[data-theme="dark"] .hm-country-bar select, html[data-theme="dark"] .hm-empty { background: #1a2420; color: #e8efe9; border-color: #2c3a34; }
html[data-theme="dark"] .hm-country-note { color: #9fe0bd; }
@media (min-width: 1001px) { .hm-exp-grid { grid-template-columns: repeat(4, 1fr); } }

/* Page d'inscription / connexion premium */
.acc-top { display: none; }
body:has(.acc-card:not([hidden])) .site-header { display: none; }
body:has(.acc-card:not([hidden])) .acc-top { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px max(16px, calc((100% - 1200px) / 2)); background: rgba(255,255,255,.72); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid rgba(255,255,255,.5); }
.acc-top-actions { display: flex; align-items: center; gap: 10px; }
.acc-top-back { display: inline-flex; gap: 6px; align-items: center; min-height: 38px; padding: 0 14px; border-radius: 999px; color: var(--green-dark); font: 600 14px "DM Sans", sans-serif; text-decoration: none; transition: background .2s; }
.acc-top-back:hover { background: rgba(37,93,73,.1); }
.account-main:has(.acc-card:not([hidden])) { position: relative; isolation: isolate; align-items: center; padding: 40px 16px 64px; min-height: calc(100vh - 62px); }
.account-main:has(.acc-card:not([hidden]))::before { content: ""; position: fixed; inset: 0; z-index: -2; background: url("images/cover/ganvie-coucher-soleil.png") center/cover no-repeat; filter: blur(6px) saturate(1.1); transform: scale(1.06); }
.account-main:has(.acc-card:not([hidden]))::after { content: ""; position: fixed; inset: 0; z-index: -1; background: linear-gradient(160deg, rgba(14,36,27,.72), rgba(14,36,27,.45)); }
.acc-card { position: relative; width: min(100%, 620px); padding: 36px 40px 30px; border: 1px solid rgba(255,255,255,.6); border-radius: 24px; background: rgba(255,255,255,.96); box-shadow: 0 30px 80px rgba(8,24,17,.35); animation: acc-rise .6s cubic-bezier(.2,.8,.2,1) both; }
@keyframes acc-rise { from { opacity: 0; transform: translateY(18px) scale(.985); } to { opacity: 1; transform: none; } }
.acc-logo { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 14px; border-radius: 16px; background: var(--lime); color: var(--green-dark); font: 800 28px Manrope, sans-serif; box-shadow: 0 8px 20px rgba(160,200,60,.4); }
.acc-card h1 { margin: 0 0 8px; font: 800 clamp(26px, 4vw, 32px)/1.15 Manrope, sans-serif; letter-spacing: -1px; color: var(--green-dark); }
.acc-card .account-subtitle { margin-bottom: 22px; font-size: 15px; color: #5f6e66; }
.acc-card .account-tabs { border-radius: 999px; padding: 5px; margin-bottom: 22px; }
.acc-card .account-tab { min-height: 40px; border-radius: 999px; font-size: 14px; transition: background .2s, color .2s; }
.acc-card .account-notice { font-size: 13px; border-radius: 12px; padding: 12px 14px; }
.acc-form { gap: 22px; }
.acc-section { display: grid; gap: 14px; margin: 0; padding: 0; border: 0; min-width: 0; }
.acc-section legend { padding: 0; margin-bottom: 12px; font: 800 12px Manrope, sans-serif; letter-spacing: 1.2px; text-transform: uppercase; color: var(--green); }
.acc-section legend[hidden] { display: none; }
.acc-card .form-field label { font-size: 13px; color: #2f4037; }
.acc-card .form-field small { font-size: 12px; }
.acc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.acc-row > * { min-width: 0; }
.acc-input { position: relative; display: flex; align-items: center; width: 100%; min-height: 50px; padding: 0 14px; gap: 10px; border: 1.5px solid #dde2d8; border-radius: 14px; background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s; }
.acc-input:hover { border-color: #b9c7bb; }
.acc-input:focus-within, .acc-combo-btn[aria-expanded="true"] { border-color: var(--green); box-shadow: 0 0 0 4px rgba(37,93,73,.12); }
.acc-card .acc-input input { flex: 1; min-width: 0; min-height: 0; padding: 0; border: 0; box-shadow: none; background: transparent; font-size: 15px; border-radius: 0; height: 48px; }
.acc-card .acc-input input:focus { box-shadow: none; }
.acc-ico { display: grid; place-items: center; flex: none; color: #7c8b81; transition: color .2s; }
.acc-input:focus-within .acc-ico { color: var(--green); }
.acc-ico svg, .acc-eye svg, .acc-secure svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.acc-eye { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 10px; background: transparent; color: #7c8b81; cursor: pointer; }
.acc-eye:hover, .acc-eye.is-on { color: var(--green); background: #eef3e8; }
.acc-meter { height: 5px; border-radius: 999px; background: #e8ece4; overflow: hidden; }
.acc-meter span { display: block; width: 0; height: 100%; border-radius: inherit; background: #d9534f; transition: width .3s, background .3s; }
.acc-meter span[data-level="2"] { background: #e8a33a; }
.acc-meter span[data-level="3"] { background: #8cc152; }
.acc-meter span[data-level="4"] { background: var(--green); }
.acc-combo { position: relative; }
.acc-combo-btn { cursor: pointer; text-align: left; font: 500 15px "DM Sans", sans-serif; color: #8a968e; }
.acc-combo-value { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: flex; align-items: center; gap: 8px; }
.acc-combo-value.has-value { color: var(--ink); }
.acc-combo-value img, .acc-combo-pop li img { border-radius: 3px; object-fit: cover; box-shadow: 0 0 0 1px rgba(0,0,0,.1); flex: none; }
.acc-caret { width: 8px; height: 8px; border-right: 2px solid #7c8b81; border-bottom: 2px solid #7c8b81; transform: rotate(45deg) translateY(-2px); transition: transform .2s; flex: none; }
.acc-combo-btn[aria-expanded="true"] .acc-caret { transform: rotate(-135deg); }
.acc-combo-pop { position: absolute; z-index: 20; top: calc(100% + 6px); left: 0; right: 0; min-width: 260px; border: 1px solid #dde2d8; border-radius: 14px; background: #fff; box-shadow: 0 18px 44px rgba(14,36,27,.22); overflow: hidden; animation: acc-rise .2s ease both; }
.acc-combo-pop[hidden] { display: none; }
.acc-card .acc-combo-search { width: 100%; min-height: 44px; padding: 0 14px; border: 0; border-bottom: 1px solid #e8ece4; border-radius: 0; font-size: 14px; outline: 0; }
.acc-combo-pop ul { max-height: 250px; margin: 0; padding: 6px; overflow-y: auto; list-style: none; }
.acc-combo-pop li[role="option"] { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 9px; font-size: 14px; cursor: pointer; }
.acc-combo-pop li[role="option"]:hover, .acc-combo-pop li.is-focus { background: #eef3e8; }
.acc-combo-pop li[aria-selected="true"] { background: #e3efdd; font-weight: 700; }
.acc-group { padding: 8px 10px 4px; font: 700 11px Manrope, sans-serif; letter-spacing: 1px; text-transform: uppercase; color: #7c8b81; }
.acc-none { padding: 14px; color: #7c8b81; font-size: 14px; }
.acc-types { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.acc-type { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 14px; border: 1.5px solid #dde2d8; border-radius: 16px; background: #fff; text-align: left; cursor: pointer; font-family: inherit; transition: border-color .2s, background .2s, transform .2s, box-shadow .2s; }
.acc-type:hover { transform: translateY(-2px); border-color: #b9c7bb; }
.acc-type.is-active { border-color: var(--green); background: #f3f8ee; box-shadow: 0 0 0 3px rgba(37,93,73,.12); }
.acc-type:focus-visible { outline: 3px solid rgba(37,93,73,.35); outline-offset: 2px; }
.acc-type-ico { display: grid; place-items: center; width: 38px; height: 38px; margin-bottom: 6px; border-radius: 12px; background: #eef3e8; color: var(--green); transition: background .2s, color .2s; }
.acc-type.is-active .acc-type-ico { background: var(--green); color: #fff; }
.acc-type-ico svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.acc-type strong { font: 800 14px Manrope, sans-serif; color: var(--green-dark); }
.acc-type strong em { font: 500 12px "DM Sans", sans-serif; color: #7c8b81; }
.acc-type small { font-size: 12px; line-height: 1.4; color: #647168; }
.acc-category { margin-top: 4px; animation: acc-rise .3s ease both; }
.acc-card .acc-category select { min-height: 50px; border-radius: 14px; font-size: 15px; border: 1.5px solid #dde2d8; }
.acc-submit { min-height: 54px; margin-top: 0; border-radius: 14px; font: 800 16px Manrope, sans-serif; background: linear-gradient(135deg, var(--green), var(--green-dark)); box-shadow: 0 10px 24px rgba(37,93,73,.35); transition: transform .2s, box-shadow .2s; }
.acc-submit:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(37,93,73,.42); background: linear-gradient(135deg, var(--green), var(--green-dark)); }
.acc-submit:active:not(:disabled) { transform: none; }
.acc-switch { margin: 18px 0 0; text-align: center; font-size: 14px; color: #5f6e66; }
.acc-switch-btn { padding: 0; border: 0; background: none; color: var(--green); font: 800 14px "DM Sans", sans-serif; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.acc-secure { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 18px 0 0; padding: 12px 14px; border-radius: 12px; background: #f3f8ee; color: #4c6254; font-size: 12.5px; text-align: left; }
.acc-secure svg { color: var(--green); flex: none; }
@media (max-width: 640px) {
  .account-main:has(.acc-card:not([hidden])) { padding: 16px 12px 40px; align-items: flex-start; }
  .acc-card { padding: 26px 18px 22px; border-radius: 20px; }
  .acc-row { grid-template-columns: 1fr; }
  .acc-types { grid-template-columns: 1fr; }
  .acc-type { flex-direction: row; flex-wrap: wrap; align-items: center; column-gap: 12px; }
  .acc-type-ico { margin: 0; grid-row: span 2; }
  .acc-type strong { flex: 1; }
  .acc-type small { flex-basis: 100%; padding-left: 50px; margin-top: -6px; }
  .acc-top-back span:last-child { display: none; }
}
@media (prefers-reduced-motion: reduce) { .acc-card, .acc-category, .acc-combo-pop { animation: none; } .acc-type, .acc-submit { transition: none; } }
html[data-theme="dark"] .acc-card { background: rgba(22,32,27,.96); border-color: #2c3a34; }
html[data-theme="dark"] .acc-card h1, html[data-theme="dark"] .acc-type strong { color: #e8efe9; }
html[data-theme="dark"] .acc-input, html[data-theme="dark"] .acc-type, html[data-theme="dark"] .acc-combo-pop { background: #131c18; border-color: #34463d; color: var(--ink); }
html[data-theme="dark"] .acc-type.is-active { background: #1d2c24; }
html[data-theme="dark"] .acc-combo-pop li[role="option"]:hover, html[data-theme="dark"] .acc-combo-pop li.is-focus { background: #22302a; }
html[data-theme="dark"] .acc-secure { background: #1d2c24; color: #cfe0d5; }
html[data-theme="dark"] .acc-top { background: rgba(19,28,24,.8) !important; }
/* ===== Dashboards PRO par type de compte (pro-dashboards.js) ===== */
.pro-app[data-cat="hotel"] { --pd-accent: #ef6a24; --pd-accent-soft: #fdece2; }
.pro-app[data-cat="property"] { --pd-accent: #1a9e6a; --pd-accent-soft: #e3f5ec; }
.pro-app[data-cat="restaurant"] { --pd-accent: #e0553b; --pd-accent-soft: #fdeae6; }
.pro-app[data-cat="guide"] { --pd-accent: #2b5a43; --pd-accent-soft: #e6f0ea; }
.pro-app[data-cat="hotel"] .pro-side { background: #1f1f1f; border-color: #1f1f1f; }
.pro-app[data-cat="property"] .pro-side { background: #02104f; border-color: #02104f; }
.pro-app[data-cat="restaurant"] .pro-side { background: #17181c; border-color: #17181c; }
.pro-app[data-cat="hotel"] .pro-side-brand, .pro-app[data-cat="property"] .pro-side-brand, .pro-app[data-cat="restaurant"] .pro-side-brand { background: transparent; }
.pro-app[data-cat="hotel"] .pro-side a, .pro-app[data-cat="property"] .pro-side a, .pro-app[data-cat="restaurant"] .pro-side a,
.pro-app[data-cat="hotel"] .pro-logout, .pro-app[data-cat="property"] .pro-logout, .pro-app[data-cat="restaurant"] .pro-logout { color: #d7d9e0; }
.pro-app[data-cat="hotel"] .pro-side a[aria-current], .pro-app[data-cat="property"] .pro-side a[aria-current], .pro-app[data-cat="restaurant"] .pro-side a[aria-current] { background: var(--pd-accent); color: #fff; }
.pro-app[data-cat="restaurant"] .pro-main { background: #101114; color: #eceef2; }
.pro-logout { display: flex; align-items: center; gap: 10px; margin: auto 10px 12px; padding: 10px 12px; border: 0; border-radius: 10px; background: transparent; color: #6b6b6b; font: 600 14px "Manrope", sans-serif; cursor: pointer; text-align: left; }
.pro-logout:hover { background: rgba(128, 128, 128, .15); }
.pro-side a svg, .pro-logout svg { width: 18px; height: 18px; flex: none; }

.pd { display: grid; gap: 16px; --acc: var(--pd-accent, #2b5a43); }
.pd-hello { margin: 0; font-size: 14px; opacity: .75; }
.pd-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.pd-kpi { display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: 14px; background: #fff; border: 1px solid #e4e0d6; border-left: 4px solid var(--acc); min-width: 0; }
.pd-kpi i { font-style: normal; font-size: 26px; }
.pd-kpi > div { display: grid; gap: 2px; min-width: 0; }
.pd-kpi span, .pd-kpi small { font-size: 12.5px; color: #6b6b6b; }
.pd-kpi strong { font: 800 21px "Manrope", sans-serif; white-space: nowrap; }
.pd-kpi.t-orange { border-left-color: #ef6a24; } .pd-kpi.t-green { border-left-color: #1a9e6a; } .pd-kpi.t-blue { border-left-color: #2f6fe0; } .pd-kpi.t-gold { border-left-color: #d9a21b; } .pd-kpi.t-red { border-left-color: #d6453a; }
.pd-kpis-color .pd-kpi { border: 0; color: #fff; }
.pd-kpis-color .pd-kpi span, .pd-kpis-color .pd-kpi small { color: rgba(255, 255, 255, .85); }
.pd-kpis-color .pd-kpi.t-green { background: #1f9d63; } .pd-kpis-color .pd-kpi.t-orange { background: #7a4be0; } .pd-kpis-color .pd-kpi.t-blue { background: #2f6fe0; } .pd-kpis-color .pd-kpi.t-red, .pd-kpis-color .pd-kpi.t-gold { background: #e0553b; }
.pd-grid { display: grid; gap: 16px; align-items: start; }
.pd-g-21 { grid-template-columns: 2fr 1fr; } .pd-g-11 { grid-template-columns: 1fr 1fr; }
.pd-grid > * { min-width: 0; }
.pd-panel { background: #fff; border: 1px solid #e4e0d6; border-radius: 16px; box-shadow: 0 1px 2px rgba(0, 0, 0, .04); overflow: hidden; }
.pd-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px 0; flex-wrap: wrap; }
.pd-panel h2 { margin: 0; font: 800 16px "Manrope", sans-serif; }
.pd-body { padding: 14px 16px 16px; display: grid; gap: 12px; }
.pd-chip { font-size: 12px; padding: 3px 9px; border-radius: 999px; background: var(--pd-accent-soft, #e6f0ea); color: var(--acc); font-weight: 700; }
.pd-link { color: var(--acc); font-weight: 700; font-size: 13px; text-decoration: none; }
.pd-table-wrap { overflow-x: auto; }
.pd-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.pd-table th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: #6b6b6b; padding: 6px 8px; }
.pd-table td { padding: 9px 8px; border-top: 1px solid #eee9dc; vertical-align: middle; }
.pd-table small { display: block; color: #6b6b6b; }
.pd-late { color: #d6453a; font-weight: 700; }
.pd-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pd-rows > li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 0; border-top: 1px solid #eee9dc; flex-wrap: wrap; }
.pd-rows > li:first-child { border-top: 0; }
.pd-money { font-weight: 800; }
.pd-acts { display: flex; gap: 6px; flex-wrap: wrap; }
.pd-acts button, .pd-acts .pro-btn { padding: 6px 10px; font-size: 12.5px; }
.pd-inline { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pd-inline input { width: 90px; padding: 6px 8px; border: 1px solid #d8d3c4; border-radius: 8px; }
.pd-form, .pd-details form { display: grid; gap: 10px; }
.pd-fgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.pd-form label, .pd-fgrid label { display: grid; gap: 4px; font-size: 12.5px; color: #555; }
.pd-form input, .pd-form select, .pd-fgrid input, .pd-fgrid select { padding: 8px 10px; border: 1px solid #d8d3c4; border-radius: 9px; font: inherit; }
.pd-details > summary { cursor: pointer; font-weight: 700; color: var(--acc); }
.pd-banner { padding: 12px 14px; border-radius: 12px; background: var(--pd-accent-soft, #e6f0ea); font-size: 13.5px; }
.pd-alerts { display: grid; gap: 8px; }
.pd-alerts > * { padding: 10px 14px; border-radius: 12px; font-size: 13.5px; font-weight: 600; }
.pd-alert-danger { background: #fde8e6; color: #9b2218; } .pd-alert-warn { background: #fff3d6; color: #7a5600; } .pd-alert-info { background: #e5eefc; color: #1d4ea3; }
.pd-ok { padding: 10px 14px; border-radius: 12px; background: #e3f5ec; color: #0b6b4f; font-weight: 600; font-size: 13.5px; }
.pd-empty, .pd-note { color: #6b6b6b; font-size: 13.5px; margin: 0; }
.pd-donut { display: grid; gap: 10px; justify-items: center; }
.pd-donut svg { width: 160px; height: 160px; }
.pd-donut-c { font: 800 15px "Manrope", sans-serif; fill: currentColor; }
.pd-bars { display: flex; align-items: flex-end; gap: 6px; height: 190px; padding-top: 18px; }
.pd-bar { flex: 1; min-width: 0; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 4px; }
.pd-bar span { width: 100%; max-width: 34px; border-radius: 6px 6px 0 0; background: color-mix(in srgb, var(--acc) 45%, #fff); transition: height .5s ease; }
.pd-bar.is-top span { background: var(--acc); }
.pd-bar em { font-style: normal; font-size: 10.5px; color: #6b6b6b; white-space: nowrap; }
.pd-bar small { font-size: 11px; color: #6b6b6b; }
.pd-hbars { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.pd-hbars li { display: grid; grid-template-columns: 90px 1fr auto; gap: 8px; align-items: center; font-size: 13px; }
.pd-hbars div { height: 9px; border-radius: 99px; background: rgba(128, 128, 128, .15); overflow: hidden; }
.pd-hbars b { display: block; height: 100%; background: var(--acc); border-radius: 99px; }
.pd-heat { display: grid; gap: 3px; overflow-x: auto; }
.pd-heat-row { display: grid; grid-template-columns: 34px repeat(auto-fit, minmax(18px, 1fr)); gap: 3px; align-items: center; font-size: 11px; min-width: 420px; }
.pd-heat-head small { text-align: center; color: #6b6b6b; }
.pd-heat i { display: block; height: 22px; border-radius: 4px; background: color-mix(in srgb, var(--acc) calc(var(--v, 0) * 100%), rgba(128, 128, 128, .12)); }
.pd-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.pd-cal > b { text-align: center; font-size: 12px; color: #6b6b6b; padding: 4px 0; }
.pd-cell { min-height: 64px; padding: 4px; border: 1px solid #eee9dc; border-radius: 8px; font-size: 11px; display: flex; flex-direction: column; gap: 2px; overflow: hidden; min-width: 0; }
.pd-cell > span { font-weight: 700; }
.pd-cell.is-out { opacity: .4; } .pd-cell.is-today { border-color: var(--acc); box-shadow: inset 0 0 0 1px var(--acc); }
.pd-cell.has-items { background: var(--pd-accent-soft, #e6f0ea); }
.pd-cell small, .pd-cell em { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-style: normal; }
.pd-cal-nav { display: inline-flex; align-items: center; gap: 8px; }
.pd-cal-nav button { border: 1px solid #d8d3c4; background: #fff; border-radius: 8px; width: 28px; height: 28px; cursor: pointer; }
.pd-score { display: grid; gap: 4px; }
.pd-score strong { font: 800 34px "Manrope", sans-serif; } .pd-score small { font-size: 15px; color: #6b6b6b; } .pd-score em { font-style: normal; color: #6b6b6b; font-size: 13px; }
.pd-reviews > li { align-items: flex-start; flex-direction: column; }
.pd-map { height: 320px; border-radius: 12px; overflow: hidden; background: #e8efe9; }
.pd-menu, .pd-trending, .pd-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.pd-dish { border: 1px solid #e4e0d6; border-radius: 14px; overflow: hidden; background: #fff; display: grid; }
.pd-dish img, .pd-dish .pro-noimg { width: 100%; height: 120px; object-fit: cover; }
.pd-dish > div:last-child { padding: 10px; display: grid; gap: 6px; }
.pd-dish.is-off { opacity: .55; }
.pd-trending article { display: flex; gap: 10px; align-items: center; }
.pd-trending img { width: 54px; height: 54px; border-radius: 10px; object-fit: cover; }
.pd-gallery img { width: 100%; height: 130px; object-fit: cover; border-radius: 12px; }
.pd-hotel .pd-bar.is-top span { background: #ef6a24; }

/* Thème sombre du restaurant */
.pro-app[data-cat="restaurant"] .pd-panel, .pro-app[data-cat="restaurant"] .pd-dish, .pro-app[data-cat="restaurant"] .pd-cell { background: #1a1c21; border-color: #2a2d34; color: #eceef2; }
.pro-app[data-cat="restaurant"] .pd-table td, .pro-app[data-cat="restaurant"] .pd-rows > li { border-color: #2a2d34; }
.pro-app[data-cat="restaurant"] .pd-form input, .pro-app[data-cat="restaurant"] .pd-form select, .pro-app[data-cat="restaurant"] .pd-inline input { background: #101114; color: #eceef2; border-color: #2a2d34; }
.pro-app[data-cat="restaurant"] .pd-table th, .pro-app[data-cat="restaurant"] .pd-bar small, .pro-app[data-cat="restaurant"] .pd-bar em, .pro-app[data-cat="restaurant"] .pd-empty, .pro-app[data-cat="restaurant"] .pd-note { color: #9aa0ad; }

@media (max-width: 900px) {
  .pd-g-21, .pd-g-11 { grid-template-columns: 1fr; }
  .pd-cell { min-height: 48px; }
  .pd-cell small, .pd-cell em { display: none; }
  .pd-hbars li { grid-template-columns: 70px 1fr auto; }
  .pro-logout { margin: 8px 10px; }
}
@media (prefers-reduced-motion: reduce) { .pd-bar span { transition: none; } }
.pd-alerts { list-style: none; margin: 0; padding: 0; }
.pd-donut ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; width: 100%; font-size: 13px; }
.pd-donut li { display: flex; justify-content: space-between; gap: 8px; }
.pd-bar em { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.pro-app[data-cat="restaurant"] .pro-top h1, .pro-app[data-cat="restaurant"] .pro-main h1, .pro-app[data-cat="restaurant"] .pro-main h2 { color: #eceef2; }
.pro-app[data-cat="restaurant"] .pd button:not(.pro-btn), .pro-app[data-cat="restaurant"] .pd .pro-btn.ghost, .pro-app[data-cat="restaurant"] .pd .pro-more, .pro-app[data-cat="restaurant"] .pd .pro-more a { background: #262a31; color: #eceef2; border-color: #353a44; }
.pro-app[data-cat="restaurant"] .pd .pro-more { background: transparent; }
.pro-app[data-cat="restaurant"] .pd-kpis-color .pd-kpi * { color: #fff; }
.pro-app[data-cat="restaurant"] .pro-support, .pro-app[data-cat="hotel"] .pro-support, .pro-app[data-cat="property"] .pro-support { color: #333; }
.pd-kpis-color .pd-kpi.c-green { background: #1f9d63; } .pd-kpis-color .pd-kpi.c-violet { background: #7a4be0; } .pd-kpis-color .pd-kpi.c-blue { background: #2f6fe0; } .pd-kpis-color .pd-kpi.c-coral { background: #e0553b; }
.pd-kpis-color .pd-kpi { color: #fff; } .pd-kpis-color .pd-kpi strong { color: #fff; }
.pro-app[data-cat="restaurant"] .pro-topbar h1 { color: #eceef2; }
.pro-app[data-cat="restaurant"] .pro-topbar, .pro-app[data-cat="restaurant"] .pro-main { color: #eceef2; }
.pd-kpi.c-green, .pd-kpi.c-violet, .pd-kpi.c-blue, .pd-kpi.c-coral { border: 0; color: #fff; }
.pd-kpi.c-green { background: #1f9d63; } .pd-kpi.c-violet { background: #7a4be0; } .pd-kpi.c-blue { background: #2f6fe0; } .pd-kpi.c-coral { background: #e0553b; }
.pd-kpi.c-green *, .pd-kpi.c-violet *, .pd-kpi.c-blue *, .pd-kpi.c-coral * { color: #fff !important; }
.pro-app { grid-template-columns: 250px minmax(0, 1fr); }
.pro-main { min-width: 0; }
@media (max-width: 900px) {
  .pro-app { grid-template-columns: minmax(0, 1fr); }
  .pro-side { min-width: 0; max-width: 100%; }
  .pro-app .pro-nav { overflow-x: auto; }
  .pd-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pd-kpi { padding: 10px; gap: 8px; } .pd-kpi strong { font-size: 17px; }
}
@media (max-width: 900px) { .pd-kpi strong { white-space: normal; font-size: 15px; overflow-wrap: anywhere; } }

/* ───────── Notifications (.wn-*) ───────── */
.wn-bell { position: relative; display: inline-flex; align-items: center; }
.wn-bell-btn { position: relative; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); background: var(--white); color: var(--ink); display: grid; place-items: center; cursor: pointer; transition: background .2s, transform .2s; }
.wn-bell-btn:hover { background: #f0efe6; }
.wn-bell-btn:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.wn-bell-ico { display: grid; place-items: center; transform-origin: 50% 0; }
.wn-badge { position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: #d93025; color: #fff; font: 700 11px/18px "DM Sans", sans-serif; text-align: center; box-shadow: 0 0 0 2px var(--white); }
.wn-badge[hidden] { display: none; }
.wn-pulse .wn-badge { animation: wn-pulse 1.1s ease-out 2; }
.wn-pulse .wn-bell-ico { animation: wn-ring .8s ease-in-out 1; }
@keyframes wn-pulse { 0% { box-shadow: 0 0 0 2px var(--white), 0 0 0 0 rgba(217,48,37,.6); } 100% { box-shadow: 0 0 0 2px var(--white), 0 0 0 12px rgba(217,48,37,0); } }
@keyframes wn-ring { 0%, 100% { transform: rotate(0); } 20% { transform: rotate(14deg); } 40% { transform: rotate(-12deg); } 60% { transform: rotate(8deg); } 80% { transform: rotate(-4deg); } }
.wn-menu { position: absolute; top: calc(100% + 10px); right: 0; width: 360px; max-width: calc(100vw - 24px); background: var(--white); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 18px 50px rgba(32,52,46,.18); z-index: 1000; overflow: hidden; }
.wn-menu[hidden] { display: none; }
.wn-menu-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.wn-menu-head button { background: none; border: 0; color: var(--green); font-weight: 600; cursor: pointer; font-size: 13px; }
.wn-menu-head button:disabled { color: var(--muted); cursor: default; }
.wn-menu-list { max-height: 360px; overflow: auto; }
.wn-menu-foot { display: block; text-align: center; padding: 12px; font-weight: 700; color: var(--green); border-top: 1px solid var(--line); text-decoration: none; }
.wn-item { display: flex; gap: 12px; padding: 12px 16px; text-decoration: none; color: var(--ink); border-bottom: 1px solid var(--line); }
.wn-item:hover { background: #f6f5ee; }
.wn-item.is-unread { background: #f3f8ec; }
.wn-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 14px; }
.wn-body small, .wn-body time { color: var(--muted); font-size: 12px; }
.wn-ico { flex: none; width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: #e8efe9; color: var(--green); }
.wn-success .wn-ico { background: #e1f3e6; color: #1b7a3c; }
.wn-warning .wn-ico { background: #fdf0d5; color: #a76400; }
.wn-critical .wn-ico { background: #fde4e1; color: #c5221f; }
.wn-empty { padding: 28px 16px; text-align: center; color: var(--muted); }
.wn-toast { position: fixed; right: 16px; bottom: 16px; z-index: 2000; display: flex; gap: 12px; align-items: center; max-width: 340px; padding: 12px 14px; background: var(--white); border: 1px solid var(--line); border-left: 4px solid var(--green); border-radius: 14px; box-shadow: 0 12px 36px rgba(32,52,46,.2); transform: translateY(20px); opacity: 0; transition: .35s; }
.wn-toast.is-in { transform: none; opacity: 1; }
.wn-toast.wn-warning { border-left-color: #e8a317; } .wn-toast.wn-critical { border-left-color: #d93025; } .wn-toast.wn-success { border-left-color: #1b7a3c; }
.wn-toast strong, .wn-toast small { display: block; } .wn-toast small { color: var(--muted); font-size: 12px; }
.wn-center-page { max-width: 880px; margin: 0 auto; padding: 32px 20px 80px; }
.wn-page-head { margin-bottom: 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; }
.wn-page-head h1 { margin: 0; font-family: "Manrope", sans-serif; font-size: clamp(1.6rem, 4vw, 2.2rem); }
.wn-page-head p { flex-basis: 100%; margin: 0; color: var(--muted); }
.wn-h2 { font-family: "Manrope", sans-serif; font-size: 1.15rem; margin: 28px 0 12px; }
.wn-toolbar { display: flex; flex-direction: column; gap: 12px; margin-bottom: 16px; }
.wn-chips { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
.wn-chip { flex: none; border: 1px solid var(--line); background: var(--white); border-radius: 999px; padding: 7px 14px; font: 600 13px "DM Sans", sans-serif; color: var(--ink); cursor: pointer; }
.wn-chip.is-active { background: var(--green); border-color: var(--green); color: #fff; }
.wn-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; font-size: 14px; }
.wn-check { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.wn-btn { border: 0; background: var(--green); color: #fff; border-radius: 10px; padding: 9px 16px; font: 600 13px "DM Sans", sans-serif; cursor: pointer; text-decoration: none; display: inline-block; }
.wn-btn:hover { background: var(--green-dark); }
.wn-btn-ghost { background: transparent; color: var(--green); border: 1px solid var(--line); padding: 6px 12px; }
.wn-btn-ghost:hover { background: #eef2ea; }
.wn-btn[hidden] { display: none; }
.wn-list { display: grid; gap: 10px; }
.wn-card { display: flex; gap: 14px; align-items: flex-start; padding: 16px; background: var(--white); border: 1px solid var(--line); border-radius: 16px; transition: box-shadow .2s; }
.wn-card:hover { box-shadow: 0 8px 24px rgba(32,52,46,.08); }
.wn-card.is-unread { border-left: 4px solid var(--green); background: #fbfdf6; }
.wn-card.wn-critical.is-unread { border-left-color: #d93025; } .wn-card.wn-warning.is-unread { border-left-color: #e8a317; }
.wn-card-body { flex: 1; min-width: 0; } .wn-card-body p { margin: 4px 0; color: #46524b; overflow-wrap: anywhere; }
.wn-card-body time { color: var(--muted); font-size: 12px; }
.wn-card-top { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.wn-pill { font-size: 11px; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: #eef2ea; color: var(--green); }
.wn-card-actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.wn-more { text-align: center; margin-top: 16px; }
.wn-alerts { margin-bottom: 18px; display: grid; gap: 8px; }
.wn-alerts h3 { margin: 0; font-size: 14px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.wn-alert { display: flex; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 14px; border: 1px solid #f3d6a3; background: #fff8e8; }
.wn-alert.wn-critical { border-color: #f1b8b3; background: #fff1ef; }
.wn-alert .wn-body { flex: 1; } .wn-alert a { font-weight: 700; color: var(--green); }
.wn-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px; }
.wn-stat { background: var(--white); border: 1px solid var(--line); border-radius: 14px; padding: 14px; display: grid; gap: 4px; }
.wn-stat span { color: var(--muted); font-size: 13px; } .wn-stat strong { font: 800 1.4rem "Manrope", sans-serif; } .wn-stat small { color: #1b7a3c; font-weight: 700; }
.wn-stat.wn-warning { background: #fff8e8; border-color: #f3d6a3; } .wn-stat.wn-critical { background: #fff1ef; border-color: #f1b8b3; }
.wn-stat.wn-wide { grid-column: 1 / -1; }
.wn-bars { display: grid; gap: 6px; } .wn-bars div { display: grid; grid-template-columns: 70px 1fr 30px; align-items: center; gap: 8px; font-size: 13px; }
.wn-bars em { font-style: normal; } .wn-bars b { height: 8px; border-radius: 4px; background: var(--green); display: block; } .wn-bars i { font-style: normal; color: var(--muted); }
.wn-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; background: var(--white); border: 1px solid var(--line); border-radius: 12px; margin-bottom: 8px; flex-wrap: wrap; }
.wn-row small { display: block; color: var(--muted); }
.pro-bell-host { display: inline-flex; }
@media (max-width: 640px) {
  .wn-menu { position: fixed; top: 64px; left: 12px; right: 12px; width: auto; }
  .wn-card { flex-wrap: wrap; } .wn-card-actions { width: 100%; justify-content: flex-start; }
  .wn-toast { left: 12px; right: 12px; max-width: none; bottom: 76px; }
}
@media (prefers-reduced-motion: reduce) { .wn-pulse .wn-badge, .wn-pulse .wn-bell-ico { animation: none; } .wn-toast { transition: none; } }
/* Messagerie voyageur */
.msg-app { display: grid; grid-template-columns: 300px 1fr; gap: 16px; min-height: 480px; }
.msg-list { display: grid; align-content: start; gap: 8px; }
.msg-thread { text-align: left; display: grid; gap: 2px; padding: 12px 14px; background: var(--white); border: 1px solid var(--line); border-radius: 14px; cursor: pointer; font: inherit; color: var(--ink); }
.msg-thread span { color: var(--muted); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.msg-thread time { color: var(--muted); font-size: 11px; }
.msg-thread.is-active { border-color: var(--green); background: #f3f8ec; }
.msg-conv { display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; min-height: 420px; }
.msg-conv-head { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.msg-back { display: none; }
.msg-log { flex: 1; overflow: auto; padding: 16px; display: flex; flex-direction: column; gap: 8px; max-height: 55vh; }
.msg-bubble { max-width: 78%; padding: 10px 14px; border-radius: 14px; background: #eef2ea; align-self: flex-start; }
.msg-bubble.is-me { align-self: flex-end; background: var(--green); color: #fff; }
.msg-bubble p { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.msg-bubble time { font-size: 11px; opacity: .7; }
.msg-form { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--line); }
.msg-form textarea { flex: 1; border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; font: inherit; resize: none; }
@media (max-width: 720px) {
  .msg-app { grid-template-columns: 1fr; }
  .msg-app.has-conv .msg-list { display: none; }
  .msg-app:not(.has-conv) .msg-placeholder { display: none; }
  .msg-back { display: inline-block; }
}