/* Closing chapters: quieter FAQ rhythm, a single-column contact form, and a compact footer. */
.reviews .review-intro {
  max-width: 760px;
  color: #b9cdd6;
  font-size: clamp(16px, 1.45vw, 21px);
  line-height: 1.48;
}

.faq .faq-layout { align-items: start; }
.faq .faq-lead { position: sticky; top: 145px; }
.faq .faq-topics { border-top-color: #83bbcb55; }
.faq .faq-topics details {
  padding: 0;
  border-bottom: 1px solid #83bbcb45;
  transition: background .25s ease, border-color .25s ease;
}
.faq .faq-topics details:hover,
.faq .faq-topics details[open] {
  border-color: #83d6e68b;
  background: linear-gradient(90deg, #17344169, transparent 75%);
}
.faq .faq-topics summary {
  align-items: center;
  gap: 25px;
  min-height: 94px;
  padding: 20px 2px 20px 20px;
  color: #e6f2f5;
  font-size: clamp(17px, 1.45vw, 23px);
  font-weight: 610;
  line-height: 1.38;
  transition: color .25s ease;
}
.faq .faq-topics details:hover summary,
.faq .faq-topics details[open] summary { color: #fff; }
.faq .faq-topics summary::after {
  display: grid;
  flex: 0 0 38px;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid #79c8d871;
  border-radius: 50%;
  background: #122b37;
  color: #9de9f2;
  font-size: 26px;
  font-weight: 300;
  line-height: 1;
  transition: transform .28s ease, background .28s ease, color .28s ease;
}
.faq .faq-topics details[open] summary::after {
  background: #7bd8e9;
  color: #0b202b;
  transform: none;
}
.faq .faq-topics details p {
  max-width: 74ch;
  margin: 0;
  padding: 0 70px 28px 27px;
  color: #bed1d9;
  font-size: clamp(15px, 1.08vw, 17px);
  line-height: 1.72;
  animation: faq-answer-in .4s cubic-bezier(.16,1,.3,1) both;
}
@keyframes faq-answer-in {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: none; }
}

.contact .contact-layout { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); align-items: center; }
.contact .contact-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 15px;
  width: 100%;
  max-width: 590px;
  justify-self: end;
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid #83bfd066;
  border-radius: 18px;
  background: linear-gradient(155deg, #162f3b 0%, #0c1a24 70%);
  box-shadow: 0 22px 66px #0005, inset 0 1px #edffff12;
}
.contact .contact-form .form-row { grid-column: 1; margin: 0; }
.contact .contact-form label { margin-bottom: 7px; color: #b9d0d9; font-size: 12px; font-weight: 650; }
.contact .contact-form input,
.contact .contact-form textarea {
  min-height: 52px;
  padding: 12px 15px;
  border-color: #83aebc70;
  border-radius: 9px;
  background: #0e202c;
  font-size: 15px;
  transition: border-color .2s, box-shadow .2s;
}
.contact .contact-form textarea { height: 92px; min-height: 92px; resize: vertical; }
.contact .contact-form input:focus,
.contact .contact-form textarea:focus {
  outline: none;
  border-color: #8ddfee;
  box-shadow: 0 0 0 3px #6fd0e52a;
}
.contact .contact-form .primary,
.contact .contact-form .form-status { grid-column: 1; }
.contact .contact-form .primary { min-height: 59px; margin-top: 5px; }

.offer-footer { border-top: 0; }
.offer-footer .footer-layout { padding-bottom: 43px; }
.offer-footer .footer-logo {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 17px;
}
.offer-footer .footer-logo::after {
  content: "";
  width: min(100%, 245px);
  height: 1px;
  margin-top: 12px;
  background: linear-gradient(90deg, #82d8eac2, #82d8ea00);
}
.offer-footer .footer-floor { border-top: 0; min-height: 62px; align-items: flex-start; }
.offer-footer .footer-legal button {
  padding: 0;
  border: 0;
  background: none;
  color: var(--soft);
  font: inherit;
  line-height: 1.45;
  text-align: left;
  cursor: pointer;
  transition: color .2s ease;
}
.offer-footer .footer-legal button:hover { color: var(--a); }
.offer-footer .footer-legal button:focus-visible { outline: 2px solid var(--a); outline-offset: 4px; }

dialog.legal-dialog {
  width: min(860px, calc(100vw - 26px));
  max-width: none;
  max-height: calc(100svh - 20px);
  margin: auto;
  padding: 0 60px 0 0;
  overflow: visible;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.legal-dialog .dialog-close { top: 0; right: 0; }
.legal-dialog .legal-surface {
  max-height: calc(100svh - 24px);
  overflow: auto;
  padding: clamp(28px, 4vw, 50px);
  border: 1px solid #89c6d57d;
  border-radius: 18px;
  background: linear-gradient(150deg, #172f3c, #0b1924 72%);
  box-shadow: 0 36px 95px #000a;
}
.legal-dialog h2 {
  max-width: 18ch;
  margin: 24px 0 0;
  font-size: clamp(27px, 3.3vw, 44px);
  line-height: 1.1;
}
.legal-body { min-height: 150px; padding: 25px 0 36px; }
.legal-body p { max-width: 65ch; margin: 0 0 16px; color: #d0dfe4; font-size: clamp(15px, 1.25vw, 17px); line-height: 1.7; }
.legal-body .legal-pending { padding-left: 19px; border-left: 2px solid #7bd4e5; }
.legal-foot {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 17px;
  border-top: 1px solid #86b7c64c;
  color: #9bbbc5;
  font-size: 12px;
}
.legal-foot img { width: 19px; height: 22px; }
@media (max-width: 800px) {
  .faq .faq-lead { position: static; }
  .contact .contact-layout { grid-template-columns: minmax(0, 1fr); }
  .contact .contact-form { justify-self: start; max-width: 650px; }
}
@media (max-width: 560px) {
  .faq .faq-topics summary { min-height: 76px; padding: 16px 0 16px 9px; font-size: 17px; }
  .faq .faq-topics summary::after { flex-basis: 33px; width: 33px; height: 33px; font-size: 22px; }
  .faq .faq-topics details p { padding: 0 45px 22px 13px; }
  .contact .contact-form { padding: 22px; }
  .offer-footer .footer-layout { padding-bottom: 16px; }
  dialog.legal-dialog { width: calc(100vw - 18px); padding-right: 45px; }
  .legal-dialog .dialog-close { width: 38px; height: 38px; }
}
@media (prefers-reduced-motion: reduce) {
  .faq .faq-topics details p { animation: none; }
}
