/* VISTALU — Charger après Bootstrap et le CSS global. */
.vistalu-aluminium-page {
  --va-gold:#bc9f73; --va-light:#d6bd98; --va-bronze:#80643c;
  --va-ink:#171615; --va-text:#55514c; --va-ivory:#f8f6f2;
  --va-border:#e7e1d8;
  color:var(--va-text); background:#fff;
}
.vistalu-aluminium-page *, .vistalu-aluminium-page *::before,
.vistalu-aluminium-page *::after { box-sizing:border-box; }
.vistalu-aluminium-page h1,.vistalu-aluminium-page h2,.vistalu-aluminium-page h3 {
  font-family:var(--vs-font-heading,"Manrope",sans-serif); text-wrap:balance;
  color:var(--va-ink); font-weight:600; letter-spacing:-.03em;
}
.vistalu-aluminium-page h2 {font-size:clamp(1.875rem,3vw,3rem);line-height:1.23;margin-bottom:24px;}
.vistalu-aluminium-page p {font-size:.975rem;line-height:1.85;color:inherit;}
.vistalu-aluminium-page strong {font-weight:600;}
.vistalu-aluminium-page > section.py-5 {padding-block:clamp(64px,7vw,104px)!important;}
.vistalu-aluminium-page .row > * {min-width:0;}
.vistalu-aluminium-page .text-center.mb-5 {max-width:850px;margin-inline:auto;margin-bottom:48px!important;}
.vistalu-aluminium-page .text-center > p {max-width:720px;margin-inline:auto;}
.vistalu-aluminium-page .va-tag {display:inline-flex;align-items:center;gap:12px;margin-bottom:20px;color:var(--va-bronze);font-size:.6875rem;font-weight:600;line-height:1.7;letter-spacing:.14em;text-transform:uppercase;}
.vistalu-aluminium-page .va-tag::before {content:"";width:30px;height:1px;background:currentColor;flex-shrink:0;}
.vistalu-aluminium-page .va-btn {display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:52px;padding:15px 25px;border:1px solid var(--va-gold);border-radius:5px;background:var(--va-gold);color:#111010;font-size:.8125rem;font-weight:600;line-height:1.5;text-decoration:none;text-align:center;transition:background .2s,border-color .2s;}
.vistalu-aluminium-page .va-btn:hover {background:var(--va-light);border-color:var(--va-light);color:#111010;}
/* En-tête architectural */
.vistalu-aluminium-page .va-page-header {position:relative;isolation:isolate;overflow:hidden;padding:34px 0 76px;background:linear-gradient(135deg,#0b0b0b 0%,#111010 45%,#191616 100%);color:#d0c9c0;}
.vistalu-aluminium-page .va-page-header::after {content:"";position:absolute;z-index:-1;right:-100px;top:-130px;width:620px;height:620px;border:1px solid rgba(188,159,115,.14);transform:rotate(35deg);pointer-events:none;}
.vistalu-aluminium-page .va-breadcrumb {display:flex;flex-wrap:wrap;gap:12px;margin-bottom:50px;font-size:.75rem;line-height:1.7;}
.vistalu-aluminium-page .va-breadcrumb a {color:var(--va-light);text-decoration:none;}
.vistalu-aluminium-page .va-breadcrumb a:hover {text-decoration:underline;}
.vistalu-aluminium-page .va-page-header .va-tag {color:var(--va-light);}
.vistalu-aluminium-page h1 {max-width:900px;margin:0 0 24px;color:#fff;font-size:clamp(2.5rem,5vw,4.75rem);line-height:1.12;font-weight:500;letter-spacing:-.045em;}
.vistalu-aluminium-page h1 span {color:var(--va-light);}
.vistalu-aluminium-page .va-page-header p {max-width:640px;margin-bottom:28px;}
/* Introduction */
.vistalu-aluminium-page .aluminium-intro .row {--bs-gutter-x:clamp(32px,5vw,72px);}
.vistalu-aluminium-page .aluminium-intro img {display:block;width:100%;height:auto;aspect-ratio:5/6;max-height:660px;object-fit:cover;border-radius:10px!important;border:1px solid var(--va-border);box-shadow:0 20px 55px rgba(17,16,16,.1)!important;}
.vistalu-aluminium-page .aluminium-intro .va-btn {margin-top:12px;}
/* Catalogue : cartes égales et liens en bas */
.vistalu-aluminium-page .services-vistalu {background:var(--va-ivory);border-block:1px solid var(--va-border);}
.vistalu-aluminium-page .services-vistalu .row > div {display:flex;}
.vistalu-aluminium-page .va-service-card {display:flex;flex-direction:column;width:100%;height:100%;padding:0;overflow:hidden;border:1px solid var(--va-border);border-radius:10px;background:#fff;box-shadow:0 5px 20px rgba(17,16,16,.025);transition:border-color .2s,box-shadow .2s;}
.vistalu-aluminium-page .va-service-card > img {display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:0;}
.vistalu-aluminium-page .va-service-card h3 {margin:26px 26px 14px;font-size:1.1875rem;line-height:1.45;}
.vistalu-aluminium-page .va-service-card h3 a {color:var(--va-ink);text-decoration:none;}
.vistalu-aluminium-page .va-service-card h3 a:hover {color:var(--va-bronze);}
.vistalu-aluminium-page .va-service-card p {margin:0 26px 24px;font-size:.875rem;line-height:1.85;}
.vistalu-aluminium-page .va-service-link {align-self:flex-start;margin:auto 26px 26px;padding:10px 0 0;border-top:1px solid var(--va-border);color:var(--va-bronze);font-size:.8125rem;font-weight:600;line-height:1.6;text-decoration:none;}
.vistalu-aluminium-page .va-service-link:hover {color:var(--va-ink);text-decoration:underline;text-underline-offset:4px;}
/* Expertise */
.vistalu-aluminium-page .va-why {background:linear-gradient(135deg,#0b0b0b,#191616);color:#cfc8bf;}
.vistalu-aluminium-page .va-why h2 {color:#fff;}
.vistalu-aluminium-page .va-why .va-tag {color:var(--va-light);}
.vistalu-aluminium-page .va-why .row > div {display:flex;}
.vistalu-aluminium-page .va-feature {width:100%;padding:30px 24px;border:1px solid rgba(188,159,115,.25);border-radius:8px;background:rgba(255,255,255,.025);}
.vistalu-aluminium-page .va-feature > i {display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin-bottom:24px;border:1px solid rgba(188,159,115,.3);border-radius:50%;color:var(--va-light);font-size:1.4rem;}
.vistalu-aluminium-page .va-feature h3 {color:#fff;font-size:1.125rem;line-height:1.45;margin-bottom:14px;}
.vistalu-aluminium-page .va-feature p {margin:0;font-size:.875rem;}
/* FAQ Bootstrap */
.vistalu-aluminium-page .faq-vistalu {background:var(--va-ivory);}
.vistalu-aluminium-page .va-faq {max-width:960px;margin-inline:auto;}
.vistalu-aluminium-page .va-faq .accordion-item {margin-bottom:14px;overflow:hidden;border:1px solid var(--va-border);border-radius:8px;background:#fff;}
.vistalu-aluminium-page .va-faq .accordion-header {margin:0;}
.vistalu-aluminium-page .va-faq .accordion-button {gap:20px;min-height:76px;padding:23px 28px;background:#fff;color:var(--va-ink);font-family:var(--vs-font-heading,"Manrope",sans-serif);font-size:1rem;font-weight:600;line-height:1.6;box-shadow:none;}
.vistalu-aluminium-page .va-faq .accordion-button:not(.collapsed) {background:#faf7f2;box-shadow:inset 3px 0 0 var(--va-gold);}
.vistalu-aluminium-page .va-faq .accordion-button::after {flex-shrink:0;width:18px;height:18px;background-image:linear-gradient(var(--va-bronze),var(--va-bronze)),linear-gradient(var(--va-bronze),var(--va-bronze));background-position:center;background-size:14px 1.5px,1.5px 14px;background-repeat:no-repeat;transform:none;}
.vistalu-aluminium-page .va-faq .accordion-button:not(.collapsed)::after {background-size:14px 1.5px,1.5px 0;}
.vistalu-aluminium-page .va-faq .accordion-body {padding:24px 28px 28px;border-top:1px solid var(--va-border);color:var(--va-text);font-size:.9375rem;line-height:1.9;}
/* Invitation finale */
.vistalu-aluminium-page .va-final {padding-block:56px;background:#fff;}
.vistalu-aluminium-page .va-final-inner {display:flex;align-items:center;justify-content:space-between;gap:32px;padding:40px;border:1px solid var(--va-border);border-radius:10px;background:var(--va-ivory);}
.vistalu-aluminium-page .va-final h2 {max-width:650px;font-size:clamp(1.5rem,2.5vw,2.25rem);margin-bottom:16px;}
.vistalu-aluminium-page .va-final p {margin:0;}
.vistalu-aluminium-page .va-final .va-btn {flex-shrink:0;}
.vistalu-aluminium-page :is(a,button):focus-visible {outline:2px solid var(--va-bronze);outline-offset:4px;}
.vistalu-aluminium-page .va-page-header a:focus-visible {outline-color:var(--va-light);}
.vistalu-aluminium-page .va-faq .accordion-button:focus-visible {outline-offset:-5px;}
@media(hover:hover) and (pointer:fine) {
 .vistalu-aluminium-page .va-service-card:hover {border-color:var(--va-gold);box-shadow:0 16px 40px rgba(17,16,16,.07);}
}
@media(max-width:991.98px) {
 .vistalu-aluminium-page .aluminium-intro img {aspect-ratio:4/3;max-height:520px;}
 .vistalu-aluminium-page .va-final-inner {align-items:flex-start;flex-direction:column;}
}
@media(max-width:575.98px) {
 .vistalu-aluminium-page > :is(section,header) > .container {padding-inline:24px;}
 .vistalu-aluminium-page .va-page-header {padding-bottom:56px;}
 .vistalu-aluminium-page .va-breadcrumb {margin-bottom:36px;}
 .vistalu-aluminium-page .va-tag {font-size:.625rem;letter-spacing:.09em;gap:8px;}
 .vistalu-aluminium-page .va-tag::before {width:20px;}
 .vistalu-aluminium-page .text-center.mb-5 {margin-bottom:32px!important;}
 .vistalu-aluminium-page .aluminium-intro img {aspect-ratio:1;}
 .vistalu-aluminium-page .va-btn {width:100%;}
 .vistalu-aluminium-page .va-faq .accordion-button {padding:20px;font-size:.9375rem;gap:14px;}
 .vistalu-aluminium-page .va-faq .accordion-body {padding:20px;font-size:.875rem;}
 .vistalu-aluminium-page .va-final-inner {padding:26px;}
}
@media(prefers-reduced-motion:reduce) {
 .vistalu-aluminium-page *, .vistalu-aluminium-page *::after {transition:none!important;scroll-behavior:auto!important;}
}


/* =========================================
   VISTALU — CONDITIONS GÉNÉRALES
========================================= */

.vistalu-legal {
  --vl-gold: #bc9f73;
  --vl-gold-dark: #80643c;
  --vl-ink: #191616;
  --vl-text: #55514c;
  --vl-ivory: #f8f6f2;
  --vl-border: #e7e1d8;

  background: var(--vl-ivory);
  color: var(--vl-text);
  font-family: "Inter", sans-serif;
  padding-bottom: clamp(48px, 7vw, 96px);
}

.vistalu-legal,
.vistalu-legal * {
  box-sizing: border-box;
}

.vistalu-legal__hero {
  position: relative;
  padding: clamp(56px, 8vw, 104px) 0;
  overflow: hidden;
  background:
    radial-gradient(
      ellipse at 90% 0%,
      rgba(188, 159, 115, 0.14),
      transparent 60%
    ),
    linear-gradient(135deg, #0b0b0b 0%, #111010 45%, #191616 100%);
}

.vistalu-legal__hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--vl-gold),
    transparent
  );
}

.vistalu-legal__hero-content {
  position: relative;
  max-width: 900px;
}

.vistalu-legal__eyebrow {
  display: inline-block;
  margin-bottom: 20px;
  color: #d6bd98;
  font-size: 0.73rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.vistalu-legal__hero h1 {
  margin: 0 0 24px;
  color: #fff;
  font-family: "Manrope", sans-serif;
  font-size: clamp(2rem, 4.6vw, 3.8rem);
  font-weight: 600;
  line-height: 1.16;
  letter-spacing: -0.035em;
  overflow-wrap: break-word;
}

.vistalu-legal__hero p {
  max-width: 760px;
  margin: 0;
  color: #d0cbc4;
  font-size: clamp(0.98rem, 1.3vw, 1.08rem);
  line-height: 1.85;
}

.vistalu-legal__date {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 28px;
  padding: 10px 16px;
  border: 1px solid rgba(188, 159, 115, 0.3);
  border-radius: 8px;
  color: #e4d5bd;
  font-size: 0.8rem;
}

.vistalu-legal__layout {
  display: grid;
  grid-template-columns: 270px minmax(0, 1fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: start;
  padding-top: clamp(36px, 5vw, 64px);
}

.vistalu-legal__sidebar {
  position: sticky;
  top: 110px;
  padding: 25px 20px;
  border: 1px solid var(--vl-border);
  border-radius: 16px;
  background: #fff;
}

.vistalu-legal__sidebar h2 {
  margin: 0 0 18px;
  color: var(--vl-ink);
  font-family: "Manrope", sans-serif;
  font-size: 1rem;
  font-weight: 700;
}

.vistalu-legal__nav {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.vistalu-legal__nav a {
  display: block;
  padding: 9px 10px;
  border-radius: 6px;
  color: var(--vl-text);
  font-size: 0.82rem;
  line-height: 1.5;
  text-decoration: none;
  transition: background-color 0.2s, color 0.2s;
}

.vistalu-legal__nav a:hover,
.vistalu-legal__nav a:focus-visible {
  background: var(--vl-ivory);
  color: var(--vl-gold-dark);
}

.vistalu-legal__content {
  min-width: 0;
  padding: clamp(24px, 4vw, 48px);
  border: 1px solid var(--vl-border);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 16px 45px rgba(25, 22, 22, 0.035);
}

.vistalu-legal__article {
  padding-bottom: 30px;
  margin-bottom: 30px;
  border-bottom: 1px solid var(--vl-border);
  scroll-margin-top: 120px;
}

.vistalu-legal__article:last-of-type {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}

.vistalu-legal__article h2 {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin: 0 0 17px;
  color: var(--vl-ink);
  font-family: "Manrope", sans-serif;
  font-size: clamp(1.12rem, 1.7vw, 1.4rem);
  font-weight: 650;
  line-height: 1.45;
  letter-spacing: -0.02em;
}

.vistalu-legal__number {
  flex-shrink: 0;
  color: var(--vl-gold-dark);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.vistalu-legal__article p {
  margin: 0 0 14px;
  color: var(--vl-text);
  font-size: 0.95rem;
  line-height: 1.9;
  overflow-wrap: break-word;
}

.vistalu-legal__article p:last-child {
  margin-bottom: 0;
}

.vistalu-legal__article strong {
  color: var(--vl-ink);
  font-weight: 600;
}

.vistalu-legal__contact {
  margin-top: 36px;
  padding: 24px;
  border: 1px solid var(--vl-border);
  border-left: 3px solid var(--vl-gold);
  border-radius: 10px;
  background: var(--vl-ivory);
}

.vistalu-legal__contact p {
  margin: 0 0 12px;
  color: var(--vl-ink);
  font-size: 0.95rem;
  line-height: 1.7;
}

.vistalu-legal__contact a {
  color: var(--vl-gold-dark);
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.vistalu-legal a:focus-visible {
  outline: 2px solid var(--vl-gold-dark);
  outline-offset: 4px;
}

@media (max-width: 991.98px) {
  .vistalu-legal__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .vistalu-legal__sidebar {
    position: static;
  }

  .vistalu-legal__nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 16px;
  }
}

@media (max-width: 575.98px) {
  .vistalu-legal__nav {
    grid-template-columns: minmax(0, 1fr);
  }

  .vistalu-legal__content {
    border-radius: 14px;
    padding: 24px 18px;
  }

  .vistalu-legal__article h2 {
    gap: 10px;
  }

  .vistalu-legal__article p {
    font-size: 0.92rem;
  }

  .vistalu-legal__contact {
    padding: 20px 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .vistalu-legal *,
  .vistalu-legal *::before,
  .vistalu-legal *::after {
    transition: none !important;
  }
}

.vistalu-legal__article ul {
  margin: 16px 0;
  padding-left: 22px;
}

.vistalu-legal__article li {
  padding-left: 5px;
  margin-bottom: 10px;
  color: var(--vl-text);
  font-size: 0.95rem;
  line-height: 1.8;
}

.vistalu-legal__article li::marker {
  color: var(--vl-gold-dark);
}

.vistalu-legal__article a {
  color: var(--vl-gold-dark);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.vistalu-legal__article a:hover {
  color: var(--vl-ink);
}

@media (max-width: 575.98px) {
  .vistalu-legal__article li {
    font-size: 0.92rem;
  }
}

/* =========================================
   VISTALU — PAGE CONTACT
========================================= */

.vistalu-contact {
  --vc-gold: #bc9f73;
  --vc-gold-dark: #80643c;
  --vc-ink: #191616;
  --vc-text: #55514c;
  --vc-ivory: #f8f6f2;
  --vc-border: #e7e1d8;

  color: var(--vc-text);
  background: var(--vc-ivory);
  font-family: "Inter", sans-serif;
}

.vistalu-contact,
.vistalu-contact * {
  box-sizing: border-box;
}

/* En-tête */

.vistalu-contact__hero {
  position: relative;
  padding: clamp(56px, 8vw, 100px) 0;
  background:
    radial-gradient(
      ellipse at 90% 10%,
      rgba(188, 159, 115, 0.15),
      transparent 60%
    ),
    linear-gradient(135deg, #0b0b0b 0%, #111010 45%, #191616 100%);
}

.vistalu-contact__hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--vc-gold),
    transparent
  );
}

.vistalu-contact__eyebrow {
  display: inline-block;
  margin-bottom: 18px;
  color: var(--vc-gold-dark);
  font-size: 0.73rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.vistalu-contact__hero .vistalu-contact__eyebrow,
.vistalu-contact__info .vistalu-contact__eyebrow {
  color: #d6bd98;
}

.vistalu-contact__hero h1 {
  max-width: 850px;
  margin: 0 0 22px;
  color: #fff;
  font-family: "Manrope", sans-serif;
  font-size: clamp(2.2rem, 5vw, 4rem);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.04em;
}

.vistalu-contact__hero p {
  max-width: 660px;
  margin: 0;
  color: #d0cbc4;
  font-size: 1.02rem;
  line-height: 1.85;
}

/* Disposition */

.vistalu-contact__section {
  padding: clamp(36px, 6vw, 80px) 0;
}

.vistalu-contact__layout {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 28px;
  align-items: stretch;
}

.vistalu-contact__info,
.vistalu-contact__form-card {
  min-width: 0;
  padding: clamp(25px, 3.5vw, 44px);
  border-radius: 20px;
}

.vistalu-contact h2 {
  margin: 0 0 16px;
  font-family: "Manrope", sans-serif;
  font-size: clamp(1.45rem, 2.3vw, 1.9rem);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -0.025em;
}

/* Coordonnées */

.vistalu-contact__info {
  display: flex;
  flex-direction: column;
  color: #d0cbc4;
  background:
    radial-gradient(
      ellipse at 0% 100%,
      rgba(188, 159, 115, 0.13),
      transparent 65%
    ),
    linear-gradient(135deg, #0b0b0b 0%, #111010 45%, #191616 100%);
  border: 1px solid #2d2924;
}

.vistalu-contact__info h2 {
  color: #fff;
}

.vistalu-contact__intro {
  margin: 0;
  font-size: 0.94rem;
  line-height: 1.85;
}

.vistalu-contact__details {
  display: grid;
  gap: 24px;
  margin: 32px 0;
  font-style: normal;
}

.vistalu-contact__detail {
  display: flex;
  align-items: flex-start;
  gap: 15px;
}

.vistalu-contact__icon {
  display: grid;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid rgba(188, 159, 115, 0.3);
  border-radius: 12px;
  color: #d6bd98;
  background: rgba(188, 159, 115, 0.07);
  font-size: 1.05rem;
}

.vistalu-contact__detail-content {
  min-width: 0;
}

.vistalu-contact__detail-label {
  display: block;
  margin-bottom: 5px;
  color: #b8afa3;
  font-size: 0.75rem;
  line-height: 1.5;
}

.vistalu-contact__detail a,
.vistalu-contact__detail-value {
  color: #f6f2ec;
  font-size: 0.97rem;
  font-weight: 500;
  line-height: 1.6;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.vistalu-contact__detail a:hover {
  color: #d6bd98;
}

.vistalu-contact__whatsapp {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  min-height: 50px;
  padding: 13px 18px;
  border: 1px solid rgba(188, 159, 115, 0.5);
  border-radius: 9px;
  color: #e4d5bd;
  font-size: 0.9rem;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.2s, color 0.2s;
}

.vistalu-contact__whatsapp:hover {
  color: #191616;
  background: var(--vc-gold);
}

.vistalu-contact__social {
  margin-top: auto;
  padding-top: 30px;
}

.vistalu-contact__social p {
  margin: 0 0 12px;
  color: #b8afa3;
  font-size: 0.8rem;
}

.vistalu-contact__social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.vistalu-contact__social-links a {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid #423a30;
  border-radius: 50%;
  color: #d6bd98;
  text-decoration: none;
  transition: background-color 0.2s, color 0.2s;
}

.vistalu-contact__social-links a:hover {
  color: #191616;
  background: var(--vc-gold);
}

/* Formulaire */

.vistalu-contact__form-card {
  border: 1px solid var(--vc-border);
  background: #fff;
  box-shadow: 0 16px 45px rgba(25, 22, 22, 0.04);
}

.vistalu-contact__form-card h2 {
  color: var(--vc-ink);
}

.vistalu-contact__form-description {
  margin: 0 0 28px;
  color: var(--vc-text);
  font-size: 0.94rem;
  line-height: 1.8;
}

.vistalu-contact__form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.vistalu-contact__field {
  min-width: 0;
}

.vistalu-contact__field--full {
  grid-column: 1 / -1;
}

.vistalu-contact__field label {
  display: block;
  margin-bottom: 9px;
  color: var(--vc-ink);
  font-size: 0.84rem;
  font-weight: 600;
}

.vistalu-contact__field label span {
  color: var(--vc-gold-dark);
}

.vistalu-contact__field input,
.vistalu-contact__field textarea {
  display: block;
  width: 100%;
  min-height: 52px;
  padding: 13px 15px;
  border: 1px solid var(--vc-border);
  border-radius: 9px;
  outline: none;
  background: #fcfbf9;
  color: var(--vc-ink);
  font: inherit;
  font-size: 0.94rem;
  line-height: 1.6;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.vistalu-contact__field textarea {
  min-height: 165px;
  resize: vertical;
}

.vistalu-contact__field input::placeholder,
.vistalu-contact__field textarea::placeholder {
  color: #817b72;
  opacity: 1;
}

.vistalu-contact__field input:focus,
.vistalu-contact__field textarea:focus {
  border-color: var(--vc-gold-dark);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(188, 159, 115, 0.17);
}

.vistalu-contact__hint {
  margin: 9px 0 0;
  color: #6c665e;
  font-size: 0.77rem;
  line-height: 1.7;
}

.vistalu-contact__privacy {
  margin: 22px 0;
  color: #6c665e;
  font-size: 0.78rem;
  line-height: 1.8;
}

.vistalu-contact__privacy a {
  color: var(--vc-gold-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.vistalu-contact__submit {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 54px;
  padding: 15px 20px;
  border: 1px solid var(--vc-gold);
  border-radius: 9px;
  background: var(--vc-gold);
  color: #191616;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.2s, border-color 0.2s;
}

.vistalu-contact__submit:hover {
  background: #d0b58d;
  border-color: #d0b58d;
}

.vistalu-contact a:focus-visible,
.vistalu-contact button:focus-visible {
  outline: 2px solid var(--vc-gold-dark);
  outline-offset: 4px;
}

.vistalu-contact__info a:focus-visible {
  outline-color: #d6bd98;
}

/* Responsive */

@media (max-width: 991.98px) {
  .vistalu-contact__layout {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 575.98px) {
  .vistalu-contact__form-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .vistalu-contact__info,
  .vistalu-contact__form-card {
    padding: 26px 20px;
    border-radius: 15px;
  }

  .vistalu-contact__detail {
    gap: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .vistalu-contact *,
  .vistalu-contact *::before,
  .vistalu-contact *::after {
    transition: none !important;
  }
}
