/*
 * Avis de deces - identite A&G Funeral (reprise de ag-funeral.be, octobre 2026).
 * Typographies : Montserrat (texte, titres) et Roboto Condensed (navigation, boutons),
 * hebergees sur le site (assets/fonts, licence SIL OFL) : aucun appel a Google.
 * Couleurs relevees sur ag-funeral.be :
 *   rouge A&G #BD2430 · texte #4F4F4F · titres #333333 · noms #18191F
 *   bordures #828282 / #BDBDBD · champs #F8F8F8 · fond de rubrique #F9F9F9 · pied #474747
 */
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/montserrat-latin-500-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/montserrat-latin-ext-500-normal.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/montserrat-latin-600-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/montserrat-latin-ext-600-normal.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/montserrat-latin-700-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/montserrat-latin-ext-700-normal.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Roboto Condensed"; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/roboto-condensed-latin-600-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Roboto Condensed"; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/roboto-condensed-latin-ext-600-normal.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Roboto Condensed"; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/roboto-condensed-latin-700-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Roboto Condensed"; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/roboto-condensed-latin-ext-700-normal.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

:root {
  --agf-bg: #ffffff;
  --agf-red: #bd2430;
  --agf-red-dark: #9a1c26;
  --agf-ink: #333333;
  --agf-text: #4f4f4f;
  --agf-muted: #666666;
  --agf-grey-bg: #f9f9f9;
  --agf-grey-2: #f0f0f0;
  --agf-line: #d9dbe1;
  --agf-dark: #474747;
  --agf-focus: #1f6fb2;
  --agf-ok: #2e7d4f;
  --agf-radius: 12px;
  --agf-radius-sm: 4px;
  --agf-shadow: 0 12px 32px -20px rgba(0, 0, 0, .28);
  --agf-sans: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --agf-cond: "Roboto Condensed", "Arial Narrow", sans-serif;
  /* alias historiques */
  --ag-red: var(--agf-red);
  --ag-red-dark: var(--agf-red-dark);
  --ag-red-soft: #fbeef0;
  --ag-ink: var(--agf-text);
  --ag-title: var(--agf-ink);
  --ag-name: var(--agf-ink);
  --ag-muted: var(--agf-muted);
  --ag-line: var(--agf-line);
  --ag-line-soft: var(--agf-line);
  --ag-field: var(--agf-bg);
  --ag-band: var(--agf-grey-bg);
  --ag-footer: var(--agf-dark);
  --ag-shadow: var(--agf-shadow);
  --ag-sans: var(--agf-sans);
  --ag-cond: var(--agf-cond);
  --ag-ease: cubic-bezier(.2, .7, .2, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 130px; }
body.ag { margin: 0; background: #fff; color: var(--ag-ink); font: 500 16px/1.7 var(--ag-sans); -webkit-font-smoothing: antialiased; }
body.ag-f1 { font-size: 14px; } body.ag-f2 { font-size: 16px; } body.ag-f3 { font-size: 18px; } body.ag-f4 { font-size: 20px; }
.ag img { max-width: 100%; height: auto; }
.ag a { color: var(--ag-red); }
.ag a:focus-visible, .ag button:focus-visible, .ag input:focus-visible, .ag select:focus-visible, .ag textarea:focus-visible { outline: 2px solid var(--ag-red); outline-offset: 2px; }
.ag-wrap { max-width: 1110px; margin: 0 auto; padding: 0 20px; }
.ag-narrow { max-width: 780px; }
.ag-main { min-height: 55vh; }
.ag-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ag-muted { color: var(--ag-muted); }
.ag h1, .ag h2, .ag h3 { font-family: var(--ag-sans); color: var(--ag-title); line-height: 1.25; }
.ag h1 { font-size: clamp(1.8em, 4.4vw, 2.75em); font-weight: 500; color: var(--ag-ink); margin: 0 0 .5em; }
.ag h2 { font-size: 1.3em; font-weight: 700; margin: 0 0 .8em; }
.ag-eyebrow { margin: 0 0 .5em; font: 600 .82em var(--ag-cond); letter-spacing: .08em; text-transform: uppercase; color: var(--ag-red); }
.ag-lead { max-width: 46em; margin: 0 0 24px; }
.ag-link { font-weight: 600; text-decoration: none; }
.ag-link:hover { text-decoration: underline; }
.ipx-skip { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 10px 16px; background: var(--ag-red); color: #fff !important; font: 600 14px var(--ag-sans); transition: top .2s; }
.ipx-skip:focus { top: 10px; }

/* ---------------------------------------------------------------- En-tete (identique a web.ag-funeral.be) */
.header { position: sticky; top: 0; z-index: 40; background: rgba(255, 255, 255, .97); border-bottom: 1px solid var(--agf-line); }
@supports (backdrop-filter: blur(8px)) { .header { backdrop-filter: saturate(140%) blur(10px); } }
.header.is-scrolled { box-shadow: 0 6px 24px -12px rgba(0, 0, 0, .18); }
.header .ag-wrap { max-width: 1340px; }
.header__bar { position: relative; display: flex; align-items: center; gap: 14px; min-height: 76px; }
.brand { display: inline-flex; flex-shrink: 0; margin-right: auto; text-decoration: none; line-height: 1; white-space: nowrap; }
.header .brand__logo { display: block; height: 58px; width: auto; max-width: none; }
.nav { display: none; }
.nav__list { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.nav__item { position: relative; }
.nav__link, .nav__trigger { display: inline-flex; align-items: center; gap: 6px; padding: 10px 12px; border: 0; border-radius: var(--agf-radius-sm); background: none; color: #000; font: 600 .95rem/1.4 var(--agf-cond); letter-spacing: .01em; text-transform: uppercase; text-decoration: none; white-space: nowrap; cursor: pointer; }
.nav__link:hover, .nav__trigger:hover, .nav__item:focus-within > .nav__trigger, .nav__link.is-active { color: var(--agf-red); }
.nav__link.is-active { box-shadow: inset 0 -2px 0 var(--agf-red); border-radius: 0; }
.nav__panel { position: absolute; top: calc(100% + 6px); left: 0; z-index: 45; min-width: 300px; padding: 10px; background: #fff; border: 1px solid var(--agf-line); border-radius: var(--agf-radius); box-shadow: 0 18px 40px -24px rgba(29, 35, 39, .35); opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .15s ease, transform .15s ease, visibility .15s; }
.nav__item:hover > .nav__panel, .nav__item:focus-within > .nav__panel { opacity: 1; visibility: visible; transform: none; }
.nav__panel a { display: block; padding: 9px 12px; border-radius: var(--agf-radius-sm); color: var(--agf-ink); font-size: .9375rem; text-decoration: none; }
.nav__panel a:hover { background: var(--agf-grey-bg); color: var(--agf-red); }
.header__tools { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.lang { position: relative; display: block; font-size: .8125rem; }
.lang summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 8px; border-radius: var(--agf-radius-sm); color: var(--agf-ink); font: 600 .9rem var(--agf-cond); }
.lang summary::-webkit-details-marker { display: none; }
.lang summary:hover, .lang[open] summary { color: var(--agf-red); }
.lang__list { position: absolute; right: 0; top: calc(100% + 4px); z-index: 50; min-width: 150px; margin: 0; padding: 6px; list-style: none; background: #fff; border: 1px solid var(--agf-red); border-radius: 8px; box-shadow: var(--agf-shadow); }
.lang__list a { display: block; padding: 9px 12px; border-radius: var(--agf-radius-sm); color: var(--agf-ink); font: 500 .9375rem var(--agf-sans); text-decoration: none; }
.lang__list a:hover { background: var(--agf-grey-bg); color: var(--agf-red); }
.lang__list a[aria-current="true"] { font-weight: 700; color: var(--agf-red); }
.header__quote { display: none; padding: 0 8px; white-space: nowrap; color: var(--agf-red); font: 600 .75rem var(--agf-cond); letter-spacing: .03em; text-transform: uppercase; text-decoration: none; }
.header__quote:hover { text-decoration: underline; }
.header .header__phone { display: none; white-space: nowrap; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 22px; border: 1px solid var(--agf-red); border-radius: var(--agf-radius-sm); background: var(--agf-red); color: #fff !important; font: 600 .9375rem var(--agf-sans); text-decoration: none; cursor: pointer; transition: background-color .15s ease, border-color .15s ease; }
.btn:hover { background: var(--agf-red-dark); border-color: var(--agf-red-dark); }
.btn--ghost { background: #fff; color: var(--agf-red) !important; }
.btn--ghost:hover { background: var(--agf-red); color: #fff !important; }
.menu-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1px solid var(--agf-red); border-radius: var(--agf-radius-sm); background: transparent; color: var(--agf-red); font: 600 .9375rem var(--agf-cond); text-transform: uppercase; cursor: pointer; }
.mobile-nav { position: absolute; top: 100%; left: 0; right: 0; max-height: calc(100dvh - 76px); overflow-y: auto; background: #fff; border-top: 1px solid var(--agf-line); padding: 8px 0 24px; box-shadow: 0 16px 24px -16px rgba(0, 0, 0, .25); }
.mobile-nav[hidden] { display: none; }
.mobile-nav h3 { margin: 18px 0 6px; color: var(--agf-muted); font: 600 .8125rem var(--agf-cond); letter-spacing: .04em; text-transform: uppercase; }
.mobile-nav a { display: block; padding: 10px 0; border-bottom: 1px solid var(--agf-line); color: var(--agf-ink); font-size: 1.0625rem; text-decoration: none; }
.mobile-nav a.is-active { color: var(--agf-red); font-weight: 600; }
.callbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: var(--agf-grey-bg); border-top: 1px solid var(--agf-line); }
.callbar .btn { min-height: 50px; }
body.ag { padding-bottom: 76px; }
@media (min-width: 1240px) {
  .nav { display: block; }
  .menu-btn, .mobile-nav, .callbar { display: none !important; }
  .header .header__phone { display: inline-flex; }
  .header__quote { display: inline; }
  body.ag { padding-bottom: 0; }
}
@media (min-width: 1240px) and (max-width: 1399px) {
  .nav__link, .nav__trigger { padding: 10px 9px; font-size: .875rem; }
  .header .brand__logo { height: 50px; }
}
@media (max-width: 600px) { .header .brand__logo { height: 46px; } }

/* ---------------------------------------------------------------- Boutons et champs */
.ag-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 6px 20px; border: 1.25px solid var(--ag-red); border-radius: 0; background: var(--ag-red); color: #fff !important; font: 500 15px var(--ag-sans); text-decoration: none; cursor: pointer; transition: background .2s, border-color .2s; }
.ag-btn:hover { background: var(--ag-red-dark); border-color: var(--ag-red-dark); }
.ag-btn[disabled] { opacity: .6; cursor: progress; }
.ag-btn-ghost { background: #fff; color: var(--ag-red) !important; }
.ag-btn-ghost:hover { background: var(--ag-red); color: #fff !important; }
.ag-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.ag-field { display: flex; flex-direction: column; gap: 6px; font-size: .92em; }
.ag-field input, .ag-field select, .ag-field textarea { width: 100%; font: 500 14px var(--ag-sans); padding: 11px 12px; min-height: 44px; border: 1.25px solid var(--ag-line-soft); border-radius: 3px; background: var(--ag-field); color: var(--ag-ink); }
.ag-field select { appearance: none; padding-right: 36px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M0 0h12L6 8z' fill='%23bd2430'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; background-size: 12px 8px; }
.ag-field input:focus, .ag-field select:focus, .ag-field textarea:focus { border-color: var(--ag-red); background-color: #fff; outline: 0; }
.ag-field textarea { resize: vertical; min-height: 120px; }
.ag-check { display: flex; gap: 10px; align-items: flex-start; font-size: .88em; }
.ag-check input { margin-top: .3em; width: 16px; height: 16px; flex: none; accent-color: var(--ag-red); }
.ag-hp { position: absolute; left: -9999px; }

/* ---------------------------------------------------------------- Titres de rubrique */
.ag-crumbs { padding: 26px 0 0; font-size: .78em; color: var(--ag-ink); }
.ag-crumbs a { color: var(--ag-ink); text-decoration: none; }
.ag-crumbs a:hover { color: var(--ag-red); }
.ag-pagehead { padding-top: 34px; padding-bottom: 40px; }
.ag-pagehead h1, .ag-hero-t { display: inline-block; padding-bottom: .2em; margin-bottom: .55em; border-bottom: 1px solid var(--ag-red); }
.ag-pagehead .ag-eyebrow { display: none; }
.ag-section { padding: 48px 20px; }
.ag-section-h { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.ag-band { background: var(--ag-band); }

/* Accueil */
.ag-hero { background: linear-gradient(180deg, #fff 0%, var(--ag-band) 100%); padding: 56px 0 52px; border-bottom: 1px solid #eee; }
.ag-hero .ag-eyebrow { margin-bottom: 1em; }
.ag-hero-t { max-width: 18em; }
.ag-hero-s { max-width: 40em; margin: 0 0 28px; font-size: 1.05em; }
.ag-hero-search, .ag-filters { display: flex; gap: 12px; max-width: 760px; position: relative; flex-wrap: wrap; }
.ag-hero-search .ag-field, .ag-field-grow { flex: 1 1 260px; }
.ag-filters { max-width: none; margin-top: 4px; padding: 24px; background: var(--ag-band); }
.ag-filters .ag-field { min-width: 220px; }
.ag-filters .ag-btn, .ag-hero-search .ag-btn { min-width: 150px; }
.ag-filters .ag-btn::before, .ag-hero-search .ag-btn::before { content: ""; width: 16px; height: 16px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m15.5 15.5 5 5'/%3E%3C/svg%3E") center/contain no-repeat; }
.ag-count { margin: 0 0 18px; font-size: .9em; }

/* Bandeau sombre (accueil) */
.ag-band-dark { background: var(--ag-footer); color: #fff; padding: 44px 0; }
.ag-band-dark h2 { color: #fff; }
.ag-band-dark p { color: #e6e6e6; max-width: 42em; }
.ag-band-grid { display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: center; }
.ag-band-cta { display: flex; gap: 10px; flex-wrap: wrap; }
.ag-band-dark .ag-btn-ghost { background: transparent; border-color: #fff; color: #fff !important; }
.ag-band-dark .ag-btn-ghost:hover { background: #fff; color: var(--ag-footer) !important; }

/* ---------------------------------------------------------------- Cartes d'avis (comme ag-funeral.be) */
.ag-list { background: var(--ag-band); }
.ag-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 32px; }
.ag-card { display: flex; flex-direction: column; padding: 28px 32px 22px; background: #fff; border: 1.25px solid var(--ag-line); border-radius: 4px; box-shadow: var(--ag-shadow); transition: transform .25s var(--ag-ease); }
.ag-card:hover { transform: translateY(-3px); }
.ag-card-top { display: flex; gap: 18px; align-items: flex-start; text-decoration: none; }
.ag-card-ph { flex: none; width: 64px; height: 76px; border: 1.25px solid rgba(189, 189, 189, .4); border-radius: 16px; overflow: hidden; display: grid; place-items: center; background: #fff; }
.ag-card-ph img { width: 100%; height: 100%; object-fit: cover; }
.ag-card-ph.is-empty img { width: 34px; height: auto; opacity: .7; }
.ag-card-b { display: flex; flex-direction: column; min-width: 0; padding-top: 2px; }
.ag-card-n { color: var(--ag-name); font-size: 1.12em; font-weight: 700; line-height: 1.35; }
.ag-card-top:hover .ag-card-n { color: var(--ag-red); }
.ag-card-d { margin-top: 4px; color: var(--ag-ink); font-size: .875em; font-weight: 700; }
.ag-card-r { margin-top: 2px; color: var(--ag-muted); font-size: .8em; }
.ag-card-rule { display: block; height: 2px; margin: 18px 0 6px; background: var(--ag-red); }
.ag-card-foot { display: flex; flex-direction: column; gap: 6px; }
.ag-card-cond { display: inline-flex; align-items: center; gap: 10px; margin: 6px 0; color: var(--ag-title) !important; font-size: .94em; font-weight: 600; text-decoration: none; }
.ag-card-cond svg { width: 18px; height: 18px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.8; color: var(--ag-red); }
.ag-card-cond:hover { color: var(--ag-red) !important; }
.ag-card-a { align-self: flex-end; color: var(--ag-ink); font-size: .75em; }
.ag-pager { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 36px; }
.ag-note { background: #fff; border: 1.25px solid var(--ag-line-soft); padding: 18px 22px; }
.ag-chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ag-chips a { display: inline-block; padding: 8px 14px; border: 1.25px solid var(--ag-line-soft); border-radius: 3px; background: #fff; color: #000; font: 600 14px var(--ag-cond); text-transform: uppercase; text-decoration: none; }
.ag-chips a:hover { border-color: var(--ag-red); color: var(--ag-red); }

/* ---------------------------------------------------------------- Fiche */
.ag-obit { padding-bottom: 8px; }
.ag-obit-head { display: grid; grid-template-columns: 180px 1fr; gap: 36px; align-items: center; padding: 26px 0 34px; }
.ag-obit-ph { width: 180px; height: 220px; border: 1.25px solid rgba(189, 189, 189, .4); border-radius: 16px; overflow: hidden; display: grid; place-items: center; background: #fff; box-shadow: var(--ag-shadow); }
.ag-obit-ph img { width: 100%; height: 100%; object-fit: cover; }
.ag-obit-ph.is-empty img { width: 64px; height: auto; opacity: .6; }
.ag-obit-n { display: inline-block; margin-bottom: .2em !important; padding-bottom: .15em; border-bottom: 1px solid var(--ag-red); color: var(--ag-name) !important; }
.ag-obit-sub { margin: .2em 0 0; }
.ag-obit-dates { margin: .8em 0 0; font-weight: 700; }
.ag-quote { margin: 1em 0 0; padding-left: 14px; border-left: 2px solid var(--ag-red); font-style: italic; }
.ag-obit-wrap { background: var(--ag-band); padding: 40px 0 56px; }
.ag-obit-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 32px; }
.ag-obit-main, .ag-obit-side { display: flex; flex-direction: column; gap: 24px; }
.ag-panel { background: #fff; border: 1.25px solid var(--ag-line); border-radius: 4px; padding: 26px 30px; box-shadow: var(--ag-shadow); }
.ag-panel > h2 { padding-bottom: .6em; border-bottom: 2px solid var(--ag-red); }
.ag-panel-soft { border-color: var(--ag-red); }
.ag-prose p { margin: 0 0 1em; }
.ag-prose ul { padding-left: 1.2em; }
.ag-cer { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.ag-cer li { padding-left: 16px; border-left: 2px solid var(--ag-red); }
.ag-cer p { margin: 0 0 .2em; }
.ag-cer-k { color: var(--ag-title); font-weight: 700; }
.ag-cer-w { color: var(--ag-name); font-weight: 600; }
.ag-cer-p { font-size: .92em; }
.ag-cond { list-style: none; padding: 0; margin: 0 0 24px; display: grid; gap: 14px; }
.ag-cond li { padding: 14px 18px; background: var(--ag-field); border-left: 2px solid var(--ag-line-soft); }
.ag-cond-m { margin: 0 0 .4em; }
.ag-cond-a { margin: 0; font-size: .82em; font-weight: 600; color: var(--ag-title); }
.ag-form { display: grid; gap: 14px; }
.ag-form .ag-btn { justify-self: start; }
.ag-form-msg { margin: 0; padding: 10px 14px; font-size: .9em; border-left: 3px solid; }
.ag-form-msg.is-ok { background: #eef6f0; border-color: #2e7d4f; color: #1f5130; }
.ag-form-msg.is-err { background: var(--ag-red-soft); border-color: var(--ag-red); color: #8a1f17; }
.ag-share-l { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ag-share-l a, .ag-share-l button { display: inline-block; padding: 7px 12px; border: 1.25px solid var(--ag-line-soft); border-radius: 3px; background: #fff; color: #000; font: 600 13px var(--ag-cond); text-transform: uppercase; text-decoration: none; cursor: pointer; }
.ag-share-l a:hover, .ag-share-l button:hover { border-color: var(--ag-red); color: var(--ag-red); }

/* ---------------------------------------------------------------- Contact, pages legales */
.ag-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.ag-agencies { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.ag-legal { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 40px; padding-bottom: 60px; }
.ag-legal-nav ul { list-style: none; padding: 0; margin: 0; position: sticky; top: 150px; display: grid; gap: 2px; }
.ag-legal-nav a { display: block; padding: 10px 14px; border-left: 2px solid transparent; color: #000; font: 600 14px var(--ag-cond); text-transform: uppercase; text-decoration: none; }
.ag-legal-nav a.is-active, .ag-legal-nav a:hover { border-left-color: var(--ag-red); color: var(--ag-red); background: var(--ag-band); }
.ag-legal .ag-prose h2 { margin-top: 1.6em; }

/* ---------------------------------------------------------------- Pied de page (comme ag-funeral.be) */
.ag-footer { background: var(--ag-footer); color: #fff; padding: 48px 0 26px; font-size: .9em; text-align: center; }
.ag-footer a { color: #fff; text-decoration: none; }
.ag-footer a:hover { text-decoration: underline; text-decoration-color: var(--ag-red); text-underline-offset: 4px; }
.ag-footer-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ag-footer-cols ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; align-content: start; }
.ag-footer-logo { display: block; margin: 36px auto 0; width: 110px; }
.ag-copy { margin: 18px 0 0; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .7); font-size: .9em; }

/* ---------------------------------------------------------------- Suggestions, progression, apparitions (ipx.js) */
.ipx-hero-search { position: relative; }
.ipx-sug { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 70; max-height: min(70vh, 460px); overflow-y: auto; padding: 6px; background: #fff; border: 1.25px solid var(--ag-line-soft); box-shadow: var(--ag-shadow); text-align: left; }
.ipx-sug.is-loading { opacity: .75; }
.ipx-sug-item { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; color: var(--ag-name) !important; text-decoration: none !important; }
.ipx-sug-name { font-weight: 700; }
.ipx-sug-meta { color: var(--ag-muted); font-size: 12px; }
.ipx-sug-item:hover, .ipx-sug-item.is-active { background: var(--ag-field); box-shadow: inset 2px 0 0 var(--ag-red); }
.ipx-sug-empty { margin: 0; padding: 12px; color: var(--ag-muted); font-size: 13px; }
.ipx-sug-all { display: block; width: 100%; margin-top: 4px; padding: 11px 12px; border: 0; border-top: 1px solid #eee; background: none; color: var(--ag-red); font: 600 13px var(--ag-sans); text-align: left; cursor: pointer; }
.ipx-progress { position: fixed; left: 0; top: 0; z-index: 200; height: 3px; width: 0; background: var(--ag-red); opacity: 0; pointer-events: none; }
.ipx-progress.is-on { opacity: 1; animation: ag-progress 8s cubic-bezier(.1, .7, .2, 1) forwards; }
@keyframes ag-progress { 0% { width: 0; } 10% { width: 35%; } 40% { width: 70%; } 100% { width: 92%; } }
.ipx-anim .ipx-reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s var(--ag-ease), transform .7s var(--ag-ease); }
.ipx-anim .ipx-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .ipx-anim .ipx-reveal { opacity: 1; transform: none; } .ag-card { transition: none; } }

/* Retour en haut (ipx.js) */
.ipx-top { position: fixed; right: 18px; bottom: 18px; z-index: 40; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 3px; background: var(--ag-red); color: #fff; box-shadow: 0 6px 18px rgba(0, 0, 0, .15); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .25s, transform .25s, visibility 0s .25s; }
.ipx-top.is-visible { opacity: .95; visibility: visible; transform: none; transition: opacity .25s, transform .25s; }
.ipx-top:hover { background: var(--ag-red-dark); }
.ipx-top svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------------------------------------------------------------- Mobile */
@media (max-width: 900px) {
  .ag-obit-grid, .ag-legal, .ag-contact-grid, .ag-band-grid, .ag-footer-cols { grid-template-columns: 1fr; }
  .ag-legal-nav ul { position: static; }
}
@media (max-width: 600px) {
  .ag-grid { grid-template-columns: 1fr; gap: 20px; }
  .ag-card { padding: 22px 20px 18px; }
  .ag-hero { padding: 36px 0; }
  .ag-filters { padding: 16px; }
  .ag-filters .ag-btn, .ag-hero-search .ag-btn { width: 100%; }
  .ag-obit-head { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .ag-obit-ph { width: 150px; height: 184px; }
  .ag-panel { padding: 22px 18px; }
  .ag-quote { text-align: left; }
}
@media print {
  .header, .callbar, .ag-footer, .ag-share, #agCondForm, .ag-crumbs, .ipx-progress { display: none !important; }
  .ag-obit-grid { grid-template-columns: 1fr; }
  .ag-panel, .ag-card { box-shadow: none; }
}

/* ======================================================================
   Charte A&G FUNERAL (7 octobre 2026, commune a l'ecosysteme)
   Reprise de la version en ligne du site des avis de décès : cartes arrondies
   a filet rouge, filets #D9DBE1, focus bleu, libelles condenses en capitales.
   ====================================================================== */
.ag a:focus-visible, .ag button:focus-visible, .ag input:focus-visible, .ag select:focus-visible, .ag textarea:focus-visible, .ag summary:focus-visible { outline: 2px solid var(--agf-focus); outline-offset: 2px; }
.ag a:hover { text-decoration-thickness: 1px; }
.ag-nw { white-space: nowrap; }
.ag h1 { color: var(--agf-ink); font-size: clamp(1.8em, 4.4vw, 2.75em); font-weight: 500; letter-spacing: 0; margin: 0 0 .5em; }
.ag h2 { font-size: 1.3em; font-weight: 600; margin: 0 0 .8em; }
.ag h3 { font-weight: 600; }
.ag-eyebrow { color: var(--ag-red); font: 600 .82em var(--ag-cond); letter-spacing: .08em; margin: 0 0 .5em; text-transform: uppercase; white-space: nowrap; }
.ipx-skip { border-radius: var(--agf-radius-sm); }
.ag-btn { border: 1px solid var(--ag-red); border-radius: var(--agf-radius-sm); font: 600 15px var(--ag-sans); }
.ag-btn-ghost:hover { background: var(--ag-red); border-color: var(--ag-red); color: #fff !important; }
.ag-field input, .ag-field select, .ag-field textarea { background-color: #fff; border: 1px solid var(--agf-line); border-radius: var(--agf-radius-sm); color: var(--agf-ink); font: 500 15px var(--ag-sans); transition: border-color .2s; }
.ag-field input::placeholder, .ag-field textarea::placeholder { color: var(--agf-muted); opacity: 1; }
.ag-field > span:not(.ag-sr) { color: var(--agf-ink); font-weight: 600; }
.ag-field input:focus-visible, .ag-field select:focus-visible, .ag-field textarea:focus-visible { outline: 2px solid var(--agf-focus); outline-offset: 2px; }
.ag-crumbs { color: var(--agf-muted); font: 600 .82em var(--ag-cond); letter-spacing: .04em; text-transform: uppercase; }
.ag-crumbs a { color: var(--agf-ink); text-decoration: none; }
.ag-hero { border-bottom: 1px solid var(--agf-line); }
.ag-filters { background: #fff; border: 1px solid var(--agf-line); border-radius: var(--agf-radius); box-shadow: var(--agf-shadow); }
.ag-band-dark p { color: #e5e5e5; }
.ag-card { border: 1px solid var(--agf-red); border-radius: var(--agf-radius); box-shadow: var(--agf-shadow); transition: transform .25s var(--ag-ease), box-shadow .25s var(--ag-ease); }
.ag-card:hover { box-shadow: 0 18px 36px -20px rgba(0, 0, 0, .34); transform: translateY(-3px); }
.ag-card-ph { background: var(--agf-grey-bg); border: 1px solid var(--agf-line); border-radius: var(--agf-radius); }
.ag-card-n { color: var(--agf-ink); transition: color .2s; }
.ag-card-d { color: var(--agf-text); font-weight: 600; }
.ag-card-rule { height: 1px; }
.ag-card-a { color: var(--agf-muted); font: 600 .78em var(--ag-cond); letter-spacing: .04em; text-transform: uppercase; }
.ag-note { border: 1px solid var(--agf-line); border-radius: var(--agf-radius); box-shadow: var(--agf-shadow); }
.ag-chips a { border: 1px solid var(--ag-red); border-radius: var(--agf-radius-sm); color: var(--agf-ink); letter-spacing: .02em; transition: background .2s, color .2s; }
.ag-chips a:hover { background: var(--ag-red); color: #fff; }
.ag-obit-ph { border: 1px solid var(--ag-red); border-radius: var(--agf-radius); box-shadow: var(--agf-shadow); }
.ag-obit-n { color: var(--agf-ink) !important; }
.ag-obit-dates { color: var(--agf-ink); font-weight: 600; }
.ag-quote { color: var(--agf-text); }
.ag-panel { border: 1px solid var(--agf-line); border-radius: var(--agf-radius); box-shadow: var(--agf-shadow); }
.ag-panel > h2 { border-bottom: 1px solid var(--ag-red); }
.ag-panel-soft { border-color: var(--agf-red); }
.ag-cer-w { color: var(--agf-ink); }
.ag-cond li { background: var(--agf-grey-bg); border-left: 2px solid var(--ag-red); border-radius: 0 var(--agf-radius-sm) var(--agf-radius-sm) 0; }
.ag-form-msg { border-radius: 0 var(--agf-radius-sm) var(--agf-radius-sm) 0; }
.ag-form-msg.is-ok { background: var(--agf-grey-bg); border-color: var(--agf-ok); color: var(--agf-ok); }
.ag-form-msg.is-err { background: var(--ag-red-soft); border-color: var(--ag-red); color: var(--agf-red-dark); }
.ag-share-l a, .ag-share-l button { border: 1px solid var(--ag-red); border-radius: var(--agf-radius-sm); color: var(--ag-red); }
.ag-share-l a:hover, .ag-share-l button:hover { background: var(--ag-red); color: #fff; }
.ag-legal-nav a { border-left: 3px solid transparent; color: var(--agf-ink); }
.ag-legal-nav a.is-active, .ag-legal-nav a:hover { border-left-color: var(--agf-red); color: var(--agf-red); background: var(--agf-grey-bg); }
.ag-footer { background: var(--agf-dark); color: #e5e5e5; font-size: .9em; padding: 52px 0 26px; text-align: left; }
.ag-footer a { color: #fff; }
.ag-footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
.ag-footer a:focus-visible { outline-color: #fff; }
.ag-footer-logo { display: block; height: auto; margin: 0 0 32px; width: 130px; }
.ag-footer-cols { display: grid; gap: 28px 40px; grid-template-columns: repeat(3, 1fr); }
.ag-footer-cols ul { align-content: start; display: grid; gap: 8px; list-style: none; margin: 0; padding: 0; }
.ag-footer-cols strong { color: #fff; display: block; font: 700 .95em var(--ag-cond); letter-spacing: .04em; margin-bottom: 4px; text-transform: uppercase; }
.ag-footer [aria-current="page"] { color: #fff; font-weight: 600; }
.ag-copy { border-top: 1px solid rgba(255, 255, 255, .25); color: #e5e5e5; font-size: .9em; margin: 36px 0 0; padding-top: 22px; }
.ipx-sug { border: 1px solid var(--ag-red); border-radius: 8px; }
.ipx-sug-item { border-radius: var(--agf-radius-sm); color: var(--agf-ink) !important; }
.ipx-sug-item:hover, .ipx-sug-item.is-active { background: var(--agf-grey-bg); box-shadow: inset 2px 0 0 var(--ag-red); }
.ipx-sug-all { border: 0; border-top: 1px solid var(--agf-line); }
.ipx-top { border-radius: var(--agf-radius-sm); }
@media (max-width: 1239px) { .ipx-top { bottom: 92px; } }
@media (max-width: 900px) { .ag-footer-cols { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .ag-card:hover { transform: none; } .ipx-progress.is-on { animation: none; width: 92%; } }
