/*
  Hello Abidjan — Design system typographique transversal (2026)
  Les niveaux sont cohérents sur toutes les pages : titres, cartes, sous-titres,
  légendes, formulaires. On ne change pas les ratios ni l'agencement des photos.
*/
:root{
 --ha-title:28px;
 --ha-detail-title:27px;
 --ha-section:20px;
 --ha-card:16px;
 --ha-body:15px;
 --ha-secondary:13px;
 --ha-micro:12px;
 --ha-reading:1.58;
}
#main{
 color:var(--ink);
 font-family:'DM Sans',sans-serif;
 font-size:var(--ha-body);
 line-height:1.55;
}
#main h1,#main h2,#main h3{
 text-wrap:pretty;
}
#main :where(button,input,select,textarea){
 font-family:'DM Sans',sans-serif;
}
#main :where(p,li,dd,small){
 overflow-wrap:break-word;
}
#main :where(input[type="search"],input[type="text"],input[type="email"],select,textarea){
 font-size:16px;
}
#main :where(.primary,.outline-button,.filter-trigger){
 font-size:14px;
 line-height:1.35;
}
/* Titres de pages : alignement à gauche et une seule échelle */
#main :is(
 .explorer-page>h1,
 .community-meet-page>h1,
 .community-propose-page>h1,
 .community-page>h1,
 .restaurant-v4-heading h1,
 .lodging-index-heading h1,
 .stay-page>h1,
 .notifications-page>h1,
 .guide-overview>h1,
 .practical-article>h1,
 .habits-page>h1,
 .ab-news-detail>h1
){
 font-family:Manrope,sans-serif;
 font-size:var(--ha-title);
 font-weight:800;
 line-height:1.22;
 letter-spacing:-.65px;
 text-align:left;
}
#main :is(
 .restaurant-v4-detail-title h1,
 .explorer-detail-body>h1,
 .community-detail-title,
 .ab-news-detail h1,
 .practical-article h1,
 .habit-detail h1
){
 font-family:Manrope,sans-serif;
 font-size:var(--ha-detail-title);
 line-height:1.25;
 font-weight:800;
}
/* En-têtes de rubriques, sans micro-titres dispersés */
#main :is(
 .explorer-sectionhead h2,
 .restaurant-v4-section-title h2,
 .restaurant-v3-section h2,
 .restaurant-v2-sectionhead h2,
 .restaurant-v4-branches h2,
 .community-heading h2,
 .community-meet-section-head h2,
 .community-page h2,
 .stay-agenda-title h2,
 .stay-panel-title h2,
 .notifications-page h2,
 .ab-news-heading h2,
 .lodging-contact h2,
 .guide-situations h2,
 .guide-topics h2,
 .guide-sections h2
){
 font:800 var(--ha-section)/1.3 Manrope,sans-serif;
 letter-spacing:-.4px;
}
#main .upcoming-title{font-size:19px;line-height:1.3;font-weight:800}

/* Sous-titres et introductions de pages */
#main :is(
 .restaurant-v4-heading p,
 .lodging-index-heading p,
 .community-meet-intro,
 .community-form-intro,
 .community-subtitle,
 .explorer-detail-description,
 .restaurant-v4-detail-text,
 .restaurant-v3-description,
 .stay-page>.muted,
 .guide-topics p,
 .habit-intro,
 .ab-news-summary
){
 font-size:15px;
 line-height:1.6;
}
#main :is(.restaurant-v4-detail-location,.restaurant-v3-address,.explorer-detail-location){
 font-size:13px;
 line-height:1.5;
}

/* Restaurant : noms et détails faciles à lire, 2 colonnes inchangées */
#main .restaurant-v4-card-title-line>strong{
 font:800 var(--ha-card)/1.32 Manrope,sans-serif;
 letter-spacing:-.2px;
 max-height:2.64em;
}
#main .restaurant-v4-card-copy{gap:7px;padding:11px 11px 13px}
#main .restaurant-v4-card-address{font-size:13px;line-height:1.4}
#main .restaurant-v4-tags span{font-size:12px;line-height:1.3;padding:6px 8px}
#main .restaurant-google-rating{font-size:13px;gap:4px}
#main .restaurant-google-rating strong{font-size:13px}
#main .restaurant-google-rating small{font-size:12px}
#main .restaurant-google-brand{font-size:11px}
#main .restaurant-google-pending{font-size:12px}
#main .restaurant-v4-page .restaurant-v2-story-label{
 font-size:12.5px;line-height:1.35;min-height:33px;max-height:34px;
}
#main .restaurant-v4-results-head>strong{font-size:16px}
#main:has(> .community-stories)>.event-toolbar .upcoming-title{
 font-size:19px;
 line-height:1.25;
}
#main .restaurant-v4-search input:focus-visible{outline:none}
#main .restaurant-v4-view-switch button{font-size:13px}
#main .restaurant-v4-search input{font-size:16px}
#main .restaurant-v4-card-title-line>[data-restaurant-rating]{
 margin-top:2px;
}
#main .restaurant-v4-fact strong{font-size:12px}
#main .restaurant-v4-fact span{font-size:12px;line-height:1.4}
#main .restaurant-v4-fact{min-height:116px}
#main .restaurant-v4-detail-tabs button{font-size:13px}
#main .restaurant-v4-detail-actions>*{font-size:12px}
#main .restaurant-google-review-summary{font-size:14px}
#main .restaurant-v4-pane{font-size:14px;line-height:1.6}
#main .restaurant-v4-branches .restaurant-branch p{font-size:13px}
#main .restaurant-v4-branches .restaurant-actions>*{font-size:12px}
#main .restaurant-v4-note{font-size:12px}

/* Explorer : des lieux aussi lisibles que les restaurants */
#main .explorer-page .explorer-search input{font-size:16px}
#main .explorer-category{font-size:13px;min-height:37px;padding:9px 12px}
#main .explorer-sectionhead button{font-size:13px}
#main .explorer-row-copy>strong{
 font:800 16px/1.32 Manrope,sans-serif;
 max-height:2.64em;
}
#main .explorer-row-location{font-size:13px;line-height:1.35}
#main .explorer-row-tags small{font-size:12px;line-height:1.3;padding:5px 7px}
#main .explorer-row-copy{gap:6px}
#main .explorer-detail-tags span{font-size:12px}
#main .explorer-detail-quick strong{font-size:12px}
#main .explorer-detail-quick span{font-size:12px;line-height:1.35}
#main .explorer-detail-quick>div{min-height:108px}
#main .explorer-detail-facts>div{font-size:14px}
#main .explorer-detail-tip :is(strong,p){font-size:14px;line-height:1.5}
#main .explorer-detail-highlights{font-size:14px;line-height:1.65}
#main .explorer-nearby strong{font-size:13px;line-height:1.4}
#main .explorer-nearby small{font-size:12px}
#main .explorer-detail-external{font-size:13px}
#main .explorer-detail-sectionhead>span{font-size:12px}

/* Bons plans / sorties : plus de cartes illisibles */
#main #event-results .upcoming-card-info h3{
 font:800 15px/1.33 Manrope,sans-serif;
 letter-spacing:-.2px;
 max-height:2.66em;
 min-height:2.66em;
}
#main #event-results .upcoming-location{font-size:13px;line-height:1.4}
#main #event-results .upcoming-category{font-size:11px}
#main #event-results .upcoming-price{font-size:12px;line-height:1.3}
#main #event-results .upcoming-date small{font-size:10px}
#main .community-story-label{font-size:13px;line-height:1.35}
#main .community-story-label small{font-size:12px}
#main .community-meet-card-title{
 font:800 15px/1.32 Manrope,sans-serif;
 min-height:2.64em;
 margin:5px 0 7px;
}
#main .community-meet-info{min-height:139px;padding:0 11px 13px}
#main .community-meet-author{font-size:12px;line-height:1.4}
#main .community-meet-facts{font-size:13px;line-height:1.42}
#main .community-meet-status{font-size:12px}
#main .community-meet-section-head>span{font-size:12px}
#main .community-meet-section-head>a{font-size:13px}
#main .community-meet-note{font-size:12px}
#main .community-meet-my-outings,
#main .community-meet-page .community-meet-compact-propose{font-size:13px}
#main .community-idea-label{font-size:13px}
#main .community-card p{font-size:14px;line-height:1.55}
#main .community-card :is(small,em,span){font-size:12px}
#main .community-messages time{font-size:12px}
#main .community-form label,
#main .community-propose-page .community-form>label:not(.community-free-control){font-size:14px}
#main .community-form small,
#main .community-propose-page .community-hint{font-size:13px}

/* Hébergements : mêmes règles de titres et de descriptions */
#main .lodging-index .lodging-compact-search input{font-size:16px}
#main .lodging-index .lodging-compact-search .filter-trigger{font-size:13px}
#main .lodging-card .cardbody h3{font-size:16px;line-height:1.35}
#main .lodging-card .cardbody p{font-size:13px;line-height:1.5}
#main .lodging-badge{font-size:12px}
#main .lodging-more{font-size:13px}
#main .lodging-index .lodging-count{font-size:13px}
#main .lodging-fields label{font-size:14px}

/* Guide, premiers pas, démarches et usages */
#main .guide-topics h2{font-size:19px}
#main .guide-topics p{font-size:14px}
#main .guide-kicker{font-size:12px}
#main .guide-nearby small,
#main .location-link small,
#main .mini-tile small,
#main .daily-grid small,
#main .guide-category-copy small{font-size:12px}
#main .guide-contact p{font-size:14px}
#main .guide-transport-photo small,
#main .guide-sources .guide-action{font-size:12px}
#main .guide-sections summary{font-size:15px;line-height:1.5}
#main .guide-sections p,
#main .practical-article p,
#main .practical-article li{font-size:15px;line-height:1.7}
#main .guide-category-caption{font-size:14px}
#main .guide-ready small{font-size:13px}
#main .habit-kicker,
#main .habit-register,
#main .habit-group span{font-size:12px}
#main .habit-detail p{font-size:15px}
#main .habit-help{font-size:13px}
#main .habit-word-row small{font-size:13px}

/* Mon séjour et notifications */
#main .stay-folder-copy strong{font-size:15px}
#main .stay-folder-copy small{font-size:13px}
#main .stay-agenda-title h2,
#main .stay-panel-title h2{font-size:20px}
#main .stay-agenda-title span,
#main .stay-request-alert small,
#main .stay-next p{font-size:13px}
#main .stay-request-alert strong{font-size:15px}
#main .stay-day{font-size:12px}
#main .notification-open strong{font-size:15px}
#main .notification-open p{font-size:14px}
#main .notification-open small,
#main .notification-actions a{font-size:13px}

/* Actualités / informations */
#main .ab-news-card h3{font-size:17px;line-height:1.35}
#main .ab-news-date,
#main .ab-news-link,
#main .ab-news-controls>span{font-size:13px}
#main .ab-news-tag{font-size:12px}
#main .ab-news-detail figcaption{font-size:12px}

/* Lisibilité des formulaires, boutons et navigation sur toutes les pages */
#main :where(label,legend){line-height:1.45}
#main .sheet-label,
#main .sheet-body legend{font-size:15px}
#main .choice span{font-size:13px}
#main .sheet-footer :is(.primary,button){font-size:14px}
#main .filter-trigger{font-size:13px}
#main .active-filters button{font-size:12px}
#main .back{font-size:13px}
#nav a{font-size:13px;line-height:1.25}
#main .guide-action{font-size:14px}
#main .community-form :where(input,textarea,select){
 font-size:16px;
}
@media(max-width:550px){
 :root{
  --ha-title:26px;
  --ha-detail-title:26px;
  --ha-section:19px;
  --ha-card:15px;
 }
 #main .restaurant-v4-page .restaurant-v2-story-label{font-size:12px}
 #main .restaurant-v4-card-title-line>strong{font-size:15px}
 #main .restaurant-v4-card-copy{gap:6px;padding:9px 9px 11px}
 #main .restaurant-v4-card-address{font-size:12px}
 #main .restaurant-v4-tags span{font-size:11.5px;padding:5px 7px}
 #main .restaurant-google-rating small{font-size:11.5px}
 #main .restaurant-google-brand{font-size:10.5px}
 #main .explorer-row-copy>strong{font-size:15px}
 #main .explorer-row-location{font-size:12.5px}
 #main .explorer-row-tags small{font-size:11.5px}
 #main #event-results .upcoming-card-info h3{font-size:15px}
 #main #event-results .upcoming-location{font-size:12px}
 #main .community-meet-card-title{font-size:15px}
 #main .community-meet-facts{font-size:12.5px}
 #main .guide-topics h2{font-size:18px}
}
@media(max-width:370px){
 :root{--ha-title:25px;--ha-section:18px}
 #main .restaurant-v4-card-title-line>strong{font-size:14.5px}
 #main .restaurant-v4-card-copy{padding:9px 8px 10px}
 #main .restaurant-google-rating{gap:3px}
 #main .restaurant-google-rating small{font-size:11px}
 #main #event-results .upcoming-card-info h3{font-size:14.5px}
 #main .community-meet-card-title{font-size:14.5px}
 #nav a{font-size:12px}
}


/* Écrans d'accès : mêmes proportions et tailles que le reste de l'application */
.login-main h1,
.account-exit h1{
 font:800 27px/1.22 Manrope,sans-serif;
 letter-spacing:-.65px;
}
.login-main .muted,
.login-main #login-sub{
 font-size:15px;
 line-height:1.6;
}
.login-main label{font-size:14px;line-height:1.5}
.login-main label small{font-size:12px}
.login-main .small{font-size:13px}
.login-main .guide-kicker,
.account-step>span:last-child{font-size:12px}
.login-main .login-alt{font-size:14px;line-height:1.45}
.login-main .primary{font-size:15px}
.login-main input{font-size:16px}
.account-brand>span{font-size:11px}
@media(max-width:370px){
 .login-main h1{font-size:26px}
 .account-brand>span{font-size:10px}
}