/* O'Mariage Africa : page d'accueil publique (v1.4.0), mobile d'abord. */
body.omh-body { margin: 0; background: #fff; overflow-x: clip; }
.omh { --omh-rose: #F6E1E1; --omh-rose-2: #FBEFEE; --omh-h: 60px; background: #fff; padding-bottom: 84px; }
.omh img { max-width: 100%; height: auto; display: block; }
.omh .omh-wrap { width: 100%; max-width: 1160px; margin: 0 auto; padding: 0 18px; }
.omh .omh-h2 { font-size: 27px; margin: 0 0 12px; }
.omh .omh-lead { color: var(--omm-muted); font-size: 15px; }
.omh .omh-sec { padding: 40px 0; }
.omh .omh-btn-wide { width: 100%; }
.omh .omm-btn--gold { background: var(--omm-gold); color: var(--omm-plum-dark); border-color: var(--omm-gold); }
.omh .omm-btn--gold:hover { background: #d8b263; }

/* En-tête */
.omh-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--omm-line); backdrop-filter: saturate(1.2) blur(6px); }
.omh-header__in { display: grid; grid-template-columns: 48px 1fr 48px; align-items: center; height: var(--omh-h); padding: 0 8px; max-width: 1160px; margin: 0 auto; }
.omh .omh-iconbtn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--omm-plum); cursor: pointer; }
.omh .omh-iconbtn:hover { background: var(--omm-cream); }
.omh .omh-iconbtn .omm-icon { width: 24px; height: 24px; }
.omh .omh-logo { justify-self: center; display: block; }
.omh .omh-logo img { height: 44px; width: auto; }
.omh .omh-header__links { justify-self: end; display: flex; align-items: center; gap: 6px; }
.omh a.omh-headlink { white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; min-width: 44px; justify-content: center; padding: 0 6px; color: var(--omm-plum); font-size: 13px; font-weight: 600; border-radius: 999px; }
.omh a.omh-headlink .omm-icon { width: 23px; height: 23px; color: var(--omm-gold-dark); }
.omh .omh-headlink__txt, .omh a.omh-headlink--desk { display: none; }
.omh a.omh-headlink--strong span { display: none; }

/* Menu coulissant */
.omh-drawer { position: fixed; inset: 0; z-index: 100; }
.omh-drawer[hidden] { display: none; }
.omh-drawer__backdrop { position: absolute; inset: 0; background: rgba(42,26,32,.45); opacity: 0; transition: opacity .25s; }
.omh-drawer.is-open .omh-drawer__backdrop { opacity: 1; }
.omh-drawer__panel { position: absolute; top: 0; bottom: 0; left: 0; width: min(86vw, 380px); background: #fff; overflow-y: auto; transform: translateX(-100%); transition: transform .28s ease; padding: 0 0 24px; box-shadow: 0 0 40px rgba(0,0,0,.15); outline: none; }
.omh-drawer.is-open .omh-drawer__panel { transform: none; }
.omh .omh-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 10px 10px 10px 18px; border-bottom: 1px solid var(--omm-line); background: var(--omm-cream-2); }
.omh .omh-drawer__head img { height: 40px; width: auto; }
.omh .omh-drawer__list { padding: 6px 0; }
.omh .omh-drawer__list--sec { border-top: 1px solid var(--omm-line); }
.omh .omh-drawer__list > li > a, .omh .omh-drawer__acc > summary, .omh .omh-drawer__soon { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 8px 18px; color: var(--omm-ink); font-size: 15.5px; font-weight: 600; cursor: pointer; list-style: none; }
.omh .omh-drawer__acc > summary::-webkit-details-marker { display: none; }
.omh .omh-drawer__list > li > a > span, .omh .omh-drawer__acc > summary > span, .omh .omh-drawer__soon > span:not(.omm-tag) { flex: 1; }
.omh .omh-drawer__list small { display: block; font-size: 12px; font-weight: 400; color: var(--omm-muted); }
.omh .omh-drawer__list .omm-icon { color: var(--omm-gold-dark); width: 20px; height: 20px; }
.omh .omh-chev { width: 16px !important; height: 16px !important; color: var(--omm-muted) !important; transition: transform .2s; }
.omh .omh-chev--r { transform: rotate(-90deg); }
.omh .omh-drawer__acc[open] > summary { color: var(--omm-bordeaux); }
.omh .omh-drawer__acc[open] .omh-chev { transform: rotate(180deg); }
.omh .omh-drawer__soon { color: var(--omm-muted); cursor: default; }
.omh .omh-sublist { padding: 0 18px 10px 50px; }
.omh .omh-sublist a { display: block; padding: 8px 0; color: var(--omm-plum); font-size: 14px; border-bottom: 1px dashed var(--omm-line); }
.omh .omh-sector { padding: 2px 0 6px; }
.omh .omh-sector__t { display: block; padding: 8px 18px 2px 50px; font-size: 10.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--omm-gold-dark); }
.omh a.omh-sublist__all { display: inline-flex; align-items: center; gap: 6px; margin: 4px 18px 10px 50px; font-size: 13.5px; font-weight: 700; color: var(--omm-bordeaux); }
.omh .omh-drawer__cta { margin: 14px 18px 0; width: calc(100% - 36px); }
body.omh-lock { overflow: hidden; }

/* Héros */
.omh-hero { position: relative; }
.omh .omh-hero__media { position: relative; height: 240px; overflow: hidden; border-radius: 0 0 50% 50% / 0 0 34px 34px; background: var(--omm-plum-dark); }
.omh .omh-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 72% 30%; }
.omh .omh-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(78,19,41,0) 60%, rgba(78,19,41,.18)); }
.omh .omh-hero__body { padding: 26px 18px 8px; text-align: center; max-width: 760px; margin: 0 auto; }
.omh .omh-hero__title { font-size: 30px; margin: 0 0 10px; }
.omh .omh-hero__sub { font-size: 16px; color: var(--omm-ink); margin: 0 auto 20px; max-width: 30ch; }
.omh .omh-search { display: grid; gap: 10px; text-align: left; }
.omh .omh-search__f { position: relative; }
.omh .omh-search__f .omm-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--omm-muted); width: 18px; height: 18px; pointer-events: none; }
.omh .omh-search input, .omh .omh-search select { width: 100%; height: 50px; margin: 0; padding: 0 14px 0 42px; border: 1px solid #D9CCC3; border-radius: 6px; background: #fff; color: var(--omm-ink); font-family: var(--omm-sans); font-size: 15px; box-shadow: none; -webkit-appearance: none; appearance: none; }
.omh .omh-search input:focus, .omh .omh-search select:focus { outline: 2px solid var(--omm-gold); outline-offset: 0; border-color: var(--omm-gold); }
.omh .omh-search__btn { height: 50px; width: 100%; font-size: 13px; border-radius: 6px; background: var(--omm-bordeaux); border-color: var(--omm-bordeaux); }
.omh .omh-search__btn:hover { background: var(--omm-plum); }

/* Organisez votre mariage */
.omh .omh-tools { padding-top: 28px; }
.omh .omh-tools__card { background: linear-gradient(160deg, var(--omh-rose-2), var(--omm-cream)); border: 1px solid #F0DCD7; border-radius: 14px; padding: 24px 20px; }
.omh .omh-tools__list { display: grid; gap: 4px; margin: 6px 0 20px !important; }
.omh .omh-tools__list li { display: flex; gap: 14px; align-items: center; padding: 10px 0; border-bottom: 1px dashed #EBD7D0; }
.omh .omh-tools__list li:last-child { border-bottom: 0; }
.omh .omh-tools__ico { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: none; border-radius: 50%; background: #fff; color: var(--omm-bordeaux); box-shadow: 0 2px 8px rgba(147,10,45,.08); }
.omh .omh-tools__list strong { display: block; color: var(--omm-plum); font-size: 15px; }
.omh .omh-tools__list small { display: block; color: var(--omm-muted); font-size: 13px; line-height: 1.4; }

/* Dot */
.omh .omh-dot { background: linear-gradient(165deg, var(--omm-plum-dark), var(--omm-bordeaux)); color: #F7EDE6; }
.omh .omh-dot .omh-h2 { color: #fff; }
.omh .omh-dot .omm-kicker { color: var(--omm-gold); }
.omh .omh-dot__txt p { color: #EEDCD6; font-size: 15px; }
.omh .omh-dot__card { background: #fff; color: var(--omm-ink); border-radius: 14px; padding: 18px; margin-top: 14px; box-shadow: 0 18px 40px rgba(0,0,0,.18); }
.omh .omh-dot__sel { display: grid; gap: 10px; margin-bottom: 14px; }
.omh .omh-dot__sel .omm-field { margin: 0; }
.omh .omh-dot__sel label { display: block; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--omm-gold-dark); margin: 0 0 4px; }
.omh .omh-dot__sel select { width: 100%; height: 48px; padding: 0 12px; border: 1px solid var(--omm-line); border-radius: 6px; background: var(--omm-cream-2); font-family: var(--omm-sans); font-size: 15px; color: var(--omm-plum); }
.omh .omh-dot__steps { counter-reset: none; margin: 0 0 10px !important; }
.omh .omh-dot__steps li { position: relative; display: flex; gap: 12px; align-items: flex-start; padding: 7px 0; font-size: 14.5px; color: var(--omm-ink); }
.omh .omh-dot__steps li:not(:last-child)::after { content: ""; position: absolute; left: 13px; top: 34px; bottom: -6px; width: 1px; background: var(--omm-line); }
.omh .omh-dot__steps em { color: var(--omm-gold-dark); font-size: 13px; }
.omh .omh-dot__n { display: inline-flex; align-items: center; justify-content: center; width: 27px; height: 27px; flex: none; border-radius: 50%; border: 1.5px solid var(--omm-gold); color: var(--omm-bordeaux); font-family: var(--omm-serif); font-size: 14px; font-weight: 600; background: #fff; }
.omh .omh-dot__note { font-size: 12.5px; font-style: italic; color: var(--omm-muted); margin: 0 0 14px; }

/* Catégories */
.omh .omh-cats__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.omh a.omh-cat { display: flex; align-items: center; gap: 10px; min-height: 64px; padding: 10px 12px; border: 1px solid var(--omm-line); border-radius: 10px; background: var(--omm-cream-2); color: var(--omm-plum); font-size: 13.5px; font-weight: 600; line-height: 1.25; transition: border-color .2s, transform .15s; }
.omh a.omh-cat:hover { border-color: var(--omm-gold); transform: translateY(-1px); }
.omh .omh-cat__ico { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; flex: none; border-radius: 50%; background: #fff; color: var(--omm-gold-dark); }
.omh a.omh-more { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 14px; min-height: 48px; border: 1px solid var(--omm-line); border-radius: 6px; color: var(--omm-plum); font-weight: 600; font-size: 14px; }

/* Vedettes (shortcode O'Mariage Pro) en carrousel */
.omh .omh-carousel .om-vedettes { margin: 0; }
.omh .omh-carousel .om-vedettes__grid { display: grid; grid-auto-flow: column; grid-auto-columns: 78%; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: thin; }
.omh .omh-carousel .om-vedette { scroll-snap-align: start; }

/* Site de mariage */
.omh .omh-site { background: var(--omm-cream-2); }
.omh .omh-site .omm-tag { margin-bottom: 10px; }
.omh .omh-site__in p { color: var(--omm-muted); }
.omh .omh-site__mock { position: relative; height: 230px; margin-top: 18px; }
.omh .omh-site__screen { position: absolute; left: 0; right: 60px; top: 0; bottom: 20px; background: #fff; border: 6px solid #2A1A20; border-radius: 12px; display: flex; flex-direction: column; align-items: center; gap: 6px; overflow: hidden; padding-bottom: 10px; }
.omh .omh-site__img { display: block; width: 100%; flex: 1; background-size: cover; background-position: 70% 30%; }
.omh .omh-site__names { font-family: var(--omm-serif); font-style: italic; color: var(--omm-plum); font-size: 18px; }
.omh .omh-site__date { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--omm-gold-dark); }
.omh .omh-site__line { display: block; width: 60%; height: 5px; border-radius: 4px; background: var(--omm-line); }
.omh .omh-site__line--s { width: 40%; }
.omh .omh-site__phone { position: absolute; right: 0; bottom: 0; width: 100px; height: 190px; background: #fff; border: 5px solid #2A1A20; border-radius: 16px; display: flex; flex-direction: column; align-items: center; overflow: hidden; padding-bottom: 8px; box-shadow: 0 10px 24px rgba(0,0,0,.18); }
.omh .omh-site__phone .omh-site__names { font-size: 13px; padding-top: 6px; }

/* Application */
.omh .omh-app__card { position: relative; overflow: hidden; text-align: center; background: linear-gradient(180deg, var(--omh-rose), #F3D3D3); border-radius: 18px; padding: 30px 20px 0; }
.omh .omh-app__card p { color: var(--omm-plum); max-width: 34ch; margin: 0 auto 16px; }
.omh .omh-app__card .omm-tag { background: #fff; }
.omh .omh-app__phone { width: 190px; height: 210px; margin: 22px auto 0; background: var(--omm-plum-dark); border: 7px solid #2A1A20; border-bottom: 0; border-radius: 26px 26px 0 0; padding: 22px 16px 0; }
.omh .omh-app__screen { height: 100%; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.omh .omh-app__screen img { width: 120px; height: auto; }
.omh .omh-app__row { display: block; width: 100%; height: 26px; border-radius: 6px; background: rgba(255,255,255,.12); }
.omh .omh-app__row--s { width: 70%; }

/* Secteurs */
.omh .omh-sectors__grid { display: grid; gap: 18px; }
.omh .omh-sectors h3 { font-family: var(--omm-sans); font-size: 14px; font-weight: 700; color: var(--omm-plum); margin: 0 0 6px; }
.omh .omh-dots { display: flex; flex-wrap: wrap; }
.omh .omh-dots li { font-size: 14px; line-height: 2; }
.omh .omh-dots li:not(:last-child)::after { content: "·"; margin: 0 8px; color: var(--omm-gold-dark); }
.omh .omh-dots a { color: var(--omm-ink); }
.omh .omh-dots a:hover { color: var(--omm-bordeaux); text-decoration: underline; }

/* Pied de page */
.omh-footer { background: #F4ECE6; color: var(--omm-ink); padding: 34px 0 26px; border-top: 1px solid var(--omm-line); }
.omh .omh-footer__brand img { height: 56px; width: auto; margin-bottom: 18px; }
.omh .omh-footer__cols { display: grid; gap: 22px; }
.omh .omh-footer h2 { font-family: var(--omm-sans); font-size: 14px; font-weight: 700; color: var(--omm-plum); margin: 0 0 10px; }
.omh .omh-footer__links { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; }
.omh .omh-footer__links a { display: block; padding: 6px 0; color: var(--omm-muted); font-size: 13.5px; }
.omh .omh-footer__links a:hover { color: var(--omm-bordeaux); }
.omh .omh-footer__links small { color: var(--omm-bordeaux); font-size: 11px; }
.omh .omh-social { display: flex; flex-wrap: wrap; gap: 10px; }
.omh .omh-social a { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid #D9C8BD; background: #fff; color: var(--omm-plum); }
.omh .omh-social a:hover { border-color: var(--omm-gold); color: var(--omm-bordeaux); }
.omh .omh-footer__copy { margin: 26px 0 0; padding-top: 16px; border-top: 1px solid #E2D4CA; font-size: 12.5px; color: var(--omm-muted); }

/* Bouton fixe */
.omh-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96); box-shadow: 0 -6px 20px rgba(42,26,32,.08); }
.omh .omh-sticky .omm-btn { width: 100%; min-height: 50px; background: var(--omm-bordeaux); border-color: var(--omm-bordeaux); font-size: 13px; border-radius: 6px; }

@media (min-width: 768px) {
	.omh .omh-h2 { font-size: 34px; }
	.omh .omh-sec { padding: 64px 0; }
	.omh-header__in { grid-template-columns: 200px 1fr 200px; padding: 0 18px; }
	.omh { --omh-h: 72px; }
	.omh .omh-logo img { height: 54px; }
	.omh .omh-headlink__txt { display: inline; }
	.omh a.omh-headlink--desk { display: inline-flex; padding: 0 14px; }
	.omh a.omh-headlink--strong span { display: inline; }
	.omh .omh-hero__media { height: 440px; border-radius: 0 0 50% 50% / 0 0 70px 70px; }
	.omh .omh-hero__media img { object-position: 60% 35%; }
	.omh .omh-hero__body { margin-top: -120px; position: relative; z-index: 2; background: #fff; border-radius: 16px; padding: 30px 34px; box-shadow: 0 20px 50px rgba(78,19,41,.14); }
	.omh .omh-hero__title { font-size: 42px; }
	.omh .omh-hero__sub { max-width: none; }
	.omh .omh-search { grid-template-columns: 1.3fr 1fr auto; gap: 0; border: 1px solid #D9CCC3; border-radius: 8px; overflow: hidden; }
	.omh .omh-search input, .omh .omh-search select { border: 0; border-radius: 0; height: 58px; }
	.omh .omh-search__f + .omh-search__f { border-left: 1px solid var(--omm-line); }
	.omh .omh-search__btn { height: 58px; border-radius: 0; padding: 0 34px; }
	.omh .omh-tools__card { display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px 40px; padding: 40px; align-items: center; }
	.omh .omh-tools__card > .omm-kicker, .omh .omh-tools__card > .omh-h2, .omh .omh-tools__card > .omh-lead, .omh .omh-tools__card > .omm-btn { grid-column: 1; }
	.omh .omh-tools__list { grid-column: 2; grid-row: 1 / span 4; grid-template-columns: 1fr 1fr; gap: 6px 22px; margin: 0 !important; }
	.omh .omh-tools__card > .omm-btn { width: auto; justify-self: start; }
	.omh .omh-dot__in { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
	.omh .omh-dot__card { margin: 0; padding: 26px; }
	.omh .omh-dot__sel { grid-template-columns: 1fr 1fr; }
	.omh .omh-cats__grid { grid-template-columns: repeat(4, 1fr); gap: 14px; }
	.omh a.omh-more { max-width: 320px; margin: 18px auto 0; }
	.omh .omh-carousel .om-vedettes__grid { grid-auto-columns: calc((100% - 36px) / 4); }
	.omh .omh-site__in { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
	.omh .omh-site__mock { height: 300px; margin: 0; }
	.omh .omh-site__phone { width: 130px; height: 240px; }
	.omh .omh-app__card { display: grid; grid-template-columns: 1.2fr 1fr; text-align: left; padding: 44px 50px 0; align-items: end; }
	.omh .omh-app__card > :not(.omh-app__phone) { grid-column: 1; }
	.omh .omh-app__card p { margin-left: 0; }
	.omh .omh-app__card > .omm-tag, .omh .omh-app__card > .omm-btn { justify-self: start; margin-bottom: 44px; }
	.omh .omh-app__phone { grid-column: 2; grid-row: 1 / span 3; margin: 0 auto; width: 230px; height: 280px; }
	.omh .omh-sectors__grid { grid-template-columns: repeat(3, 1fr); gap: 28px 40px; }
	.omh .omh-footer__cols { grid-template-columns: 2fr 1fr; }
	.omh .omh-footer__links { grid-template-columns: repeat(3, 1fr); }
	.omh-sticky { left: 50%; right: auto; bottom: 18px; transform: translateX(-50%); width: 360px; padding: 0; background: transparent; box-shadow: none; }
	.omh .omh-sticky .omm-btn { box-shadow: 0 10px 30px rgba(147,10,45,.35); border-radius: 999px; }
}
@media (prefers-reduced-motion: reduce) { .omh-drawer__panel, .omh-drawer__backdrop { transition: none; } }

/* v1.5.0 : liens du bloc dot vers le guide. */
.omh .omh-dot__links { display: grid; gap: 8px; margin: 12px 0 0; font-size: 14px; }
.omh .omh-dot__links a { display: inline-flex; align-items: center; gap: 8px; color: var(--omm-bordeaux); font-weight: 600; text-decoration: none; }
.omh .omh-dot__links a:hover { text-decoration: underline; }
.omh .omh-dot__links .omm-icon { width: 18px; height: 18px; color: var(--omm-gold-dark); }
