:root {
      --black: #1d1d1b;
      --text: #1d1d1b;
      --muted: #6f6f69;
      --line: rgba(29,29,27,.13);
      --soft-line: rgba(29,29,27,.08);
      --gold: #b99769;
      --gold-soft: #eadbc7;
      --cream: #ffffff;
      --warm: #faf8f4;
      --max: 1320px;
      --wide: 1500px;
      --space: clamp(68px, 8vw, 126px);
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      color: var(--text);
      background: var(--cream);
      font-family: Inter, Arial, sans-serif;
      line-height: 1.55;
      text-rendering: optimizeLegibility;
    }

    img { max-width: 100%; display: block; }
    a { color: inherit; text-decoration: none; }
    p { margin: 0; }
    h1, h2, h3, h4 {
      margin: 0;
      font-family: Georgia, 'Times New Roman', serif;
      font-weight: 400;
      color: var(--black);
      line-height: 1.05;
    }
    h1 { font-size: clamp(54px, 6vw, 92px); letter-spacing: -.035em; }
    h2 { font-size: clamp(40px, 4.4vw, 68px); letter-spacing: -.035em; }
    h3 { font-size: clamp(26px, 2.4vw, 38px); letter-spacing: -.02em; }

    .eyebrow {
      color: var(--gold);
      font-size: 12px;
      letter-spacing: .22em;
      text-transform: uppercase;
      font-weight: 700;
      margin-bottom: 18px;
    }

    .site-header {
      position: sticky;
      top: 0;
      z-index: 50;
      height: 82px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 clamp(24px, 4vw, 58px);
      background: rgba(255,255,255,.94);
      backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--soft-line);
    }

    .brand {
      display: inline-flex;
      align-items: center;
      flex: 0 0 auto;
      line-height: 0;
    }

    nav {
      display: flex;
      align-items: center;
      gap: clamp(18px, 3vw, 44px);
      font-size: 13px;
      letter-spacing: .02em;
    }
    nav a { color: rgba(29,29,27,.78); transition: color .2s ease; }
    nav a:hover { color: var(--black); }

    .nav-cta {
      min-height: 44px;
      border: 1px solid rgba(29,29,27,.35);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0 22px;
      font-weight: 600;
      color: var(--black);
      background: #fff;
    }

    .section {
      width: min(var(--max), calc(100vw - 48px));
      margin: 0 auto;
    }
    .section-wide {
      width: min(var(--wide), calc(100vw - 24px));
      margin: 0 auto;
    }
    .section-space { height: var(--space); }

    .btn {
      min-height: 52px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0 28px;
      border: 1px solid var(--black);
      font-size: 12px;
      font-weight: 700;
      letter-spacing: .08em;
      text-transform: uppercase;
      transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
    }
    .btn:hover { transform: translateY(-1px); box-shadow: 0 14px 26px rgba(0,0,0,.08); }
    .btn.primary { background: var(--black); color: #fff; }
    .btn.secondary { background: #fff; color: var(--black); border-color: rgba(29,29,27,.26); }

    /* HERO */
    .hero {
      width: 100%;
      border-bottom: 1px solid var(--soft-line);
      background: #fff;
    }
    .hero-grid {
      display: grid;
      grid-template-columns: minmax(420px, 44vw) 1fr;
      min-height: calc(100vh - 82px);
    }
    .hero-main-img {
      min-height: 720px;
      background: url('../images/hero-entrance.jpg') center / cover no-repeat;
      border-right: 1px solid var(--soft-line);
    }
    .hero-editorial {
      display: grid;
      grid-template-rows: 42% 58%;
      min-width: 0;
    }
    .hero-strip {
      display: grid;
      grid-template-columns: .8fr 1.1fr 1fr;
      gap: 12px;
      padding: 0 0 12px 12px;
      min-height: 330px;
    }
    .hero-strip .img {
      background-size: cover;
      background-position: center;
    }
    .hero-strip .img:nth-child(1) { background-image: url('../images/tower.jpg'); }
    .hero-strip .img:nth-child(2) { background-image: url('../images/hero-molard.jpg'); }
    .hero-strip .img:nth-child(3) { background-image: url('../images/hero-passage-retouche.png'); background-position: center; }

    .hero-copy {
      padding: clamp(46px, 5vw, 74px) clamp(42px, 5vw, 86px) 54px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      background: linear-gradient(180deg, #fff 0%, #fbfaf7 100%);
    }
    .hero-copy .kicker {
      color: var(--muted);
      font-size: 13px;
      letter-spacing: .35em;
      text-transform: uppercase;
      font-weight: 700;
      margin-bottom: 18px;
    }
    .hero-copy h1 { margin-bottom: 14px; }
    .hero-copy .lead {
      font-family: Georgia, 'Times New Roman', serif;
      font-size: clamp(22px, 2.1vw, 34px);
      line-height: 1.18;
      margin-bottom: 22px;
      color: rgba(29,29,27,.88);
    }
    .hero-copy .body {
      max-width: 650px;
      color: rgba(29,29,27,.74);
      font-size: 16px;
      line-height: 1.75;
    }
    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 18px;
      margin-top: 34px;
    }
    .hero-tags {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
      margin-top: 26px;
    }
    .hero-tag {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      min-height: 38px;
      padding: 0 16px;
      border: 1px solid var(--soft-line);
      background: rgba(255,255,255,.72);
      color: rgba(29,29,27,.72);
      font-size: 12px;
    }
    .hero-tag svg { width: 15px; height: 15px; stroke: var(--gold); }

    /* INTRO COLUMNS */
    .intro-grid {
      display: grid;
      grid-template-columns: .9fr 1.35fr;
      gap: clamp(54px, 7vw, 112px);
      align-items: start;
      padding: clamp(56px, 7vw, 96px) 0;
      border-top: 1px solid var(--soft-line);
      border-bottom: 1px solid var(--soft-line);
    }
    .intro-grid p {
      max-width: 720px;
      font-size: 17px;
      line-height: 1.85;
      color: rgba(29,29,27,.76);
    }

    /* ATOUTS */
    .advantages {
      background: linear-gradient(180deg, #fff 0%, #fbfaf7 100%);
      padding: clamp(70px, 8vw, 118px) 0;
      border-top: 1px solid var(--soft-line);
      border-bottom: 1px solid var(--soft-line);
    }
    .advantages-layout {
      display: grid;
      grid-template-columns: .42fr .58fr;
      gap: clamp(42px, 6vw, 82px);
      align-items: start;
    }
    .advantages-copy p {
      margin-top: 26px;
      max-width: 500px;
      font-size: 17px;
      line-height: 1.85;
      color: rgba(29,29,27,.76);
    }
    .small-rule {
      width: 58px;
      height: 1px;
      background: var(--gold);
      margin-top: 34px;
    }
    .advantage-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 18px;
    }
    .adv-card {
      min-height: 260px;
      padding: 38px 34px;
      background: rgba(255,255,255,.72);
      border: 1px solid rgba(185,151,105,.28);
      box-shadow: 0 18px 46px rgba(0,0,0,.035);
      transition: transform .2s ease, box-shadow .2s ease;
    }
    .adv-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 22px 52px rgba(0,0,0,.055);
    }
    .adv-card svg {
      width: 64px;
      height: 64px;
      stroke: var(--gold);
      fill: none;
      stroke-width: 1.35;
      margin-bottom: 28px;
    }
    .adv-card h3 {
      font-size: 28px;
      margin-bottom: 12px;
    }
    .adv-card .mini-rule {
      width: 26px;
      height: 1px;
      background: var(--gold);
      margin: 0 0 18px;
    }
    .adv-card p {
      color: rgba(29,29,27,.72);
      line-height: 1.68;
      font-size: 14.5px;
    }

    /* USAGES */
    .usage-layout {
      display: grid;
      grid-template-columns: .32fr .68fr;
      gap: clamp(42px, 6vw, 80px);
      align-items: start;
    }
    .usage-copy {
      position: sticky;
      top: 116px;
    }
    .usage-copy p {
      margin-top: 28px;
      max-width: 410px;
      color: rgba(29,29,27,.76);
      line-height: 1.82;
      font-size: 16px;
    }
    .usage-list {
      display: grid;
      gap: 18px;
    }
    .usage-item {
      display: grid;
      grid-template-columns: 1fr .95fr;
      background: #fff;
      border: 1px solid var(--soft-line);
      box-shadow: 0 18px 46px rgba(0,0,0,.035);
      min-height: 310px;
    }
    .usage-visual {
      min-height: 310px;
      background-size: cover;
      background-position: center;
    }
    .usage-visual.team { background-image: url('../images/work-team-stage.jpg'); }
    .usage-visual.meet { background-image: url('../images/meeting-stage.jpg'); }
    .usage-visual.identity { background-image: url('../images/identity-stage.jpg'); }

    .usage-info {
      padding: 36px 38px;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .usage-number {
      color: var(--gold);
      font-family: Georgia, 'Times New Roman', serif;
      font-size: 30px;
      margin-bottom: 12px;
    }
    .usage-info h3 {
      font-size: clamp(28px, 2.8vw, 40px);
      margin-bottom: 16px;
    }
    .usage-info p {
      color: rgba(29,29,27,.72);
      line-height: 1.7;
    }
    .ideal {
      margin-top: 20px;
      padding-top: 18px;
      border-top: 1px solid var(--soft-line);
      font-size: 14px;
      color: rgba(29,29,27,.74);
    }
    .usage-thumbs {
      margin-top: 24px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
    }
    .usage-thumbs div {
      height: 88px;
      background-size: cover;
      background-position: center;
      border: 1px solid var(--soft-line);
    }

    /* GALLERY */
    .gallery-section {
      border-top: 1px solid var(--soft-line);
      border-bottom: 1px solid var(--soft-line);
      padding: clamp(58px, 7vw, 88px) 0;
    }
    .gallery-layout {
      display: grid;
      grid-template-columns: .32fr .68fr;
      gap: clamp(42px, 6vw, 80px);
      align-items: start;
    }
    .gallery-copy p {
      margin-top: 26px;
      color: rgba(29,29,27,.76);
      line-height: 1.82;
      max-width: 420px;
    }
    .gallery-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 12px;
    }
    .gallery-card {
      display: grid;
      gap: 9px;
    }
    .gallery-img {
      aspect-ratio: 1.65 / 1;
      background-size: cover;
      background-position: center;
      border: 1px solid var(--soft-line);
    }
    .gallery-card span {
      font-family: Georgia, 'Times New Roman', serif;
      text-align: center;
      font-size: 15px;
      color: rgba(29,29,27,.86);
    }

    /* AVAILABILITY */
    .availability-layout {
      display: grid;
      grid-template-columns: .28fr .72fr;
      gap: clamp(36px, 5vw, 78px);
      align-items: start;
    }
    .availability-copy p {
      margin-top: 24px;
      max-width: 420px;
      color: rgba(29,29,27,.76);
      line-height: 1.82;
    }
    .availability-table {
      overflow-x: auto;
      border: 1px solid var(--soft-line);
      background: #fff;
      box-shadow: 0 18px 48px rgba(0,0,0,.035);
    }
    table {
      width: 100%;
      border-collapse: collapse;
      font-size: 14px;
    }
    th, td {
      padding: 17px 14px;
      border-bottom: 1px solid var(--soft-line);
      border-right: 1px solid var(--soft-line);
      text-align: left;
      vertical-align: top;
    }
    th:last-child, td:last-child { border-right: 0; }
    tr:last-child td { border-bottom: 0; }
    th {
      color: rgba(29,29,27,.6);
      font-size: 11px;
      letter-spacing: .09em;
      text-transform: uppercase;
      font-weight: 700;
      background: #fbfaf7;
    }
    td {
      color: rgba(29,29,27,.82);
      line-height: 1.45;
    }
    .doc-link {
      color: var(--black);
      font-weight: 700;
      font-size: 12px;
      letter-spacing: .08em;
      text-transform: uppercase;
      border-bottom: 1px solid rgba(29,29,27,.3);
      margin-right: 10px;
      white-space: nowrap;
    }

    /* VISIT */
    .visit {
      background: linear-gradient(180deg, #fff 0%, #fbfaf7 100%);
      padding: clamp(58px, 7vw, 98px) 0;
      border-top: 1px solid var(--soft-line);
    }
    .visit-layout {
      display: grid;
      grid-template-columns: .42fr .58fr;
      gap: clamp(42px, 6vw, 80px);
      align-items: start;
    }
    .visit-copy p {
      margin-top: 24px;
      max-width: 560px;
      color: rgba(29,29,27,.76);
      line-height: 1.82;
    }
    .visit-actions { margin-top: 30px; }
    .broker-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 24px;
    }
    .broker-card {
      background: #fff;
      border: 1px solid rgba(185,151,105,.24);
      box-shadow: 0 18px 46px rgba(0,0,0,.035);
      padding: 38px 34px;
      min-height: 260px;
    }
    .broker-logo {
      height: 74px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 24px;
      padding-bottom: 20px;
      border-bottom: 1px solid var(--soft-line);
    }
    .broker-logo img {
      max-height: 58px;
      max-width: 260px;
      object-fit: contain;
    }
    .broker-name {
      font-family: Georgia, 'Times New Roman', serif;
      font-size: 23px;
      margin-bottom: 16px;
    }
    .broker-line {
      display: grid;
      grid-template-columns: 20px 1fr;
      gap: 10px;
      color: rgba(29,29,27,.74);
      margin-top: 9px;
      font-size: 14px;
    }
    .broker-line svg { width: 15px; height: 15px; stroke: var(--gold); }

    footer {
      min-height: 58px;
      border-top: 1px solid var(--soft-line);
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 24px;
      padding: 18px clamp(24px, 4vw, 58px);
      color: rgba(29,29,27,.6);
      font-size: 12px;
    }

    @media (max-width: 1120px) {
      .hero-grid,
      .advantages-layout,
      .usage-layout,
      .gallery-layout,
      .availability-layout,
      .visit-layout {
        grid-template-columns: 1fr;
      }
      .hero-main-img { min-height: 520px; border-right: 0; }
      .hero-editorial { grid-template-rows: auto auto; }
      .hero-strip { min-height: 260px; padding-left: 0; }
      .usage-copy { position: static; }
      .advantage-grid { grid-template-columns: repeat(2, 1fr); }
      .gallery-grid { grid-template-columns: repeat(2, 1fr); }
    }

    @media (max-width: 760px) {
      .site-header nav { display: none; }
      .brand { font-size: 24px; }
      .hero-strip { grid-template-columns: 1fr; }
      .hero-strip .img { min-height: 220px; }
      .hero-copy { padding: 44px 24px; }
      h1 { font-size: 50px; }
      h2 { font-size: 38px; }
      .intro-grid,
      .usage-item,
      .visit-layout {
        grid-template-columns: 1fr;
      }
      .advantage-grid,
      .gallery-grid,
      .broker-grid {
        grid-template-columns: 1fr;
      }
      footer { flex-direction: column; align-items: flex-start; }
    }
  
    .intro-grid p + p {
      margin-top: 24px;
    }

    .intro-grid p {
      font-size: 18px;
      line-height: 1.9;
    }

  
    .advantages-copy p {
      font-size: 18px;
      line-height: 1.9;
    }

    .advantages-copy p + p {
      margin-top: 24px;
    }

  
    .availability-layout-schema {
      display: grid;
      grid-template-columns: minmax(360px, 44%) minmax(520px, 56%);
      gap: clamp(30px, 4vw, 60px);
      align-items: start;
    }

    .availability-layout-schema .availability-copy h2 {
      margin-bottom: 26px;
    }

    .schema-card {
      background: #fff;
      border: 1px solid var(--soft-line);
      box-shadow: 0 18px 48px rgba(0,0,0,.035);
      padding: 26px;
    }

    .schema-card img {
      width: 100%;
      height: auto;
      object-fit: contain;
    }

    .availability-table-commerciale {
      box-shadow: none;
      border: 1px solid rgba(29,29,27,.14);
      overflow: hidden;
    }

    .availability-table-commerciale table {
      font-size: 14px;
    }

    .availability-table-commerciale td,
    .availability-table-commerciale th {
      padding: 14px 12px;
      border-right: 1px solid rgba(29,29,27,.14);
      border-bottom: 1px solid rgba(29,29,27,.14);
      background: #fff;
      color: rgba(29,29,27,.82);
      font-weight: 400;
    }

    .availability-table-commerciale tr:last-child td {
      border-bottom: 0;
    }

    .availability-table-commerciale td:last-child,
    .availability-table-commerciale th:last-child {
      border-right: 0;
    }

    .availability-table-commerciale .group-label {
      width: 112px;
      min-width: 112px;
      text-align: center;
      vertical-align: top;
      font-size: 12px;
      letter-spacing: .08em;
      line-height: 1.4;
      text-transform: uppercase;
      color: var(--black);
      background: #f5f5f3;
      font-weight: 700;
    }

    .availability-table-commerciale tr.group-start td,
    .availability-table-commerciale tr.group-start th {
      border-top: 1px solid rgba(29,29,27,.14);
    }

    .availability-table-commerciale .doc-link {
      font-size: 13px;
      font-weight: 400;
      letter-spacing: 0;
      text-transform: none;
      border-bottom: 0;
    }

    @media (max-width: 1100px) {
      .availability-layout-schema {
        grid-template-columns: 1fr;
      }
    }

  
    .availability-layout-schema {
      display: grid;
      grid-template-columns: minmax(360px, 42%) minmax(520px, 58%);
      gap: clamp(30px, 4vw, 60px);
      align-items: start;
    }

    .availability-left {
      display: flex;
      flex-direction: column;
      gap: 24px;
    }

    .availability-copy-left {
      margin-bottom: 0;
    }

    .availability-copy-left h2 {
      margin-bottom: 24px;
    }

    .availability-copy-left p {
      font-size: 16px;
      line-height: 1.85;
      color: rgba(29,29,27,.76);
      max-width: 560px;
    }

    .availability-copy-left p + p {
      margin-top: 18px;
    }

    .availability-actions {
      margin-top: 24px;
    }

    .availability-actions .btn {
      min-height: 50px;
      padding: 0 26px;
    }

    .schema-card {
      background: #fff;
      border: 1px solid var(--soft-line);
      box-shadow: 0 18px 48px rgba(0,0,0,.035);
      padding: 26px;
    }

    .schema-card img {
      width: 100%;
      height: auto;
      object-fit: contain;
    }

    @media (max-width: 1100px) {
      .availability-layout-schema {
        grid-template-columns: 1fr;
      }
    }

  
    .plan-modal {
      position: fixed;
      inset: 0;
      z-index: 200;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 24px;
    }

    .plan-modal.is-open {
      display: flex;
    }

    .plan-modal-backdrop {
      position: absolute;
      inset: 0;
      background: rgba(29,29,27,.42);
      backdrop-filter: blur(6px);
    }

    .plan-modal-dialog {
      position: relative;
      width: min(620px, 100%);
      background: #fff;
      border: 1px solid rgba(29,29,27,.12);
      box-shadow: 0 28px 80px rgba(0,0,0,.18);
      padding: clamp(28px, 4vw, 46px);
    }

    .plan-modal-close {
      position: absolute;
      top: 16px;
      right: 18px;
      width: 34px;
      height: 34px;
      border: 0;
      background: transparent;
      color: var(--black);
      font-size: 28px;
      line-height: 1;
      cursor: pointer;
    }

    .plan-modal-content h2 {
      margin-bottom: 18px;
    }

    .plan-modal-intro {
      color: rgba(29,29,27,.72);
      font-size: 16px;
      line-height: 1.75;
      margin-bottom: 26px;
      max-width: 500px;
    }

    .plan-form {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }

    .plan-form label {
      display: grid;
      gap: 8px;
      color: rgba(29,29,27,.68);
      font-size: 12px;
      letter-spacing: .08em;
      text-transform: uppercase;
      font-weight: 700;
    }

    .plan-form input {
      min-height: 48px;
      border: 1px solid rgba(29,29,27,.16);
      background: #fff;
      padding: 0 14px;
      font: inherit;
      color: var(--text);
      outline: none;
    }

    .plan-form input:focus {
      border-color: rgba(29,29,27,.38);
      box-shadow: 0 0 0 3px rgba(29,29,27,.04);
    }

    .plan-form button {
      grid-column: 1 / -1;
      width: fit-content;
      margin-top: 10px;
    }

    .plan-success {
      margin-top: 26px;
      padding-top: 24px;
      border-top: 1px solid rgba(29,29,27,.1);
    }

    .plan-success p {
      margin-bottom: 18px;
      color: rgba(29,29,27,.76);
      line-height: 1.7;
    }

    body.modal-open {
      overflow: hidden;
    }

    .acf-edit-hint {
      position: relative !important;
      outline: 2px dashed rgba(185, 151, 105, .95);
      outline-offset: 5px;
    }

    .acf-edit-hint::before {
      content: attr(data-acf-field);
      position: absolute;
      left: -2px;
      top: -28px;
      z-index: 80;
      display: inline-flex;
      align-items: center;
      min-height: 22px;
      max-width: min(360px, calc(100vw - 32px));
      padding: 0 8px;
      background: #b99769;
      color: #fff;
      font-family: Arial, sans-serif;
      font-size: 11px;
      font-weight: 700;
      line-height: 1.2;
      letter-spacing: 0;
      white-space: nowrap;
      box-shadow: 0 8px 18px rgba(0,0,0,.14);
      pointer-events: none;
    }

    span.acf-edit-hint,
    a.acf-edit-hint,
    h1.acf-edit-hint,
    h2.acf-edit-hint,
    p.acf-edit-hint {
      display: inline-block;
    }

    .site-header .acf-edit-hint::before,
    .hero-strip .acf-edit-hint::before,
    .hero-main-img.acf-edit-hint::before {
      top: 8px;
      left: 8px;
    }

    @media (max-width: 620px) {
      .plan-form {
        grid-template-columns: 1fr;
      }

      .plan-modal-dialog {
        padding: 28px 22px;
      }
    }

  
    .visit-modal {
      position: fixed;
      inset: 0;
      z-index: 210;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 24px;
    }

    .visit-modal.is-open {
      display: flex;
    }

    .visit-modal-backdrop {
      position: absolute;
      inset: 0;
      background: rgba(29,29,27,.42);
      backdrop-filter: blur(6px);
    }

    .visit-modal-dialog {
      position: relative;
      width: min(680px, 100%);
      background: #fff;
      border: 1px solid rgba(29,29,27,.12);
      box-shadow: 0 28px 80px rgba(0,0,0,.18);
      padding: clamp(28px, 4vw, 46px);
    }

    .visit-modal-close {
      position: absolute;
      top: 16px;
      right: 18px;
      width: 34px;
      height: 34px;
      border: 0;
      background: transparent;
      color: var(--black);
      font-size: 28px;
      line-height: 1;
      cursor: pointer;
    }

    .visit-modal-content h2 {
      margin-bottom: 18px;
    }

    .visit-modal-intro {
      color: rgba(29,29,27,.72);
      font-size: 16px;
      line-height: 1.75;
      margin-bottom: 26px;
      max-width: 560px;
    }

    .visit-form {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }

    .visit-form label {
      display: grid;
      gap: 8px;
      color: rgba(29,29,27,.68);
      font-size: 12px;
      letter-spacing: .08em;
      text-transform: uppercase;
      font-weight: 700;
    }

    .visit-form input,
    .visit-form textarea {
      min-height: 48px;
      border: 1px solid rgba(29,29,27,.16);
      background: #fff;
      padding: 12px 14px;
      font: inherit;
      color: var(--text);
      outline: none;
      resize: vertical;
    }

    .visit-form textarea {
      min-height: 116px;
    }

    .visit-form input:focus,
    .visit-form textarea:focus {
      border-color: rgba(29,29,27,.38);
      box-shadow: 0 0 0 3px rgba(29,29,27,.04);
    }

    .visit-form-full,
    .visit-form button {
      grid-column: 1 / -1;
    }

    .visit-form button {
      width: fit-content;
      margin-top: 10px;
    }

    .visit-success {
      margin-top: 26px;
      padding-top: 24px;
      border-top: 1px solid rgba(29,29,27,.1);
    }

    .visit-success p {
      margin-bottom: 18px;
      color: rgba(29,29,27,.76);
      line-height: 1.7;
    }

    .visit-routing-note {
      margin-top: 16px;
      font-size: 13px;
      color: rgba(29,29,27,.58);
    }

    @media (max-width: 620px) {
      .visit-form {
        grid-template-columns: 1fr;
      }

      .visit-modal-dialog {
        padding: 28px 22px;
      }
    }

  
    .brand {
      display: inline-flex;
      align-items: center;
      flex: 0 0 auto;
      line-height: 0;
    }

    .brand img {
      display: block;
      height: 46px;
      width: auto;
      max-width: min(240px, 32vw);
      object-fit: contain;
    }

    @media (max-width: 620px) {
      .brand img {
        height: 38px;
        max-width: 180px;
      }
    }

  
    .location-section {
      padding: clamp(62px, 7vw, 104px) 0;
      border-bottom: 1px solid var(--soft-line);
      background: #fff;
    }

    .location-layout {
      display: flex;
      flex-direction: row;
      gap: clamp(34px, 5vw, 72px);
      align-items: stretch;
    }

    .location-left {
      flex: 0 0 46%;
      display: flex;
      flex-direction: column;
      gap: 24px;
      min-width: 0;
    }

    .location-right {
      flex: 1 1 54%;
      display: flex;
      min-width: 0;
    }

    .location-copy h2 {
      margin-bottom: 24px;
      max-width: 10ch;
    }

    .location-copy p {
      max-width: 560px;
      font-size: 16px;
      line-height: 1.9;
      color: rgba(29,29,27,.78);
    }

    .location-card {
      margin: 0;
      background: #fff;
      border: 1px solid var(--soft-line);
      box-shadow: 0 18px 48px rgba(0,0,0,.035);
      overflow: hidden;
    }

    .location-map-card {
      width: 100%;
      padding: 0;
    }

    .location-map-card img {
      width: 100%;
      height: auto;
      display: block;
    }

    .location-montage-card {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      background: #fff;
      padding: 18px;
    }

    .location-montage-card img {
      width: 100%;
      height: auto;
      display: block;
      object-fit: contain;
      background: #fff;
    }

    @media (max-width: 980px) {
      .location-layout {
        flex-direction: column;
      }

      .location-left,
      .location-right {
        flex: 1 1 auto;
      }

      .location-copy h2,
      .location-copy p {
        max-width: none;
      }

      .location-montage-card {
        padding: 12px;
      }
    }

  
    .availability-table-commerciale tr.is-rented td,
    .availability-table-commerciale tr.is-rented th {
      background: #f3f3f1;
      color: rgba(29,29,27,.46);
    }

    .availability-table-commerciale tr.is-rented .doc-link {
      color: rgba(29,29,27,.42);
      pointer-events: none;
      cursor: default;
    }
