/* ─── CONTACT HERO (P1-D) ─── */
.contact-hero {
  position: relative;
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 120px 24px;
  overflow: hidden;
  text-align: center;
  background: var(--amme-cream);
}
.contact-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.contact-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 60%;
  display: block;
}
.contact-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(31, 26, 18, 0.45) 0%,
    rgba(31, 26, 18, 0.55) 50%,
    var(--amme-cream) 100%
  );
}
.contact-hero__inner {
  position: relative;
  z-index: 2;
  max-width: 720px;
  margin: 0 auto;
}
.contact-hero__eyebrow {
  display: block;
  margin-bottom: 32px;
  color: var(--amme-cream);
  opacity: 0.85;
}
.contact-hero__title {
  font-family: var(--font-display);
  font-size: clamp(3rem, 7vw, 5.5rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.01em;
  color: var(--amme-cream);
  margin: 0 0 32px;
}
.contact-hero__subtitle {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 1.125rem;
  line-height: 1.6;
  color: rgba(240, 232, 212, 0.9);
  max-width: 480px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .contact-hero {
    min-height: 50vh;
    padding: 80px 24px;
  }
  .contact-hero__title {
    font-size: clamp(2.5rem, 10vw, 4rem);
  }
}

/* ═══ AMME — Contact ═══ */

.contact-main{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start}
.ci-block{margin-bottom:2.8rem}
.ci-label{font-family:var(--font-sans);font-weight:400;font-size:0.6rem;letter-spacing:0.35em;text-transform:uppercase;color:var(--taupe-dim);margin-bottom:0.8rem}
.ci-val{font-family:var(--font-serif);font-weight:400;font-size:1.1rem;line-height:1.7;color:var(--earth)}
.ci-val a{color:var(--earth);background-image:linear-gradient(var(--gold-pale),var(--gold-pale));background-position:0 100%;background-size:100% 1px;background-repeat:no-repeat;transition:background-size 0.4s}
.ci-val a:hover{background-size:100% 2px}

.map-wrap{width:100%;aspect-ratio:3/2;overflow:hidden;background:var(--chalk);margin-top:3rem}
.map-wrap iframe{width:100%;height:100%;border:none;filter:grayscale(0.7) contrast(1.05) brightness(1.02)}

/* Form */
.form-wrap{background:var(--cream);padding:3rem;border:1px solid var(--chalk)}
.form-title{font-family:var(--font-serif);font-weight:300;font-size:1.6rem;letter-spacing:0.04em;margin-bottom:0.8rem;color:var(--earth)}
.form-sub{font-family:var(--font-sans);font-weight:300;font-size:0.8rem;color:var(--taupe-dim);margin-bottom:2.5rem;line-height:1.6}
.form-group{margin-bottom:1.8rem}
.form-label{display:block;font-family:var(--font-sans);font-weight:400;font-size:0.58rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--taupe-dim);margin-bottom:0.6rem}
.form-input,.form-textarea{width:100%;background:transparent;border:none;border-bottom:1px solid var(--chalk);padding:0.8rem 0;font-family:var(--font-sans);font-weight:300;font-size:0.88rem;color:var(--earth);outline:none;transition:border-color 0.4s}
.form-input:focus,.form-textarea:focus{border-color:var(--gold)}
.form-input::placeholder,.form-textarea::placeholder{color:var(--taupe);opacity:0.5}
.form-textarea{resize:vertical;min-height:100px;border:1px solid var(--chalk);padding:0.8rem;margin-top:0.3rem}
.form-textarea:focus{border-color:var(--gold)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:2rem}

.form-submit{display:inline-block;padding:1.1rem 3.2rem;font-family:var(--font-sans);font-weight:300;font-size:0.7rem;letter-spacing:0.28em;text-transform:uppercase;color:var(--white);background:var(--earth);border:none;cursor:pointer;transition:background 0.4s;margin-top:0.5rem}
.form-submit:hover{background:var(--earth-mid)}

/* Mention */
.contact-mention{font-family:var(--font-serif);font-style:italic;font-weight:300;font-size:1rem;color:var(--taupe-dim);line-height:1.7;max-width:600px;text-align:center;margin:0 auto;opacity:0.7}

@media(max-width:900px){
  .contact-main{grid-template-columns:1fr;gap:3rem}
  .form-row{grid-template-columns:1fr}
  .form-wrap{padding:2rem 1.5rem}
}

/* ═══ CF7 Integration ═══ */

/* Reset CF7 defaults */
.wpcf7 form { margin: 0; padding: 0; }
.wpcf7 .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.wpcf7 .form-group { margin-bottom: 1.8rem; }
.wpcf7 .form-label { display: block; font-family: var(--font-sans); font-weight: 400; font-size: 0.58rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--taupe-dim); margin-bottom: 0.6rem; }

/* CF7 wraps inputs in <span>, neutralize it */
.wpcf7 .wpcf7-form-control-wrap { display: block; }

/* Inputs & textarea — match existing design */
.wpcf7 .form-input,
.wpcf7 input.wpcf7-form-control,
.wpcf7 .form-group input { width: 100%; background: transparent; border: none; border-bottom: 1px solid var(--chalk); padding: 0.8rem 0; font-family: var(--font-sans); font-weight: 300; font-size: 0.88rem; color: var(--earth); outline: none; transition: border-color 0.4s; -webkit-appearance: none; appearance: none; border-radius: 0; }
.wpcf7 .form-input:focus,
.wpcf7 input.wpcf7-form-control:focus { border-color: var(--gold); }

/* Select dropdowns */
.wpcf7 select.wpcf7-form-control { width: 100%; background: transparent; border: none; border-bottom: 1px solid var(--chalk); padding: 0.8rem 0; font-family: var(--font-sans); font-weight: 300; font-size: 0.88rem; color: var(--earth); outline: none; transition: border-color 0.4s; -webkit-appearance: none; appearance: none; border-radius: 0; cursor: pointer; }
.wpcf7 select.wpcf7-form-control:focus { border-color: var(--gold); }

/* Textarea */
.wpcf7 .form-textarea,
.wpcf7 textarea.wpcf7-form-control { width: 100%; background: transparent; border: 1px solid var(--chalk); padding: 0.8rem; font-family: var(--font-sans); font-weight: 300; font-size: 0.88rem; color: var(--earth); outline: none; transition: border-color 0.4s; resize: vertical; min-height: 100px; margin-top: 0.3rem; }
.wpcf7 textarea.wpcf7-form-control:focus { border-color: var(--gold); }

/* Submit button */
.wpcf7 input.wpcf7-submit,
.wpcf7 .form-submit { display: inline-block; padding: 1.1rem 3.2rem; font-family: var(--font-sans); font-weight: 300; font-size: 0.7rem; letter-spacing: 0.28em; text-transform: uppercase; color: var(--white); background: var(--earth); border: none; cursor: pointer; transition: background 0.4s; margin-top: 0.5rem; }
.wpcf7 input.wpcf7-submit:hover,
.wpcf7 .form-submit:hover { background: var(--earth-mid); }

/* Placeholders */
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder { color: var(--taupe); opacity: 0.5; }

/* Validation messages */
.wpcf7-not-valid-tip { font-family: var(--font-sans); font-size: 0.7rem; color: #b54a4a; margin-top: 0.4rem; }
.wpcf7-response-output { font-family: var(--font-sans); font-size: 0.8rem; padding: 1rem; margin-top: 1.5rem; border: 1px solid var(--chalk); text-align: center; }
.wpcf7-mail-sent-ok { border-color: var(--gold); color: var(--earth); }

/* Spinner */
.wpcf7 .wpcf7-spinner { display: none; }

/* Date input fix */
.wpcf7 input[type="date"] { color: var(--earth); }
.wpcf7 input[type="date"]::-webkit-calendar-picker-indicator { opacity: 0.4; cursor: pointer; }

@media(max-width:900px) {
  .wpcf7 .form-row { grid-template-columns: 1fr; }
}

/* ─── COMPACT HERO FOR RESERVATION ─── */
.contact-hero--compact {
  min-height: 40vh;
  padding: 100px 24px 60px;
}
@media (max-width: 768px) {
  .contact-hero--compact {
    min-height: 35vh;
    padding: 80px 24px 48px;
  }
}

/* ─── FORM SECTION (priority position) ─── */
.resa-form-section {
  padding: 4rem 3.5rem 5rem;
}
.resa-form-container {
  max-width: 680px;
  margin: 0 auto;
}
.resa-form-section .form-wrap {
  background: var(--cream);
  padding: 3rem;
  border: 1px solid var(--chalk);
}
@media (max-width: 900px) {
  .resa-form-section {
    padding: 2.5rem 1.5rem 3rem;
  }
  .resa-form-section .form-wrap {
    padding: 2rem 1.5rem;
  }
}

/* ─── INFOS GRID (info + map side by side) ─── */
.contact-infos-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6rem;
  align-items: start;
}
@media (max-width: 900px) {
  .contact-infos-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
}
