/* Contact and the legacy in-page rental terms. Presentation only; API/fields stay untouched. */
.catalog-redesign :is(#contactModal, #contactRequestModal) { --contact-ink: #1a1d1b; --contact-yellow: #f7df22; --contact-paper: #f4f4ef; }
.catalog-redesign :is(#contactModal, #contactRequestModal) [hidden] { display: none !important; }
.catalog-redesign :is(#contactModal, #contactRequestModal) .modal-backdrop { background: #151914b3; backdrop-filter: blur(5px); }
.catalog-redesign :is(#contactModal, #contactRequestModal) .contact-panel { width: min(880px, calc(100% - 40px)); max-height: calc(100dvh - 40px); border: 1px solid #cdd2c6; border-radius: 7px; background: var(--contact-paper); box-shadow: 0 25px 90px #080e0840; overflow-x: hidden; }
/* Saved text placements can carry a z-index. Keep them below the close control. */
.catalog-redesign :is(#contactModal, #contactRequestModal) :is(.contact-modal-body, .contact-request-form) { isolation: isolate; }
.catalog-redesign :is(#contactModal, #contactRequestModal) .modal-close { position: absolute; z-index: 500; top: 20px; right: 20px; float: none; margin: 0; width: 48px; height: 48px; min-height: 48px; padding: 10px; border: 1px solid #ffffff26; border-radius: 4px; color: #fff; background: #30362d; }
.catalog-redesign :is(#contactModal, #contactRequestModal) .modal-close:hover { background: #454d3f; }
.catalog-redesign :is(#contactModal, #contactRequestModal) .contact-design-header { padding: 30px 30px 26px; color: #fff; background: var(--contact-ink); border-bottom: 3px solid var(--contact-yellow); }
.catalog-redesign :is(#contactModal, #contactRequestModal) .contact-design-header .eyebrow { margin: 0 60px 12px 0; color: var(--contact-yellow); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.catalog-redesign :is(#contactModal, #contactRequestModal) .contact-design-header h2 { margin: 0; padding-right: 48px; color: #fff; font-size: clamp(28px, 3.5vw, 40px); font-weight: 850; letter-spacing: -.045em; line-height: 1.12; text-transform: none; }
.catalog-redesign :is(#contactModal, #contactRequestModal) .contact-design-header > p:not(.eyebrow) { margin: 14px 0 0; max-width: 550px; color: #ccd1c6; font-size: 14px; font-weight: 400; line-height: 1.6; }
.catalog-redesign #contactModal .contact-modal-body { padding: 0; }
.catalog-redesign #contactModal .contact-card-list { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 14px; padding: 26px 26px 22px; }
.catalog-redesign #contactModal .contact-card { grid-template-columns: 42px minmax(0, 1fr); align-items: start; align-content: start; gap: 14px; min-width: 0; padding: 20px; border: 1px solid #dce0d5; border-radius: 5px; background: #fff; box-shadow: 0 2px 0 #20291b05; }
.catalog-redesign #contactModal .contact-card > svg { width: 42px; height: 42px; padding: 11px; border: 1px solid #e8e7c6; border-radius: 3px; background: #faf6d6; color: #4c512a; }
.catalog-redesign #contactModal .contact-card > span { min-height: 44px; gap: 5px; align-content: center; }
.catalog-redesign #contactModal .contact-card strong { color: var(--contact-ink); font-size: 17px; font-weight: 750; letter-spacing: -.015em; line-height: 1.4; }
.catalog-redesign #contactModal .contact-card small { color: #626a5c; font-size: 12px; font-weight: 450; line-height: 1.65; }
.catalog-redesign #contactModal .contact-card .contact-card-action { grid-column: 1 / -1; min-height: 44px; margin-top: 2px; background: #f3f5ee; border-color: #d9dfce; color: #26321e; }
.catalog-redesign #contactModal #contactHoursList { gap: 8px; }
.catalog-redesign #contactModal #contactHoursList strong { margin-bottom: 2px; }
@media (min-width: 781px) {
  .catalog-redesign #contactModal .contact-card-list { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .catalog-redesign #contactModal .contact-action-card { grid-column: 1; grid-template-columns: 36px minmax(0, 1fr) auto; padding: 18px; gap: 12px; align-items: center; }
  .catalog-redesign #contactModal .contact-action-card > svg { width: 36px; height: 36px; padding: 9px; }
  .catalog-redesign #contactModal .contact-action-card .contact-card-action { grid-column: auto; margin: 0; padding: 10px; font-size: 12px; }
  .catalog-redesign #contactModal .contact-action-card .contact-card-action svg { display: none; }
  .catalog-redesign #contactModal .contact-card:not(.contact-action-card) { grid-column: 2; grid-row: 1 / span 3; background: #eaede3; border-color: #d5dbcb; }
}
.catalog-redesign #contactModal .contact-modal-actions { margin: 0; padding: 20px 26px 24px; border-top: 1px solid #dee1d7; background: #fff; }
.catalog-redesign :is(#contactModal, #contactRequestModal) .button { min-height: 48px; gap: 10px; padding: 12px 18px; border-radius: 4px; font-size: 14px; font-weight: 750; line-height: 1.4; transition: background .16s ease, border-color .16s ease; }
.catalog-redesign :is(#contactModal, #contactRequestModal) .button.primary { border: 1px solid #ddc515; color: #181d15; background: var(--contact-yellow); box-shadow: none; }
.catalog-redesign :is(#contactModal, #contactRequestModal) .button.primary:hover { background: #ffe744; }
.catalog-redesign :is(#contactModal, #contactRequestModal) .button.secondary:hover { background: #e9ede1; border-color: #a5af99; }
.catalog-redesign :is(#contactModal, #contactRequestModal) .button:disabled { opacity: .52; cursor: wait; }
.catalog-redesign :is(#contactModal, #contactRequestModal) .button svg { width: 18px; height: 18px; color: currentColor; flex-shrink: 0; }
.catalog-redesign :is(#contactModal, #contactRequestModal) :is(a, button, input, textarea):focus-visible { outline: 3px solid #48799a; outline-offset: 3px; }
.catalog-redesign #contactRequestModal .contact-panel { width: min(760px, calc(100% - 40px)); }
.catalog-redesign #contactRequestModal .contact-request-form { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 26px; gap: 20px; }
.catalog-redesign #contactRequestModal .contact-design-header { grid-column: 1 / -1; margin: -26px -26px 4px; }
.catalog-redesign #contactRequestModal .contact-request-form > label { min-width: 0; gap: 8px; color: #515c47; font-size: 12px; font-weight: 700; }
.catalog-redesign #contactRequestModal .contact-request-form > label:nth-of-type(n+3) { grid-column: 1 / -1; }
.catalog-redesign #contactRequestModal .contact-request-form :is(input:not([hidden]), textarea) { width: 100%; min-width: 0; min-height: 48px; padding: 12px; border: 1px solid #cfd7c5; border-radius: 4px; background: #fff; color: #202a1a; font-size: 15px; font-weight: 450; line-height: 1.5; }
.catalog-redesign #contactRequestModal .contact-request-form textarea { min-height: 138px; resize: vertical; }
.catalog-redesign #contactRequestModal .contact-request-form :is(input, textarea)::placeholder { color: #757c6e; opacity: 1; }
.catalog-redesign #contactRequestModal .contact-request-form :is(input, textarea):focus { border-color: #908317; }
.catalog-redesign #contactRequestModal .contact-request-form :is(input, textarea):user-invalid { border-color: #b42318; outline: 2px solid #b42318; outline-offset: -2px; }
.catalog-redesign #contactRequestModal .contact-request-form > .form-legal-note { grid-column: 1 / -1; margin: 0; padding-top: 14px; border-top: 1px solid #dce1d3; color: #5e6853; font-size: 12px; line-height: 1.7; }
.catalog-redesign #contactRequestModal .form-legal-note a { color: #344a27; text-decoration: underline; text-underline-offset: 3px; }
.catalog-redesign #contactRequestModal .drawer-actions { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 0; padding: 0; background: transparent; border: 0; }
.catalog-redesign #contactRequestModal .drawer-actions .button { white-space: normal; }

/* Keep the direct #conditions-de-location route consistent with the standalone legal pages. */
.catalog-redesign #conditions-de-location { width: min(1180px, calc(100% - 64px)); padding: 44px 0 64px; }
.catalog-redesign #conditions-de-location .conditions-hero { max-width: none; gap: 16px; padding: clamp(28px, 4vw, 52px); margin-bottom: 28px; border-left: 4px solid #f7df22; border-radius: 6px; background: #1a1d1b; }
.catalog-redesign #conditions-de-location .conditions-hero .eyebrow { color: #f7df22; font-size: 11px; letter-spacing: .12em; }
.catalog-redesign #conditions-de-location .conditions-hero h2 { color: #fff; font-size: clamp(30px, 4.6vw, 55px); font-weight: 850; letter-spacing: -.045em; line-height: 1.08; text-transform: none; }
.catalog-redesign #conditions-de-location .conditions-hero p:not(.eyebrow) { max-width: 720px; color: #d0d6c9; font-size: 16px; line-height: 1.75; }
.catalog-redesign #conditions-de-location .conditions-layout { grid-template-columns: minmax(0, 1fr); gap: 18px; }
.catalog-redesign #conditions-de-location .conditions-card { padding: clamp(22px, 3.5vw, 40px); border-color: #dce0d5; border-radius: 5px; box-shadow: none; }
.catalog-redesign #conditions-de-location .conditions-card h3 { margin-bottom: 22px; font-size: 24px; color: #222c1c; font-weight: 800; letter-spacing: -.025em; }
.catalog-redesign #conditions-de-location .conditions-card h3::before { width: 3px; border-radius: 0; }
.catalog-redesign #conditions-de-location .conditions-card p { max-width: 95ch; color: #525c49; font-size: 15px; line-height: 1.8; }
.catalog-redesign #conditions-de-location .conditions-card p + p { margin-top: 16px; }
.catalog-redesign #conditions-de-location .conditions-contact { padding: 28px; background: #22291e; color: #fff; border-left-width: 3px; border-radius: 5px; }
.catalog-redesign #conditions-de-location .conditions-contact .eyebrow { color: #f7df22; font-size: 10px; letter-spacing: .12em; }
.catalog-redesign #conditions-de-location .conditions-contact h3 { color: #fff; font-size: 24px; line-height: 1.3; }
.catalog-redesign #conditions-de-location .conditions-contact .button { min-height: 48px; border-radius: 4px; font-size: 14px; }
@media (max-width: 620px) {
  .catalog-redesign :is(#contactModal, #contactRequestModal) .contact-panel { width: calc(100% - 20px); max-height: calc(100dvh - 20px); border-radius: 6px; }
  .catalog-redesign :is(#contactModal, #contactRequestModal) .modal-close { top: 14px; right: 14px; }
  .catalog-redesign :is(#contactModal, #contactRequestModal) .contact-design-header { padding: 25px 20px 24px; }
  .catalog-redesign :is(#contactModal, #contactRequestModal) .contact-design-header h2 { padding-right: 48px; font-size: 30px; }
  .catalog-redesign :is(#contactModal, #contactRequestModal) .contact-design-header > p:not(.eyebrow) { font-size: 13px; }
  .catalog-redesign #contactModal .contact-card-list { grid-template-columns: minmax(0, 1fr); padding: 16px; gap: 12px; }
  .catalog-redesign #contactModal .contact-card { padding: 17px; gap: 12px; }
  .catalog-redesign #contactModal .contact-card strong { font-size: 16px; }
  .catalog-redesign #contactModal .contact-modal-actions { padding: 16px; }
  .catalog-redesign #contactRequestModal .contact-request-form { grid-template-columns: minmax(0, 1fr); padding: 20px; gap: 18px; }
  .catalog-redesign #contactRequestModal .contact-design-header { margin: -20px -20px 2px; }
  .catalog-redesign #contactRequestModal .contact-request-form :is(input:not([hidden]), textarea) { font-size: 16px; }
  .catalog-redesign #contactRequestModal .drawer-actions { grid-template-columns: minmax(0, 1fr); }
  .catalog-redesign #conditions-de-location { width: calc(100% - 24px); padding: 22px 0 36px; }
  .catalog-redesign #conditions-de-location .conditions-hero { padding: 26px 22px; }
  .catalog-redesign #conditions-de-location .conditions-contact { flex-direction: column; align-items: start; gap: 22px; padding: 24px; }
  .catalog-redesign #conditions-de-location .conditions-contact .button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .catalog-redesign :is(#contactModal, #contactRequestModal) .button { transition: none; }
}
