/* Domus Suisse - page About us (2943). Refonte du 20.10.2026.
   Mise en page des widgets Elementor natifs portant les classes dab-*.
   Charge uniquement sur la page 2943 (module novamira-sandbox/domus-about-page.php). */

.dab {
  --dab-accent: #1C4D59;
  --dab-deep: #163A46;
  --dab-ink: #1F4746;
  --dab-body: #2E5352;
  --dab-soft: #4A6266;
  --dab-ring: #4A90A8;
  --dab-amber: #E1A140;
  --dab-tint: #F1F5F6;
  --dab-line: rgba(28, 77, 89, 0.14);
  background: #F8F8F8;
  color: var(--dab-ink);
  font-family: Inter, sans-serif;
}
.dab ::selection { background: var(--dab-accent); color: #fff; }

/* Conteneurs : on neutralise les marges par defaut d'Elementor */
.dab .e-con,
.dab.e-con {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --margin-top: 0px; --margin-bottom: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px;
}
.dab .elementor-widget { margin: 0 !important; }
.dab .elementor-widget:not(:last-child) { margin-block-end: 0 !important; }
.dab .dab-wrap {
  width: 100%;
  max-width: 1228px;
  margin-inline: auto;
  padding-inline: 24px !important;
  box-sizing: border-box;
}

/* Typographie commune */
.dab .elementor-heading-title { font-family: Raleway, sans-serif !important; color: var(--dab-accent); letter-spacing: -0.005em; text-wrap: balance; }
.dab .dab-h2 .elementor-heading-title { font-weight: 800 !important; font-size: clamp(28px, 3.2vw, 38px) !important; line-height: 1.15 !important; }
.dab .dab-h3 .elementor-heading-title { font-weight: 700 !important; font-size: 20px !important; line-height: 1.3 !important; color: var(--dab-ink); }
.dab .elementor-widget-text-editor { font: 400 16px/1.65 Inter, sans-serif; color: var(--dab-soft); }
.dab .elementor-widget-text-editor p { margin: 0; }
.dab .elementor-widget-text-editor p + p { margin-top: 20px; }
.dab a { text-underline-offset: 3px; }

/* Boutons */
.dab .elementor-button {
  display: inline-flex !important; align-items: center; gap: 10px;
  min-height: 52px; padding: 0 26px !important; border-radius: 6px !important;
  font: 700 16px Raleway, sans-serif !important; letter-spacing: 0 !important; text-transform: none !important;
  box-shadow: none !important; transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.dab .elementor-button .elementor-button-content-wrapper { gap: 10px; align-items: center; }
.dab .elementor-button:focus-visible { outline: 2px solid var(--dab-ring); outline-offset: 3px; }
.dab .dab-btn-light .elementor-button { background: #fff !important; color: var(--dab-accent) !important; border: 1px solid #fff !important; }
.dab .dab-btn-light .elementor-button:hover { background: var(--dab-tint) !important; border-color: var(--dab-tint) !important; }
.dab .dab-btn-light .elementor-button svg { fill: currentColor; }
.dab .dab-btn-ghost .elementor-button { background: transparent !important; color: #fff !important; border: 1px solid rgba(255,255,255,.55) !important; }
.dab .dab-btn-ghost .elementor-button:hover { background: rgba(255,255,255,.1) !important; }
.dab .dab-btn-solid .elementor-button { background: var(--dab-accent) !important; color: #fff !important; border: 1px solid var(--dab-accent) !important; min-height: 50px; font-size: 15px !important; }
.dab .dab-btn-solid .elementor-button:hover { background: var(--dab-deep) !important; border-color: var(--dab-deep) !important; }
.dab .dab-link .elementor-button {
  background: transparent !important; color: var(--dab-accent) !important; border: 0 !important;
  padding: 10px 0 !important; min-height: 44px; font-size: 15px !important;
}
.dab .dab-link .elementor-button:hover { color: var(--dab-deep) !important; text-decoration: underline; }
.dab .elementor-button-icon { color: inherit; }
.dab .elementor-button-icon svg, .dab .elementor-button svg { fill: currentColor !important; width: 14px; height: 14px; }
.dab .dab-btns, .dab .dab-links { --width: auto; width: auto !important; }
.dab .dab-btns { flex-direction: row !important; flex-wrap: wrap !important; gap: 12px !important; }
.dab .dab-links { flex-direction: row !important; flex-wrap: wrap !important; gap: 0 24px !important; }

/* 1. Hero */
.dab .dab-hero { background: var(--dab-accent); color: #fff; }
.dab .dab-hero > .dab-wrap {
  flex-direction: row !important; flex-wrap: wrap !important; align-items: flex-end !important;
  gap: 64px !important; padding-top: 88px !important; padding-bottom: 96px !important;
}
.dab .dab-hero-main { flex: 999 1 560px !important; min-width: 0; gap: 28px !important; }
.dab .dab-hero-main .elementor-heading-title {
  color: #fff; font-weight: 800 !important; font-size: clamp(38px, 5.2vw, 64px) !important;
  line-height: 1.04 !important; letter-spacing: -0.015em; max-width: 17ch;
}
.dab .dab-hl { color: var(--dab-amber); }
.dab .dab-hero-lead { font-size: 19px; line-height: 1.6; color: rgba(255,255,255,.88); max-width: 56ch; }
.dab .dab-hero .dab-btns { padding-top: 4px !important; }
.dab .dab-facts-w { flex: 1 1 320px !important; min-width: 0; }
.dab .dab-facts ul { list-style: none; margin: 0; padding: 8px 28px; background: var(--dab-deep); border-radius: 6px; }
.dab .dab-facts li { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.dab .dab-facts li:last-child { border-bottom: 0; }
.dab .dab-facts li span { font: 600 12px Raleway, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.72); flex: none; }
.dab .dab-facts li strong { font: 500 15px Inter, sans-serif; color: #fff; text-align: right; }

/* 2. Pourquoi */
.dab .dab-why {
  flex-direction: row !important; flex-wrap: wrap !important; gap: 48px 80px !important;
  padding-top: 112px !important; padding-bottom: 96px !important;
}
.dab .dab-why > .dab-h2 { flex: 1 1 340px; min-width: 0; }
.dab .dab-why .elementor-heading-title { font-size: clamp(30px, 3.4vw, 42px) !important; line-height: 1.12 !important; }
.dab .dab-why-text { flex: 1.4 1 460px; min-width: 0; max-width: 68ch; font-size: 17px; line-height: 1.7; color: var(--dab-body); }

/* 3. Engagements */
.dab .dab-band { background: #fff; border-top: 1px solid var(--dab-line); border-bottom: 1px solid var(--dab-line); }
.dab .dab-band > .dab-wrap { gap: 40px !important; padding-top: 96px !important; padding-bottom: 96px !important; }
.dab .dab-rows { border-top: 1px solid var(--dab-line); }
.dab .dab-row {
  flex-direction: row !important; flex-wrap: wrap !important; align-items: center !important;
  gap: 12px 48px !important; padding: 28px 0 !important; border-bottom: 1px solid var(--dab-line);
}
.dab .dab-row > .dab-h3 { flex: 1 1 300px; min-width: 0; }
.dab .dab-row > .elementor-widget-text-editor { flex: 2 1 460px; min-width: 0; max-width: 64ch; }
.dab .dab-row .elementor-heading-title { display: flex; align-items: center; gap: 16px; }
.dab .dab-row .elementor-heading-title::before {
  content: ""; flex: none; width: 28px; height: 28px; background: var(--dab-ring);
  -webkit-mask: var(--dab-ic) center / contain no-repeat; mask: var(--dab-ic) center / contain no-repeat;
}
.dab .dab-ic-free  { --dab-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8.5 12.5l2.5 2.5 4.5-5'/%3E%3C/svg%3E"); }
.dab .dab-ic-photo { --dab-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='9' cy='10' r='2'/%3E%3Cpath d='M21 16l-5-5-9 8'/%3E%3C/svg%3E"); }
.dab .dab-ic-lock  { --dab-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10' width='16' height='10' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E"); }
.dab .dab-ic-shield { --dab-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v5c0 4.5-3 8-7 10-4-2-7-5.5-7-10V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E"); }
.dab .dab-ic-sync  { --dab-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 11a8 8 0 0 0-14.3-4.9L4 8'/%3E%3Cpath d='M4 4v4h4'/%3E%3Cpath d='M4 13a8 8 0 0 0 14.3 4.9L20 16'/%3E%3Cpath d='M20 20v-4h-4'/%3E%3C/svg%3E"); }
.dab .dab-ic-globe { --dab-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18'/%3E%3Cpath d='M12 3a14 14 0 0 1 0 18a14 14 0 0 1 0-18z'/%3E%3C/svg%3E"); }

/* 4. Par ou commencer */
.dab .dab-start { gap: 40px !important; padding-top: 96px !important; padding-bottom: 96px !important; }
.dab .dab-cols {
  display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--dab-accent);
}
.dab .dab-col { gap: 12px !important; padding: 28px 32px 8px !important; border-left: 1px solid var(--dab-line); }
.dab .dab-col:first-child { padding-left: 0 !important; border-left: 0; }
.dab .dab-col:last-child { padding-right: 0 !important; }
.dab .dab-col .elementor-heading-title { font-size: 21px !important; }

/* 5. Partenaire juridique */
.dab .dab-legal { background: var(--dab-tint); border-top: 1px solid var(--dab-line); border-bottom: 1px solid var(--dab-line); }
.dab .dab-legal > .dab-wrap {
  flex-direction: row !important; flex-wrap: wrap !important; align-items: center !important;
  gap: 40px 64px !important; padding-top: 72px !important; padding-bottom: 72px !important;
}
.dab .dab-legal-logo { flex: none; width: 168px; }
.dab .dab-legal-logo img { display: block; width: 168px; height: 112px; object-fit: contain; padding: 16px; box-sizing: border-box; background: var(--dab-accent); border-radius: 6px; }
.dab .dab-legal-text { flex: 999 1 420px !important; min-width: 0; gap: 12px !important; }
.dab .dab-legal-text .elementor-heading-title { font-size: clamp(24px, 2.6vw, 30px) !important; line-height: 1.2 !important; }
.dab .dab-legal-text .elementor-widget-text-editor { max-width: 62ch; }

/* 6. Blog (widget Houzez conserve) */
.dab .dab-blog { gap: 36px !important; padding-top: 96px !important; padding-bottom: 104px !important; }
.dab .dab-blog-head { flex-direction: row !important; flex-wrap: wrap !important; align-items: flex-end !important; justify-content: space-between !important; gap: 16px !important; }
.dab .dab-blog-head > .dab-h2 { flex: 1 1 420px; min-width: 0; }
.dab .blog-post-item-wrap { display: flex; background: none !important; }
.dab .blog-post-item {
  display: flex; flex-direction: column; width: 100%; height: 100%; margin: 0 !important; padding: 0 !important;
  background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 6px; overflow: hidden; box-shadow: none !important;
}
.dab .blog-post-thumb { margin: 0 !important; }
.dab .blog-post-thumb img { display: block; width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; border-radius: 0 !important; }
.dab .blog-post-item:not(.has-post-thumbnail)::before {
  content: ""; display: block; aspect-ratio: 4 / 3; background: var(--dab-tint) center / 64px no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 34' fill='none'%3E%3Cpath d='M3 9 L15 2 L27 9 V25 L15 32 L3 25 Z' stroke='%231C4D59' stroke-opacity='.35' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.dab .blog-post-content-wrap { flex: 1; display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 20px; }
.dab .blog-post-title h3 { margin: 0 !important; font: 700 18px/1.35 Raleway, sans-serif !important; }
.dab .blog-post-title a { color: var(--dab-ink) !important; }
.dab .blog-post-body { font: 400 14px/1.6 Inter, sans-serif; color: var(--dab-soft); }
.dab .blog-post-link { margin-top: auto; padding-top: 6px; }
.dab .blog-post-link a { font: 700 14px Raleway, sans-serif; color: var(--dab-accent); }
.dab .blog-post-item:hover .blog-post-title a { text-decoration: underline; }

/* 7. Contact */
.dab .dab-end { background: var(--dab-accent); color: #fff; }
.dab .dab-end > .dab-wrap {
  flex-direction: row !important; flex-wrap: wrap !important; align-items: flex-end !important; justify-content: space-between !important;
  gap: 40px 64px !important; padding-top: 80px !important; padding-bottom: 80px !important;
}
.dab .dab-end-text { flex: 1 1 460px !important; min-width: 0; gap: 16px !important; }
.dab .dab-end .elementor-heading-title { color: #fff; font-size: clamp(28px, 3.4vw, 40px) !important; }
.dab .dab-end .elementor-widget-text-editor { font-size: 17px; line-height: 1.6; color: rgba(255,255,255,.88); }
.dab .dab-end .elementor-widget-text-editor a { color: #fff; font-weight: 600; text-decoration: underline; white-space: nowrap; }
.dab .dab-end .dab-btns { flex: 0 1 auto !important; }

/* Tablette et mobile */
@media (max-width: 1024px) {
  .dab .dab-cols { grid-template-columns: minmax(0, 1fr); }
  .dab .dab-col, .dab .dab-col:first-child, .dab .dab-col:last-child { padding: 24px 0 16px !important; border-left: 0; border-bottom: 1px solid var(--dab-line); }
}
@media (max-width: 767px) {
  .dab .dab-hero > .dab-wrap { padding-top: 56px !important; padding-bottom: 64px !important; gap: 40px !important; }
  .dab .dab-hero-lead { font-size: 17px; }
  .dab .dab-btns .elementor-widget-button { flex: 1 1 100%; }
  .dab .dab-btns .elementor-button { width: 100%; justify-content: center; }
  .dab .dab-facts ul { padding: 4px 20px; }
  .dab .dab-facts li { flex-wrap: wrap; gap: 4px 16px; padding: 14px 0; }
  .dab .dab-why { padding-top: 72px !important; padding-bottom: 64px !important; gap: 24px !important; }
  .dab .dab-band > .dab-wrap, .dab .dab-start, .dab .dab-blog { padding-top: 64px !important; padding-bottom: 64px !important; }
  .dab .dab-row { padding: 22px 0 !important; }
  .dab .dab-legal > .dab-wrap, .dab .dab-end > .dab-wrap { padding-top: 56px !important; padding-bottom: 56px !important; gap: 24px !important; }
}
