/* ─── PAGE CONTENT ───────────────────────────────── */
.page-wrapper { padding-top:120px; min-height:100vh; background:var(--dark); }

/* ─── HERO ───────────────────────────────────────── */
.resa-hero {
  padding:5rem 8vw 4rem;
  position:relative;
  overflow:hidden;
}
.resa-hero::before {
  content:'BOOK';
  position:absolute; right:-2%; top:50%; transform:translateY(-50%);
  font-family:var(--font-title); font-weight:800; font-size:18vw;
  color:transparent; -webkit-text-stroke:1px rgba(234,135,96,.04);
  pointer-events:none; user-select:none;
}

.resa-hero-label {
  font-size:.68rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--terracotta); margin-bottom:1.2rem;
  display:flex; align-items:center; gap:.8rem;
  opacity:0; transform:translateY(20px);
}
.resa-hero-label::before { content:''; display:block; width:24px; height:1px; background:var(--terracotta); }

.resa-hero-title {
  font-family:var(--font-title); font-weight:700;
  font-size:clamp(2.8rem,6vw,6rem);
  color:var(--cream); line-height:.92; letter-spacing:-.03em;
  margin-bottom:1.5rem; overflow:hidden;
}
.resa-title-line { overflow:hidden; display:block; }
.resa-title-line span { display:block; opacity:0; transform:translateY(100%); }
.resa-hero-title .accent { color:var(--terracotta); font-weight:300; }

.resa-hero-sub {
  font-size:clamp(.88rem,1.2vw,1rem); color:rgba(255,251,248,.55);
  max-width:500px; line-height:1.75;
  opacity:0; transform:translateY(16px);
}

/* ─── TYPE SELECTOR ──────────────────────────────── */
.type-selector {
  padding:2.5rem 8vw;
  border-top:1px solid rgba(255,251,248,.06);
  border-bottom:1px solid rgba(255,251,248,.06);
}
.type-selector-label {
  font-size:.65rem; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(255,251,248,.3); margin-bottom:1.2rem;
}
.type-tabs { display:flex; gap:.7rem; flex-wrap:wrap; }
.type-tab {
  display:flex; align-items:center; gap:.8rem;
  padding:.85rem 1.4rem;
  border:1px solid rgba(255,251,248,.1);
  border-radius:12px; background:transparent; cursor:none;
  transition:all .25s; font-family:var(--font-body); font-size:.82rem;
  color:rgba(255,251,248,.45); position:relative;
}
.type-tab:hover { border-color:rgba(234,135,96,.5); color:var(--cream); }
.type-tab.active { border-color:var(--terracotta); background:rgba(234,135,96,.07); color:var(--cream); }
.type-tab.active::after {
  content:''; position:absolute; bottom:-1px; left:50%; transform:translateX(-50%);
  width:5px; height:5px; background:var(--terracotta); border-radius:50%;
}
.type-tab-icon { font-size:1.2rem; }
.type-tab-name { font-weight:500; display:block; }
.type-tab-sub { font-size:.68rem; color:rgba(255,251,248,.3); display:block; margin-top:.1rem; }

/* ─── FORM AREA ──────────────────────────────────── */
.form-area {
  display:grid;
  grid-template-columns:1fr 400px;
  gap:0;
  border-top:1px solid rgba(255,251,248,.06);
}

.form-main {
  padding:3rem 8vw 3rem 8vw;
  border-right:1px solid rgba(255,251,248,.06);
}

.form-sidebar {
  padding:3rem 2.5rem;
  position:sticky;
  top:100px;
  height:fit-content;
}

.form-section-title {
  font-family:var(--font-title);
  font-size:.92rem; font-weight:700;
  color:var(--cream); margin-bottom:1.5rem;
  padding-bottom:.8rem;
  border-bottom:1px solid rgba(255,251,248,.07);
  letter-spacing:.04em; text-transform:uppercase;
}

.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-group { margin-bottom:1.2rem; }
.form-label { display:block; font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,251,248,.35); margin-bottom:.5rem; }
.form-input {
  width:100%; background:rgba(255,251,248,.04);
  border:1px solid rgba(255,251,248,.1); border-radius:10px;
  padding:.85rem 1rem; color:var(--cream); font-size:.88rem;
  font-family:var(--font-body); transition:border-color .2s, box-shadow .2s; outline:none;
}
.form-input:focus { border-color:var(--terracotta); box-shadow:0 0 0 3px rgba(234,135,96,.08); }
.form-input::placeholder { color:rgba(255,251,248,.18); }
select.form-input {
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='rgba(255,251,248,0.25)' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1rem center;
}
select.form-input option { background:var(--dark); color:var(--cream); }
textarea.form-input { resize:vertical; min-height:110px; line-height:1.65; }

/* ─── DYNAMIC SECTIONS ───────────────────────────── */
.form-dynamic-section { display:none; }
.form-dynamic-section.active { display:block; }

/* ─── SIDEBAR ────────────────────────────────────── */
.sidebar-title {
  font-family:var(--font-title); font-size:.85rem; font-weight:700;
  color:var(--cream); margin-bottom:1.5rem; letter-spacing:.06em; text-transform:uppercase;
}

.sidebar-recap-item {
  display:flex; justify-content:space-between; align-items:flex-start;
  padding:.75rem 0; border-bottom:1px solid rgba(255,251,248,.06); font-size:.8rem;
}
.sidebar-recap-label { color:rgba(255,251,248,.3); font-size:.65rem; text-transform:uppercase; letter-spacing:.1em; }
.sidebar-recap-value { color:var(--cream); font-weight:500; text-align:right; max-width:60%; }

.sidebar-contact { margin-top:2rem; }
.sidebar-contact-title { font-size:.65rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,251,248,.25); margin-bottom:1rem; }
.sidebar-contact-link {
  display:flex; align-items:center; gap:.7rem; font-size:.8rem;
  color:rgba(255,251,248,.45); text-decoration:none; margin-bottom:.7rem; transition:color .2s;
}
.sidebar-contact-link:hover { color:var(--terracotta); }
.sidebar-contact-icon { width:30px; height:30px; border-radius:50%; background:rgba(255,251,248,.05); border:1px solid rgba(255,251,248,.08); display:flex; align-items:center; justify-content:center; font-size:.78rem; flex-shrink:0; }

.meet-btn-resa {
  width:100%; background:rgba(255,251,248,.04); border:1px solid rgba(255,251,248,.1);
  color:rgba(255,251,248,.55); padding:.9rem; border-radius:10px; font-size:.8rem;
  font-family:var(--font-body); cursor:none; transition:all .2s;
  display:flex; align-items:center; justify-content:center; gap:.6rem;
  text-decoration:none; margin-top:1.5rem;
}
.meet-btn-resa:hover { border-color:rgba(234,135,96,.4); color:var(--cream); }

.sidebar-response-box {
  margin-top:1.5rem; padding:1rem;
  background:rgba(234,135,96,.06); border-radius:10px;
  border:1px solid rgba(234,135,96,.12);
}
.sidebar-response-box-label { font-size:.65rem; color:var(--terracotta); font-weight:500; margin-bottom:.4rem; letter-spacing:.06em; text-transform:uppercase; }
.sidebar-response-box-text { font-size:.78rem; color:rgba(255,251,248,.45); line-height:1.55; }

/* ─── SUBMIT ──────────────────────────────────────── */
.form-submit-wrap {
  padding:2rem 8vw; border-top:1px solid rgba(255,251,248,.06);
  display:flex; align-items:center; gap:1.5rem;
}
.form-submit {
  background:var(--terracotta); color:var(--cream); border:none;
  padding:1rem 2.5rem; border-radius:100px; font-size:.88rem;
  font-family:var(--font-body); font-weight:500; cursor:none;
  transition:all .25s; letter-spacing:.04em;
}
.form-submit:hover { background:var(--terra-l); transform:translateY(-2px); box-shadow:0 12px 32px rgba(234,135,96,.35); }
.form-submit-note { font-size:.72rem; color:rgba(255,251,248,.3); line-height:1.6; }

/* ─── SUCCESS STATE ──────────────────────────────── */
.success-state {
  display:none; flex-direction:column; align-items:center;
  justify-content:center; padding:8rem 3rem; text-align:center;
}
.success-state.show { display:flex; }
.success-icon {
  width:72px; height:72px; background:rgba(234,135,96,.1); border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:2rem; margin-bottom:1.5rem;
  border:1px solid rgba(234,135,96,.2);
}
.success-title { font-family:var(--font-title); font-size:1.8rem; font-weight:700; color:var(--cream); margin-bottom:.8rem; }
.success-sub { font-size:.92rem; color:rgba(255,251,248,.5); line-height:1.75; max-width:400px; }

/* btn */
.btn-primary {
  background:var(--terracotta); color:var(--cream); padding:.9rem 2rem;
  border-radius:100px; font-size:.85rem; font-weight:500; text-decoration:none;
  letter-spacing:.04em; transition:all .25s; display:inline-block; border:none;
  cursor:none; font-family:var(--font-body);
}
.btn-primary:hover { background:var(--terra-l); transform:translateY(-2px); }

/* ─── SECTION LABEL ──────────────────────────────── */
.section-label {
  font-size:.68rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--terracotta); display:flex; align-items:center; gap:.8rem; margin-bottom:1.2rem;
}
.section-label::before { content:''; display:block; width:24px; height:1px; background:var(--terracotta); }

/* ─── MOBILE ──────────────────────────────────────── */
@media (max-width: 900px) {
  nav {
    background: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-color: transparent !important;
    box-shadow: none !important;
    min-width: 0 !important;
    padding: 0 !important;
    pointer-events: none;
  }
  .nav-links, .nav-cta { display:none; }
  .nav-hamburger { display:flex; }

  .resa-hero { padding:4rem 6vw 3rem; }
  .type-selector { padding:2rem 6vw; }

  .form-area { grid-template-columns:1fr; }
  .form-main { padding:2.5rem 6vw; border-right:none; border-bottom:1px solid rgba(255,251,248,.06); }
  .form-sidebar { position:static; padding:2rem 6vw; border-top:1px solid rgba(255,251,248,.06); }
  .form-row { grid-template-columns:1fr; }
  .form-submit-wrap { padding:2rem 6vw; flex-direction:column; align-items:flex-start; }
}

/* ─── PETIT MOBILE (≤ 480px) ─── */
@media (max-width: 480px) {
  .resa-hero { padding: 3.5rem 1.2rem 2.5rem; }
  .resa-hero::before { font-size: 28vw; }
  .resa-hero-title { font-size: clamp(2.4rem, 9vw, 3.5rem); }
  .resa-hero-sub { font-size: .83rem; }

  .type-selector { padding: 1.5rem 1.2rem; }
  .type-tabs { gap: .5rem; }
  .type-tab {
    flex: 1 1 calc(50% - .25rem);
    min-width: 0;
    padding: .75rem .9rem;
    font-size: .75rem;
  }
  .type-tab-name { font-size: .78rem; }
  .type-tab-sub { font-size: .6rem; }
  .type-tab-icon { font-size: 1rem; }

  .form-main { padding: 2rem 1.2rem; }
  .form-sidebar { padding: 1.5rem 1.2rem; }
  .form-submit-wrap { padding: 1.5rem 1.2rem; }
  .form-submit { width: 100%; text-align: center; }
  .form-submit-note { font-size: .68rem; }
}
