/* Recherche de local professionnel — styles limités à cette page. */
.local-page { background: #f7f8f6; color: #172338; }
.local-page main { overflow: clip; }
.local-page main *, .local-page main *::before, .local-page main *::after { box-sizing: border-box; }
.local-page main .container { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.local-page main h1, .local-page main h2, .local-page main h3 { text-wrap: balance; }
.local-page main h1, .local-page main h2 { font-family: "Playfair Display", Georgia, serif; font-weight: 600; letter-spacing: -.035em; }
.local-page main p { line-height: 1.7; }
.local-page main a:focus-visible, .local-page main button:focus-visible, .local-page main input:focus-visible, .local-page main select:focus-visible, .local-page main textarea:focus-visible { outline: 3px solid #b9914f; outline-offset: 3px; }
.local-page .local-overline, .local-page .local-kicker, .local-page .local-aside-label { margin: 0 0 19px; color: #aa7e38; font-size: .79rem; font-weight: 800; letter-spacing: .16em; line-height: 1.5; text-transform: uppercase; }
.local-page .local-section { padding-block: clamp(72px, 8vw, 116px); }
.local-page .local-section-heading { max-width: 730px; margin-bottom: 42px; }
.local-page .local-section-heading h2, .local-page .local-area h2, .local-page .local-profile h2, .local-page .local-options h2 { margin: 0; font-size: clamp(2.2rem, 4vw, 3.7rem); line-height: 1.13; }
.local-page .local-section-heading > p:last-child { max-width: 660px; margin: 22px 0 0; color: #526073; font-size: 1.08rem; }

.local-page .local-hero { position: relative; isolation: isolate; padding: clamp(74px, 9vw, 130px) 0 clamp(84px, 9vw, 125px); background: radial-gradient(circle at 83% 30%, rgba(217,192,140,.13), transparent 31%), linear-gradient(138deg, #080d22, #101a35 60%, #0b1229); color: #f8f5ee; }
.local-page .local-hero::after { position: absolute; inset: auto 0 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(217,192,140,.55), transparent); content: ""; }
.local-page .local-hero-grid { display: grid; grid-template-columns: minmax(0, 1.07fr) minmax(340px, .93fr); gap: clamp(44px, 6vw, 90px); align-items: center; }
.local-page .local-hero-copy { min-width: 0; }
.local-page .local-kicker { color: #dec99e; }
.local-page .local-kicker span { padding-inline: .2em; }
.local-page .local-hero h1 { max-width: 670px; margin: 0 0 27px; color: #fffdf8; font-size: clamp(3rem, 5.3vw, 5.1rem); line-height: 1.085; }
.local-page .local-hero-copy > p:not(.local-kicker):not(.local-location) { max-width: 630px; margin: 0 0 15px; color: #d1d8e4; font-size: 1.04rem; }
.local-page .local-hero-copy .local-lead { color: #fff8e9 !important; font-size: 1.18rem !important; font-weight: 600; }
.local-page .local-actions { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 32px; }
.local-page .local-button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 54px; padding: 13px 24px; border: 1px solid transparent; border-radius: 4px; font: inherit; font-size: .96rem; font-weight: 800; line-height: 1.2; text-align: center; text-decoration: none; cursor: pointer; transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.local-page .local-button:hover { transform: translateY(-2px); }
.local-page .local-button-primary { background: #d9c08c; color: #101936; }
.local-page .local-button-primary:hover { background: #ead29f; color: #101936; }
.local-page .local-button-primary:disabled { opacity: .55; cursor: wait; transform: none; }
.local-page .local-button-outline { border-color: rgba(246,239,224,.55); color: #fffaf0; }
.local-page .local-button-outline:hover { border-color: #d9c08c; background: rgba(217,192,140,.1); color: #fffaf0; }
.local-page .local-location { margin: 28px 0 0; color: #bfc9d7; font-size: .88rem; letter-spacing: .02em; }
.local-page .local-portrait { position: relative; margin: 0; padding: 12px 12px 0 0; }
.local-page .local-portrait::before { position: absolute; inset: 0 0 45px 45px; border: 1px solid rgba(217,192,140,.55); content: ""; }
.local-page .local-portrait img { position: relative; display: block; width: 100%; aspect-ratio: 4 / 4.75; object-fit: cover; object-position: 50% 22%; filter: saturate(.86); }
.local-page .local-portrait figcaption { position: relative; display: flex; flex-direction: column; gap: 3px; width: min(88%, 360px); margin: -42px 0 0 auto; padding: 18px 23px; border-left: 3px solid #d9c08c; background: #fffaf1; color: #14203a; box-shadow: 0 20px 36px rgba(0,0,0,.18); }
.local-page .local-portrait figcaption strong { font-family: "Playfair Display", Georgia, serif; font-size: 1.3rem; }
.local-page .local-portrait figcaption span { color: #536072; font-size: .83rem; }

.local-page .local-criteria { background: #f7f8f6; }
.local-page .local-criteria-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(270px, .8fr); gap: clamp(26px, 5vw, 70px); align-items: start; }
.local-page .local-criteria-main { padding: clamp(26px, 4vw, 44px); border: 1px solid #dce2e4; border-top: 3px solid #b9914f; background: #fff; box-shadow: 0 25px 65px rgba(17,31,53,.055); }
.local-page .local-criteria h3 { margin: 0 0 22px; color: #16213b; font-size: 1.24rem; }
.local-page .local-check-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 28px; margin: 0; padding: 0; list-style: none; }
.local-page .local-check-list li { position: relative; padding-left: 28px; color: #3d4b5b; line-height: 1.58; }
.local-page .local-check-list li::before { position: absolute; top: .65em; left: 0; width: 12px; height: 7px; border-bottom: 2px solid #a57e3e; border-left: 2px solid #a57e3e; transform: rotate(-45deg); content: ""; }
.local-page .local-criteria-aside { padding: 35px 0 0 29px; border-left: 1px solid #cfb985; }
.local-page .local-aside-label { margin-bottom: 14px; }
.local-page .local-criteria-aside h3 { font-family: "Playfair Display", Georgia, serif; font-size: 1.7rem; line-height: 1.2; }
.local-page .local-criteria-aside ul { display: grid; gap: 13px; margin: 0 0 20px; padding-left: 20px; color: #3d4b5b; }
.local-page .local-criteria-aside li { padding-left: 4px; line-height: 1.55; }
.local-page .local-criteria-aside li::marker { color: #b9914f; }
.local-page .local-criteria-aside p:last-child { margin: 0; color: #5b6673; font-size: .94rem; }
.local-page .local-criteria-note { max-width: 850px; margin: 33px 0 0; padding-left: 24px; border-left: 3px solid #b9914f; color: #405064; }
.local-page .local-criteria-note strong { color: #172338; }

.local-page .local-area { background: #0e1830; color: #f8f5ec; }
.local-page .local-area-grid, .local-page .local-profile-top, .local-page .local-options-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(35px, 8vw, 130px); }
.local-page .local-area .local-overline { color: #d9c08c; }
.local-page .local-area h2 { color: #fffaf0; }
.local-page .local-area-copy { padding-left: 28px; border-left: 1px solid rgba(217,192,140,.5); }
.local-page .local-area-copy p { margin: 0 0 18px; color: #d4dbe3; font-size: 1.07rem; }
.local-page .local-area-copy p:last-child { margin-bottom: 0; color: #dfca9c; }
.local-page .local-area-copy strong { color: #fffaf0; }

.local-page .local-profile { background: #f2f0eb; }
.local-page .local-profile-top { align-items: start; margin-bottom: 46px; }
.local-page .local-profile-copy p { margin: 0 0 18px; color: #455364; font-size: 1.08rem; }
.local-page .local-gallery { display: grid; grid-template-columns: 1.05fr 1fr 1fr; gap: 14px; }
.local-page .local-gallery figure { position: relative; min-width: 0; margin: 0; overflow: hidden; background: #d5d6cf; }
.local-page .local-gallery img { display: block; width: 100%; height: 365px; object-fit: cover; transition: transform .45s ease; }
.local-page .local-gallery figure:hover img { transform: scale(1.025); }
.local-page .local-gallery-large img { object-position: center 56%; }
.local-page .local-gallery figcaption { position: absolute; inset: auto 0 0; padding: 28px 19px 15px; background: linear-gradient(transparent, rgba(8,13,30,.78)); color: #fff; font-size: .88rem; font-weight: 700; }

.local-page .local-options { background: #fff; }
.local-page .local-options-grid { align-items: start; }
.local-page .local-options-grid > div:last-child { padding-top: 9px; }
.local-page .local-options-grid p:not(.local-overline) { margin: 0 0 17px; color: #455364; font-size: 1.08rem; }

.local-page .local-contact { background: #e9edf0; scroll-margin-top: 105px; }
.local-page .local-contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(245px, .32fr); gap: 18px; align-items: start; }
.local-page .local-form { min-width: 0; padding: clamp(26px, 4vw, 43px); border: 1px solid #d6dee2; background: #fff; box-shadow: 0 24px 65px rgba(14,29,53,.075); }
.local-page .local-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px 22px; }
.local-page .local-field { display: flex; flex-direction: column; min-width: 0; }
.local-page .local-field-wide { grid-column: 1 / -1; }
.local-page .local-field label { margin-bottom: 8px; color: #1f2d43; font-size: .88rem; font-weight: 750; }
.local-page .local-field label span:not(.local-optional) { color: #9b671b; }
.local-page .local-optional { color: #657387; font-size: .8rem; font-weight: 500; }
.local-page .local-field input, .local-page .local-field select, .local-page .local-field textarea { width: 100%; min-height: 46px; padding: 11px 12px; border: 1px solid #c9d2d9; border-radius: 3px; background: #fff; color: #172338; font: inherit; font-size: .93rem; }
.local-page .local-field textarea { min-height: 115px; resize: vertical; }
.local-page .local-field input::placeholder, .local-page .local-field textarea::placeholder { color: #8290a0; }
.local-page .local-form-bottom { display: flex; flex-wrap: wrap; gap: 18px; align-items: end; justify-content: space-between; margin-top: 24px; }
.local-page .local-form-bottom p { flex: 1 1 270px; margin: 0; color: #647284; font-size: .82rem; }
.local-page .local-form-bottom a { color: #6f5227; text-underline-offset: 2px; }
.local-page .local-form-bottom button { flex: 0 0 auto; }
.local-page .local-form-status { margin: 17px 0 0; color: #536579; font-size: .9rem; }
.local-page .local-form-status.is-error { color: #9b2c2c; }
.local-page .local-form-status.is-success { color: #24664c; font-weight: 700; }
.local-page .local-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.local-page .local-contact-aside { display: flex; flex-direction: column; align-items: flex-start; min-height: 360px; padding: 29px; background: #101a34; color: #f8f5ec; }
.local-page .local-contact-aside-mark { height: 45px; color: #d9c08c; font-family: Georgia, serif; font-size: 5rem; line-height: 1; }
.local-page .local-contact-aside h3 { margin: 14px 0 10px; color: #fffaf0; font-family: "Playfair Display", Georgia, serif; font-size: 1.65rem; }
.local-page .local-contact-aside p { margin: 0 0 25px; color: #d0d7e1; font-size: .96rem; }
.local-page .local-contact-aside a { color: #e7cd96; font-size: clamp(1.3rem, 2.2vw, 1.65rem); font-weight: 800; text-decoration: none; }
.local-page .local-contact-aside a:hover { text-decoration: underline; }
.local-page .local-contact-aside > span:last-child { margin-top: auto; padding-top: 28px; color: #aebacb; font-size: .83rem; line-height: 1.6; }
.local-page .footer-legal a[href="/recherche-cabinet-a-louer-crissier/"] { color: rgba(255,253,248,.62); }
.local-page .footer-legal a[href="/recherche-cabinet-a-louer-crissier/"]:hover { color: #d9c08c; }

@media (max-width: 980px) {
  .local-page .local-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(280px, .8fr); gap: 32px; }
  .local-page .local-hero h1 { font-size: clamp(2.65rem, 5vw, 4rem); }
  .local-page .local-criteria-grid { grid-template-columns: 1fr; }
  .local-page .local-criteria-aside { padding-top: 0; }
  .local-page .local-contact-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .local-page main .container { width: min(100% - 36px, 600px); }
  .local-page .local-section { padding-block: 67px; }
  .local-page .local-hero { padding-top: 68px; padding-bottom: 76px; }
  .local-page .local-hero-grid, .local-page .local-area-grid, .local-page .local-profile-top, .local-page .local-options-grid, .local-page .local-contact-grid { grid-template-columns: 1fr; gap: 28px; }
  .local-page .local-hero h1 { font-size: clamp(2.55rem, 10vw, 3.7rem); }
  .local-page .local-portrait { max-width: 460px; margin: 8px auto 0; }
  .local-page .local-portrait img { aspect-ratio: 4 / 4; }
  .local-page .local-check-list { grid-template-columns: 1fr; }
  .local-page .local-criteria-main { padding: 25px; }
  .local-page .local-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .local-page .local-gallery-large { grid-column: 1 / -1; }
  .local-page .local-gallery-large img { height: 340px; }
  .local-page .local-gallery figure:not(.local-gallery-large) img { height: 210px; }
  .local-page .local-contact-aside { min-height: 0; }
}
@media (max-width: 520px) {
  .local-page main .container { width: calc(100% - 32px); }
  .local-page .local-hero h1 { font-size: clamp(2.35rem, 11vw, 3.1rem); }
  .local-page .local-kicker { font-size: .69rem; }
  .local-page .local-actions { flex-direction: column; }
  .local-page .local-actions .local-button { width: 100%; }
  .local-page .local-section-heading h2, .local-page .local-area h2, .local-page .local-profile h2, .local-page .local-options h2 { font-size: clamp(2.1rem, 9vw, 2.8rem); }
  .local-page .local-fields, .local-page .local-gallery { grid-template-columns: 1fr; }
  .local-page .local-field-wide, .local-page .local-gallery-large { grid-column: auto; }
  .local-page .local-gallery img, .local-page .local-gallery-large img, .local-page .local-gallery figure:not(.local-gallery-large) img { height: 270px; }
  .local-page .local-form { padding: 22px 18px; }
  .local-page .local-form-bottom button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .local-page .local-button, .local-page .local-gallery img { transition: none; } }
