/* Annuaire Touristique — styles autonomes */
.at-wrap { max-width: 1180px; margin: 0 auto; padding: 0 1.25rem 3rem; }

/* Fil d'Ariane */
.at-breadcrumb { font-size: .85rem; color: #666; margin-bottom: 1.5rem; }
.at-breadcrumb a { color: inherit; text-decoration: underline; }
.at-breadcrumb a:hover { color: #111; }

/* Photo à la Une */
.at-hero { border-radius: 10px; overflow: hidden; margin-bottom: 1.75rem; max-height: 480px; }
.at-hero__img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* En-tête */
.at-header { margin-bottom: 2rem; }
.at-badge { display: inline-block; background: #f0f0f0; color: #444; font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; padding: 3px 10px; border-radius: 4px; margin-bottom: .6rem; }
.at-title { font-size: clamp(1.6rem, 4vw, 2.4rem); font-weight: 700; line-height: 1.2; margin: 0 0 .4rem; }
.at-city { color: #555; font-size: 1rem; margin: 0; }

/* Corps : layout 2 colonnes */
.at-body { display: grid; grid-template-columns: 1fr 320px; gap: 2.5rem; align-items: start; }
@media (max-width: 768px) { .at-body { grid-template-columns: 1fr; } }

/* Contenu */
.at-entry { font-size: 1rem; line-height: 1.75; color: #222; }
.at-entry p { margin: 0 0 1.1em; }
.at-entry h2 { font-size: 1.35rem; margin: 2rem 0 .7rem; }

/* Sidebar */
.at-sidebar { position: sticky; top: 2rem; }
.at-info-card { background: #fff; border: 1px solid #e0e0e0; border-radius: 10px; padding: 1.25rem; }
.at-info-card__title { font-size: 1rem; font-weight: 700; margin: 0 0 1rem; border-bottom: 1px solid #eee; padding-bottom: .6rem; }
.at-info-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .75rem; }
.at-info-item { display: flex; gap: .6rem; align-items: flex-start; font-size: .92rem; color: #333; }
.at-info-icon { font-size: 1rem; flex-shrink: 0; margin-top: 1px; }
.at-info-item a { color: inherit; text-decoration: underline; word-break: break-all; }
.at-info-item a:hover { color: #000; }

/* Carte Leaflet */
.at-map { height: 220px; border-radius: 8px; margin-top: 1.1rem; overflow: hidden; background: #f5f5f5; }

/* Lieux liés */
.at-related { margin-top: 3rem; }
.at-related__title { font-size: 1.2rem; font-weight: 700; margin-bottom: 1.25rem; }

/* Grille de cartes */
.at-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.5rem; margin-top: 1.5rem; }
.at-grid--small .at-card { font-size: .9rem; }
.at-card { background: #fff; border: 1px solid #e8e8e8; border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; }
.at-card__img-wrap { position: relative; display: block; aspect-ratio: 4/3; overflow: hidden; }
.at-card__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.at-card__img-wrap:hover .at-card__img { transform: scale(1.04); }
.at-card__badge { position: absolute; top: .6rem; left: .6rem; background: rgba(0,0,0,.6); color: #fff; font-size: .72rem; font-weight: 600; text-transform: uppercase; padding: 2px 8px; border-radius: 4px; }
.at-card__body { padding: 1rem; display: flex; flex-direction: column; gap: .4rem; flex: 1; }
.at-card__title { font-size: 1rem; font-weight: 700; margin: 0; line-height: 1.3; }
.at-card__title a { color: inherit; text-decoration: none; }
.at-card__title a:hover { text-decoration: underline; }
.at-card__city { font-size: .83rem; color: #666; margin: 0; }
.at-card p { font-size: .88rem; color: #444; margin: 0; }
.at-card__link { display: inline-block; margin-top: auto; padding-top: .6rem; font-size: .85rem; font-weight: 600; color: #000; text-decoration: underline; }

/* Archive */
.at-archive__header { margin-bottom: 2rem; }
.at-archive__title { font-size: clamp(1.5rem, 4vw, 2.2rem); font-weight: 700; margin: 0 0 .5rem; }
.at-archive__desc { color: #555; }

/* Formulaire de recherche */
.at-search-form { background: #f8f8f8; border: 1px solid #e0e0e0; border-radius: 10px; padding: 1.25rem; margin-bottom: 2rem; }
.at-search-inner { display: flex; flex-wrap: wrap; gap: .75rem; }
.at-search-input, .at-search-select { padding: .55rem .85rem; border: 1px solid #ccc; border-radius: 6px; font-size: .92rem; background: #fff; flex: 1; min-width: 160px; }
.at-search-btn { padding: .55rem 1.4rem; background: #111; color: #fff; border: none; border-radius: 6px; font-size: .92rem; font-weight: 600; cursor: pointer; white-space: nowrap; }
.at-search-btn:hover { background: #333; }

/* Pagination */
.at-pagination { display: flex; gap: .4rem; justify-content: center; flex-wrap: wrap; margin-top: 2.5rem; }
.at-pagination .page-numbers { padding: .45rem .85rem; border: 1px solid #ccc; border-radius: 6px; text-decoration: none; color: #333; font-size: .9rem; }
.at-pagination .page-numbers.current { background: #111; color: #fff; border-color: #111; }
.at-pagination .page-numbers:hover:not(.current) { background: #f0f0f0; }

.at-no-results { color: #666; font-style: italic; text-align: center; padding: 3rem 0; }
