/*
Theme Name: Jardin Helvetia
Theme URI: https://jardin-helvetia.com
Author: Jardin Helvetia
Description: Thème code pur pour jardin-helvetia.com — entretien de jardin, haies, élagage et paysagistes, mise en relation et devis.
Version: 1.0.0
Text Domain: jardin-helvetia-rouget
*/

/* =========================================================================
   0. POLICES — auto-hébergées, aucun appel à fonts.googleapis.com
   ========================================================================= */
@font-face {
	font-family: 'Pathway Extreme';
	src: url('assets/fonts/pathway-extreme/pathway-extreme-variable.woff2') format('woff2-variations'),
	     url('assets/fonts/pathway-extreme/pathway-extreme-variable.woff2') format('woff2');
	font-weight: 300 900;
	font-stretch: 75% 100%;
	font-display: swap;
}
@font-face {
	font-family: 'Yrsa';
	src: url('assets/fonts/yrsa/yrsa-400.woff2') format('woff2');
	font-weight: 400;
	font-display: swap;
}
@font-face {
	font-family: 'Yrsa';
	src: url('assets/fonts/yrsa/yrsa-500.woff2') format('woff2');
	font-weight: 500;
	font-display: swap;
}
@font-face {
	font-family: 'Yrsa';
	src: url('assets/fonts/yrsa/yrsa-600.woff2') format('woff2');
	font-weight: 600;
	font-display: swap;
}
@font-face {
	font-family: 'Yrsa';
	src: url('assets/fonts/yrsa/yrsa-italic.woff2') format('woff2');
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

/* =========================================================================
   1. TOKENS — clair uniquement (GD-030 : aucun mode sombre sur ce réseau)
   ========================================================================= */
:root{
	color-scheme: light;
	--jh-fond: #F5F2E8;
	--jh-surface: #FEFBF3;
	--jh-paille: #E9E2CC;
	--jh-encre: #18251D;
	--jh-buis: #23533A;
	--jh-secateur: #B5241C;
	--jh-secateur-appuye: #8F1C16;
	--jh-mousse: #55612F;
	--jh-texte2: #4A5448;
	--jh-blanc: #FEFBF3;
	--jh-terre: #18251D;

	--jh-font-titre: 'Pathway Extreme', 'Arial Narrow', Arial, sans-serif;
	--jh-font-texte: 'Yrsa', Georgia, 'Times New Roman', serif;

	--jh-rayon: 4px;
	--jh-max: 1200px;
	--jh-gouttiere: 24px;
	--jh-ombre-carte: 0 18px 40px -18px rgba(24,37,29,0.35);
}

/* =========================================================================
   2. RESET SOBRE
   ========================================================================= */
*, *::before, *::after{ box-sizing: border-box; min-width: 0; }
/* Un élément [hidden] doit RESTER masqué même si une règle de classe pose un
   display explicite sur le même sélecteur (bouton, pop-up, bandeau) : sans cette
   règle globale, la classe (plus spécifique que le style UA de [hidden]) gagne
   et l'élément reste visible malgré l'attribut hidden. */
[hidden]{ display: none !important; }
html{ scroll-behavior: smooth; }
body{
	margin: 0;
	background: var(--jh-fond);
	color: var(--jh-encre);
	font-family: var(--jh-font-texte);
	font-size: 18px;
	line-height: 1.65;
	overflow-wrap: break-word;
	-webkit-font-smoothing: antialiased;
}
img{ max-width: 100%; height: auto; display: block; }
svg{ max-width: 100%; }
a{ color: var(--jh-buis); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover{ color: var(--jh-secateur-appuye); }
h1,h2,h3,h4{ font-family: var(--jh-font-titre); font-weight: 800; color: var(--jh-encre); line-height: 1.12; margin: 0 0 .5em; }
h1{ font-size: clamp(2.25rem, 1.6rem + 2.6vw, 3.5rem); font-variation-settings: 'wdth' 82; }
h2{ font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.375rem); font-variation-settings: 'wdth' 80; }
h3{ font-size: clamp(1.3rem, 1.15rem + 0.6vw, 1.5rem); font-variation-settings: 'wdth' 80; }
p{ margin: 0 0 1em; }
ul,ol{ margin: 0; padding: 0; list-style: none; }
button{ font-family: inherit; cursor: pointer; }
input, select, textarea{ font-family: var(--jh-font-texte); font-size: 1rem; }
.jh-skip{ position: absolute; left: -999px; top: 0; background: var(--jh-encre); color: #fff; padding: .75em 1em; z-index: 200; }
.jh-skip:focus{ left: 8px; top: 8px; }
.jh-visually-hidden{ position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.jh-wrap{ max-width: var(--jh-max); margin: 0 auto; padding: 0 16px; }
@media (min-width: 720px){ .jh-wrap{ padding: 0 32px; } }

.jh-lien-absent{ color: var(--jh-texte2); cursor: default; text-decoration: none; }

/* Filets de rythme */
.jh-filet{ height: 1px; background: rgba(24,37,29,.18); border: 0; margin: 0; }
.jh-regle-jardinier{ height: 3px; background: var(--jh-buis); width: 64px; margin: 0 0 1rem; border: 0; }

/* Bandes de couleur de l'accueil */
.jh-bande{ padding: clamp(48px, 8vw, 96px) 0; }
.jh-bande--chaux{ background: var(--jh-fond); }
.jh-bande--paille{ background: var(--jh-paille); }
.jh-bande--terre{ background: var(--jh-terre); color: var(--jh-blanc); }
.jh-bande--terre h2, .jh-bande--terre h3{ color: var(--jh-blanc); }
.jh-bande--buis{ background: var(--jh-buis); color: var(--jh-blanc); }
.jh-bande--buis h2, .jh-bande--buis h3{ color: var(--jh-blanc); }
.jh-bande--surface{ background: var(--jh-surface); }

.jh-eyebrow{ font-family: var(--jh-font-titre); text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; color: var(--jh-mousse); font-variation-settings: 'wdth' 75; font-weight: 700; }
.jh-bande--terre .jh-eyebrow, .jh-bande--buis .jh-eyebrow{ color: var(--jh-paille); }

/* =========================================================================
   3. BOUTONS
   ========================================================================= */
.jh-btn{
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	font-family: var(--jh-font-titre); font-weight: 700; font-variation-settings: 'wdth' 88;
	border-radius: var(--jh-rayon); border: 1px solid transparent;
	padding: .85em 1.4em; min-height: 44px; text-decoration: none; line-height: 1;
	white-space: nowrap; flex: 0 0 auto;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.jh-btn--texte-clair{ background: transparent; color: var(--jh-blanc); border-color: rgba(254,251,243,.55); }
.jh-btn--texte-clair:hover, .jh-btn--texte-clair:focus-visible{ color: var(--jh-blanc); background: rgba(254,251,243,.15); border-color: var(--jh-blanc); }
.jh-btn--accent{ background: var(--jh-secateur); color: #fff; }
.jh-btn--accent:hover, .jh-btn--accent:focus-visible{ background: var(--jh-secateur-appuye); color: #fff; }
.jh-btn--texte{ background: transparent; color: var(--jh-encre); border-color: rgba(24,37,29,.3); }
.jh-btn--texte:hover{ color: var(--jh-secateur); border-color: var(--jh-secateur); }
.jh-btn--large{ width: 100%; margin-top: 1rem; }
.jh-lien-inline{ color: var(--jh-buis); }

/* =========================================================================
   4. BANDEAU DE SAISON + HEADER
   ========================================================================= */
.jh-bandeau-saison{ display: none; background: var(--jh-paille); color: var(--jh-encre); }
@media (min-width: 900px){
	.jh-bandeau-saison{ display: block; }
	.jh-bandeau-saison-texte{ display: block; max-width: var(--jh-max); margin: 0 auto; padding: 6px 32px; font-size: .85rem; font-family: var(--jh-font-titre); }
}

.jh-header{ position: sticky; top: 0; z-index: 100; background: var(--jh-surface); border-bottom: 1px solid rgba(24,37,29,.18); }
.jh-header-inner{ max-width: 1360px; margin: 0 auto; padding: 0 16px; height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
@media (min-width: 900px){ .jh-header-inner{ height: 76px; padding: 0 24px; } }
.jh-logo{ display: block; flex: 0 0 auto; }
.jh-logo-img{ height: 40px; width: auto; display: block; }
@media (min-width: 900px){ .jh-logo-img{ height: 52px; } }

.jh-nav{ display: none; min-width: 0; }
@media (min-width: 1280px){
	.jh-nav{ display: block; flex: 1 1 auto; min-width: 0; margin: 0 12px; }
	.jh-nav-liste{ display: flex; align-items: center; gap: 20px; flex-wrap: nowrap; }
	.jh-nav-liste li{ flex: 0 0 auto; }
	.jh-nav-lien{ font-family: var(--jh-font-titre); font-size: 15px; font-variation-settings: 'wdth' 90; color: var(--jh-encre); text-decoration: none; white-space: nowrap; display: inline-block; }
	.jh-nav-lien:hover{ color: var(--jh-secateur); }
}

.jh-header-actions{ display: flex; align-items: center; gap: 12px; flex: 0 0 auto; flex-wrap: nowrap; }
.jh-lien-contact{ display: none; font-family: var(--jh-font-titre); font-size: 14px; color: var(--jh-encre); text-decoration: none; white-space: nowrap; }
@media (min-width: 1280px){ .jh-lien-contact{ display: inline-block; } }
.jh-btn-cta-header{ padding: .7em 1.1em; font-size: .85rem; }
.jh-burger{ display: inline-flex; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; background: transparent; border: 0; flex: 0 0 auto; }
@media (min-width: 1280px){ .jh-burger{ display: none; } }
.jh-burger span{ display: block; height: 2px; width: 24px; background: var(--jh-encre); margin: 0 auto; }

.jh-menu-mobile{ background: var(--jh-surface); border-top: 1px solid rgba(24,37,29,.18); padding: 16px; }
@media (min-width: 1280px){ .jh-menu-mobile{ display: none !important; } }
.jh-menu-mobile-liste{ display: flex; flex-direction: column; gap: 2px; margin-bottom: 12px; }
.jh-menu-mobile-lien{ display: block; padding: 12px 4px; font-family: var(--jh-font-titre); color: var(--jh-encre); text-decoration: none; border-bottom: 1px solid rgba(24,37,29,.1); min-height: 44px; }

.jh-page-compacte .jh-footer-bas p{ max-width: none; }

/* =========================================================================
   5. ÉTIQUETTE DE PÉPINIÈRE (procédé signature)
   ========================================================================= */
.jh-etiquette{
	position: relative; display: inline-flex; align-items: center; gap: 6px;
	background: var(--jh-paille); color: var(--jh-encre);
	font-family: var(--jh-font-titre); text-transform: uppercase; letter-spacing: .05em; font-size: .72rem; font-weight: 700;
	padding: 5px 12px 5px 18px; border-radius: 2px 8px 8px 2px;
	clip-path: polygon(10% 0, 100% 0, 100% 100%, 10% 100%, 0 50%);
}
.jh-etiquette-trou{ position: absolute; left: 8px; top: 50%; transform: translateY(-50%); width: 4px; height: 4px; border-radius: 50%; background: var(--jh-encre); opacity: .4; }

/* =========================================================================
   6. LE DOUBLE PRIX + LA COTE DE JARDINIER
   ========================================================================= */
.jh-double-prix{ display: flex; flex-direction: column; gap: 2px; font-family: var(--jh-font-titre); }
.jh-double-prix-paye{ color: var(--jh-texte2); font-weight: 300; font-size: .95rem; }
.jh-double-prix-paye small{ font-family: var(--jh-font-texte); font-weight: 400; }
.jh-double-prix-reel{ color: var(--jh-secateur); font-weight: 800; font-size: 1.4rem; }
.jh-double-prix-reel small{ font-family: var(--jh-font-texte); color: var(--jh-encre); font-weight: 400; font-size: .6rem; text-transform: uppercase; letter-spacing: .04em; }

.jh-cote{ display: inline-flex; align-items: center; gap: 6px; font-family: var(--jh-font-titre); font-size: .8rem; color: var(--jh-mousse); margin-right: 10px; }
.jh-cote-trait{ display: inline-block; width: 14px; height: 1px; background: var(--jh-mousse); position: relative; }
.jh-cote-trait::before, .jh-cote-trait::after{ content:''; position: absolute; top: -3px; width: 1px; height: 7px; background: var(--jh-mousse); }
.jh-cote-trait::before{ left: 0; } .jh-cote-trait::after{ right: 0; }

/* =========================================================================
   7. CARTES (rubriques, articles, villes)
   ========================================================================= */
.jh-grille-cartes{ display: grid; grid-template-columns: 1fr; gap: var(--jh-gouttiere); }
@media (min-width: 720px){ .jh-grille-cartes{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px){ .jh-grille-cartes{ grid-template-columns: repeat(3, 1fr); } }

.jh-grille-cartes--prix{ grid-template-columns: 1fr; }
@media (min-width: 640px){ .jh-grille-cartes--prix{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px){ .jh-grille-cartes--prix{ grid-template-columns: repeat(4, 1fr); } }
.jh-carte-prix{ background: var(--jh-surface); }
.jh-carte-prix .jh-carte-corps{ padding: 22px 20px; gap: 10px; }
.jh-prix-icone{ width: 32px; height: 32px; color: var(--jh-buis); }
.jh-prix-lignes{ list-style: none; padding: 0; margin: 4px 0; display: flex; flex-direction: column; gap: 4px; }
.jh-prix-lignes li{ font-size: .9rem; color: var(--jh-texte2); }
.jh-prix-lignes li:first-child{ font-family: var(--jh-font-titre); color: var(--jh-encre); font-size: .95rem; }
.jh-prix-lignes li:nth-child(2){ color: var(--jh-secateur); font-weight: 700; }
.jh-prix-source{ font-size: .74rem; color: var(--jh-texte2); font-style: italic; margin: 6px 0 0; }

.jh-carte{ background: var(--jh-surface); border-radius: var(--jh-rayon); overflow: hidden; display: flex; flex-direction: column; min-width: 0; }
.jh-carte-media{ position: relative; aspect-ratio: 16/10; overflow: hidden; background: var(--jh-paille); }
.jh-carte-img, .jh-carte-img--repli{ width: 100%; height: 100%; object-fit: cover; }
.jh-carte-img--repli{ object-fit: contain; padding: 12%; background: var(--jh-paille); }
.jh-carte-etiquette{ position: absolute; left: 12px; top: 12px; }
.jh-carte-corps{ padding: 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.jh-carte-titre{ font-size: 1.15rem; margin: 0; }
.jh-carte-titre a{ color: var(--jh-encre); text-decoration: none; }
.jh-carte-titre a:hover{ color: var(--jh-secateur); }
.jh-carte-chapo{ color: var(--jh-texte2); font-size: .95rem; margin: 0; }
.jh-carte-meta{ margin-top: auto; font-family: var(--jh-font-titre); font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--jh-mousse); }

/* =========================================================================
   8. FORMULAIRES — devis multi-étapes, contact, tuiles
   ========================================================================= */
.jh-form{ background: var(--jh-surface); color: var(--jh-encre); border-radius: var(--jh-rayon); padding: 24px; box-shadow: var(--jh-ombre-carte); }
.jh-form p{ color: var(--jh-encre); }
.jh-form--hero{ position: relative; }
.jh-champ{ display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; font-family: var(--jh-font-titre); font-size: .85rem; font-weight: 700; color: var(--jh-encre); }
.jh-champ input[type=text], .jh-champ input[type=email], .jh-champ input[type=tel], .jh-champ input[type=number], .jh-champ input[type=search], .jh-champ textarea{
	font-family: var(--jh-font-texte); font-weight: 400; font-size: 1rem;
	border: 1px solid rgba(24,37,29,.3); border-radius: var(--jh-rayon); padding: .75em .9em; min-height: 44px; background: #fff; color: var(--jh-encre);
}
.jh-champ textarea{ min-height: 110px; resize: vertical; }
.jh-champ input:focus-visible, .jh-champ textarea:focus-visible{ outline: 2px solid var(--jh-buis); outline-offset: 1px; }
.jh-champ--case{ flex-direction: row; align-items: flex-start; font-weight: 400; font-family: var(--jh-font-texte); font-size: .95rem; gap: 10px; }
.jh-champ--case input{ margin-top: 3px; width: 20px; height: 20px; flex: 0 0 auto; }
.jh-rgpd{ color: var(--jh-texte2); font-size: .85rem; }
.jh-leurre{ position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.jh-tuiles{ display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 16px; }
@media (min-width: 560px){ .jh-tuiles{ grid-template-columns: repeat(3, 1fr); } }
.jh-tuiles--ligne{ grid-template-columns: 1fr; }
@media (min-width: 560px){ .jh-tuiles--ligne{ grid-template-columns: repeat(3, 1fr); } }
.jh-tuile{ position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; border: 1.5px solid rgba(24,37,29,.25); border-radius: var(--jh-rayon); padding: 14px 8px; cursor: pointer; background: #fff; min-height: 44px; }
.jh-tuile input{ position: absolute; opacity: 0; }
.jh-tuile:has(input:checked){ border-color: var(--jh-mousse); background: rgba(85,97,47,.08); }
.jh-tuile:has(input:focus-visible){ outline: 2px solid var(--jh-buis); }
.jh-tuile-icone{ width: 28px; height: 28px; color: var(--jh-buis); }
.jh-tuile span{ display: block; font-family: var(--jh-font-titre); font-size: .82rem; color: var(--jh-encre); line-height: 1.2; }
.jh-tuile--simple{ flex-direction: row; justify-content: flex-start; text-align: left; }
.jh-tuile--urgence:has(input:checked){ border-color: var(--jh-secateur); background: rgba(181,36,28,.08); }

.jh-progres{ margin-bottom: 20px; }
.jh-progres-tige{ display: block; position: relative; height: 6px; background: rgba(24,37,29,.15); border-radius: 3px; overflow: visible; }
.jh-progres-pousse{ display: block; height: 100%; width: 16.6%; background: var(--jh-buis); border-radius: 3px; transition: width .3s ease; }
.jh-progres-pousse::after{ content:''; position: absolute; right: -2px; top: -5px; width: 12px; height: 12px; background: var(--jh-mousse); clip-path: ellipse(50% 40% at 30% 50%); }
.jh-progres-texte{ display: block; margin-top: 6px; font-family: var(--jh-font-titre); font-size: .75rem; color: var(--jh-mousse); text-transform: uppercase; letter-spacing: .04em; }

.jh-step[hidden]{ display: none !important; }
.jh-step legend{ font-family: var(--jh-font-titre); font-size: 1.1rem; font-weight: 800; margin-bottom: 12px; padding: 0; }
.jh-form-nav{ display: flex; justify-content: space-between; gap: 10px; margin-top: 8px; }
.jh-form-etat{ margin-top: 10px; font-size: .9rem; }
.jh-form-etat:empty{ display: none; }
.jh-form-fin{ text-align: center; padding: 20px 0 0; }
.jh-form-fin-titre{ font-family: var(--jh-font-titre); font-size: 1.3rem; font-weight: 800; }
.jh-rouget-etiquette{ margin: 0 auto 12px; }
.jh-aide{ margin-top: 8px; }

/* =========================================================================
   9. HERO ACCUEIL
   ========================================================================= */
.jh-hero{ position: relative; background: var(--jh-terre); color: var(--jh-blanc); overflow: hidden; }
.jh-hero-inner{ max-width: var(--jh-max); margin: 0 auto; padding: 40px 16px; display: grid; grid-template-columns: 1fr; gap: 32px; align-items: start; }
@media (min-width: 1080px){ .jh-hero-inner{ grid-template-columns: 7fr 5fr; padding: 64px 32px; min-height: 640px; align-items: center; } }
.jh-hero-scene{ position: absolute; inset: 0; z-index: 0; opacity: .55; }
.jh-hero-scene svg{ width: 100%; height: 100%; object-fit: cover; }
.jh-hero-texte{ position: relative; z-index: 1; }
.jh-hero-eyebrow{ color: var(--jh-paille); }
.jh-hero h1{ color: #fff; margin: .3em 0 .5em; }
.jh-hero-promesse{ font-family: var(--jh-font-texte); font-style: italic; font-size: 1.3rem; max-width: 40ch; color: var(--jh-paille); }
.jh-hero-preuves{ display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 24px; list-style: none; padding: 0; }
@media (min-width: 560px){ .jh-hero-preuves{ grid-template-columns: 1fr 1fr; } }
.jh-hero-preuves li{ display: flex; align-items: center; gap: 8px; font-size: .9rem; }
.jh-hero-preuves svg{ width: 20px; height: 20px; flex: 0 0 auto; color: var(--jh-mousse); }
.jh-hero-form{ position: relative; z-index: 1; }

/* =========================================================================
   10. ROUE DES SAISONS
   ========================================================================= */
.jh-roue{ display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
.jh-roue-cadran{ position: relative; width: 220px; height: 220px; border-radius: 50%; background: conic-gradient(var(--jh-mousse) 0 8.33%, transparent 8.33% 100%); display: flex; align-items: center; justify-content: center; }
.jh-roue-cadran::before{ content:''; position: absolute; inset: 18px; border-radius: 50%; background: var(--jh-surface); }
.jh-roue-mois{ position: relative; z-index: 1; font-family: var(--jh-font-titre); font-weight: 800; font-size: 1.4rem; }
.jh-roue-texte{ max-width: 44ch; }

/* =========================================================================
   11. FAQ ACCORDÉON
   ========================================================================= */
.jh-faq-item{ border-bottom: 1px solid rgba(24,37,29,.18); padding: 14px 0; }
.jh-faq-q{ font-family: var(--jh-font-titre); font-weight: 700; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; min-height: 44px; }
.jh-faq-q::-webkit-details-marker{ display: none; }
.jh-faq-q::after{ content: '+'; font-size: 1.4rem; color: var(--jh-buis); }
details[open] > .jh-faq-q::after{ content: '–'; }
.jh-faq-r{ padding-top: 8px; color: var(--jh-texte2); }

/* =========================================================================
   12. POP-UP DE SORTIE + COOKIES
   ========================================================================= */
.jh-popup-fond{ position: fixed; inset: 0; background: rgba(24,37,29,.72); display: flex; align-items: center; justify-content: center; z-index: 300; padding: 16px; }
.jh-popup-carte{ position: relative; background: var(--jh-surface); border-radius: var(--jh-rayon); max-width: 760px; width: 100%; display: grid; grid-template-columns: 1fr; overflow: hidden; box-shadow: var(--jh-ombre-carte); }
@media (min-width: 720px){ .jh-popup-carte{ grid-template-columns: 5fr 7fr; } }
.jh-popup-photo{ background: var(--jh-buis); display: flex; align-items: center; justify-content: center; padding: 24px; }
.jh-popup-img{ width: 100%; max-width: 180px; height: auto; }
@media (max-width: 719px){ .jh-popup-photo{ padding: 16px; } .jh-popup-img{ max-width: 110px; } }
.jh-popup-texte{ padding: 28px; }
.jh-popup-titre{ font-family: var(--jh-font-titre); font-size: 1.4rem; font-weight: 800; }
.jh-popup-sous{ color: var(--jh-texte2); }
.jh-popup-fermer{ position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; border-radius: 50%; background: var(--jh-surface); border: 1px solid rgba(24,37,29,.2); font-size: 1.1rem; z-index: 2; }

.jh-cookies{ position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 250; background: var(--jh-terre); color: #fff; border-radius: var(--jh-rayon); padding: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; justify-content: space-between; max-width: 640px; margin: 0 auto; }
.jh-cookies p{ margin: 0; font-size: .9rem; flex: 1 1 240px; color: #fff; }
.jh-cookies p .jh-lien-inline{ color: var(--jh-paille) !important; text-decoration: underline; }
.jh-cookies p .jh-lien-inline:hover{ color: #fff !important; }

/* =========================================================================
   13. PAGE CATÉGORIE / RUBRIQUE
   ========================================================================= */
.jh-cat-tete{ background: var(--jh-paille); padding: 40px 0; }
.jh-fil{ font-size: .8rem; color: var(--jh-texte2); margin-bottom: 10px; }
.jh-fil a{ color: var(--jh-texte2); }
.jh-cat-chapo{ max-width: 70ch; color: var(--jh-texte2); font-size: 1.1rem; }
.jh-archive-corps{ padding: 40px 0; }
.jh-cat-corps{ display: grid; grid-template-columns: 1fr; gap: 32px; padding: 40px 0; }
@media (min-width: 1080px){ .jh-cat-corps{ grid-template-columns: 8fr 4fr; } }
.jh-cat-side{ position: relative; }
@media (min-width: 1080px){ .jh-cat-side-sticky{ position: sticky; top: 96px; } }
.jh-pagination{ display: flex; gap: 8px; justify-content: center; margin-top: 32px; }
.jh-pagination a, .jh-pagination span{ min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--jh-rayon); border: 1px solid rgba(24,37,29,.2); text-decoration: none; color: var(--jh-encre); }
.jh-pagination .current{ background: var(--jh-buis); color: #fff; border-color: var(--jh-buis); }
.jh-carte--devis-mobile{ display: block; background: var(--jh-surface); box-shadow: var(--jh-ombre-carte); }
@media (min-width: 1080px){ .jh-carte--devis-mobile{ display: none; } }
.jh-carte--devis-mobile .jh-carte-corps{ padding: 20px; }

/* =========================================================================
   14. ARTICLE
   ========================================================================= */
.jh-article-tete{ max-width: 760px; margin: 0 auto; padding: 32px 16px 0; }
.jh-article-chapo{ font-style: italic; color: var(--jh-texte2); font-size: 1.15rem; }
.jh-article-meta{ display: flex; gap: 14px; align-items: center; font-size: .85rem; color: var(--jh-texte2); flex-wrap: wrap; margin: 14px 0; }
.jh-article-meta img{ width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.jh-article-media{ max-width: 760px; margin: 20px auto; aspect-ratio: 16/9; max-height: 45vh; border-radius: var(--jh-rayon); overflow: hidden; background: var(--jh-paille); }
.jh-article-media img{ width: 100%; height: 100%; object-fit: cover; }
.jh-article-corps-wrap{ display: grid; grid-template-columns: 1fr; gap: 32px; max-width: var(--jh-max); margin: 0 auto; padding: 0 16px 48px; }
@media (min-width: 1080px){ .jh-article-corps-wrap{ grid-template-columns: 8fr 4fr; padding: 0 32px 64px; } }
.jh-article-corps{ max-width: 760px; font-size: 1.05rem; }
.jh-article-corps h2{ margin-top: 1.6em; }
.jh-article-corps h3{ margin-top: 1.3em; }
.jh-article-corps p{ margin-bottom: 1.2em; }
.jh-article-corps img{ border-radius: var(--jh-rayon); margin: 1.4em 0; }
.jh-sommaire{ background: var(--jh-paille); border-radius: var(--jh-rayon); padding: 16px 18px; margin: 24px 0; }
.jh-sommaire summary{ font-family: var(--jh-font-titre); font-weight: 700; cursor: pointer; min-height: 44px; display: flex; align-items: center; }
.jh-sommaire ol{ margin-top: 10px; padding-left: 1.2em; list-style: decimal; }
.jh-sommaire a{ color: var(--jh-encre); }
.jh-encart{ background: var(--jh-paille); border-left: 3px solid var(--jh-buis); border-radius: 0 var(--jh-rayon) var(--jh-rayon) 0; padding: 16px 18px; margin: 1.6em 0; }
.jh-encart h4{ margin: 0 0 .4em; font-size: 1rem; }
.jh-encart-devis{ background: var(--jh-surface); border: 1px solid rgba(24,37,29,.15); border-radius: var(--jh-rayon); padding: 20px; margin: 2em 0; box-shadow: var(--jh-ombre-carte); }
.jh-carnet{ background: var(--jh-surface); border-radius: var(--jh-rayon); padding: 20px 20px 20px 28px; position: relative; margin: 1.6em 0; box-shadow: 0 1px 0 rgba(24,37,29,.08); }
.jh-carnet::before{ content:''; position: absolute; left: 10px; top: 8px; bottom: 8px; width: 0; border-left: 2px dashed rgba(24,37,29,.3); }
.jh-carnet-ligne{ display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid rgba(24,37,29,.1); font-family: var(--jh-font-titre); font-size: .95rem; }
.jh-carnet-total{ font-weight: 800; color: var(--jh-secateur); }
.jh-carnet-tampon{ display: inline-block; margin-top: 10px; font-family: var(--jh-font-titre); font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--jh-mousse); border: 1.5px solid var(--jh-mousse); border-radius: 999px; padding: 3px 10px; transform: rotate(-3deg); }

.jh-side-encart{ margin-bottom: 24px; }
.jh-side-articles{ display: flex; flex-direction: column; gap: 14px; }
.jh-side-article{ display: flex; gap: 10px; text-decoration: none; color: inherit; }
.jh-side-article img{ width: 72px; height: 56px; object-fit: cover; border-radius: 3px; flex: 0 0 auto; }
.jh-side-article span{ font-family: var(--jh-font-titre); font-size: .9rem; color: var(--jh-encre); }

/* Signature auteur */
.jh-auteur{ display: flex; gap: 16px; background: var(--jh-paille); border-radius: var(--jh-rayon); padding: 20px; margin: 2em 0; align-items: flex-start; }
.jh-auteur-photo{ width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.jh-auteur-nom{ font-family: var(--jh-font-titre); font-weight: 800; font-size: 1.05rem; }
.jh-auteur-fonction{ font-size: .85rem; color: var(--jh-mousse); font-family: var(--jh-font-titre); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 6px; }
.jh-auteur-bio{ color: var(--jh-texte2); font-size: .95rem; margin-bottom: 6px; }
.jh-auteur a.jh-auteur-lien{ font-family: var(--jh-font-titre); font-size: .85rem; }

/* Sources (mu-plugin réseau) */
.sbsrc-a038fe59{ margin: 2.4em 0 1.2em; padding-top: 1.2em; border-top: 1px solid rgba(24,37,29,.18); }
.sbsrc-a038fe59__liste{ list-style: none; padding: 0; margin: .6em 0 0; display: flex; flex-direction: column; gap: 6px; }
.sbsrc-a038fe59__item{ font-size: .85rem; color: var(--jh-texte2); }
.sbsrc-a038fe59__lien{ color: var(--jh-texte2); text-decoration: none; }
.sbsrc-a038fe59__date{ font-style: italic; }

/* =========================================================================
   15. PAGE VILLE (paysagiste par ville)
   ========================================================================= */
.jh-ville-hero{ background: var(--jh-terre); color: #fff; padding: 40px 0; }
.jh-ville-hero-inner{ display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 1080px){ .jh-ville-hero-inner{ grid-template-columns: 7fr 5fr; align-items: center; } }
.jh-ville-fiche{ display: grid; grid-template-columns: 1fr; gap: 10px; background: var(--jh-surface); border-radius: var(--jh-rayon); padding: 20px; margin: 2em 0; }
@media (min-width: 640px){ .jh-ville-fiche{ grid-template-columns: 1fr 1fr; } }
.jh-ville-fiche dt{ font-family: var(--jh-font-titre); font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--jh-mousse); }
.jh-ville-fiche dd{ margin: 0 0 12px; }
.jh-villes-pastilles{ display: flex; flex-wrap: wrap; gap: 8px; margin: 1.4em 0; }
.jh-pastille{ display: inline-flex; min-height: 36px; align-items: center; padding: 0 14px; border-radius: 999px; background: var(--jh-paille); color: var(--jh-encre); text-decoration: none; font-family: var(--jh-font-titre); font-size: .85rem; }
.jh-pastille:hover{ background: var(--jh-buis); color: #fff; }

/* =========================================================================
   16. SIMULATEUR
   ========================================================================= */
.jh-simulateur{ display: grid; grid-template-columns: 1fr; gap: 24px; background: var(--jh-surface); border-radius: var(--jh-rayon); padding: 24px; box-shadow: var(--jh-ombre-carte); }
@media (min-width: 900px){ .jh-simulateur{ grid-template-columns: 5fr 7fr; } }
.jh-simulateur-reglages input[type=range]{ width: 100%; accent-color: var(--jh-buis); }
.jh-simulateur-ticket{ background: var(--jh-paille); border-radius: var(--jh-rayon); padding: 20px; }
.jh-ticket-ligne{ display: flex; justify-content: space-between; font-family: var(--jh-font-titre); }
.jh-ticket-total{ display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid rgba(24,37,29,.2); margin-top: 10px; padding-top: 10px; font-family: var(--jh-font-titre); }
.jh-ticket-total strong{ font-size: 2rem; color: var(--jh-secateur); }
.jh-ticket-mois{ color: var(--jh-texte2); font-size: .9rem; }
.jh-sim-cta{ display: flex; width: 100%; margin-top: 14px; }
.jh-simulateur-eligibilite{ grid-column: 1 / -1; display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 640px){ .jh-simulateur-eligibilite{ grid-template-columns: 1fr 1fr; } }
.jh-elig-oui{ background: rgba(85,97,47,.1); border-radius: var(--jh-rayon); padding: 14px 16px; }
.jh-elig-non{ background: rgba(181,36,28,.08); border-radius: var(--jh-rayon); padding: 14px 16px; }
.jh-elig-oui h4{ color: var(--jh-mousse); } .jh-elig-non h4{ color: var(--jh-secateur); }
.jh-elig-oui ul, .jh-elig-non ul{ list-style: disc; padding-left: 1.2em; }
.jh-simulateur-source{ grid-column: 1 / -1; font-size: .78rem; color: var(--jh-texte2); }

/* =========================================================================
   17. TUILES DE GROS CHIFFRES + INFOGRAPHIES DU SOCLE (sbs_*)
   ========================================================================= */
.jh-chiffres{ display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 720px){ .jh-chiffres{ grid-template-columns: repeat(4, 1fr); } }
.jh-chiffre{ text-align: center; }
.jh-chiffre-valeur{ font-family: var(--jh-font-titre); font-weight: 300; font-size: clamp(2.5rem, 2rem + 2vw, 3.5rem); color: var(--jh-paille); display: block; }
.jh-chiffre-legende{ font-size: .9rem; color: var(--jh-paille); }

sbs-jauges, sbs-tarifs, sbs-frise, sbs-lieu{ display: block; margin: 1.6em 0; }
sbs-jauges{ display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; background: var(--jh-terre); color: #fff; border-radius: var(--jh-rayon); padding: 24px; }
@media (min-width: 640px){ sbs-jauges{ grid-template-columns: repeat(auto-fit, minmax(140px,1fr)); } }
.sbs_jauges_titre{ grid-column: 1/-1; font-family: var(--jh-font-titre); font-size: 1rem; }
sbs-jauge{ text-align: center; display: block; }
.sbs_jauge_valeur{ display: block; font-family: var(--jh-font-titre); font-weight: 300; font-size: 2.2rem; color: var(--jh-paille); }
.sbs_jauge_libelle{ display: block; font-size: .85rem; color: var(--jh-paille); }
.sbs_jauge_unite{ display: block; font-size: .75rem; color: var(--jh-paille); opacity: .8; }
.sbs_jauges .sbs_source, sbs-jauges .sbs_source{ grid-column: 1/-1; }

sbs-tarifs{ background: var(--jh-surface); border-radius: var(--jh-rayon); padding: 18px 20px; box-shadow: 0 1px 0 rgba(24,37,29,.06); }
.sbs_tarifs_titre{ display: block; font-family: var(--jh-font-titre); font-weight: 700; margin-bottom: 10px; }
sbs-tarif{ display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid rgba(24,37,29,.1); }
.sbs_tarif_libelle{ flex: 0 0 40%; font-family: var(--jh-font-titre); font-size: .85rem; }
.sbs_tarif_barre{ flex: 1 1 auto; -webkit-appearance: none; appearance: none; width: 100%; height: 20px; }
.sbs_tarif_barre::-webkit-meter-bar{ background: rgba(24,37,29,.08); border-radius: 3px; border: 0; }
.sbs_tarif_barre::-webkit-meter-optimum-value{ background: var(--jh-secateur); border-radius: 3px; }
.sbs_tarifs_notes, .sbs_source{ display: block; margin-top: 8px; color: var(--jh-texte2); font-size: .78rem; }

sbs-frise{ display: flex; flex-direction: column; gap: 0; border-left: 2px solid var(--jh-buis); padding-left: 20px; }
.sbs_frise_titre{ display: block; font-family: var(--jh-font-titre); font-weight: 700; margin-bottom: 12px; }
sbs-etape{ position: relative; padding: 0 0 20px; display: block; }
sbs-etape::before{ content:''; position: absolute; left: -25px; top: 4px; width: 10px; height: 10px; border-radius: 50%; background: var(--jh-mousse); }
.sbs_etape_date{ display: block; font-family: var(--jh-font-titre); font-size: .78rem; text-transform: uppercase; color: var(--jh-mousse); }
.sbs_etape_titre{ display: block; font-family: var(--jh-font-titre); font-weight: 700; }
.sbs_etape_desc{ display: block; color: var(--jh-texte2); font-size: .9rem; }

sbs-lieu{ background: var(--jh-paille); border-radius: var(--jh-rayon); padding: 16px 18px; }
.sbs_lieu_nom{ display: block; font-family: var(--jh-font-titre); font-weight: 800; }
.sbs_lieu_adresse{ display: block; font-style: normal; color: var(--jh-texte2); }
.sbs_lieu_acces{ display: block; margin-top: 4px; }
.sbs_lieu_carte{ display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font-family: var(--jh-font-titre); font-size: .85rem; }

/* Fiches (remplacent les tableaux dans les articles : h3 + lignes critère/valeur) */
ul.jh-fiches{ display: grid; grid-template-columns: 1fr; gap: 16px; list-style: none; padding: 0; margin: 1.6em 0; }
@media (min-width: 640px){ ul.jh-fiches{ grid-template-columns: repeat(2, 1fr); } }
ul.jh-fiches > li.jh-fiche{ background: var(--jh-surface); border-radius: var(--jh-rayon); padding: 16px 18px; box-shadow: 0 1px 0 rgba(24,37,29,.06); }
li.jh-fiche h3{ font-size: 1.05rem; margin: 0 0 10px; padding-bottom: 8px; border-bottom: 2px solid var(--jh-buis); }
li.jh-fiche ul{ list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
li.jh-fiche ul li{ display: flex; justify-content: space-between; gap: 12px; font-size: .92rem; padding: 4px 0; border-bottom: 1px dotted rgba(24,37,29,.15); }
li.jh-fiche ul li:last-child{ border-bottom: 0; }
li.jh-fiche ul li strong{ font-family: var(--jh-font-titre); color: var(--jh-mousse); font-weight: 700; }

/* Tableaux (enveloppés par le socle en .sbs_tableau) */
.sbs_tableau{ overflow-x: auto; margin: 1.6em 0; -webkit-overflow-scrolling: touch; }
.sbs_tableau table{ width: 100%; border-collapse: collapse; min-width: 480px; font-size: .92rem; }
.sbs_tableau th, .sbs_tableau td{ padding: 10px 12px; border-bottom: 1px solid rgba(24,37,29,.15); text-align: left; }
.sbs_tableau th{ font-family: var(--jh-font-titre); background: var(--jh-paille); }

/* =========================================================================
   18. FOOTER
   ========================================================================= */
.jh-footer{ background: var(--jh-terre); color: var(--jh-blanc); }
.jh-footer-inner{ max-width: var(--jh-max); margin: 0 auto; padding: 48px 16px 24px; display: grid; grid-template-columns: 1fr; gap: 32px; }
@media (min-width: 720px){ .jh-footer-inner{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px){ .jh-footer-inner{ grid-template-columns: 2fr 1fr 1fr 1fr; padding: 64px 32px 32px; } }
.jh-footer-col h3{ color: var(--jh-paille); font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 14px; }
.jh-footer-col ul{ display: flex; flex-direction: column; gap: 8px; }
.jh-footer-col a{ color: var(--jh-blanc); text-decoration: none; font-size: .92rem; }
.jh-footer-col a:hover{ color: var(--jh-paille); }
.jh-footer-logo{ margin-bottom: 10px; }
.jh-footer-baseline{ color: var(--jh-paille); font-size: .9rem; max-width: 32ch; }
.jh-footer-rouget{ margin-top: 12px; opacity: .9; }
.jh-footer-recherche{ display: flex; margin-top: 16px; border: 1px solid rgba(254,251,243,.35); border-radius: var(--jh-rayon); overflow: hidden; }
.jh-footer-recherche input{ flex: 1; background: transparent; border: 0; color: #fff; padding: .6em .8em; min-height: 44px; }
.jh-footer-recherche input::placeholder{ color: rgba(254,251,243,.6); }
.jh-footer-recherche button{ background: var(--jh-secateur); border: 0; color: #fff; width: 44px; }
.jh-footer-bas{ border-top: 1px solid rgba(254,251,243,.15); padding: 16px; text-align: center; font-size: .8rem; color: var(--jh-paille); }
.jh-footer-bas p{ margin: 0; max-width: 900px; margin: 0 auto; }

/* =========================================================================
   19. PAGE CONTACT (non scrollable desktop) + PAGE DEVIS (header réduit)
   ========================================================================= */
.jh-page-contact{ min-height: calc(100vh - 60px - 56px); display: flex; align-items: center; }
.jh-contact-inner{ max-width: var(--jh-max); margin: 0 auto; padding: 20px 16px; display: grid; grid-template-columns: 1fr; gap: 20px; width: 100%; }
@media (min-width: 900px){
	.jh-page-contact{ min-height: calc(100vh - 76px - 48px); }
	.jh-contact-inner{ grid-template-columns: 1fr 1fr; align-items: center; padding: 20px 24px; }
}
.jh-contact-intro{ display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.jh-contact-intro img{ width: 90px; height: 90px; }

.jh-page-devis-corps{ max-width: 760px; margin: 0 auto; padding: 32px 16px 64px; }
.jh-page-devis-centre > .jh-eyebrow, .jh-page-devis-centre > h1{ text-align: center; }
.jh-footer--compact .jh-footer-bas{ border-top: 1px solid rgba(254,251,243,.15); }

/* Page générique (page.php) */
.jh-page-tete{ background: var(--jh-paille); padding: 40px 0; }
.jh-page-corps{ max-width: 760px; margin: 0 auto; padding: 40px 16px 64px; font-size: 1.05rem; }
.jh-page-corps h2{ margin-top: 1.6em; }
.jh-page-sommaire{ background: var(--jh-surface); border-radius: var(--jh-rayon); padding: 16px 18px; margin-bottom: 2em; }

/* =========================================================================
   20. 404 / RECHERCHE
   ========================================================================= */
.jh-etat-vide{ text-align: center; padding: 64px 16px; max-width: 560px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.jh-etat-vide img{ margin: 0 auto; width: 140px; height: 140px; }
.jh-404-recherche{ border-color: rgba(24,37,29,.3); margin: 8px 0; width: 100%; max-width: 360px; }
.jh-404-recherche input{ color: var(--jh-encre); }
.jh-404-recherche input::placeholder{ color: var(--jh-texte2); }

/* =========================================================================
   21. AUTEUR (author.php)
   ========================================================================= */
.jh-auteur-tete{ background: var(--jh-paille); padding: 40px 0; }
.jh-auteur-tete-inner{ display: flex; gap: 20px; align-items: center; flex-wrap: wrap; width: 100%; }
.jh-auteur-tete img{ width: 120px; height: 120px; border-radius: 50%; object-fit: cover; }

/* =========================================================================
   22. UTILITAIRES DE MISE EN PAGE DIVERSES
   ========================================================================= */
.jh-cta-finale{ text-align: center; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.jh-cta-finale img{ width: 96px; height: 96px; }

/* =========================================================================
   23. MOBILE — aucun débordement horizontal, cibles ≥44px (garanti ci-dessus)
   ========================================================================= */
@media (max-width: 480px){
	body{ font-size: 17px; }
	.jh-hero-inner{ padding: 28px 16px; }
	.jh-ticket-total strong{ font-size: 1.6rem; }
}
html, body{ overflow-x: hidden; }

/* Logo : oiseau en image, nom en texte dans la police du site */
.jh-logo{ display: flex; align-items: center; gap: 10px; text-decoration: none; }
.jh-logo-oiseau{ height: 46px; width: auto; display: block; }
.jh-logo-nom{ font-family: 'Pathway Extreme', 'Arial Narrow', Arial, sans-serif; font-weight: 800; font-size: 22px; line-height: 1; letter-spacing: .01em; color: #18251D; white-space: nowrap; }
.jh-logo-nom span:first-child{ color: #23533A; }
@media (min-width: 900px){ .jh-logo-oiseau{ height: 54px; } .jh-logo-nom{ font-size: 26px; } }
/* Mobile : la barre d'en-tête tient dans l'écran */
@media (max-width: 520px){
	.jh-header-inner{ gap: 8px; }
	.jh-header-actions{ gap: 6px; min-width: 0; flex-shrink: 1; }
	.jh-header-actions .jh-btn{ padding: 10px 12px; font-size: 14px; white-space: nowrap; }
	.jh-logo-oiseau{ height: 38px; }
	.jh-logo-nom{ font-size: 18px; }
	.jh-burger{ flex: 0 0 44px; width: 44px; }
}
.jh-logo--pied .jh-logo-nom{ color: #F5F2E8; }
.jh-logo--pied .jh-logo-nom span:first-child{ color: #CFE0C4; }
@media (max-width: 520px){ .jh-header-actions .jh-lien-contact{ display: none; } }

sbs-jauges .sbs_source{ color: var(--jh-paille); opacity: .85; text-align: center; margin-top: 4px; }
sbs-jauges .sbs_source a{ color: inherit; }
@media (min-width: 640px){ sbs-jauges{ grid-template-columns: repeat(3, 1fr); max-width: 860px; margin-left: auto; margin-right: auto; } }
.jh-btn-cta-court{ display: none; }
@media (max-width: 520px){
	.jh-btn-cta-header{ display: none; }
	.jh-btn-cta-court{ display: inline-flex; padding: 9px 14px; font-size: 15px; }
	.jh-header-inner{ padding: 0 12px; }
	.jh-logo{ min-width: 0; gap: 6px; }
	.jh-logo-oiseau{ height: 34px; width: auto; }
	.jh-logo-nom{ font-size: 17px; }
}

.jh-step{ border: 0; padding: 0; margin: 0; min-width: 0; }
.jh-step legend{ float: left; width: 100%; }
.jh-step legend + *{ clear: both; }
.jh-ticket-total{ gap: 12px; }
.jh-ticket-total strong{ white-space: nowrap; flex: 0 0 auto; }
