/* CSS front immobilier luxe — fichier chargé par inc/setup.php */
:root {
  --dgb-bg: #f6f8fb;
  --dgb-bg-soft: #eef4f9;
  --dgb-surface: #ffffff;
  --dgb-surface-soft: #f9fbfd;
  --dgb-dark: #14233b;
  --dgb-navy: #18345c;
  --dgb-blue: #8fb7d9;
  --dgb-blue-soft: #dcebf6;
  --dgb-orange: #e99b62;
  --dgb-orange-dark: #c9793f;
  --dgb-gray: #6d7480;
  --dgb-line: rgba(20, 35, 59, .11);
  --dgb-radius: 10px;
  --dgb-radius-sm: 6px;
  --dgb-shadow: 0 20px 55px rgba(24, 52, 92, .10);
  --dgb-shadow-soft: 0 10px 30px rgba(24, 52, 92, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.dgb-body {
  background: var(--dgb-bg);
  color: var(--dgb-dark);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }
a:hover { color: var(--dgb-orange-dark); }
img { max-width: 100%; height: auto; }
.dgb-main { overflow: hidden; background: linear-gradient(180deg, #fff 0%, var(--dgb-bg) 45%, #fff 100%); }

.dgb-site-header {
  background: rgba(255, 255, 255, .9);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(143, 183, 217, .28);
  box-shadow: 0 10px 40px rgba(24, 52, 92, .06);
}
.dgb-navbar { min-height: 76px; }
.dgb-nav-container { max-width: 1460px; padding-inline: clamp(1rem, 3vw, 2.25rem); }
.dgb-brand,
.dgb-luxe-brand {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  color: var(--dgb-navy);
  line-height: 1;
}
.dgb-brand-mark {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(143, 183, 217, .65);
  background: linear-gradient(135deg, rgba(220, 235, 246, .95), rgba(255,255,255,.98));
  color: var(--dgb-navy);
  font-weight: 850;
  letter-spacing: -.08em;
  box-shadow: 0 12px 26px rgba(24, 52, 92, .09);
}
.custom-logo { max-height: 48px; width: auto; }
.dgb-brand-text { display: inline-flex; flex-direction: column; gap: .15rem; text-transform: uppercase; letter-spacing: .16em; }
.dgb-brand-text strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.12rem; letter-spacing: .18em; font-weight: 600; }
.dgb-brand-text small { color: var(--dgb-gray); font-size: .62rem; letter-spacing: .2em; }
.navbar-nav .nav-link {
  color: rgba(20, 35, 59, .78);
  font-weight: 700;
  font-size: .82rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: var(--dgb-radius-sm);
  padding: .65rem .8rem;
  transition: color .22s ease, background .22s ease, transform .22s ease;
}
.navbar-nav .nav-link:hover,
.navbar-nav .current-menu-item > .nav-link {
  color: var(--dgb-navy);
  background: rgba(143, 183, 217, .16);
}
.dgb-phone-link {
  color: var(--dgb-navy);
  font-weight: 750;
  font-size: .9rem;
  white-space: nowrap;
}
.dgb-header-cta,
.btn-primary {
  --bs-btn-bg: var(--dgb-orange);
  --bs-btn-border-color: var(--dgb-orange);
  --bs-btn-hover-bg: var(--dgb-orange-dark);
  --bs-btn-hover-border-color: var(--dgb-orange-dark);
  --bs-btn-color: #fff;
  --bs-btn-hover-color: #fff;
  border-radius: var(--dgb-radius-sm);
  font-weight: 800;
  letter-spacing: .04em;
  box-shadow: 0 14px 30px rgba(233, 155, 98, .28);
}
.btn-outline-dark {
  --bs-btn-color: var(--dgb-navy);
  --bs-btn-border-color: rgba(24, 52, 92, .28);
  --bs-btn-hover-bg: var(--dgb-navy);
  --bs-btn-hover-border-color: var(--dgb-navy);
  border-radius: var(--dgb-radius-sm);
  font-weight: 800;
  letter-spacing: .04em;
}
.dgb-toggler {
  width: 44px;
  height: 44px;
  border: 1px solid var(--dgb-line);
  border-radius: 8px;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  box-shadow: none;
  background: #fff;
}
.dgb-toggler span { display: block; height: 2px; width: 20px; background: var(--dgb-navy); border-radius: 999px; }

.dgb-section { padding: clamp(4rem, 7vw, 7rem) 0; }
.dgb-section-sm { padding: clamp(2.6rem, 5vw, 4.2rem) 0; }
.bg-light-subtle { background: linear-gradient(180deg, var(--dgb-bg-soft), #fff); }
.min-vh-75 { min-height: 75vh; }
.dgb-fluid-h1,
.dgb-hero h1,
.dgb-page-hero h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.7rem, 6.1vw, 5.9rem);
  line-height: .96;
  letter-spacing: -.045em;
  color: var(--dgb-navy);
  font-weight: 500;
}
.dgb-fluid-h2,
.dgb-section h2,
.dgb-footer-cta h2,
.dgb-final-cta h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 4vw, 3.75rem);
  line-height: 1.05;
  letter-spacing: -.035em;
  color: var(--dgb-navy);
  font-weight: 500;
}
.dgb-section h3,
.dgb-card h3 { color: var(--dgb-navy); line-height: 1.16; font-weight: 750; }
.dgb-hero-lead,
.dgb-page-hero p,
.dgb-section p,
.dgb-footer p {
  color: var(--dgb-gray);
  font-size: 1.04rem;
  line-height: 1.78;
}
.dgb-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: var(--dgb-orange-dark);
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .76rem;
  margin-bottom: 1rem;
}
.dgb-eyebrow::before {
  content: "";
  width: 28px;
  height: 1px;
  background: var(--dgb-orange);
  box-shadow: 0 0 0 4px rgba(233, 155, 98, .10);
}

.dgb-luxe-hero {
  position: relative;
  min-height: 760px;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  align-items: stretch;
  padding: 0;
  background: var(--dgb-blue-soft);
}
.dgb-hero-media,
.dgb-hero-overlay { position: absolute; inset: 0; }
.dgb-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center right;
  transform: scale(1.015);
}
.dgb-hero-overlay {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.82) 34%, rgba(255,255,255,.28) 58%, rgba(255,255,255,.08) 100%),
    linear-gradient(180deg, rgba(220,235,246,.55), rgba(246,248,251,.20));
}
.dgb-luxe-hero .container { z-index: 2; }
.dgb-luxe-hero .lead { max-width: 620px; color: #32435d; }
.dgb-hero-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 2rem;
  max-width: 640px;
}
.dgb-hero-stats div {
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(143, 183, 217, .32);
  border-radius: var(--dgb-radius-sm);
  padding: 1rem;
  box-shadow: var(--dgb-shadow-soft);
  backdrop-filter: blur(12px);
}
.dgb-hero-stats strong { display: block; color: var(--dgb-navy); font-size: 1.45rem; line-height: 1; }
.dgb-hero-stats span { color: var(--dgb-gray); font-size: .86rem; }

.dgb-page-hero,
.dgb-luxe-page-hero {
  padding: clamp(5rem, 8vw, 8rem) 0 clamp(3rem, 6vw, 5rem);
  background:
    radial-gradient(circle at 16% 24%, rgba(143,183,217,.28), transparent 30%),
    radial-gradient(circle at 84% 6%, rgba(233,155,98,.16), transparent 26%),
    linear-gradient(180deg, #fff, var(--dgb-bg-soft));
  border-bottom: 1px solid rgba(143,183,217,.22);
}
.dgb-page-hero p { max-width: 780px; }

.dgb-card {
  position: relative;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(24, 52, 92, .10);
  border-radius: var(--dgb-radius);
  box-shadow: var(--dgb-shadow-soft);
  overflow: hidden;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease, background .28s ease;
}
.dgb-card:hover {
  transform: translateY(-6px);
  border-color: rgba(143, 183, 217, .56);
  box-shadow: var(--dgb-shadow);
}
.dgb-card-kicker {
  margin: 0 0 .3rem;
  color: var(--dgb-orange-dark) !important;
  font-size: .72rem !important;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
  line-height: 1.2 !important;
}
.dgb-card-link { position: absolute; inset: 0; z-index: 4; }

.dgb-property-section { background: #fff; }
.dgb-link-arrow { color: var(--dgb-navy); font-weight: 850; text-transform: uppercase; letter-spacing: .09em; font-size: .82rem; }
.dgb-link-arrow::after { content: " →"; color: var(--dgb-orange-dark); }
.dgb-property-card { min-height: 100%; border-radius: var(--dgb-radius-sm); }
.dgb-property-card figure { position: relative; margin: 0; aspect-ratio: 1.18 / .78; overflow: hidden; background: var(--dgb-blue-soft); }
.dgb-property-card img,
.dgb-featured-media img,
.dgb-image-frame img,
.dgb-post-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .55s ease, filter .55s ease;
}
.dgb-property-card:hover img { transform: scale(1.06); filter: saturate(1.04) contrast(1.02); }
.dgb-favorite {
  position: absolute;
  top: .85rem;
  right: .85rem;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(255,255,255,.75);
  color: var(--dgb-navy);
  backdrop-filter: blur(12px);
  z-index: 3;
}
.dgb-property-body { padding: 1.05rem 1.1rem 1.2rem; }
.dgb-property-body h3 { font-family: Georgia, "Times New Roman", serif; font-size: 1.22rem; font-weight: 500; margin: 0 0 .3rem; }
.dgb-property-body strong { color: var(--dgb-navy); font-size: 1rem; }

.dgb-services-section { border-block: 1px solid rgba(143,183,217,.20); }
.dgb-service-card,
.dgb-adapt-card { padding: 1.45rem; border-radius: var(--dgb-radius-sm); }
.dgb-service-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: var(--dgb-radius-sm);
  background: linear-gradient(135deg, rgba(143,183,217,.22), rgba(255,255,255,.94));
  border: 1px solid rgba(143,183,217,.42);
  color: var(--dgb-navy);
  font-size: 1.45rem;
  margin-bottom: 1.1rem;
}
.dgb-service-card h3 { font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; }
.dgb-service-card p { font-size: .95rem; margin: 0; }

.dgb-featured { background: #fff; border-block: 1px solid rgba(143,183,217,.20); }
.dgb-featured-media { margin: 0; min-height: 540px; overflow: hidden; background: var(--dgb-blue-soft); }
.dgb-featured-content {
  min-height: 540px;
  padding: clamp(3rem, 7vw, 6.5rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  background:
    radial-gradient(circle at 90% 10%, rgba(233,155,98,.12), transparent 30%),
    linear-gradient(135deg, #fff, var(--dgb-bg-soft));
}
.dgb-amenities { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .8rem; margin: 1.5rem 0 2rem; }
.dgb-amenities span {
  padding: .85rem .9rem;
  border: 1px solid rgba(143,183,217,.28);
  background: rgba(255,255,255,.78);
  border-radius: var(--dgb-radius-sm);
  color: var(--dgb-navy);
  font-weight: 750;
}

.dgb-image-frame {
  margin: 0;
  border-radius: var(--dgb-radius);
  overflow: hidden;
  border: 1px solid rgba(143,183,217,.28);
  box-shadow: var(--dgb-shadow);
  aspect-ratio: 1.08 / .82;
  background: var(--dgb-blue-soft);
}
.dgb-image-frame:hover img { transform: scale(1.04); }
.dgb-check-list { list-style: none; padding: 0; margin: 1.4rem 0 0; display: grid; gap: .8rem; }
.dgb-check-list li { position: relative; padding-left: 1.8rem; color: var(--dgb-dark); font-weight: 650; }
.dgb-check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .35rem;
  width: .78rem;
  height: .78rem;
  border-radius: 50%;
  background: var(--dgb-orange);
  box-shadow: 0 0 0 5px rgba(233,155,98,.14);
}

.dgb-testimonials { background: linear-gradient(180deg, #fff, var(--dgb-bg-soft)); }
.dgb-testimonial-card { padding: 1.6rem; min-height: 100%; border-radius: var(--dgb-radius-sm); }
.dgb-testimonial-card p { color: var(--dgb-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.12rem; line-height: 1.58; }
.dgb-testimonial-card footer { display: grid; gap: .15rem; color: var(--dgb-gray); }
.dgb-testimonial-card footer strong { color: var(--dgb-navy); }
.dgb-testimonial-card em { color: var(--dgb-orange-dark); font-style: normal; letter-spacing: .12em; }

.dgb-final-cta { background: #fff; }
.dgb-final-cta-inner,
.dgb-footer-cta {
  display: grid;
  grid-template-columns: 1.1fr 1fr auto;
  gap: 1.5rem;
  align-items: center;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border-radius: var(--dgb-radius);
  border: 1px solid rgba(143,183,217,.28);
  background:
    linear-gradient(135deg, rgba(220,235,246,.9), rgba(255,255,255,.86)),
    radial-gradient(circle at 85% 20%, rgba(233,155,98,.26), transparent 30%);
  box-shadow: var(--dgb-shadow-soft);
}
.dgb-final-cta h2,
.dgb-footer-cta h2 { margin: 0; font-size: clamp(1.8rem, 3vw, 3rem); }
.dgb-final-cta p,
.dgb-footer-cta p { margin: 0; }

.dgb-contact-section { background: linear-gradient(180deg, #fff, var(--dgb-bg-soft)); }
.dgb-contact-note {
  margin-top: 1.5rem;
  padding: 1.25rem;
  border-radius: var(--dgb-radius-sm);
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(143,183,217,.25);
  display: grid;
  gap: .2rem;
}
.dgb-contact-note strong { color: var(--dgb-navy); }
.dgb-contact-note span { color: var(--dgb-gray); }
.dgb-contact-form,
form.dgb-contact-form,
.dgb-contact-section form {
  background: #fff;
  border: 1px solid rgba(143,183,217,.28);
  border-radius: var(--dgb-radius);
  padding: clamp(1.3rem, 3vw, 2rem);
  box-shadow: var(--dgb-shadow-soft);
}
.dgb-contact-section input,
.dgb-contact-section textarea,
.dgb-contact-section select,
.dgb-contact-form input,
.dgb-contact-form textarea,
.dgb-contact-form select {
  border-radius: var(--dgb-radius-sm) !important;
  border: 1px solid rgba(143,183,217,.44) !important;
  background: var(--dgb-surface-soft) !important;
  padding: .85rem 1rem !important;
}

.dgb-footer {
  background: #fff;
  color: var(--dgb-dark);
  padding: clamp(3rem, 6vw, 5rem) 0 2rem;
  border-top: 1px solid rgba(143,183,217,.25);
}
.dgb-footer .dgb-footer-cta { margin-bottom: clamp(2rem, 5vw, 4rem); }
.dgb-footer-brand { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; color: var(--dgb-navy); font-weight: 850; }
.dgb-footer h2 { color: var(--dgb-navy); text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; }
.dgb-footer-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; color: var(--dgb-gray); }
.dgb-footer-link { color: var(--dgb-orange-dark); font-weight: 850; }
.dgb-footer-bottom {
  border-top: 1px solid rgba(143,183,217,.25);
  margin-top: 2rem;
  padding-top: 1rem;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  color: var(--dgb-gray);
  font-size: .9rem;
}

.dgb-post-thumb { display: block; aspect-ratio: 1.2 / .75; overflow: hidden; background: var(--dgb-blue-soft); }
.dgb-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  border: 1px solid rgba(143,183,217,.28);
  background: #fff;
  margin: .2rem;
  border-radius: var(--dgb-radius-sm);
  color: var(--dgb-navy);
  font-weight: 750;
}
.dgb-pagination .current { background: var(--dgb-navy); color: #fff; }

.dgbfx-reveal { opacity: 0; transform: translateY(28px); transition: opacity .65s ease, transform .65s ease; }
.dgbfx-reveal.is-visible { opacity: 1; transform: translateY(0); }
.dgbfx-delay-1 { transition-delay: .08s; }
.dgbfx-delay-2 { transition-delay: .16s; }
.dgbfx-delay-3 { transition-delay: .24s; }
.dgbfx-hover-lift { transition: transform .28s ease, box-shadow .28s ease; }
.dgbfx-hover-lift:hover { transform: translateY(-7px); box-shadow: var(--dgb-shadow); }
.dgbfx-float { animation: dgbFloat 6s ease-in-out infinite; }
.dgb-effect-orb { width: 74px; height: 74px; border-radius: 50%; background: linear-gradient(135deg, var(--dgb-blue), var(--dgb-orange)); box-shadow: 0 16px 36px rgba(143,183,217,.36); }
@keyframes dgbFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .dgbfx-reveal { opacity: 1 !important; transform: none !important; }
}

.accordion-item { border: 1px solid rgba(143,183,217,.28); border-radius: var(--dgb-radius-sm) !important; overflow: hidden; margin-bottom: .75rem; }
.accordion-button { color: var(--dgb-navy); font-weight: 800; }
.accordion-button:not(.collapsed) { background: var(--dgb-blue-soft); color: var(--dgb-navy); }
.badge.text-bg-primary { background: var(--dgb-orange) !important; }
.badge.text-bg-light { background: #fff !important; color: var(--dgb-navy) !important; border-color: rgba(143,183,217,.32) !important; border-radius: var(--dgb-radius-sm); }

.dgb-woo-main { background: var(--dgb-bg); }
.woocommerce ul.products li.product,
.dgb-woo-product-card {
  background: #fff;
  border: 1px solid rgba(143,183,217,.24);
  border-radius: var(--dgb-radius-sm);
  padding: 1rem !important;
  box-shadow: var(--dgb-shadow-soft);
}
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button { border-radius: var(--dgb-radius-sm) !important; }

@media (max-width: 1199.98px) {
  .dgb-brand-text small { display: none; }
  .dgb-phone-link { display: none; }
}
@media (max-width: 991.98px) {
  .dgb-navbar { min-height: 70px; }
  .navbar-collapse { padding: 1rem 0 1.2rem; }
  .navbar-nav .nav-link { padding: .8rem 0; }
  .dgb-header-cta { width: 100%; margin-top: .75rem; }
  .dgb-luxe-hero { min-height: auto; }
  .dgb-hero-overlay { background: linear-gradient(90deg, rgba(255,255,255,.96), rgba(255,255,255,.76)); }
  .min-vh-75 { min-height: 640px; }
  .dgb-featured-media,
  .dgb-featured-content { min-height: auto; }
  .dgb-featured-media { aspect-ratio: 16 / 10; }
  .dgb-final-cta-inner,
  .dgb-footer-cta { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .dgb-nav-container { padding-inline: 1rem; }
  .dgb-brand-text strong { font-size: .92rem; letter-spacing: .12em; }
  .dgb-fluid-h1,
  .dgb-hero h1,
  .dgb-page-hero h1 { font-size: clamp(2.35rem, 12vw, 3.7rem); }
  .dgb-section { padding: 3.6rem 0; }
  .min-vh-75 { min-height: 600px; }
  .dgb-hero-stats { grid-template-columns: 1fr; max-width: 360px; }
  .dgb-property-card figure { aspect-ratio: 1.2 / .82; }
  .dgb-amenities { grid-template-columns: 1fr; }
  .dgb-footer-bottom { flex-direction: column; }
}
