/* ============================================================
   Subpage styles — contact, legal
============================================================ */

.page-hero{ padding:72px 0 32px; }
.page-hero .eyebrow{ margin-bottom:14px; }
.page-hero h1{ font-size:clamp(34px, 4.5vw, 52px); margin-bottom:16px; }
.page-hero p.lead{ font-size:17px; color:var(--fg-dim); max-width:620px; }

/* Contact layout */
.contact-grid{
  display:grid; grid-template-columns: 1.1fr .9fr; gap:28px;
  margin-top:40px; padding-bottom:96px;
}

.contact-card{
  background:var(--bg-2); border:1px solid var(--border);
  border-radius:var(--r-lg); padding:32px;
}
.contact-card h3{ margin-bottom:8px; }
.contact-card p.sub{ font-size:15px; color:var(--fg-dim); margin-bottom:24px; }

.form-row{ margin-bottom:16px; }
.form-row label{
  display:block; font-family:var(--mono); font-size:12px;
  color:var(--fg-mute); letter-spacing:.08em; text-transform:uppercase;
  margin-bottom:6px;
}
.form-row input, .form-row textarea, .form-row select{
  width:100%; padding:12px 14px;
  background:var(--bg); color:var(--fg);
  border:1px solid var(--border-2); border-radius:var(--r-sm);
  font:inherit; font-size:15px;
  transition: border-color .15s, background .15s;
}
.form-row input:focus, .form-row textarea:focus, .form-row select:focus{
  outline:none; border-color:var(--accent);
  background:var(--bg-2);
}
.form-row textarea{ min-height:140px; resize:vertical; font-family:var(--sans); }
.form-row.inline{ display:flex; gap:12px; }
.form-row.inline > *{ flex:1; }
.form-check{
  display:flex; align-items:flex-start; gap:10px;
  font-size:13px; color:var(--fg-dim); margin:12px 0 20px;
}
.form-check input{ margin-top:3px; }
.form-check a{ color:var(--accent); text-decoration:underline; }

.form-submit{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
}
.form-hint{
  font-family:var(--mono); font-size:12px; color:var(--fg-mute);
}

/* Booking card */
.book-card{
  background:var(--bg-2); border:1px solid var(--border);
  border-radius:var(--r-lg); padding:32px;
  display:flex; flex-direction:column; gap:22px;
}
.book-card h3{ margin-bottom:6px; }
.book-card .sub{ font-size:15px; color:var(--fg-dim); }
.book-features{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.book-features li{
  display:flex; gap:10px; align-items:flex-start;
  font-size:14px; color:var(--fg-dim);
}
.book-features .ic{
  width:22px; height:22px; border-radius:50%;
  background:var(--bg-3); color:var(--green);
  display:grid; place-items:center; font-size:12px;
  border:1px solid var(--border-2); flex-shrink:0;
}
.book-features b{ color:var(--fg); font-weight:500; }

.contact-sidelinks{
  padding:20px 0; margin-top:18px;
  border-top:1px dashed var(--border);
  display:flex; flex-direction:column; gap:4px;
  font-family:var(--mono); font-size:13px;
}
.contact-sidelinks a{
  color:var(--fg-dim); padding:8px 0;
  display:flex; justify-content:space-between; align-items:center;
}
.contact-sidelinks a:hover{ color:var(--accent); }
.contact-sidelinks .arr{ color:var(--fg-ghost); }
.contact-sidelinks a:hover .arr{ color:var(--accent); }

/* Legal pages */
.legal-body{
  padding:20px 0 96px;
  max-width:780px;
}
.legal-body h2{ font-size:24px; margin:40px 0 12px; }
.legal-body h2:first-child{ margin-top:8px; }
.legal-body h3{ font-size:18px; margin:28px 0 8px; color:var(--fg); }
.legal-body p{ font-size:15px; color:var(--fg-dim); line-height:1.65; }
.legal-body ul{ color:var(--fg-dim); font-size:15px; line-height:1.65; padding-left:22px; }
.legal-body a{ color:var(--accent); text-decoration:underline; }
.legal-body .placeholder{
  background: rgba(255,204,85,.08);
  border:1px dashed rgba(255,204,85,.35);
  border-radius:6px; padding:10px 14px;
  font-family:var(--mono); font-size:13px; color:var(--yellow);
  margin:6px 0;
}
.legal-body code{
  font-family:var(--mono); font-size:13px; color:var(--fg);
  background:var(--bg-3); padding:1px 6px; border-radius:4px;
}

@media (max-width: 860px){
  .contact-grid{ grid-template-columns:1fr; }
  .form-row.inline{ flex-direction:column; gap:16px; }
}
