/* One explicit integration boundary: shared quote card + contact dock. */
.dn-quote-host[data-dn-owned]{padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;min-width:0}
.dio-quote-pop .dn-quote-host[data-dn-owned]{position:relative;width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;margin:auto}
.dn-unified-quote .dn-optional{grid-column:1/-1;margin:0;padding:0;border:0;background:transparent}
.dn-unified-quote .dn-optional>summary{font:400 14px/1.5 Arial,Helvetica,sans-serif;color:#123345;cursor:pointer;padding:4px 0}
.dn-unified-quote .dn-optional[open]>.dn-unified-quote__field{margin-top:12px}
form.dn-unified-quote{max-width:680px;padding:24px;border-radius:16px}
.dn-unified-quote h2{font-size:24px;line-height:1.2}
.dn-title{font-size:clamp(30px,3vw,38px)}
.dn-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}
.dn-contact-dock{position:fixed;left:18px;bottom:18px;z-index:9998;display:flex;gap:8px;font:700 14px/1.2 Arial,Helvetica,sans-serif}
.dn-contact-dock>a{display:flex;align-items:center;justify-content:center;min-height:48px;padding:12px 18px;background:#0a2539;border-radius:12px;color:#fff;text-decoration:none;box-shadow:0 6px 22px #09263920;box-sizing:border-box}
.dn-contact-dock>.dn-dock-quote,.dn-contact-dock>.dn-dock-visit{display:none}
.dn-contact-dock>.dn-dock-wa{background:#17694b}
.dn-contact-dock>a:focus-visible{outline:3px solid #2681a2;outline-offset:3px}
@media(max-width:760px){
 .dn-hero-grid{grid-template-columns:minmax(0,1fr);gap:24px}
 body.dn-with-contact-dock{padding-bottom:142px}
 .dn-contact-dock{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;padding:8px;border:1px solid #d7e5e1;border-radius:18px;background:#fff;box-shadow:0 6px 24px #09263925}
 .dn-contact-dock>a,.dn-contact-dock>.dn-dock-quote,.dn-contact-dock>.dn-dock-visit{display:flex;position:static;min-height:44px;margin:0;padding:10px 6px;box-shadow:none;white-space:nowrap;font:700 14px/1.2 Arial,Helvetica,sans-serif}
 .dn-contact-dock>.dn-dock-quote{background:#17694b}
 .dn-contact-dock>.dn-dock-visit{background:#edf6f0;color:#173c32}
 form.dn-unified-quote{padding:20px}
}

/* Useful-link groups: explicit wrapping layout; prevents inline padded links overlapping. */
.dn-page .svc-zone-links,.svc-zone-links.dn-panel{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px;min-width:0}
.dn-page .svc-zone-links>a,.svc-zone-links.dn-panel>a{display:inline-flex;align-items:center;justify-content:center;position:static;box-sizing:border-box;max-width:100%;min-width:0;min-height:44px;margin:0;padding:12px 16px;line-height:1.4;white-space:normal;overflow-wrap:anywhere;text-align:center;flex:0 1 auto}
@media(max-width:480px){.dn-page .svc-zone-links>a,.svc-zone-links.dn-panel>a{flex:1 1 100%;width:100%}}

/* Lot local : trois retouches, validation Marc avant publication. */
body.dn-page[data-dn-family="home"] .home-hero-air > img.dn-hero-image,
body.dn-page.dn-guides-visual-fix .dn-hero > img.dn-hero-image {
  height: 400px !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center top !important;
}
body.dn-page.page-devis .dn-devis-context-photo {
  display: block; width: 100%; height: auto; aspect-ratio: 1000 / 650;
  object-fit: cover; border-radius: 18px; margin-top: 28px;
}
body.dn-page.dn-guides-visual-fix .std-bottom .panel > .copy {
  background: #0b314e !important;
  color: #fff !important;
}
body.dn-page.dn-guides-visual-fix .std-bottom .panel > .copy :is(.dn-heading,.dn-text,.dn-eyebrow) {
  color: #fff !important;
}
@media (min-width: 1000px) {
  body.dn-page.page-devis .devis-hero > .devis-hero-grid {
    display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 40px !important; align-items: start !important;
  }
  body.dn-page.page-devis .devis-hero-grid > * { min-width: 0; }
}
@media (max-width: 767px) {
  body.dn-page[data-dn-family="home"] .home-hero-air > img.dn-hero-image,
  body.dn-page.dn-guides-visual-fix .dn-hero > img.dn-hero-image {
    height: auto !important; aspect-ratio: 900 / 560; object-fit: contain !important;
  }
  body.dn-page.page-devis .dn-devis-context-photo { margin-top: 24px; }
}

/* Home audience badge: explicit accessible foreground/background pairing. */
body.dn-page .home-hero-air a.badge{color:#0b314e;background:#ffffff;border:1px solid #c7d9d4;opacity:1;text-shadow:none}
body.dn-page .home-hero-air a.badge:hover,body.dn-page .home-hero-air a.badge:focus-visible{color:#0b314e;background:#edf6f0}
body.dn-page .home-hero-air a.badge:focus-visible{outline:3px solid #17694b;outline-offset:3px}

/* CANDIDAT LOCAL — aucune publication. Périmètre limité aux 3 URL auditées.
   Ne pas remplacer integration.css par une ancienne copie. */
html:has(link[rel="canonical"][href="https://www.dio-net.ch/nettoyage-fin-de-bail-geneve"]) body.dn-page,
html:has(link[rel="canonical"][href="https://www.dio-net.ch/en/office-cleaning-geneva/"]) body.dn-page,
html:has(link[rel="canonical"][href="https://www.dio-net.ch/conciergerie-airbnb-geneve"]) body.dn-page {
  & .dio-zone-pills > span:not(.main) { color: #102d3e; background: #edf7f3; }
  & .visit-copy > :is(.dn-eyebrow,.dn-heading,.dn-text),
  & .svc-price > div:first-child > :is(.dn-eyebrow,.dn-heading,.dn-text),
  & .finbail-v2-cta .box > div:first-child > :is(.dn-heading,.dn-text),
  & .std-bottom .copy > :is(.dn-eyebrow,.dn-heading,.dn-text) { color: #ffffff; }
  & .std-bottom .copy-card > :is(strong,span) { color: #102d3e; }
}
