*{
    box-sizing:border-box;
}

:root{
    --color-page:#f5f7fa;
    --color-surface:#ffffff;
    --color-surface-soft:#f8fafc;
    --color-border:#d9e2ec;
    --color-border-strong:#bcccdc;
    --color-text:#1f2933;
    --color-heading:#102a43;
    --color-muted:#627d98;
    --color-link:var(--theme-primary,#681734);
    --color-accent:#0f766e;
    --color-purple:#6b3fa0;
    --shadow-soft:0 10px 28px rgba(16,42,67,.08);
    --radius:4px;
    --site-width:1180px;
}

body{
    background:var(--color-page);
    color:var(--color-text);
    font-family:Arial,sans-serif;
    line-height:1.62;
    margin:0;
}

a{
    color:var(--color-link);
    text-decoration:none;
}

a:hover{
    text-decoration:underline;
}

.site-header{
    background:var(--color-surface);
    border-bottom:1px solid var(--color-border);
    position:sticky;
    top:0;
    z-index:1100;
}

.site-header-inner{
    align-items:center;
    display:flex;
    gap:24px;
    justify-content:space-between;
    margin:0 auto;
    max-width:var(--site-width);
    padding:14px 20px;
}

.site-name{
    color:var(--color-heading);
    flex:0 0 auto;
    font-size:21px;
    font-weight:bold;
    text-decoration:none;
}


.site-menu-toggle{
    align-items:center;
    background:#fff;
    border:1px solid var(--color-border-strong);
    border-radius:var(--radius);
    color:var(--color-heading);
    cursor:pointer;
    display:none;
    font:inherit;
    gap:8px;
    padding:8px 10px;
}

.site-menu-toggle-icon{
    display:grid;
    gap:4px;
    width:18px;
}

.site-menu-toggle-icon span{
    background:currentColor;
    display:block;
    height:2px;
    transition:opacity .16s ease, transform .16s ease;
    width:18px;
}

.site-menu-toggle[aria-expanded="true"] .site-menu-toggle-icon span:nth-child(1){
    transform:translateY(6px) rotate(45deg);
}

.site-menu-toggle[aria-expanded="true"] .site-menu-toggle-icon span:nth-child(2){
    opacity:0;
}

.site-menu-toggle[aria-expanded="true"] .site-menu-toggle-icon span:nth-child(3){
    transform:translateY(-6px) rotate(-45deg);
}
.site-nav{
    align-items:center;
    display:flex;
    flex:1 1 auto;
    justify-content:flex-end;
}

.site-menu,
.site-submenu{
    list-style:none;
    margin:0;
    padding:0;
}

.site-menu{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    gap:2px;
    justify-content:flex-end;
}

.site-menu-item{
    position:relative;
}

.site-menu-link{
    border-radius:var(--radius);
    color:#334e68;
    display:block;
    font-size:14px;
    padding:9px 11px;
    text-decoration:none;
}

.site-menu-link:hover,
.site-menu-item:hover > .site-menu-link,
.site-menu-item:focus-within > .site-menu-link{
    background:#eef2f7;
    color:var(--color-heading);
    text-decoration:none;
}

.site-menu-item.has-children > .site-menu-link::after{
    content:"";
    border-left:4px solid transparent;
    border-right:4px solid transparent;
    border-top:5px solid #829ab1;
    display:inline-block;
    margin-left:7px;
    vertical-align:middle;
}

.site-submenu{
    background:var(--color-surface);
    border:1px solid var(--color-border);
    box-shadow:var(--shadow-soft);
    display:none;
    left:0;
    min-width:220px;
    position:absolute;
    top:100%;
    z-index:30;
}

.site-menu-item:hover > .site-submenu,
.site-menu-item:focus-within > .site-submenu{
    display:block;
}

.site-submenu .site-menu-link{
    border-radius:0;
    padding:10px 12px;
    white-space:nowrap;
}

.container{
    margin:0 auto;
    max-width:var(--site-width);
    padding:26px 20px;
}

.page-meta-bar{
    align-items:flex-start;
    display:grid;
    gap:24px;
    grid-template-columns:minmax(0,1fr) 320px;
    margin:0 0 20px;
}

.page-meta-left{
    align-items:flex-start;
    display:flex;
    flex-wrap:nowrap;
    gap:18px;
    justify-content:space-between;
    min-width:0;
}

.breadcrumbs{
    color:var(--color-muted);
    flex:1 1 auto;
    font-size:14px;
    margin:0;
    min-width:0;
}

.breadcrumbs ol{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    list-style:none;
    margin:0;
    padding:0;
}

.breadcrumbs li:not(:last-child)::after{
    color:#9fb3c8;
    content:"/";
    margin-left:6px;
}

.page-taxonomy-links{
    display:flex;
    flex:0 1 auto;
    flex-wrap:wrap;
    gap:7px;
    justify-content:flex-end;
    max-width:48%;
}

.page-meta-left .entity-badges{
    display:flex;
    flex:0 0 auto;
    flex-wrap:wrap;
    gap:7px;
    justify-content:flex-end;
}

.page-meta-left .entity-badge{
    background:#ffffff;
    border:1px solid var(--color-border);
    border-radius:999px;
    color:var(--color-muted);
    display:inline-flex;
    font-size:12px;
    font-weight:bold;
    letter-spacing:0;
    padding:5px 9px;
    text-decoration:none;
    white-space:nowrap;
}

.page-meta-left a.entity-badge:hover{
    background:#eef2f7;
    text-decoration:none;
}

.page-meta-left .entity-badge-primary{
    background:#f7edf1;
    border-color:#d7adbc;
    color:var(--theme-primary);
}

.page-meta-left a.entity-badge-primary:hover{
    background:#efdde5;
}

.page-meta-social{
    display:flex;
    flex:0 0 auto;
    gap:8px;
}

.page-meta-social-link{
    align-items:center;
    background-color:transparent;
    border:1.5px solid #1877f2;
    border-radius:50%;
    display:flex;
    height:30px;
    justify-content:center;
    transition:background-color .15s ease;
    width:30px;
}

.page-meta-social-link:hover{
    background-color:rgba(24,119,242,.1);
}

.page-meta-social-link svg{
    height:16px;
    width:10px;
}

.page-meta-social-link-facebook svg path{
    fill:#1877f2;
}

.page-taxonomy-link{
    background:#ffffff;
    border:1px solid var(--color-border);
    border-radius:999px;
    color:#486581;
    font-size:12px;
    font-weight:bold;
    line-height:1.2;
    padding:5px 9px;
    text-decoration:none;
    white-space:nowrap;
}

.page-taxonomy-link:hover{
    background:#eef7f5;
    border-color:#aacfc8;
    color:var(--color-accent);
    text-decoration:none;
}

.page-taxonomy-link-tag{
    background:#f8fafc;
    color:#5d7180;
}

.hero{
    background:var(--color-surface);
    border:1px solid var(--color-border);
    margin-bottom:24px;
    overflow:hidden;
    padding:24px;
    position:relative;
}

.hero::before{
    background-image:var(--hero-bg-image, none);
    background-position:center;
    background-size:cover;
    content:'';
    filter:grayscale(1) contrast(1.05);
    inset:0;
    opacity:.1;
    position:absolute;
}

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

.hero > .hero-bg{
    inset:0;
    position:absolute;
    z-index:0;
}

.hero-bg-slide{
    background-position:center;
    background-size:cover;
    filter:grayscale(1) contrast(1.05);
}

.hero .hero-bg-slide.is-active{
    opacity:.1;
}

.hero-image{
    display:block;
    height:auto;
    margin:-24px -24px 22px;
    max-height:520px;
    object-fit:cover;
    width:calc(100% + 48px);
}

.kicker{
    color:var(--color-muted);
    font-size:14px;
    font-weight:bold;
    letter-spacing:.03em;
    text-transform:uppercase;
}

h1{
    color:var(--color-heading);
    font-size:clamp(32px,5vw,48px);
    line-height:1.08;
    margin:8px 0 12px;
}

h2{
    color:var(--color-heading);
    font-size:24px;
    margin-top:34px;
}

.summary{
    color:#486581;
    font-size:19px;
    margin:0;
    max-width:780px;
}

.summary p{
    margin:0 0 12px;
}

.summary p:last-child{
    margin-bottom:0;
}

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

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

.entity-layout-single{
    grid-template-columns:minmax(0,1fr);
}

.entity-sidebar{
    display:grid;
    gap:16px;
    min-width:0;
    position:sticky;
    top:86px;
}

.content,
.sidebar-card,
.taxonomy-links{
    background:var(--color-surface);
    border:1px solid var(--color-border);
    padding:22px;
}

.content img{
    height:auto;
    max-width:100%;
}

.content figure{
    margin:24px 0;
}

.content figcaption{
    color:var(--color-muted);
    font-size:14px;
    margin-top:6px;
    text-align:center;
}

.content figcaption p{
    margin:0 0 4px;
}

.content figcaption p:last-child{
    margin-bottom:0;
}

.content table{
    border-collapse:collapse;
    display:block;
    max-width:100%;
    overflow-x:auto;
}

.content td,
.content th{
    border:1px solid var(--color-border);
    padding:8px;
    text-align:left;
}

.content blockquote{
    border-left:4px solid var(--color-border-strong);
    color:#486581;
    margin:22px 0;
    padding-left:16px;
}

.sidebar-card h2,
.sidebar-card h3{
    font-size:18px;
    margin:0 0 10px;
}

.visually-hidden{
    border:0 !important;
    clip:rect(0 0 0 0) !important;
    clip-path:inset(50%) !important;
    height:1px !important;
    margin:-1px !important;
    overflow:hidden !important;
    padding:0 !important;
    position:absolute !important;
    white-space:nowrap !important;
    width:1px !important;
}

.page-meta-actions{
    align-items:center;
    display:flex;
    gap:14px;
    width:100%;
}

.page-meta-search-form{
    align-items:center;
    display:flex;
    flex:1 1 auto;
    gap:4px;
    min-width:0;
}

.page-meta-search-form input[type="search"]{
    background:var(--color-surface);
    border:0;
    border-bottom:1px solid var(--color-border);
    border-radius:4px 4px 0 0;
    color:var(--color-heading);
    flex:1 1 auto;
    font:inherit;
    font-size:14px;
    min-width:0;
    padding:5px 8px;
    width:auto;
}

.page-meta-search-form input[type="search"]:focus{
    border-bottom-color:var(--theme-primary, var(--color-link));
    outline:none;
}

.page-meta-search-form button{
    align-items:center;
    background:none;
    border:0;
    color:var(--color-muted);
    cursor:pointer;
    display:flex;
    padding:2px;
}

.page-meta-search-form button:hover{
    color:var(--theme-primary, var(--color-link));
}

.page-meta-search-form button svg{
    fill:none;
    height:16px;
    stroke:currentColor;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-width:2;
    width:16px;
}

.search-form{
    display:flex;
    gap:8px;
    margin-top:14px;
    max-width:480px;
}

.search-form input[type="search"]{
    border:1px solid var(--color-border);
    border-radius:var(--radius);
    flex:1 1 auto;
    font:inherit;
    padding:9px 12px;
}

.search-form button{
    background:var(--color-link);
    border:0;
    border-radius:var(--radius);
    color:#fff;
    cursor:pointer;
    font:inherit;
    padding:9px 18px;
}

.search-results-count{
    color:var(--color-muted);
    margin:0 0 16px;
}

.sidebar-card p{
    margin:8px 0;
}

.sidebar-note{
    color:var(--color-muted);
    font-size:14px;
}

.sidebar-actions{
    display:grid;
    gap:8px;
}

.sidebar-action{
    background:#e6f4f1;
    border:1px solid #99d6cd;
    border-radius:var(--radius);
    color:#064e45;
    display:block;
    font-weight:normal;
    padding:9px 10px;
    text-decoration:none;
}

.sidebar-action:hover{
    background:#d3eee8;
    text-decoration:none;
}

.map-frame{
    aspect-ratio:4/3;
    background:var(--color-surface-soft);
    border:1px solid var(--color-border);
    display:block;
    overflow:hidden;
    width:100%;
}

.map-link{
    display:inline-block;
    font-size:14px;
    margin-top:8px;
}

.taxonomy-links{
    margin:0 0 24px;
}

.taxonomy-links p{
    margin:8px 0;
}

.cards{
    display:grid;
    gap:16px;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    margin-bottom:28px;
}

.card{
    background:var(--color-surface);
    border:1px solid var(--color-border);
    display:block;
    min-height:100%;
    padding:16px;
}

.card-main{
    color:inherit;
    display:block;
    text-decoration:none;
}

.card-main:hover{
    text-decoration:none;
}
.card:hover{
    box-shadow:var(--shadow-soft);
    text-decoration:none;
}

.card img{
    display:block;
    height:140px;
    margin:-16px -16px 12px;
    object-fit:cover;
    width:calc(100% + 32px);
}

.card-prepare-icon{
    align-items:center;
    background:#f7edf1;
    display:flex;
    height:96px;
    justify-content:center;
    margin:-16px -16px 12px;
    width:calc(100% + 32px);
}

.card-prepare-icon svg{
    fill:none;
    height:40px;
    stroke:var(--theme-primary);
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-width:1.5;
    width:40px;
}

.card-head{
    align-items:center;
    display:flex;
    gap:8px;
    justify-content:space-between;
}

.card-type{
    color:var(--color-muted);
    font-size:13px;
    font-weight:bold;
    text-transform:uppercase;
}

.card-rating{
    color:#e0a530;
    flex:0 0 auto;
    font-size:13px;
    letter-spacing:1px;
    line-height:1;
}

.card-title{
    color:var(--color-heading);
    font-size:19px;
    font-weight:bold;
    margin:4px 0;
}

.card-summary{
    color:#486581;
    margin:0;
}

.card-summary p{
    margin:0 0 6px;
}

.card-summary p:last-child{
    margin-bottom:0;
}


.listing-filters{
    align-items:end;
    background:var(--color-surface);
    border:1px solid var(--color-border);
    display:grid;
    gap:14px;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    margin:0 0 18px;
    padding:16px;
}

.listing-filters label{
    color:var(--color-heading);
    display:block;
    font-size:13px;
    font-weight:bold;
    margin-bottom:5px;
}

.listing-filters select{
    border:1px solid var(--color-border-strong);
    border-radius:var(--radius);
    font:inherit;
    padding:8px;
    width:100%;
}

.listing-filter-actions{
    align-items:center;
    display:flex;
    gap:10px;
}

.listing-filter-actions button{
    background:var(--color-link);
    border:0;
    border-radius:var(--radius);
    color:#fff;
    cursor:pointer;
    font:inherit;
    font-weight:bold;
    padding:9px 12px;
}

.button-link{
    color:var(--color-muted);
    font-size:14px;
}

.listing-meta{
    color:var(--color-muted);
    font-size:14px;
    margin:0 0 18px;
}

.card-meta{
    color:var(--color-muted);
    font-size:14px;
    margin:4px 0 8px;
}

.card-meta-light-edition{
    font-size:13px;
    font-style:italic;
    margin-top:-4px;
}

.card-editions{
    border-top:1px solid var(--color-border);
    display:flex;
    flex-wrap:wrap;
    gap:6px 10px;
    margin-top:10px;
    padding-top:10px;
}

.card-editions a{
    font-size:13px;
}

.card-editions-all{
    font-weight:bold;
}

.card-taxonomy{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-top:12px;
}

.card-taxonomy a,
.card-taxonomy span{
    background:#eef2f7;
    border-radius:var(--radius);
    color:#486581;
    font-size:12px;
    padding:3px 6px;
    text-decoration:none;
}

.card-taxonomy a:hover{
    background:#dbe4ee;
}

.pagination{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:10px;
}

.pagination a{
    background:var(--color-surface);
    border:1px solid var(--color-border);
    border-radius:var(--radius);
    color:#334e68;
    min-width:36px;
    padding:7px 10px;
    text-align:center;
    text-decoration:none;
}

.pagination a.active,
.pagination a:hover{
    background:#eef2f7;
    color:var(--color-heading);
}
.term-list{
    display:grid;
    gap:12px;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    margin-bottom:28px;
}

.term-card{
    background:var(--color-surface);
    border:1px solid var(--color-border);
    display:flex;
    gap:12px;
    justify-content:space-between;
    padding:14px 16px;
}

.term-count{
    color:var(--color-muted);
    font-size:14px;
    white-space:nowrap;
}

.term-children-filter{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    gap:8px 10px;
    margin:0 0 28px;
}

.term-children-filter-label{
    color:var(--color-muted);
    font-size:14px;
}

.term-children-filter-link{
    background:var(--color-surface);
    border:1px solid var(--color-border);
    border-radius:20px;
    color:var(--color-heading);
    font-size:14px;
    padding:6px 14px;
    text-decoration:none;
}

.term-children-filter-link:hover{
    border-color:var(--theme-primary);
    color:var(--theme-primary);
}

.term-children-filter-link .term-count{
    font-size:13px;
}

.site-footer{
    color:var(--color-muted);
    font-size:14px;
    padding:24px 20px;
    text-align:center;
}

@media (max-width:900px){
    .site-header{
        position:static;
    }

    .site-header-inner{
        align-items:flex-start;
        flex-direction:column;
    }

    .site-nav,
    .site-menu{
        justify-content:flex-start;
        width:100%;
    }

    .site-menu{
        align-items:stretch;
        display:grid;
        gap:4px;
    }

    .site-submenu{
        border:0;
        box-shadow:none;
        display:block;
        margin-left:14px;
        position:static;
    }

    .entity-layout{
        grid-template-columns:1fr;
    }

    .entity-sidebar{
        position:static;
    }

    .page-meta-bar{
        grid-template-columns:1fr;
    }
}

@media (max-width:700px){
    .page-meta-bar{
        gap:10px;
    }

    .page-meta-left{
        flex-wrap:wrap;
    }

    .page-taxonomy-links{
        justify-content:flex-start;
        max-width:none;
        width:100%;
    }

    .page-meta-left .entity-badges{
        justify-content:flex-start;
        width:100%;
    }

    .page-meta-social{
        justify-content:flex-start;
    }

    .page-meta-actions{
        justify-content:space-between;
        width:100%;
    }

    .page-meta-search-form input[type="search"]{
        width:100%;
    }

    .page-meta-search-form{
        flex:1 1 auto;
    }

    .container{
        padding:18px;
    }

    .hero,
    .content,
    .sidebar-card,
    .taxonomy-links{
        padding:18px;
    }

    .hero-image{
        margin:-18px -18px 18px;
        width:calc(100% + 36px);
    }
}
.cms-gallery{
    display:grid;
    gap:14px;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    margin:26px 0;
}

.content .cms-gallery figure{
    margin:0;
}

.cms-gallery img{
    background:#edf2f7;
    display:block;
    height:auto;
    width:100%;
}

.button,
.button-light{
    background:var(--color-link);
    border:0;
    border-radius:var(--radius);
    color:#fff;
    cursor:pointer;
    display:inline-block;
    font:inherit;
    padding:8px 12px;
    text-decoration:none;
}

.button:hover,
.button-light:hover{
    text-decoration:none;
}

.button-light{
    background:#e2e8f0;
    color:#1f2933;
}

.button-light.is-active{
    background:var(--color-accent, #2c7a7b);
    color:#fff;
}
.travel-quick-link{
    align-items:center;
    background:#eef2f7;
    border:1px solid var(--color-border);
    border-radius:var(--radius);
    color:var(--color-heading);
    display:inline-flex;
    flex:0 0 auto;
    font-size:14px;
    gap:7px;
    padding:8px 10px;
    text-decoration:none;
}

.travel-quick-link:hover{
    background:#e2e8f0;
    text-decoration:none;
}

.travel-quick-link span{
    background:var(--color-accent);
    border-radius:999px;
    color:#fff;
    font-size:12px;
    line-height:1;
    min-width:20px;
    padding:4px 6px;
    text-align:center;
}

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

.entity-title-row h1{
    min-width:0;
}

.entity-actions{
    display:flex;
    flex:0 0 auto;
    gap:8px;
    padding-top:10px;
}

.entity-action-button{
    align-items:center;
    background:#fff;
    border:1px solid var(--color-border-strong);
    border-radius:999px;
    color:#334e68;
    cursor:pointer;
    display:inline-flex;
    font:inherit;
    height:38px;
    justify-content:center;
    line-height:1;
    padding:0;
    width:38px;
}

.entity-action-button:hover,
.entity-action-button.is-active{
    background:#e6fffa;
    border-color:var(--color-accent);
    color:var(--color-accent);
}

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

.itinerary-main{
    display:grid;
    gap:24px;
    min-width:0;
}

.itinerary-map-block{
    display:flex;
    gap:14px;
    position:relative;
}

.itinerary-map-hint{
    color:var(--color-muted);
    font-size:13px;
    margin:10px 0 0;
}

.itinerary-map-actions{
    align-items:center;
    display:flex;
    gap:14px;
    margin-top:12px;
}

.button-small{
    font-size:12px;
    padding:5px 10px;
}


.itinerary-side{
    display:grid;
    gap:24px;
}

.itinerary-assistant h2{
    margin:0 0 16px;
}

.itinerary-assistant h3{
    color:var(--color-heading);
    font-size:16px;
    margin:16px 0 10px;
}

.itinerary-assistant-empty{
    color:#486581;
}

.itinerary-route-detail-empty{
    color:#486581;
}

.itinerary-route-steps{
    display:grid;
    gap:10px;
    list-style:none;
    margin:0;
    max-height:420px;
    overflow-y:auto;
    padding:0 12px 0 0;
}

.itinerary-route-steps li{
    border-bottom:1px solid var(--color-border);
    display:flex;
    gap:10px;
    justify-content:space-between;
    padding-bottom:10px;
}

.itinerary-route-steps li:last-child{
    border-bottom:0;
    padding-bottom:0;
}

.itinerary-route-step-text{
    color:var(--color-heading);
    font-size:13px;
}

.itinerary-route-step-distance{
    color:var(--color-muted);
    flex:0 0 auto;
    font-size:12px;
    white-space:nowrap;
}

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

.assistant-metrics div{
    background:var(--color-surface-soft);
    border:1px solid var(--color-border);
    padding:10px;
}

.assistant-metrics strong{
    color:var(--color-heading);
    display:block;
    font-size:20px;
    line-height:1.1;
}

.assistant-metrics span{
    color:var(--color-muted);
    display:block;
    font-size:12px;
    margin-top:4px;
}

.assistant-advice{
    display:grid;
    gap:8px;
    list-style:none;
    margin:16px 0 0;
    padding:0;
}

.assistant-advice li{
    border-left:3px solid var(--color-accent);
    color:#334e68;
    padding-left:10px;
}

.assistant-zones{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.assistant-zones span{
    background:#eef2f7;
    border:1px solid var(--color-border);
    border-radius:999px;
    color:#334e68;
    font-size:13px;
    padding:5px 9px;
}

.assistant-zones strong{
    color:var(--color-heading);
}

.itinerary-meta{
    clear:right;
    color:var(--color-muted);
    font-size:13px;
    margin:0 0 8px;
}
.itinerary-duration-missing{
    color:#e0a530;
    cursor:help;
    font-weight:600;
}
.itinerary-panel{
    background:var(--color-surface);
    border:1px solid var(--color-border);
    padding:22px;
}

.itinerary-map-panel{
    padding-left:11px;
    padding-right:11px;
}

.itinerary-toolbar{
    align-items:center;
    display:flex;
    gap:16px;
    justify-content:space-between;
}

.itinerary-toolbar h2,
.itinerary-map-panel h2{
    margin:0 0 16px;
}

.itinerary-list{
    display:grid;
    gap:14px;
    list-style:none;
    margin:0;
    padding:0;
}

.itinerary-item{
    border:1px solid var(--color-border);
    cursor:grab;
    display:grid;
    gap:14px;
    grid-template-columns:132px minmax(0,1fr);
    padding:12px;
    touch-action:none;
    -webkit-user-select:none;
    user-select:none;
}

.itinerary-item a,
.itinerary-item button{
    touch-action:auto;
    -webkit-user-select:auto;
    user-select:auto;
}

.itinerary-item.is-dragging{
    cursor:grabbing;
    opacity:.4;
}

.itinerary-item img{
    aspect-ratio:4/3;
    background:#edf2f7;
    height:auto;
    object-fit:cover;
    width:100%;
}

.itinerary-item-body{
    grid-column:2;
    min-width:0;
    position:relative;
}

.itinerary-item-top-actions{
    align-items:center;
    display:flex;
    float:right;
    gap:6px;
    margin:0 0 6px 10px;
}

.itinerary-step{
    align-items:center;
    background:var(--color-purple);
    border-radius:999px;
    color:#fff;
    display:inline-flex;
    flex:0 0 auto;
    font-size:13px;
    font-weight:bold;
    height:26px;
    justify-content:center;
    width:26px;
}

.itinerary-item h3{
    font-size:20px;
    margin:0 0 6px;
}

.itinerary-item p{
    color:#486581;
    margin:0 0 8px;
}

.itinerary-hours{
    color:var(--color-muted);
    display:block;
    font-size:13px;
    margin:0 0 8px;
}

.text-button{
    background:transparent;
    border:0;
    color:var(--color-link);
    cursor:pointer;
    font:inherit;
    padding:0;
}

.itinerary-remove-button{
    background:#e2e8f0;
    border:0;
    border-radius:var(--radius);
    color:#1f2933;
    cursor:pointer;
    flex:0 0 auto;
    font:inherit;
    font-size:12px;
    padding:5px 10px;
}

.itinerary-remove-button:hover{
    background:#d6dde5;
}

.itinerary-item.is-excluded{
    opacity:.55;
}

.itinerary-excluded-note{
    color:var(--color-muted);
    font-size:12px;
    font-style:italic;
    margin:0 0 6px;
}

.itinerary-empty{
    color:#486581;
}

.itinerary-map{
    background:#eef2f7;
    border:1px solid var(--color-border);
    flex:1 1 0%;
    height:420px;
    min-width:0;
    overflow:hidden;
    position:relative;
}

.itinerary-map-empty{
    background:rgba(255,255,255,.92);
    border:1px solid var(--color-border);
    left:50%;
    padding:12px 14px;
    position:absolute;
    text-align:center;
    top:50%;
    transform:translate(-50%,-50%);
    width:min(280px,80%);
    z-index:1;
}

.itinerary-pin-badge{
    align-items:center;
    background:var(--color-purple);
    border:2px solid #fff;
    border-radius:999px;
    box-shadow:0 8px 18px rgba(16,42,67,.25);
    color:#fff;
    display:flex;
    font-size:13px;
    font-weight:bold;
    height:30px;
    justify-content:center;
    width:30px;
}

.itinerary-order-rail-wrap{
    flex:0 0 190px;
    position:relative;
    width:190px;
}

.itinerary-order-rail{
    display:flex;
    flex-direction:column;
    gap:6px;
    list-style:none;
    margin:0;
    max-height:420px;
    overflow-y:auto;
    padding:34px 0 0;
    width:100%;
}

.itinerary-order-item{
    align-items:center;
    background:var(--color-surface);
    border:1px solid var(--color-border);
    border-radius:6px;
    cursor:grab;
    display:flex;
    gap:5px;
    padding:6px 5px;
    touch-action:none;
    -webkit-user-select:none;
    user-select:none;
}

.itinerary-order-item.is-dragging{
    cursor:grabbing;
    opacity:.4;
}

.itinerary-drag-ghost{
    background:var(--color-purple);
    border-radius:999px;
    box-shadow:0 4px 12px rgba(0,0,0,.25);
    color:#fff;
    font-size:13px;
    font-weight:bold;
    max-width:180px;
    overflow:hidden;
    padding:6px 12px;
    pointer-events:none;
    position:fixed;
    text-overflow:ellipsis;
    top:0;
    left:0;
    transform:translate(-50%,-130%);
    white-space:nowrap;
    z-index:1000;
}

.itinerary-order-step{
    align-items:center;
    background:var(--color-purple);
    border-radius:999px;
    color:#fff;
    display:inline-flex;
    flex:0 0 auto;
    font-size:12px;
    font-weight:bold;
    height:22px;
    justify-content:center;
    width:22px;
}

.itinerary-order-title{
    color:var(--color-heading);
    flex:1 1 auto;
    font-size:13px;
    min-width:0;
    overflow:hidden;
    text-decoration:none;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.itinerary-order-item.no-coords{
    opacity:.65;
}

.itinerary-trash{
    align-items:center;
    background:var(--color-surface);
    border:1px solid var(--color-border);
    border-radius:999px;
    cursor:default;
    display:flex;
    font-size:15px;
    height:26px;
    justify-content:center;
    position:absolute;
    right:4px;
    top:4px;
    width:26px;
    z-index:2;
}

.itinerary-all-places-marker{
    background-image:var(--pin-image);
    background-position:center;
    background-repeat:no-repeat;
    background-size:contain;
    display:block;
    filter:grayscale(1) opacity(.65);
    height:40px;
    width:29px;
}

.itinerary-trash.is-drop-target{
    background:#fbe4e4;
    border-color:#c94b4b;
    color:#c94b4b;
    transform:scale(1.15);
}

.itinerary-order-item.is-excluded{
    opacity:.5;
}

.itinerary-order-include{
    flex:0 0 auto;
    line-height:0;
    margin-left:auto;
    touch-action:manipulation;
}

.itinerary-order-include input{
    cursor:pointer;
    height:16px;
    margin:0;
    width:16px;
}

@media (max-width:640px){
    .itinerary-map-block{
        flex-direction:column;
    }

    .itinerary-order-rail-wrap{
        width:100%;
    }

    .itinerary-order-rail{
        flex-direction:row;
        flex-wrap:wrap;
        max-height:none;
        width:100%;
    }

    .itinerary-order-item{
        flex:0 0 auto;
    }
}


.map-link-wrap{
    margin-bottom:0;
}

@media (max-width: 860px){
    .site-header-inner{
        display:grid;
        gap:10px;
        grid-template-columns:minmax(0,1fr) auto auto;
    }

    .site-name{
        align-self:center;
        grid-row:1;
        min-width:0;
    }

    .site-menu-toggle{
        align-self:center;
        grid-column:2;
        grid-row:1;
    }

    .site-header[data-nav-ready="true"] .site-menu-toggle{
        display:inline-flex;
    }

    .travel-quick-link{
        align-self:center;
        grid-column:3;
        grid-row:1;
        white-space:nowrap;
    }

    .site-nav{
        grid-column:1 / -1;
        grid-row:2;
        justify-content:flex-start;
        width:100%;
    }

    .site-header[data-nav-ready="true"] .site-nav{
        display:none;
    }

    .site-header[data-nav-open="true"] .site-nav{
        display:block;
    }

    .site-menu{
        align-items:stretch;
        border-top:1px solid var(--color-border);
        display:grid;
        gap:0;
        justify-content:stretch;
        padding-top:8px;
        width:100%;
    }

    .site-menu-link{
        border-radius:0;
        padding:12px 4px;
    }

    .site-menu-item.has-children > .site-menu-link::after{
        margin-left:8px;
    }

    .site-submenu{
        background:var(--color-surface-soft);
        border:0;
        border-left:3px solid var(--color-border);
        box-shadow:none;
        display:block;
        min-width:0;
        position:static;
    }

    .site-submenu .site-menu-link{
        padding-left:18px;
        white-space:normal;
    }

    .entity-title-row,
    .itinerary-toolbar{
        align-items:flex-start;
        flex-direction:column;
    }

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

    .itinerary-item{
        grid-template-columns:92px minmax(0,1fr);
    }
}
.back-to-top-layer{
    bottom:0;
    display:none;
    left:0;
    margin:0 auto;
    max-width:var(--site-width);
    pointer-events:none;
    position:fixed;
    right:0;
    top:0;
    z-index:40;
}

@media (min-width:1360px){
    .back-to-top-layer{
        display:block;
    }
}

.back-to-top{
    align-items:center;
    background:var(--entity-paper);
    border:1px solid var(--entity-line);
    border-radius:50%;
    bottom:24px;
    box-shadow:var(--shadow-soft);
    color:var(--theme-primary);
    cursor:pointer;
    display:flex;
    height:44px;
    justify-content:center;
    left:-60px;
    opacity:0;
    pointer-events:none;
    position:absolute;
    transform:translateY(8px);
    transition:opacity .2s,transform .2s;
    visibility:hidden;
    width:44px;
}

.back-to-top svg{
    height:20px;
    width:20px;
}

.back-to-top.is-visible{
    opacity:1;
    pointer-events:auto;
    transform:translateY(0);
    visibility:visible;
}

.back-to-top:hover{
    background:var(--entity-soft);
}

/* Modele A - pages standards : articles, lieux, evenements */
.entity-page{
    --entity-paper:#fffefa;
    --entity-soft:#f4f7f4;
    --entity-line:#d8e1dd;
    --entity-ink:#1f3035;
    --entity-heading:#12323a;
    --entity-muted:#64757c;
    --entity-lagoon:#0f766e;
    --entity-brick:#a84f3d;
    --entity-gold:#c9963f;
}

.entity-page > .entity-hero{
    background:transparent;
    border:0;
    border-bottom:1px solid var(--entity-line);
    margin:0 0 28px;
    padding:0 0 26px;
}

.entity-page .hero-image{
    aspect-ratio:16/7;
    border:1px solid var(--entity-line);
    border-radius:8px;
    display:block;
    margin:0 0 22px;
    max-height:460px;
    object-fit:cover;
    width:100%;
}

.entity-page .kicker{
    color:var(--entity-brick);
    font-size:13px;
    letter-spacing:0;
    margin-bottom:8px;
    text-transform:uppercase;
}

.entity-page .entity-title-main{
    min-width:0;
}

.entity-page .entity-badges{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.entity-page .entity-badge{
    background:#f4f7f4;
    border:1px solid var(--entity-line);
    border-radius:999px;
    color:#40545b;
    display:inline-flex;
    font-size:12px;
    font-weight:bold;
    letter-spacing:0;
    line-height:1.2;
    padding:6px 10px;
    text-transform:uppercase;
}

.entity-page .entity-badge-primary{
    background:#eaf6f3;
    border-color:#a8d5cd;
    color:var(--entity-lagoon);
}
.entity-page h1{
    color:var(--entity-heading);
    font-size:44px;
    letter-spacing:0;
    line-height:1.08;
    margin:0 0 12px;
    max-width:880px;
}

.entity-page .summary{
    color:#425c64;
    font-size:19px;
    line-height:1.55;
    max-width:820px;
}

.entity-page .entity-layout{
    gap:24px;
    grid-template-columns:minmax(0,1fr) 320px;
}

.entity-page .entity-main{
    display:grid;
    gap:22px;
    min-width:0;
}

.entity-page .content{
    background:var(--entity-paper);
    border:1px solid var(--entity-line);
    border-bottom:0;
    border-radius:8px 8px 0 0;
}


.entity-page .content{
    color:var(--entity-ink);
    font-size:17px;
    line-height:1.75;
    min-width:0;
    padding:30px;
}

.entity-page .content > *:first-child{
    margin-top:0;
}

.entity-page .content > *:last-child{
    margin-bottom:0;
}

.entity-page .content p,
.entity-page .content ul,
.entity-page .content ol{
    max-width:760px;
}

.entity-main [id]{
    scroll-margin-top:96px;
}

.entity-page .content h2{
    border-top:1px solid var(--entity-line);
    clear:both;
    color:var(--entity-heading);
    font-size:26px;
    letter-spacing:0;
    line-height:1.2;
    margin:34px 0 14px;
    padding-top:24px;
}

.entity-page .content h2:first-child{
    border-top:0;
    margin-top:0;
    padding-top:0;
}

.entity-page .content h3{
    clear:both;
    color:var(--entity-heading);
    font-size:20px;
    letter-spacing:0;
    line-height:1.25;
    margin:28px 0 10px;
}

.entity-page .content a{
    color:#0b6b64;
    font-weight:bold;
    text-decoration-thickness:1px;
    text-underline-offset:3px;
}

.entity-page .content ul,
.entity-page .content ol{
    padding-left:24px;
}

.entity-page .content li + li{
    margin-top:6px;
}

.entity-page .content blockquote{
    background:#f5f7f1;
    border-left:4px solid var(--entity-gold);
    color:#42525a;
    margin:28px 0;
    max-width:760px;
    padding:16px 18px;
}

.entity-page .content figure{
    margin:30px 0;
    max-width:880px;
}

.entity-page .content img{
    border-radius:8px;
}

.entity-page .content figcaption{
    color:var(--entity-muted);
    font-size:14px;
    line-height:1.45;
    margin-top:8px;
    text-align:center;
}

.entity-page .content figcaption p{
    margin:0 0 4px;
}

.entity-page .content figcaption p:last-child{
    margin-bottom:0;
}

.entity-page .content figure > a{
    cursor:pointer;
    display:block;
    text-decoration:none;
}

.entity-page .content figure.cms-image-float-left{
    clear:none;
    float:left;
    margin:6px 22px 16px 0;
    max-width:min(50%,420px);
}

.entity-page .content figure.cms-image-float-right{
    clear:none;
    float:right;
    margin:6px 0 16px 22px;
    max-width:min(50%,420px);
}

@media (max-width:700px){
    .entity-page .content figure.cms-image-float-left,
    .entity-page .content figure.cms-image-float-right{
        float:none;
        margin:20px 0;
        max-width:none;
        width:auto;
    }
}

.entity-page .content table{
    background:#fff;
    border:1px solid var(--entity-line);
    border-radius:8px;
    margin:24px 0;
}

.entity-page .content th{
    background:#edf4f2;
    color:var(--entity-heading);
}

.entity-page .entity-sidebar{
    box-sizing:border-box;
    max-height:calc(100vh - 88px - 24px);
    overflow-x:hidden;
    overflow-y:auto;
    scrollbar-width:none;
    scrollbar-color:var(--color-border-strong) transparent;
    top:88px;
    width:calc(100% + 14px);
}

/*
 * L'ascenseur (masque par defaut, visible au survol) est rendu par le
 * navigateur en retirant sa largeur du contenu de .entity-sidebar : sans
 * precaution, les cartes se "compriment" au survol. On isole donc les
 * cartes dans .entity-sidebar-inner, a largeur fixe (== la largeur normale
 * de la colonne), insensible au retrecissement du conteneur qui scrolle ;
 * la marge de 14px ajoutee a .entity-sidebar sert uniquement a ce que ce
 * retrecissement ne fasse jamais passer sa largeur sous celle de l'inner
 * (ce qui tronquerait son bord droit). Meme principe applique a
 * .listing-sidebar plus bas (classe partagee sur le meme <aside>).
 */
.entity-sidebar-inner{
    display:grid;
    gap:16px;
    width:320px;
}

.entity-page .entity-sidebar-inner{
    gap:14px;
}

.entity-page .entity-sidebar:hover{
    scrollbar-width:thin;
}

.entity-page .entity-sidebar::-webkit-scrollbar{
    width:0;
}

.entity-page .entity-sidebar:hover::-webkit-scrollbar{
    width:6px;
}

.entity-page .entity-sidebar::-webkit-scrollbar-track{
    background:transparent;
}

.entity-page .entity-sidebar::-webkit-scrollbar-thumb{
    background-color:var(--color-border-strong);
    border-radius:3px;
}

.entity-page .sidebar-card{
    background:#ffffff;
    border:1px solid var(--entity-line);
    border-radius:8px;
    box-shadow:0 12px 26px rgba(25,48,55,.07);
    min-width:0;
    padding:18px;
}

.entity-page .sidebar-card:first-child{
    border-top:4px solid var(--entity-lagoon);
}

.entity-page .sidebar-card h2,
.entity-page .sidebar-card h3{
    color:var(--entity-heading);
    font-size:18px;
    letter-spacing:0;
    margin:0 0 12px;
}

.entity-page .sidebar-card p{
    border-top:1px solid #edf2ef;
    color:#40545b;
    font-size:15px;
    line-height:1.5;
    margin:0;
    padding:10px 0;
}

.entity-page .sidebar-card p:first-of-type{
    border-top:0;
    padding-top:0;
}

.entity-page .sidebar-card-practical p{
    font-size:13px;
    line-height:1.4;
    padding:8px 0;
}

.entity-page .sidebar-access-info{
    font-size:13px;
    line-height:1.4;
    padding:8px 0;
}

.entity-page .sidebar-access-info p{
    margin:4px 0 0;
    padding:0;
}

.entity-page .sidebar-access-info p:first-child{
    margin-top:0;
}

.entity-page .sidebar-access-info ul,
.entity-page .sidebar-access-info ol{
    margin:4px 0 0;
    padding-left:18px;
}

.entity-page .sidebar-card strong{
    color:var(--entity-heading);
}

.entity-page .sidebar-note{
    color:var(--entity-muted);
    font-size:13px;
}

.entity-page .sidebar-actions{
    gap:6px;
}

.entity-page .sidebar-action{
    align-items:center;
    background:#eaf6f3;
    border:1px solid #a9d7ce;
    border-radius:6px;
    color:#0a4d47;
    display:flex;
    font-size:14px;
    font-weight:normal;
    justify-content:space-between;
    padding:6px 10px;
}

.entity-page .sidebar-action::after{
    content:">";
    color:var(--entity-lagoon);
    font-weight:bold;
}

.entity-page .sidebar-practical-map{
    border-top:1px solid #edf2ef;
    margin-top:10px;
    padding-top:10px;
}

.entity-page .sidebar-practical-map .map-frame{
    margin-bottom:8px;
}

.entity-page .map-frame{
    aspect-ratio:4/3;
    border-radius:6px;
    overflow:hidden;
}

.entity-page .map-link{
    color:var(--entity-lagoon);
    font-weight:bold;
}

.entity-page .sidebar-static-map-link{
    border-radius:6px;
    display:block;
    margin-bottom:8px;
    overflow:hidden;
}

.sidebar-card-social{
    padding:10px 14px !important;
}

.sidebar-social-link{
    align-items:center;
    color:#1877f2;
    display:flex;
    font-size:13px;
    font-weight:bold;
    gap:8px;
    text-decoration:none;
}

.sidebar-social-link:hover{
    text-decoration:underline;
}

.sidebar-social-link svg{
    fill:#1877f2;
    flex:0 0 auto;
    height:18px;
    width:18px;
}

.entity-page .sidebar-static-map-image{
    aspect-ratio:4/3;
    display:block;
    height:auto;
    object-fit:cover;
    width:100%;
}

.entity-page .entity-actions{
    padding-top:4px;
}

.entity-page .entity-action-button{
    background:#ffffff;
    border-color:#c8d5d1;
    box-shadow:0 4px 12px rgba(25,48,55,.08);
    color:var(--entity-heading);
}

.entity-page .entity-action-button:hover,
.entity-page .entity-action-button.is-active{
    background:#e9f7f4;
    border-color:var(--entity-lagoon);
    color:var(--entity-lagoon);
}

.entity-page .entity-main > h2{
    color:var(--entity-heading);
    font-size:24px;
    letter-spacing:0;
    margin:12px 0 -6px;
}

.entity-page .entity-main > .cards{
    margin-bottom:0;
}

.entity-page .card{
    border-color:var(--entity-line);
    border-radius:8px;
    overflow:hidden;
    padding:16px;
    transition:box-shadow .16s ease, transform .16s ease;
}

.entity-page .card:hover{
    box-shadow:0 12px 26px rgba(25,48,55,.09);
    transform:translateY(-1px);
}

.entity-page .card img{
    border-radius:0;
}

.entity-page .card-head{
    align-items:center;
    display:flex;
    gap:8px;
    justify-content:space-between;
}

.entity-page .card-type{
    color:var(--entity-brick);
    letter-spacing:0;
}

.entity-page .card-rating{
    color:#e0a530;
    flex:0 0 auto;
    font-size:13px;
    letter-spacing:1px;
    line-height:1;
}

.entity-page .card-title{
    color:var(--entity-heading);
}

.entity-page .card-event-date{
    color:var(--entity-muted);
    font-size:13px;
    margin-top:4px;
}

.entity-page .cms-gallery{
    max-width:920px;
}

.entity-page .cms-gallery figure{
    margin:0;
}

.entity-page .cms-gallery figure > a{
    background:var(--entity-soft);
    border-radius:6px;
    display:block;
    overflow:hidden;
    position:relative;
}

.entity-page .cms-gallery figure > a::after{
    background:rgba(18,50,58,.55);
    color:#fff;
    content:"+";
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:20px;
    height:32px;
    width:32px;
    border-radius:999px;
    opacity:0;
    position:absolute;
    right:8px;
    bottom:8px;
    transition:opacity .15s ease;
}

.entity-page .cms-gallery figure > a:hover::after,
.entity-page .cms-gallery figure > a:focus-visible::after{
    opacity:1;
}

.entity-page .cms-gallery img{
    aspect-ratio:4/3;
    border:1px solid var(--entity-line);
    display:block;
    height:auto;
    object-fit:cover;
    transition:transform .2s ease;
    width:100%;
}

.entity-page .cms-gallery figure > a:hover img,
.entity-page .cms-gallery figure > a:focus-visible img{
    transform:scale(1.03);
}

.entity-page .cms-gallery figcaption{
    color:var(--entity-muted);
    font-size:13px;
    line-height:1.4;
    margin-top:6px;
}

.entity-page .cms-gallery figcaption p{
    margin:0 0 4px;
}

.entity-page .cms-gallery figcaption p:last-child{
    margin-bottom:0;
}

@media (max-width:520px){
    .entity-page .cms-gallery{
        gap:10px;
        grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
    }
}

body.gallery-lightbox-locked{
    overflow:hidden;
}

.gallery-lightbox{
    align-items:center;
    background:rgba(10,20,24,.92);
    display:none;
    flex-direction:column;
    inset:0;
    justify-content:center;
    padding:24px;
    position:fixed;
    z-index:1200;
}

.gallery-lightbox.is-open{
    display:flex;
}

.gallery-lightbox-figure{
    display:flex;
    flex-direction:column;
    max-height:100%;
    max-width:min(92vw,1200px);
}

.gallery-lightbox-image-wrap{
    align-items:center;
    display:flex;
    justify-content:center;
    min-height:0;
}

.gallery-lightbox-image{
    border-radius:4px;
    max-height:78vh;
    max-width:100%;
    object-fit:contain;
}

.gallery-lightbox-caption{
    color:#f2f5f4;
    font-size:14px;
    line-height:1.5;
    margin:0;
    padding:14px 4px 0;
    text-align:center;
}

.gallery-lightbox-counter{
    color:rgba(242,245,244,.65);
    font-size:12px;
    margin-top:4px;
    text-align:center;
}

.gallery-lightbox-close,
.gallery-lightbox-prev,
.gallery-lightbox-next{
    align-items:center;
    background:rgba(255,255,255,.12);
    border:0;
    border-radius:999px;
    color:#fff;
    cursor:pointer;
    display:flex;
    font-size:22px;
    height:44px;
    justify-content:center;
    line-height:1;
    width:44px;
}

.gallery-lightbox-close:hover,
.gallery-lightbox-prev:hover,
.gallery-lightbox-next:hover,
.gallery-lightbox-close:focus-visible,
.gallery-lightbox-prev:focus-visible,
.gallery-lightbox-next:focus-visible{
    background:var(--entity-lagoon);
}

.gallery-lightbox-close{
    position:absolute;
    right:20px;
    top:20px;
}

.gallery-lightbox-prev,
.gallery-lightbox-next{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
}

.gallery-lightbox-prev{
    left:12px;
}

.gallery-lightbox-next{
    right:12px;
}

@media (max-width:640px){
    .gallery-lightbox{
        padding:12px;
    }

    .gallery-lightbox-close{
        right:8px;
        top:8px;
    }

    .gallery-lightbox-prev{
        left:4px;
    }

    .gallery-lightbox-next{
        right:4px;
    }
}

@media (max-width:960px){
    .entity-page .entity-layout{
        grid-template-columns:1fr;
    }

    .entity-page .entity-sidebar{
        max-height:none;
        overflow-y:visible;
        position:static;
        width:auto;
    }

    .entity-page .entity-sidebar-inner{
        width:auto;
    }
}

@media (max-width:700px){
    .entity-page > .entity-hero{
        margin-bottom:20px;
        padding-bottom:20px;
    }

    .entity-page .hero-image{
        aspect-ratio:4/3;
        margin-bottom:18px;
    }

    .entity-page h1{
        font-size:32px;
    }

    .entity-page .summary{
        font-size:17px;
    }

    .entity-page .entity-layout{
        gap:20px;
    }

    .entity-page .content,
    .entity-page .sidebar-card{
        padding:18px;
    }

    .entity-page .content{
        font-size:16px;
        line-height:1.68;
    }

    .entity-page .content h2{
        font-size:23px;
    }

    .entity-page .entity-title-row{
        gap:10px;
    }
}
/* Ajustements modele A - fiche lieu guide pratique */
.entity-page > .entity-hero{
    padding-bottom:30px;
}

.entity-page .entity-title-row{
    align-items:flex-start;
    display:grid;
    gap:18px;
    grid-template-columns:minmax(0,1fr) auto;
}

.entity-page .entity-title-tools{
    align-items:flex-end;
    display:flex;
    flex-direction:column;
    gap:10px;
    max-width:340px;
}

.entity-page .entity-badges{
    justify-content:flex-end;
}

.entity-page .entity-badge{
    background:#ffffff;
    border-color:#cfdad7;
    color:#4d6066;
    font-size:12px;
    letter-spacing:0;
    padding:5px 9px;
    text-transform:none;
}

.entity-page .entity-badge-primary{
    background:#f5f8f6;
    border-color:#cfdad7;
    color:#4d6066;
}

.entity-page h1{
    margin-bottom:0;
}

.entity-page .entity-summary{
    border-left:3px solid var(--entity-lagoon);
    color:#3f555c;
    font-size:18px;
    line-height:1.62;
    margin:18px 0 22px;
    max-width:780px;
    padding-left:16px;
}

.entity-page .hero-image{
    aspect-ratio:16/7;
    margin:0;
    max-height:430px;
}

.entity-page .sidebar-card-booking{
    border-top:4px solid var(--entity-brick);
}

.entity-page .sidebar-card-practical{
    border-top:4px solid var(--entity-lagoon);
}

.entity-page .sidebar-card-booking + .sidebar-card-practical{
    margin-top:2px;
}

.entity-page .sidebar-card-toc{
    border-top:4px solid var(--entity-lagoon);
}

.entity-page .sidebar-card-map{
    border-top:4px solid var(--entity-lagoon);
}

.entity-page .entity-toc ol{
    counter-reset:entity-toc-counter;
    display:flex;
    flex-direction:column;
    gap:5px;
    list-style:none;
    margin:0;
    padding:0;
}

.entity-page .entity-toc li{
    counter-increment:entity-toc-counter;
}

.entity-page .entity-toc a{
    align-items:flex-start;
    color:#40545b;
    display:flex;
    font-size:12.5px;
    gap:7px;
    line-height:1.25;
    min-width:0;
    text-decoration:none;
}

.entity-page .entity-toc a::before{
    align-items:center;
    background:var(--color-purple);
    border-radius:999px;
    color:#fff;
    content:counter(entity-toc-counter);
    display:inline-flex;
    flex:0 0 auto;
    font-size:9px;
    font-weight:bold;
    height:16px;
    justify-content:center;
    margin-top:1px;
    width:16px;
}

.entity-page .entity-toc-text{
    flex:1 1 auto;
    min-width:0;
    overflow:hidden;
    padding-top:0;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.entity-page .entity-toc a:hover,
.entity-page .entity-toc a:focus-visible{
    color:var(--theme-primary);
}

.entity-page .entity-toc a:hover .entity-toc-text,
.entity-page .entity-toc a:focus-visible .entity-toc-text{
    text-decoration:underline;
}

.entity-page .entity-toc a:hover::before,
.entity-page .entity-toc a:focus-visible::before{
    background:var(--theme-primary);
}

@media (max-width:860px){
    .entity-page .entity-title-row{
        grid-template-columns:1fr;
    }

    .entity-page .entity-title-tools{
        align-items:flex-start;
        max-width:none;
    }

    .entity-page .entity-badges{
        justify-content:flex-start;
    }
}

@media (max-width:700px){
    .entity-page .entity-summary{
        font-size:17px;
        margin:14px 0 18px;
    }
}
/* Ajustements modele A - header resserre et tags en fin d'article */
.entity-page .entity-layout{
    align-items:start;
    gap:24px;
    grid-template-columns:minmax(0,1fr) 320px;
}

.entity-page .entity-main{
    display:grid;
    gap:22px;
    min-width:0;
}

.entity-page .entity-hero{
    background:transparent;
    border:0;
    border-bottom:1px solid var(--entity-line);
    margin:0;
    padding:0 0 24px;
}

.entity-page .entity-hero .entity-badges{
    justify-content:flex-start;
    margin:0 0 12px;
}

.entity-page .entity-title-row{
    align-items:flex-start;
    display:flex;
    gap:16px;
    justify-content:space-between;
}

.entity-page .entity-title-main{
    align-items:baseline;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    min-width:0;
}

.entity-page h1{
    margin:0;
}

.entity-page .entity-rating{
    display:inline-flex;
    gap:2px;
}

.entity-page .entity-rating-star{
    color:#d7dde0;
    font-size:30px;
    line-height:1;
}

.entity-page .entity-rating-star.is-filled{
    color:#e0a530;
}

.entity-page .entity-actions{
    flex:0 0 auto;
    padding-top:4px;
}

.entity-page .entity-summary{
    border-left:3px solid var(--entity-lagoon);
    color:#3f555c;
    font-size:18px;
    line-height:1.62;
    margin:18px 0 22px;
    max-width:760px;
    padding-left:16px;
}

.entity-page .entity-summary-html p:first-child{
    margin-top:0;
}

.entity-page .entity-summary-html p:last-child{
    margin-bottom:0;
}

.entity-page .hero-image{
    aspect-ratio:16/7;
    border:1px solid var(--entity-line);
    border-radius:8px;
    display:block;
    margin:0;
    max-height:390px;
    object-fit:cover;
    width:100%;
}

.entity-page .entity-badge{
    background:#ffffff;
    border-color:#cfdad7;
    color:#4d6066;
    font-size:12px;
    letter-spacing:0;
    padding:5px 9px;
    text-transform:none;
}

.entity-page .entity-badge-primary{
    background:#f5f8f6;
    border-color:#cfdad7;
    color:#4d6066;
}

.entity-page .entity-tags{
    align-items:center;
    background:var(--entity-paper);
    border:1px solid var(--entity-line);
    border-radius:0 0 8px 8px;
    border-top:1px solid var(--entity-line);
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:-22px;
    padding:20px 30px 30px;
}

.entity-page .entity-tags-title{
    color:var(--entity-muted);
    font-size:13px;
    font-weight:bold;
    margin-right:4px;
}

.entity-page .entity-tags-title-secondary{
    margin-left:10px;
}

.entity-page .entity-tags a{
    background:#f4f7f4;
    border:1px solid #d7e1dd;
    border-radius:999px;
    color:#4d6066;
    font-size:13px;
    padding:4px 9px;
    text-decoration:none;
}

.entity-page .entity-tag-link-category{
    background:#f7edf1;
    border-color:#d7adbc;
    color:var(--theme-primary);
}

.entity-page .entity-tags a:hover{
    background:#eaf6f3;
    color:var(--entity-lagoon);
    text-decoration:none;
}

.entity-page .sidebar-card-booking{
    border-top:4px solid var(--entity-brick);
}

.entity-page .sidebar-card-practical{
    border-top:4px solid var(--entity-lagoon);
}

@media (max-width:960px){
    .entity-page .entity-layout{
        grid-template-columns:1fr;
    }

    .entity-page .entity-sidebar{
        max-height:none;
        overflow-y:visible;
        position:static;
        width:auto;
    }

    .entity-page .entity-sidebar-inner{
        width:auto;
    }
}

@media (max-width:700px){
    .entity-page .entity-title-row{
        flex-direction:column;
        gap:10px;
    }

    .entity-page .hero-image{
        aspect-ratio:4/3;
    }

    .entity-page .entity-summary{
        font-size:17px;
        margin:14px 0 18px;
    }
}

/* Mini-carte de quartier integree aux infos pratiques */
.entity-page .sidebar-card-practical::after{
    clear:both;
    content:"";
    display:block;
}

.entity-page .district-mini-map-link{
    background:#f8faf8;
    border:1px solid var(--entity-line);
    border-radius:6px;
    display:block;
    float:right;
    margin:0 0 10px 14px;
    padding:6px;
    width:112px;
}

.entity-page .district-mini-map-link:hover{
    background:#eef6f3;
    border-color:#a8d5cd;
    text-decoration:none;
}

.entity-page .district-mini-map{
    display:block;
    height:auto;
    image-rendering:auto;
    width:100%;
}

@media (max-width:700px){
    .entity-page .district-mini-map-link{
        float:none;
        margin:0 0 12px;
        width:132px;
    }
}
/* Mini-carte interactive des quartiers */
.entity-page .district-mini-map-box{
    background:#f8faf8;
    border:1px solid var(--entity-line);
    border-radius:7px;
    box-shadow:0 8px 18px rgba(25,48,55,.06);
    float:right;
    margin:0 0 10px 14px;
    padding:7px;
    width:min(50%,158px);
}

.entity-page .district-mini-map{
    display:block;
    height:auto;
    width:100%;
}

.entity-page .district-mini-map-water{
    fill:#dcefeb;
}

.entity-page .district-mini-map-zone{
    cursor:pointer;
    fill:#fffdf4;
    stroke:#8aa6a0;
    stroke-linejoin:round;
    stroke-width:2;
    transition:fill .16s ease, stroke .16s ease, filter .16s ease;
}

.entity-page .district-mini-map-area:hover .district-mini-map-zone,
.entity-page .district-mini-map-area:focus .district-mini-map-zone,
.entity-page .district-mini-map-zone.is-active{
    fill:#d97745;
    filter:drop-shadow(0 2px 2px rgba(25,48,55,.18));
    stroke:#8f3c26;
}

.entity-page .district-mini-map-canal{
    fill:none;
    pointer-events:none;
    stroke:#71a8b0;
    stroke-linecap:round;
    stroke-width:4;
}

.entity-page .district-mini-map-pin{
    fill:#12323a;
    pointer-events:none;
    stroke:#fff;
    stroke-width:2;
}

.entity-page .district-mini-map-caption{
    color:var(--entity-heading);
    display:block;
    line-height:1.2;
    margin-top:5px;
    text-align:center;
    text-decoration:none;
}

.entity-page .district-mini-map-caption span{
    color:var(--entity-muted);
    display:block;
    font-size:11px;
}

.entity-page .district-mini-map-caption strong{
    display:block;
    font-size:13px;
}

.entity-page .district-mini-map-box:hover .district-mini-map-caption strong{
    color:var(--entity-brick);
}

@media (max-width:700px){
    .entity-page .district-mini-map-box{
        float:none;
        margin:0 0 12px;
        width:min(190px,100%);
    }
}
/* Mini-carte basee sur le plan historique */
.entity-page .district-mini-map-box{
    width:min(50%,220px);
}

.entity-page .district-mini-map-stage{
    aspect-ratio:1448/1086;
    position:relative;
}

.entity-page .district-mini-map-image{
    border-radius:4px;
    display:block;
    height:auto;
    width:100%;
}

.entity-page .district-mini-map-hotspots{
    inset:0;
    position:absolute;
    width:100%;
    height:100%;
}

.entity-page .district-mini-map-hotspot{
    cursor:pointer;
    fill:transparent;
    pointer-events:auto;
    stroke:transparent;
    stroke-width:2;
}

.entity-page .district-mini-map-area:hover .district-mini-map-hotspot,
.entity-page .district-mini-map-area:focus .district-mini-map-hotspot{
    fill:rgba(217,119,69,.12);
    stroke:rgba(143,60,38,.55);
}

.entity-page .district-mini-map-area:focus{
    outline:none;
}

@media (max-width:700px){
    .entity-page .district-mini-map-box{
        width:min(220px,100%);
    }
}
/* Contours solides sur la mini-carte historique */
.entity-page .district-mini-map-hotspots{
    pointer-events:none;
}

.entity-page .district-mini-map-area{
    pointer-events:auto;
}

.entity-page .district-mini-map-hotspot{
    cursor:pointer;
    fill:rgba(255,255,255,.01);
    pointer-events:all;
    stroke:rgba(54,43,36,.82);
    stroke-linejoin:round;
    stroke-width:1.35;
    transition:fill .14s ease, stroke .14s ease, stroke-width .14s ease;
    vector-effect:non-scaling-stroke;
}

.entity-page .district-mini-map-area:hover .district-mini-map-hotspot,
.entity-page .district-mini-map-area:focus .district-mini-map-hotspot,
.entity-page .district-mini-map-hotspot.is-active{
    fill:rgba(217,119,69,.16);
    stroke:#8f3c26;
    stroke-width:1.8;
}
.entity-page .district-mini-map-hotspots{
    pointer-events:auto;
}
/* Nouvelle carte propre : remplissage discret, sans traits ajoutes */
.entity-page .district-mini-map-hotspot{
    fill:rgba(122,31,61,.01);
    filter:none;
    stroke:transparent;
    stroke-width:0;
}

.entity-page .district-mini-map-area:hover .district-mini-map-hotspot,
.entity-page .district-mini-map-area:focus .district-mini-map-hotspot,
.entity-page .district-mini-map-hotspot.is-active{
    fill:rgba(122,31,61,.18);
    stroke:transparent;
    stroke-width:0;
}
/* Header marque : palette parametrable bordeaux / bleu */
.site-header{
    background:linear-gradient(180deg,var(--theme-header-bg),var(--theme-header-soft));
    border-bottom:1px solid rgba(122,31,61,.18);
    box-shadow:0 6px 18px rgba(31,39,48,.05);
}

.site-header-inner{
    gap:20px;
    padding:12px 20px;
}

.site-brand{
    align-items:center;
    color:#1f2730;
    display:inline-flex;
    flex:0 0 auto;
    gap:11px;
    min-width:220px;
    text-decoration:none;
}

.site-brand:hover{
    text-decoration:none;
}

.site-logo-mark{
    align-items:center;
    background:radial-gradient(circle at 35% 28%,#ffffff 0,#f8eef1 28%,var(--theme-primary) 72%);
    border:1px solid rgba(122,31,61,.38);
    border-radius:50%;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 6px 14px rgba(122,31,61,.16);
    color:#ffffff;
    display:inline-flex;
    flex:0 0 auto;
    font-family:Georgia,serif;
    font-size:25px;
    font-weight:bold;
    height:42px;
    justify-content:center;
    line-height:1;
    text-shadow:0 1px 1px rgba(64,20,34,.35);
    width:42px;
}

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

.site-brand-line{
    align-items:baseline;
    display:flex;
    line-height:1;
    min-width:0;
    white-space:nowrap;
}

.site-brand-name{
    color:var(--theme-primary);
    font-family:Georgia,serif;
    font-size:25px;
    font-weight:bold;
    letter-spacing:0;
}

.site-brand-domain{
    color:var(--theme-secondary);
    font-family:Georgia,serif;
    font-size:17px;
    font-weight:bold;
    margin-left:2px;
}

.site-brand-tagline{
    color:#607080;
    font-size:12px;
    line-height:1.2;
    white-space:nowrap;
}

.site-menu-link{
    color:#34495b;
    font-weight:bold;
}

.site-menu-link:hover,
.site-menu-item:hover > .site-menu-link,
.site-menu-item:focus-within > .site-menu-link{
    background:rgba(122,31,61,.08);
    color:var(--theme-primary);
}

.site-submenu{
    border-color:rgba(122,31,61,.18);
}

.travel-quick-link{
    background:#f3f7fa;
    border-color:rgba(31,95,131,.22);
    color:#1f425b;
    font-weight:bold;
}

.travel-quick-link:hover{
    background:#e8f1f6;
    color:var(--theme-secondary);
}

.travel-quick-link span{
    background:var(--theme-primary);
}

.site-menu-toggle{
    border-color:rgba(122,31,61,.24);
    color:var(--theme-primary);
}

@media (max-width:860px){
    .site-brand{
        min-width:0;
    }

    .site-logo-mark{
        height:38px;
        width:38px;
    }

    .site-brand-name{
        font-size:22px;
    }

    .site-brand-domain{
        font-size:15px;
    }

    .site-brand-tagline{
        display:none;
    }
}

@media (max-width:520px){
    .site-header-inner{
        grid-template-columns:minmax(0,1fr) auto;
    }

    .travel-quick-link{
        grid-column:1 / -1;
        grid-row:2;
        justify-content:center;
        width:100%;
    }

    .site-nav{
        grid-row:3;
    }
}
/* Header sans logo : retour au titre simple avec palette actuelle */
.site-name{
    color:var(--theme-primary);
    flex:0 0 auto;
    font-family:Georgia,serif;
    font-size:25px;
    font-weight:bold;
    letter-spacing:0;
    min-width:190px;
    text-decoration:none;
}

.site-name:hover{
    color:var(--theme-secondary);
    text-decoration:none;
}

@media (max-width:860px){
    .site-name{
        font-size:22px;
        min-width:0;
    }
}
/* Header titre enrichi sans monogramme */
.site-brand-text{
    align-items:center;
    color:#1f2730;
    display:inline-flex;
    flex:0 0 auto;
    min-width:230px;
    text-decoration:none;
}

.site-brand-text:hover{
    text-decoration:none;
}

.site-brand-text .site-brand-name{
    color:#681734;
    font-family:Georgia,serif;
    font-size:31px;
    font-weight:bold;
    letter-spacing:0;
}

.site-brand-text .site-brand-domain{
    color:var(--theme-secondary);
    font-family:Georgia,serif;
    font-size:19px;
    font-weight:bold;
    margin-left:2px;
}

.site-brand-text .site-brand-tagline{
    color:#6b7785;
    display:block;
    font-size:12px;
    line-height:1.25;
    margin-top:3px;
    white-space:nowrap;
}

@media (max-width:860px){
    .site-brand-text{
        min-width:0;
    }

    .site-brand-text .site-brand-name{
        font-size:25px;
    }

    .site-brand-text .site-brand-domain{
        font-size:16px;
    }

    .site-brand-text .site-brand-tagline{
        display:none;
    }
}
/* Harmonisation bordeaux : suppression des accents verts visibles */
.entity-page{
    --entity-soft:#f8f2f4;
    --entity-line:#e4d3da;
    --entity-lagoon:var(--theme-primary);
}

.page-taxonomy-link:hover{
    background:#f8eef2;
    border-color:#d9b8c5;
    color:var(--theme-primary);
}

.sidebar-action,
.entity-page .sidebar-action{
    background:#f7edf1;
    border-color:#d7adbc;
    color:#681734;
}

.sidebar-action:hover,
.entity-page .sidebar-action:hover{
    background:#efdde5;
    color:#681734;
}

.entity-action-button:hover,
.entity-action-button.is-active,
.entity-page .entity-action-button:hover,
.entity-page .entity-action-button.is-active{
    background:#f7edf1;
    border-color:var(--theme-primary);
    color:var(--theme-primary);
}

.entity-page .entity-badge-primary,
.entity-page .entity-tags a:hover{
    background:#f7edf1;
    border-color:#d7adbc;
    color:var(--theme-primary);
}

.entity-page .entity-badge,
.entity-page .entity-tags a{
    background:#fbf8f9;
    border-color:#e4d3da;
}

.entity-page .content a,
.entity-page .map-link{
    color:var(--theme-primary);
}

.entity-page .content th{
    background:#f7edf1;
}

.entity-page .sidebar-card:first-child,
.entity-page .sidebar-card-practical{
    border-top-color:var(--theme-primary);
}

.entity-page .entity-summary{
    border-left-color:var(--theme-primary);
}

.entity-page .sidebar-action::after{
    color:var(--theme-primary);
}
/* Header titre : typographie alignee sur le site */
.site-brand-text .site-brand-name,
.site-brand-text .site-brand-domain{
    font-family:Arial,sans-serif;
    letter-spacing:0;
}

.site-brand-text .site-brand-name{
    font-size:29px;
    font-weight:500;
}

.site-brand-text .site-brand-domain{
    font-size:17px;
    font-weight:500;
}

.site-brand-text .site-brand-tagline{
    font-family:Arial,sans-serif;
    font-size:12px;
    font-weight:normal;
}

@media (max-width:860px){
    .site-brand-text .site-brand-name{
        font-size:24px;
    }

    .site-brand-text .site-brand-domain{
        font-size:15px;
    }
}
/* Logo image Venise Voyage et action itineraire dans le widget voyage */
.site-brand-text{
    gap:4px;
}

.site-brand-text .site-logo-mark{
    background:#fff;
    border:1px solid rgba(122,31,61,.18);
    border-radius:50%;
    box-shadow:0 3px 10px rgba(31,39,48,.08);
    height:50px;
    overflow:hidden;
    padding:0;
    text-shadow:none;
    width:50px;
}

.site-brand-text .site-logo-mark img{
    display:block;
    height:112%;
    object-fit:contain;
    transform:none;
    width:112%;
}

.sidebar-action-internal{
    align-items:center;
    display:flex;
    justify-content:space-between;
}

.sidebar-action-internal [data-travel-count]{
    align-items:center;
    background:var(--color-purple);
    border-radius:999px;
    color:#fff;
    display:inline-flex;
    font-size:12px;
    height:20px;
    justify-content:center;
    line-height:1;
    min-width:20px;
    padding:0 5px;
    text-align:center;
}

.sidebar-action-content{
    align-items:center;
    display:flex;
    flex:1 1 auto;
    gap:8px;
    min-width:0;
}

.sidebar-action-label{
    flex:1 1 auto;
    min-width:0;
}

.sidebar-action-internal [data-travel-count]{
    flex:0 0 auto;
    margin-right:8px;
}

.sidebar-action-content svg{
    fill:none;
    flex-shrink:0;
    height:16px;
    stroke:currentColor;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-width:1.8;
    width:16px;
}

@media (max-width:860px){
    .site-brand-text .site-logo-mark{
        height:42px;
        width:42px;
    }
}

/* Mini-carte XCF : fond stable + calques de survol exacts */
.entity-page .district-mini-map-stage{
    background:#fff;
    border-radius:4px;
    cursor:default;
    overflow:hidden;
    position:relative;
}

.entity-page .district-mini-map-stage.has-district-hover{
    cursor:pointer;
}

.entity-page .district-mini-map-stage:focus-visible{
    outline:2px solid var(--entity-brick);
    outline-offset:3px;
}

.entity-page .district-mini-map-overlay{
    display:block;
    height:100%;
    inset:0;
    object-fit:contain;
    opacity:0;
    pointer-events:none;
    position:absolute;
    transition:opacity .14s ease;
    width:100%;
}

.entity-page .district-mini-map-overlay.is-visible{
    opacity:1;
}

.entity-page .district-mini-map-links{
    height:1px;
    margin:-1px;
    overflow:hidden;
    position:absolute;
    white-space:nowrap;
    width:1px;
    clip:rect(0 0 0 0);
    clip-path:inset(50%);
}
.entity-page .entity-tag-link-type{
    background:#f7edf1;
    border-color:#d7adbc;
    color:var(--theme-primary);
}

.entity-page .entity-tag-link-district{
    background:#edf7fa;
    border-color:#bddce6;
    color:var(--theme-secondary);
}

.listing-filter-locked{
    color:var(--color-muted);
    font-size:14px;
    margin:0;
}
.entity-page .nearby-section{
    border-top:1px solid var(--entity-line);
    margin-top:24px;
    padding-top:20px;
}

.entity-page .event-editions-section{
    border-top:1px solid var(--entity-line);
    margin-top:24px;
    padding-top:20px;
}

.entity-page .event-editions-section h2{
    color:var(--entity-heading);
    font-size:22px;
    margin:0 0 12px;
}

.entity-page .event-editions-featured{
    display:grid;
    gap:16px;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    margin-bottom:16px;
}

.entity-page .event-edition-feature{
    background:#fff;
    border:1px solid var(--entity-line);
    border-radius:8px;
    color:var(--entity-heading);
    display:block;
    padding:16px;
    text-decoration:none;
}

.entity-page a.event-edition-feature:hover{
    border-color:var(--theme-primary);
}

.entity-page .event-edition-feature img{
    border-radius:6px;
    display:block;
    height:140px;
    margin:8px 0;
    object-fit:cover;
    width:100%;
}

.entity-page .event-edition-feature-label{
    color:var(--theme-primary);
    font-size:12px;
    font-weight:bold;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.entity-page .event-edition-feature-title{
    display:block;
    font-size:18px;
    margin:6px 0 2px;
}

.entity-page .event-edition-feature-date{
    color:var(--entity-muted);
    display:block;
    font-size:14px;
    margin-bottom:6px;
}

.entity-page .event-edition-feature-summary{
    color:var(--entity-muted);
    display:block;
    font-size:14px;
}

.entity-page .nearby-section h2{
    color:var(--entity-heading);
    font-size:22px;
    margin:0 0 12px;
}

.entity-page .nearby-cards{
    display:grid;
    gap:10px;
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.entity-page .nearby-cards-with-district{
    margin-bottom:26px;
}

.entity-page .nearby-subheading{
    color:var(--entity-heading);
    font-size:16px;
    margin:0 0 12px;
}

.entity-page .entity-route-section{
    border-top:1px solid var(--entity-line);
    margin-top:24px;
    padding-top:20px;
}

.entity-page .entity-stay-section{
    border-top:1px solid var(--entity-line);
    margin-top:24px;
    padding-top:20px;
}

.entity-page .entity-stay-section h2{
    color:var(--entity-heading);
    font-size:22px;
    margin:0 0 12px;
}

.entity-stay-map-frame{
    border:1px solid var(--entity-line, var(--color-border));
    border-radius:8px;
    overflow:hidden;
}

.entity-stay-map-frame iframe{
    display:block;
    width:100%;
}

.entity-page .content .entity-stay-map-frame-full{
    margin-left:-30px;
    margin-right:-30px;
    width:calc(100% + 60px);
}

.entity-page .content .entity-stay-map-frame-full:first-child{
    margin-top:-30px;
}

.entity-page .entity-route-section h2{
    color:var(--entity-heading);
    font-size:22px;
    margin:0 0 12px;
}

.entity-page .entity-route-map{
    aspect-ratio:16/9;
    border-radius:8px;
    overflow:hidden;
}

.entity-page .entity-route-actions{
    display:grid;
    gap:8px;
    margin-top:12px;
}

.entity-page .entity-route-controls{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.entity-page .entity-route-start{
    background:#fff;
    border:1px solid var(--entity-line);
    border-radius:6px;
    color:var(--entity-ink);
    flex:1 1 220px;
    font:inherit;
    font-size:14px;
    min-width:0;
    padding:8px 10px;
}

.entity-page .entity-route-locate:disabled,
.entity-page .entity-route-go:disabled{
    cursor:progress;
    opacity:.6;
}

.entity-city-map-frame{
    margin:24px 0;
}

.entity-city-map{
    border:1px solid var(--entity-line, var(--color-border));
    border-radius:8px;
    height:480px;
    overflow:hidden;
}

.entity-city-map-frame .entity-route-actions{
    display:grid;
    gap:8px;
    margin-top:12px;
}

.entity-route-controls-dual{
    align-items:end;
    display:grid;
    gap:10px;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
}

.entity-route-field{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.entity-route-field label{
    color:var(--entity-muted, var(--color-muted));
    font-size:13px;
    font-weight:bold;
}

.entity-route-field .entity-route-start{
    background:#fff;
    border:1px solid var(--entity-line, var(--color-border));
    border-radius:6px;
    color:var(--entity-ink, var(--color-text));
    flex:none;
    font:inherit;
    font-size:14px;
    line-height:1.3;
    min-width:0;
    padding:8px 10px;
}

.entity-route-controls-dual .entity-route-go,
.entity-route-controls-dual .entity-route-clear{
    align-self:end;
}

.entity-page .entity-city-map-frame .entity-route-status{
    background:#f8edf1;
    border-left:4px solid var(--theme-primary);
    border-radius:6px;
    color:var(--entity-ink, #1f2933);
    font-size:16px;
    font-weight:bold;
    margin:4px 0 0;
    padding:10px 14px;
}

.entity-route-itinerary .leaflet-routing-container{
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
    margin:12px 0 0;
    max-height:none;
    padding:0;
    width:100%;
}

.entity-route-itinerary .leaflet-routing-alt{
    background:var(--entity-paper, #fff);
    border:1px solid var(--entity-line, var(--color-border));
    border-radius:8px;
    max-height:none;
    padding:12px 14px;
}

.entity-route-itinerary .leaflet-routing-alt h2,
.entity-route-itinerary .leaflet-routing-alt h3{
    color:var(--entity-heading, #102a43);
}

.city-map-popup{
    display:flex;
    flex-direction:column;
    gap:4px;
    max-width:220px;
    padding:10px 12px;
}

.city-map-popup-summary{
    color:var(--entity-muted, var(--color-muted));
    font-size:13px;
}

.city-map-popup-actions{
    display:flex;
    gap:6px;
    margin:4px 0;
}

.city-map-popup-actions button{
    font-size:12px;
    padding:5px 8px;
}

.city-map-popup-actions .itinerary-popup-add{
    flex:0 0 auto;
    font-size:16px;
    height:34px;
    margin-left:auto;
    padding:0;
    width:34px;
}

.entity-page .entity-route-status{
    color:var(--entity-muted);
    font-size:14px;
    margin:0;
}

.entity-user-marker{
    background:#2563eb;
    border:3px solid #fff;
    border-radius:999px;
    box-shadow:0 0 0 4px rgba(37,99,235,.3),0 2px 6px rgba(0,0,0,.35);
    display:block;
    height:16px;
    width:16px;
}

.entity-page .entity-map-controls a{
    align-items:center;
    display:flex;
    justify-content:center;
}

.entity-page .entity-map-controls a:hover{
    background:#f4f4f4;
}

.entity-page .entity-map-controls svg{
    height:16px;
    width:16px;
}

.entity-page .entity-map-control-locate svg{
    fill:none;
    stroke:#333;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-width:1.8;
}

.entity-page .entity-map-control-center svg{
    fill:#333;
    stroke:none;
}

.entity-page .nearby-card{
    align-items:center;
    background:#ffffff;
    border:1px solid var(--entity-line);
    border-radius:8px;
    color:var(--entity-heading);
    display:grid;
    gap:12px;
    grid-template-columns:86px minmax(0,1fr);
    min-height:82px;
    overflow:hidden;
    padding:8px;
    position:relative;
    text-decoration:none;
    transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.entity-page .nearby-card:hover{
    border-color:#d7adbc;
    box-shadow:0 10px 22px rgba(25,48,55,.08);
    text-decoration:none;
    transform:translateY(-1px);
}

.entity-page .nearby-card img,
.entity-page .nearby-card-placeholder{
    aspect-ratio:4/3;
    background:#f7edf1;
    border:1px solid #ead4dc;
    border-radius:6px;
    display:block;
    height:auto;
    object-fit:cover;
    width:86px;
}

.entity-page .nearby-card-placeholder{
    align-items:center;
    color:var(--theme-primary);
    display:flex;
    justify-content:center;
}

.entity-page .nearby-card-placeholder svg{
    fill:none;
    height:30px;
    stroke:currentColor;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-width:1.8;
    width:30px;
}

.entity-page .nearby-card-media{
    display:block;
    position:relative;
}

.entity-page .nearby-card-rating{
    align-items:center;
    color:#e0a530;
    display:flex;
    font-size:11px;
    justify-content:center;
    letter-spacing:1px;
    line-height:1;
    position:absolute;
    right:10px;
    top:8px;
    white-space:nowrap;
}

.entity-page .nearby-card-body{
    display:block;
    min-width:0;
}

.entity-page .nearby-card-type,
.entity-page .nearby-card-distance{
    color:var(--entity-muted);
    display:block;
    font-size:12px;
    line-height:1.25;
}

.entity-page .nearby-card strong{
    color:var(--entity-heading);
    display:block;
    font-size:15px;
    line-height:1.25;
    margin:2px 0 4px;
}

.entity-page .entity-tags{
    align-items:flex-start;
    gap:10px 14px;
}

.entity-page .entity-tags-group{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.entity-page .entity-tags-title{
    align-items:center;
    display:inline-flex;
    gap:5px;
    margin-right:0;
}

.entity-page .entity-tags-title svg{
    fill:none;
    height:15px;
    stroke:currentColor;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-width:1.9;
    width:15px;
}

@media (max-width:720px){
    .entity-page .nearby-cards{
        grid-template-columns:1fr;
    }

    .entity-page .nearby-card{
        grid-template-columns:78px minmax(0,1fr);
    }

    .entity-page .nearby-card img,
    .entity-page .nearby-card-placeholder{
        width:78px;
    }

    .entity-page .entity-tags-group{
        width:100%;
    }
}
.listing-intro{
    background:#ffffff;
    border:1px solid var(--color-border);
    border-radius:8px;
    margin:-8px 0 22px;
    max-width:960px;
    padding:18px 22px;
}

.listing-intro h2:first-child,
.listing-intro h3:first-child{
    margin-top:0;
}
/* Pages quartiers : carte et encards des lieux rattaches */
.entity-page .district-places-section{
    background:#ffffff;
    border:1px solid var(--entity-line);
    border-radius:8px;
    display:grid;
    gap:16px;
    padding:18px;
}

.entity-page .district-places-header{
    align-items:flex-start;
    display:flex;
    gap:16px;
    justify-content:space-between;
}

.entity-page .district-places-header h2{
    font-size:22px;
    margin:0 0 4px;
}

.entity-page .district-places-header p{
    color:var(--entity-muted);
    margin:0;
}

.entity-page .district-places-all-link{
    background:#f7edf1;
    border:1px solid #d7adbc;
    border-radius:999px;
    color:var(--theme-primary);
    flex:0 0 auto;
    font-size:13px;
    font-weight:bold;
    padding:6px 10px;
    text-decoration:none;
}

.entity-page .nearby-district-all-link{
    align-items:center;
    color:var(--theme-primary);
    display:inline-flex;
    font-size:16px;
    font-weight:bold;
    gap:8px;
    margin-top:16px;
    text-decoration:none;
}

.entity-page .nearby-district-all-link:hover{
    text-decoration:underline;
}

.entity-page .nearby-district-all-link-arrow{
    transition:transform .15s ease;
}

.entity-page .nearby-district-all-link:hover .nearby-district-all-link-arrow{
    transform:translateX(3px);
}

.entity-page .district-places-all-link:hover{
    background:#efdde5;
    text-decoration:none;
}

.entity-page .district-places-map-wrap{
    aspect-ratio:16/8;
    background:#edf7fa;
    border:1px solid var(--entity-line);
    border-radius:8px;
    min-height:300px;
    overflow:hidden;
    position:relative;
}

.entity-page .district-places-map{
    height:100%;
    min-height:300px;
    width:100%;
}

.entity-page .district-place-leaflet-marker{
    background-image:var(--pin-image);
    background-position:center;
    background-repeat:no-repeat;
    background-size:contain;
    color:#8a0831;
    display:block;
    height:40px;
    position:relative;
    width:29px;
}

.entity-page .district-place-leaflet-marker-number{
    align-items:center;
    background:#fff;
    border:2px solid currentColor;
    border-radius:999px;
    color:var(--entity-heading,#102a43);
    display:flex;
    font-size:11px;
    font-weight:bold;
    height:18px;
    justify-content:center;
    line-height:1;
    min-width:18px;
    padding:0 3px;
    position:absolute;
    right:-5px;
    top:24px;
}

.entity-page .district-place-leaflet-marker-other{
    filter:grayscale(1) opacity(.65);
}

.entity-page .district-place-leaflet-marker-rating{
    align-items:center;
    background:#fff;
    border:1px solid #d7dde0;
    border-radius:999px;
    box-shadow:0 2px 5px rgba(21,45,52,.22);
    color:#e0a530;
    display:flex;
    font-size:9.5px;
    justify-content:center;
    left:50%;
    letter-spacing:1px;
    line-height:1;
    padding:1px 4px;
    position:absolute;
    top:-13px;
    transform:translateX(-50%);
    white-space:nowrap;
}

.entity-page .leaflet-popup-content{
    color:var(--entity-heading,#102a43);
    font-family:inherit;
    font-size:14px;
    line-height:1.35;
    margin:0;
    width:280px !important;
}

.entity-page .leaflet-popup-content-wrapper{
    padding:0;
    overflow:hidden;
}

.entity-page .district-place-popup{
    color:inherit;
    display:block;
    text-decoration:none;
}

.entity-page .district-place-popup-image{
    display:block;
    height:120px;
    object-fit:cover;
    width:100%;
}

.entity-page .district-place-popup-body{
    display:block;
    padding:10px 12px;
}

.entity-page .district-place-popup-body strong{
    color:var(--theme-primary,#681734);
    display:block;
    font-weight:bold;
}

.entity-page .district-place-popup-rating{
    color:#e0a530;
    display:block;
    font-size:12px;
    letter-spacing:1px;
    margin-top:3px;
}

.entity-page .district-place-popup-summary{
    color:var(--entity-muted,#64757c);
    display:block;
    font-size:13px;
    line-height:1.4;
    margin-top:4px;
}

.entity-page .district-places-map-link{
    margin-top:-8px;
}

.entity-page .district-place-cards{
    display:grid;
    gap:12px;
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.entity-page .district-place-card{
    align-items:start;
    background:#fff;
    border:1px solid var(--entity-line);
    border-radius:8px;
    color:var(--entity-heading);
    display:grid;
    gap:12px;
    grid-template-columns:96px minmax(0,1fr);
    min-height:102px;
    overflow:hidden;
    padding:10px;
    position:relative;
    text-decoration:none;
    transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.entity-page .district-place-card-rating{
    background:rgba(255,255,255,.92);
    border-radius:10px;
    color:#e0a530;
    font-size:12px;
    letter-spacing:1px;
    line-height:1;
    padding:3px 6px;
    position:absolute;
    right:8px;
    top:8px;
    z-index:1;
}

.entity-page .district-place-card:hover{
    border-color:#d7adbc;
    box-shadow:0 10px 22px rgba(25,48,55,.08);
    text-decoration:none;
    transform:translateY(-1px);
}

.entity-page .district-place-card img,
.entity-page .district-place-card-placeholder{
    aspect-ratio:4/3;
    background:#f7edf1;
    border:1px solid #ead4dc;
    border-radius:6px;
    display:block;
    object-fit:cover;
    width:96px;
}

.entity-page .district-place-card-placeholder::before{
    color:var(--theme-primary);
    content:"";
    display:block;
    height:100%;
    width:100%;
}

.entity-page .district-place-card-body{
    display:block;
    min-width:0;
    position:relative;
}

.entity-page .district-place-card-number{
    align-items:center;
    background:var(--theme-primary);
    border-radius:999px;
    color:#fff;
    display:inline-flex;
    font-size:11px;
    font-weight:bold;
    height:22px;
    justify-content:center;
    margin:0 6px 5px 0;
    width:22px;
}

.entity-page .district-place-card-type{
    color:var(--entity-muted);
    font-size:12px;
    line-height:1.2;
}

.entity-page .district-place-card strong{
    color:var(--entity-heading);
    display:block;
    font-size:16px;
    line-height:1.25;
    margin:1px 0 5px;
}

.entity-page .district-place-card-summary{
    color:#486581;
    display:block;
    font-size:13px;
    line-height:1.35;
}

@media (max-width:760px){
    .entity-page .district-places-header{
        display:grid;
    }

    .entity-page .district-places-all-link{
        justify-self:start;
    }

    .entity-page .district-places-map-wrap{
        aspect-ratio:4/3;
        min-height:240px;
    }

    .entity-page .district-place-cards{
        grid-template-columns:1fr;
    }

    .entity-page .district-place-card{
        grid-template-columns:82px minmax(0,1fr);
    }

    .entity-page .district-place-card img,
    .entity-page .district-place-card-placeholder{
        width:82px;
    }
}
/* Encarts editoriaux inserables depuis TinyMCE */
.entity-page .content .cms-callout,
.listing-intro .cms-callout{
    background:#f8edf1;
    border:1px solid #ead4dc;
    border-left:5px solid var(--theme-primary);
    border-radius:6px;
    clear:both;
    color:var(--entity-ink,#1f2933);
    margin:24px 0;
    padding:15px 17px;
}

.entity-page .content .cms-callout > strong:first-child,
.listing-intro .cms-callout > strong:first-child{
    color:#4f142b;
    display:block;
    font-weight:bold;
    margin:0 0 6px;
}

.entity-page .content .cms-callout p,
.listing-intro .cms-callout p{
    margin:0;
}

.entity-page .content .cms-callout p + p,
.listing-intro .cms-callout p + p{
    margin-top:8px;
}

.entity-page .content .cms-callout-float,
.listing-intro .cms-callout-float{
    clear:none;
    float:right;
    margin:6px 0 16px 22px;
    width:min(50%,360px);
}

.entity-page .content .cms-callout-info,
.listing-intro .cms-callout-info{
    background:#edf7fa;
    border-color:#bddce6;
    border-left-color:var(--theme-secondary);
}

.entity-page .content .cms-callout-info > strong:first-child,
.listing-intro .cms-callout-info > strong:first-child{
    color:#1f425b;
}

.entity-page .content .cms-callout-story,
.listing-intro .cms-callout-story{
    background:#fff7e7;
    border-color:#ead8ac;
    border-left-color:var(--theme-accent);
}

.entity-page .content .cms-callout-story > strong:first-child,
.listing-intro .cms-callout-story > strong:first-child{
    color:#6c4317;
}

@media (max-width:700px){
    .entity-page .content .cms-callout-float,
    .listing-intro .cms-callout-float{
        float:none;
        margin:20px 0;
        width:auto;
    }
}
/* Pages d'atterrissage : colonne principale + sidebar pratique */
.listing-layout{
    align-items:start;
    display:grid;
    gap:24px;
    grid-template-columns:minmax(0,1fr) 320px;
}

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

.listing-sidebar{
    box-sizing:border-box;
    max-height:calc(100vh - 86px - 24px);
    min-width:0;
    overflow-x:hidden;
    overflow-y:auto;
    position:sticky;
    scrollbar-color:var(--color-border-strong) transparent;
    scrollbar-width:none;
    top:86px;
    width:calc(100% + 14px);
}

.listing-sidebar:hover{
    scrollbar-width:thin;
}

.listing-sidebar::-webkit-scrollbar{
    width:0;
}

.listing-sidebar:hover::-webkit-scrollbar{
    width:6px;
}

.listing-sidebar::-webkit-scrollbar-track{
    background:transparent;
}

.listing-sidebar::-webkit-scrollbar-thumb{
    background-color:var(--color-border-strong);
    border-radius:3px;
}

.listing-sidebar .sidebar-card-district-map h2{
    margin-bottom:12px;
}

.listing-sidebar .district-mini-map-box{
    float:none;
    margin:0;
    width:100%;
}

.listing-sidebar .district-mini-map-stage{
    aspect-ratio:1448/1086;
    background:#fff;
    border:1px solid var(--color-border);
    border-radius:4px;
    cursor:default;
    overflow:hidden;
    position:relative;
}

.listing-sidebar .district-mini-map-stage.has-district-hover{
    cursor:pointer;
}

.listing-sidebar .district-mini-map-stage:focus-visible{
    outline:2px solid var(--theme-primary);
    outline-offset:3px;
}

.listing-sidebar .district-mini-map-image,
.listing-sidebar .district-mini-map-overlay{
    display:block;
    height:100%;
    inset:0;
    object-fit:contain;
    position:absolute;
    width:100%;
}

.listing-sidebar .district-mini-map-image{
    position:relative;
}

.listing-sidebar .district-mini-map-overlay{
    opacity:0;
    pointer-events:none;
    transition:opacity .14s ease;
}

.listing-sidebar .district-mini-map-overlay.is-visible{
    opacity:1;
}

.listing-sidebar .district-mini-map-links{
    height:1px;
    margin:-1px;
    overflow:hidden;
    position:absolute;
    white-space:nowrap;
    width:1px;
    clip:rect(0 0 0 0);
    clip-path:inset(50%);
}

.listing-sidebar .district-mini-map-caption{
    color:var(--color-heading);
    display:block;
    line-height:1.2;
    margin-top:8px;
    text-align:center;
    text-decoration:none;
}

.listing-sidebar .district-mini-map-caption span{
    color:var(--color-muted);
    display:block;
    font-size:11px;
}

.listing-sidebar .district-mini-map-caption strong{
    display:block;
    font-size:14px;
}

.listing-sidebar .district-mini-map-caption:hover strong{
    color:var(--theme-primary);
}

@media (max-width:900px){
    .listing-layout{
        grid-template-columns:1fr;
    }

    .listing-sidebar{
        max-height:none;
        overflow-y:visible;
        position:static;
        width:auto;
    }

    .entity-sidebar-inner{
        width:auto;
    }
}

/* En-tete plus compact sur les pages d'atterrissage : fait remonter la colonne de droite. */
.listing-hero{
    padding:18px 24px;
}

.listing-hero h1{
    font-size:clamp(28px,4vw,36px);
    margin:6px 0 8px;
}

.listing-hero .summary{
    font-size:17px;
}

/* Widgets de la colonne de droite : meme habillage que les fiches lieux (cartes blanches, ombre, accent en tete). */
.listing-sidebar .sidebar-card{
    background:#ffffff;
    border:1px solid var(--entity-line,#d8e1dd);
    border-radius:8px;
    box-shadow:0 12px 26px rgba(25,48,55,.07);
    min-width:0;
    padding:18px;
}

.listing-sidebar .sidebar-card:first-child{
    border-top:4px solid var(--theme-primary);
}

.listing-sidebar .sidebar-card-booking{
    border-top:4px solid var(--entity-brick,#a84f3d);
}

.listing-sidebar .sidebar-card-map{
    border-top:4px solid var(--entity-lagoon,#0f766e);
}

.listing-sidebar .sidebar-static-map-link{
    border-radius:6px;
    display:block;
    margin-bottom:8px;
    overflow:hidden;
}

.listing-sidebar .sidebar-static-map-image{
    aspect-ratio:4/3;
    display:block;
    height:auto;
    object-fit:cover;
    width:100%;
}

.listing-sidebar .map-link{
    color:var(--entity-lagoon,#0f766e);
    font-weight:bold;
}

.listing-sidebar .sidebar-card h2{
    color:var(--entity-heading,#12323a);
    font-size:18px;
    letter-spacing:0;
    margin:0 0 12px;
}

.listing-sidebar .sidebar-actions{
    gap:9px;
}

.listing-sidebar .sidebar-action{
    align-items:center;
    border-radius:6px;
    display:flex;
    font-size:14px;
    font-weight:normal;
    justify-content:space-between;
    padding:6px 10px;
}

.listing-sidebar .sidebar-action::after{
    content:">";
    color:var(--theme-primary);
    font-weight:bold;
}
/* Filtres des pages d'atterrissage : ligne compacte et alignement propre */
.listing-filters{
    align-items:end;
    background:var(--color-surface);
    border:1px solid var(--color-border);
    border-radius:0;
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    grid-template-columns:none;
    margin:0 0 22px;
    padding:18px 20px;
}

.listing-filters > div{
    flex:1 1 320px;
    min-width:240px;
}

.listing-filter-actions{
    align-items:end;
    display:flex;
    flex:0 0 auto;
    gap:10px;
}

.listing-filters label{
    color:var(--color-heading);
    display:block;
    font-size:14px;
    font-weight:bold;
    line-height:1.2;
    margin:0 0 8px;
}

.listing-filters select{
    appearance:none;
    background:
        linear-gradient(45deg,transparent 50%,var(--theme-primary) 50%) right 18px center / 6px 6px no-repeat,
        linear-gradient(135deg,var(--theme-primary) 50%,transparent 50%) right 12px center / 6px 6px no-repeat,
        linear-gradient(180deg,#fbfcfd,#f1f4f8);
    border:1px solid #b9c7d8;
    border-radius:5px;
    color:var(--color-heading);
    font:inherit;
    height:46px;
    padding:0 42px 0 13px;
    width:100%;
}

.listing-filter-actions button{
    align-items:center;
    background:var(--theme-primary);
    border:1px solid var(--theme-primary);
    border-radius:5px;
    color:#fff;
    cursor:pointer;
    display:inline-flex;
    font:inherit;
    font-weight:bold;
    height:46px;
    justify-content:center;
    padding:0 19px;
    white-space:nowrap;
}

.listing-filter-actions button:hover{
    background:#5b1730;
    border-color:#5b1730;
}

.listing-filter-actions .button-link{
    align-items:center;
    display:inline-flex;
    height:46px;
}

@media (max-width:520px){
    .listing-filters{
        display:grid;
    }

    .listing-filters > div{
        min-width:0;
    }

    .listing-filter-actions,
    .listing-filter-actions button{
        width:100%;
    }
}
.entity-sidebar .sidebar-card-district-map .district-mini-map-box{
    float:none;
    margin:0;
    width:100%;
}
.entity-page .sidebar-note{
    color:var(--entity-muted);
    font-size:13px;
}

.sidebar-editions-list{
    list-style:none;
    margin:0;
    padding:0;
}

.sidebar-editions-list li{
    padding:6px 0;
    border-bottom:1px solid var(--entity-line, #e4e9ef);
}

.sidebar-editions-list li:last-child{
    border-bottom:none;
}

.entity-page .sidebar-official-link{
    color:var(--entity-muted);
    font-size:13px;
}

.entity-page .sidebar-note-verified{
    font-size:12px;
    margin-top:14px;
    text-align:right;
}

.entity-page .entity-updated-date{
    color:var(--entity-muted);
    flex:1 0 100%;
    font-size:12px;
    margin:0 0 8px;
    text-align:center;
}

/* Pages statiques (contact, confidentialite, mentions legales) */
.static-page{
    margin:0 auto;
    max-width:820px;
    padding:32px 20px 60px;
}

.static-page-content{
    color:#334e68;
    font-size:16px;
    line-height:1.65;
}

.static-page-content h2{
    color:var(--color-heading);
    font-size:20px;
    margin:32px 0 12px;
}

.static-page-content h2:first-child{
    margin-top:0;
}

.static-page-content p,
.static-page-content ul{
    margin:0 0 14px;
}

.static-page-content .muted{
    color:var(--color-muted);
    font-size:14px;
}

.flash-success,
.flash-error{
    border-radius:6px;
    font-size:15px;
    padding:12px 16px;
}

.flash-success{
    background:#eaf6f3;
    border:1px solid #a8d5cd;
    color:#0a4d47;
}

.flash-error{
    background:#f7edf1;
    border:1px solid #d7adbc;
    color:var(--theme-primary, #7a1f3d);
}

.contact-form{
    margin-top:24px;
    max-width:520px;
}

.contact-form label{
    display:block;
    font-weight:bold;
    margin-bottom:6px;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea{
    background:var(--color-surface);
    border:1px solid var(--color-border);
    border-radius:6px;
    box-sizing:border-box;
    font:inherit;
    padding:10px 12px;
    width:100%;
}

.contact-form textarea{
    resize:vertical;
}

.contact-form-captcha label{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    font-weight:normal;
    gap:8px;
}

.contact-captcha-digit{
    background:#fff;
    border:1px solid var(--color-border);
    border-radius:4px;
    display:inline-block;
    vertical-align:middle;
}

.contact-captcha-answer{
    max-width:100px;
}

.error-page-links{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    list-style:none;
    padding:0;
    margin:0 0 20px;
}

.error-page-links li{
    margin:0;
}

.error-page-links a{
    display:inline-block;
    padding:8px 16px;
    border:1px solid var(--color-border, #d9e2ec);
    border-radius:999px;
    color:var(--color-heading);
    text-decoration:none;
    font-size:14px;
}

.error-page-links a:hover{
    background:#f0f4f8;
}

.cookie-policy-table{
    border-collapse:collapse;
    margin:0 0 20px;
    width:100%;
}

.cookie-policy-table th,
.cookie-policy-table td{
    border:1px solid var(--color-border);
    font-size:14px;
    padding:8px 10px;
    text-align:left;
    vertical-align:top;
}

.cookie-policy-table th{
    background:var(--color-surface-soft);
}

/* Consentement cookies */
.consent-embed-placeholder{
    align-items:center;
    background:#f4f6f8;
    border:1px dashed #d9e2ec;
    border-radius:6px;
    display:flex;
    flex-direction:column;
    gap:10px;
    justify-content:center;
    min-height:180px;
    padding:24px;
    text-align:center;
}

.consent-embed-placeholder p{
    color:#486581;
    font-size:14px;
    margin:0;
}

.consent-embed-placeholder-actions{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    justify-content:center;
}

.consent-embed-placeholder-actions .text-button{
    font-size:13px;
    text-decoration:underline;
}

.cookie-consent-banner{
    background:#12232c;
    bottom:0;
    box-shadow:0 -8px 24px rgba(0,0,0,.25);
    color:#f0f4f7;
    left:0;
    padding:16px 20px;
    position:fixed;
    right:0;
    z-index:2000;
}

.cookie-consent-inner{
    margin:0 auto;
    max-width:1100px;
}

.cookie-consent-text p{
    margin:0 0 6px;
}

.cookie-consent-text{
    font-size:14px;
}

.cookie-consent-text a{
    color:#8ecae6;
}

.cookie-consent-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:12px;
}

.cookie-consent-actions .button,
.cookie-consent-actions .button-light{
    font-size:13px;
    padding:8px 14px;
}

.cookie-consent-customize{
    background:rgba(255,255,255,.06);
    border-radius:8px;
    display:grid;
    gap:10px;
    margin-top:14px;
    padding:14px;
}

.cookie-consent-option{
    align-items:flex-start;
    display:flex;
    font-size:13px;
    gap:8px;
}

.cookie-consent-option input{
    margin-top:3px;
}

.cookie-consent-option-locked{
    opacity:.7;
}

body.has-cookie-banner{
    padding-bottom:0;
}

.site-footer-inner{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    justify-content:space-between;
    margin:0 auto;
    max-width:1100px;
}

.site-footer-nav{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    gap:16px;
}

.site-footer-nav a,
.site-footer-nav .text-button{
    color:inherit;
    font-size:13px;
    opacity:.85;
}

.site-footer-nav a:hover,
.site-footer-nav .text-button:hover{
    opacity:1;
    text-decoration:underline;
}

@media (max-width:640px){
    .cookie-consent-actions{
        flex-direction:column;
    }

    .cookie-consent-actions .button,
    .cookie-consent-actions .button-light{
        width:100%;
    }
}

.home-hero-cta{
    display:inline-block;
    margin-top:8px;
}

.home-intro{
    margin:0 auto 32px;
    max-width:720px;
}

.home-intro-with-image{
    align-items:stretch;
    display:grid;
    gap:28px;
    grid-template-columns:1.1fr 1fr;
    margin:0 0 32px;
    max-width:none;
}

.home-intro-text{
    font-size:18px;
}

.home-intro-image{
    border-radius:8px;
    overflow:hidden;
    position:relative;
}

.home-intro-slide{
    height:100%;
    inset:0;
    margin:0;
    opacity:0;
    pointer-events:none;
    position:absolute;
    transition:opacity 1s ease;
    width:100%;
}

.home-intro-slide.is-active{
    opacity:1;
    pointer-events:auto;
}

.home-intro-slide img{
    display:block;
    height:100%;
    object-fit:cover;
    width:100%;
}

.home-intro-slide figcaption{
    background:linear-gradient(to top,rgba(0,0,0,.68),rgba(0,0,0,0));
    bottom:0;
    color:#fff;
    font-size:13px;
    left:0;
    padding:28px 14px 10px;
    position:absolute;
    right:0;
}

@media (max-width:700px){
    .home-intro-with-image{
        grid-template-columns:1fr;
    }

    .home-intro-image{
        aspect-ratio:3/2;
    }
}

@media (prefers-reduced-motion:reduce){
    .home-intro-slide{
        transition:none;
    }
}

.home-section{
    margin-bottom:36px;
}

.home-section-header{
    align-items:baseline;
    display:flex;
    gap:12px;
    justify-content:space-between;
}

.home-section-more{
    align-items:center;
    background:#f7edf1;
    border:1px solid #d7adbc;
    border-radius:999px;
    color:var(--theme-primary);
    display:inline-flex;
    flex:0 0 auto;
    font-size:13px;
    font-weight:bold;
    gap:6px;
    padding:6px 12px;
    text-decoration:none;
    white-space:nowrap;
}

.home-section-more:hover{
    background:#efdde5;
    text-decoration:none;
}

.home-section-more-arrow{
    transition:transform .15s ease;
}

.home-section-more:hover .home-section-more-arrow{
    transform:translateX(3px);
}

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

@media (max-width:700px){
    .home-maps-grid{
        grid-template-columns:1fr;
        max-width:280px;
        margin:0 auto;
    }
}

.home-maps-grid .district-mini-map-box{
    float:none;
    margin:0;
    width:100%;
}

.home-maps-grid .district-mini-map-stage{
    background:#fff;
    border:1px solid var(--color-border);
    border-radius:4px;
    cursor:default;
    overflow:hidden;
    position:relative;
}

.home-maps-grid .district-mini-map-stage.has-district-hover{
    cursor:pointer;
}

.home-maps-grid .district-mini-map-stage:focus-visible{
    outline:2px solid var(--theme-primary);
    outline-offset:3px;
}

.home-maps-grid .district-mini-map-image,
.home-maps-grid .district-mini-map-overlay{
    display:block;
    height:100%;
    inset:0;
    object-fit:contain;
    position:absolute;
    width:100%;
}

.home-maps-grid .district-mini-map-image{
    position:relative;
}

.home-maps-grid .district-mini-map-overlay{
    opacity:0;
    pointer-events:none;
    transition:opacity .14s ease;
}

.home-maps-grid .district-mini-map-overlay.is-visible{
    opacity:1;
}

.home-maps-grid .district-mini-map-links{
    height:1px;
    margin:-1px;
    overflow:hidden;
    position:absolute;
    white-space:nowrap;
    width:1px;
    clip:rect(0 0 0 0);
    clip-path:inset(50%);
}

.home-maps-grid .district-mini-map-caption{
    color:var(--color-heading);
    display:block;
    line-height:1.2;
    margin-top:8px;
    text-align:center;
    text-decoration:none;
}

.home-maps-grid .district-mini-map-caption span{
    color:var(--color-muted);
    display:block;
    font-size:11px;
}

.home-maps-grid .district-mini-map-caption strong{
    display:block;
    font-size:14px;
}

.home-maps-grid .district-mini-map-caption:hover strong{
    color:var(--theme-primary);
}

.home-citymap-card{
    color:var(--color-heading);
    display:block;
    text-decoration:none;
}

.home-citymap-card img{
    aspect-ratio:1072/932;
    border:1px solid var(--color-border);
    border-radius:4px;
    display:block;
    height:auto;
    object-fit:cover;
    width:100%;
}

.home-citymap-card span{
    display:block;
    font-size:14px;
    font-weight:600;
    margin-top:8px;
    text-align:center;
}

.home-citymap-card:hover span{
    color:var(--theme-primary);
}