/* Reservation service page and AI-page feature */
.reservation-page { background: #f4f8f9; }
.reservation-shell { width: min(100% - 40px, 1080px); margin: 0 auto; }
.reservation-hero { padding: clamp(50px, 7.2vw, 97px) 0; background: linear-gradient(90deg, #1e1e1e 0%, #202020 100%); color: #fff; }
.reservation-hero__inner { display: block; }
.reservation-hero__copy { max-width: 720px; margin: 0 auto; text-align: center; }
.reservation-eyebrow, .reservation-kicker { margin: 0 0 16px; color: #75d4cd; font-size: .72rem; font-weight: 700; letter-spacing: .16em; }
.reservation-hero h1, .reservation-section h2 { margin: 0; font-weight: 400; letter-spacing: .035em; line-height: 1.45; }
.reservation-hero h1 { font-size: clamp(2.65rem, 3.8vw, 3.05rem); }
.reservation-hero__mobile-break { display: none; }
.reservation-hero__copy > p:not(.reservation-eyebrow) { margin: 18px 0 0; color: rgba(255,255,255,.78); font-size: .9rem; line-height: 1.9; }
.reservation-hero__copy .ai-hero__button { margin-top: 22px; }
.reservation-section { padding: clamp(65px, 7.7vw, 99px) 0 clamp(76px, 9vw, 116px); background: #fff; }
.reservation-section h2 { color: #102a43; font-size: clamp(1.7rem, 3.2vw, 2.55rem); }
.reservation-section .reservation-kicker,
.reservation-section h2,
.reservation-section .reservation-lead { text-align: center; }
.reservation-section .reservation-lead { margin-right: auto; margin-left: auto; }
.reservation-section--issues { background: #eaf2f5; }
.reservation-section--issues .reservation-kicker { color: #245966; }
.reservation-section#screens .reservation-kicker { color: #245966; }
.reservation-issues { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 42px; }
.reservation-issues article { display: grid; grid-template-columns: 42px 1fr; gap: 16px; padding: 24px; border: 1px solid #d3e1e6; background: rgba(255,255,255,.72); }
.reservation-issues span, .reservation-features span, .reservation-flow > article > span { color: #2b7a82; font-size: .76rem; font-weight: 700; letter-spacing: .12em; }
.reservation-issues p { margin: 0; color: #30475f; line-height: 1.75; }
.reservation-section--dark { background: #fff; color: #102a43; }
.reservation-section--dark h2 { color: #102a43; }
.reservation-section--dark .reservation-kicker { color: #245966; }
.reservation-lead { max-width: 660px; margin: 20px 0 0; color: rgba(255,255,255,.74); line-height: 1.9; }
.reservation-lead--dark { color: #62798a; }
.reservation-features { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 14px; margin-top: 42px; }
.reservation-features article { display: grid; grid-column: span 2; grid-template-columns: 42px minmax(0, 1fr); column-gap: 14px; align-content: center; min-height: 196px; padding: 25px; border: 1px solid #d3e1e6; background: #fff; }
.reservation-section--dark .reservation-features article { background: #f8fcfd; }
.reservation-features article:nth-child(4) { grid-column: 2 / span 2; }
.reservation-features article:nth-child(5) { grid-column: 4 / span 2; }
.reservation-features span { grid-column: 1; grid-row: 1; align-self: center; }
.reservation-features h3 { grid-column: 2; grid-row: 1; margin: 0; color: #102a43; font-size: 1.06rem; font-weight: 500; }
.reservation-features p { grid-column: 1 / -1; grid-row: 2; margin: 14px 0 0; color: #30475f; font-size: .9rem; line-height: 1.75; }
.reservation-screens { display: grid; gap: 24px; margin-top: 42px; }
.reservation-screens--phone { grid-template-columns: repeat(4, minmax(0, 240px)); justify-content: center; }
.reservation-slot { margin: 0; }
.reservation-slot img { display: block; box-sizing: border-box; width: 100%; aspect-ratio: 4 / 5; border: 5px solid #0e2340; object-fit: cover; }
.reservation-slot figcaption { padding-top: 14px; color: #30475f; font-size: .9rem; line-height: 1.7; }
.reservation-slot figcaption strong { display: block; color: #102a43; font-size: 1rem; font-weight: 500; line-height: 1.5; }
.reservation-slot figcaption span { display: block; margin-top: 6px; }
.reservation-section#screens { background: #f1f6f8; }
.reservation-page.site-ai #flow { background: #fff !important; color: #102a43 !important; }
.reservation-page.site-ai #flow .reservation-kicker { color: #245966 !important; }
.reservation-page.site-ai #flow h2, .reservation-page.site-ai #flow h3 { color: #102a43 !important; }
.reservation-page.site-ai #flow .reservation-flow > article > span { color: #2b7a82 !important; }
.reservation-page.site-ai #flow .reservation-flow p { color: #30475f !important; }
.reservation-flow-title__mobile-break { display: none; }
.reservation-flow { max-width: 760px; margin: 40px auto 0; }
.reservation-flow article { display: grid; grid-template-columns: 54px 1fr; gap: 24px; padding: 25px 0; border-top: 1px solid #bcd7d7; }
.reservation-flow article:last-child { border-bottom: 1px solid #bcd7d7; }
.reservation-flow h3 { margin: 0 0 7px; color: #102a43; font-size: 1.08rem; font-weight: 500; }
.reservation-flow p { margin: 0; color: #526d7c; line-height: 1.8; }
.reservation-page.site-ai #faq { background: #f1f6f8; color: #102a43; }
.reservation-page.site-ai #faq .reservation-kicker { color: #245966; }
.reservation-faq { display: grid; max-width: 720px; margin: 42px auto 0; }
.reservation-faq details { border-top: 1px solid #d3e1e6; }
.reservation-faq details:last-child { border-bottom: 1px solid #d3e1e6; }
.reservation-faq summary { display: grid; grid-template-columns: 8px 24px minmax(0, 1fr); column-gap: 8px; cursor: pointer; padding: 20px 0; color: #102a43; font-weight: 600; line-height: 1.7; list-style: none; }
.reservation-faq summary::-webkit-details-marker { display: none; }
.reservation-faq summary::before { width: 0; height: 0; align-self: center; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 7px solid #102a43; content: ""; }
.reservation-faq details[open] summary::before { transform: rotate(90deg); }
.reservation-faq__number { grid-column: 2; }
.reservation-faq__question { grid-column: 3; }
.reservation-faq__mobile-break { display: none; }
.reservation-faq p { margin: 0; padding: 0 0 20px; color: #526d7c; line-height: 1.85; }
.reservation-page.site-ai #contact { background: #e3edf0; color: #102a43; text-align: center; }
.reservation-page.site-ai #contact h2 { color: #102a43; }
.reservation-page.site-ai #contact .reservation-kicker { color: #245966; }
.reservation-contact .reservation-kicker { margin-bottom: 16px; }
.reservation-page.site-ai #contact .reservation-contact > p:not(.reservation-kicker) { margin: 22px auto 0; color: #526d7c; line-height: 1.9; }
.reservation-contact__line { display: block; }
.reservation-contact__mobile-break { display: none; }
.reservation-page.site-ai #contact .reservation-contact .tk-button { margin-top: 30px; border-color: #222222; background: #222222; color: #fff; }
@media (hover: hover) and (pointer: fine) { .reservation-page.site-ai #contact .reservation-contact .tk-button:hover { border-color: #333333; background: #333333; color: #fff; transform: none; } }
.ai-reservation-preview { padding: clamp(58px, 7vw, 86px) 0; background: #f5f5f5; }
.ai-reservation-preview__card { display: grid; grid-template-columns: minmax(0,1fr) minmax(260px,.56fr); gap: 34px; align-items: center; padding: clamp(28px,4vw,48px); border: 1px solid #d1d1ce; background: #fafafa; box-shadow: 0 16px 34px rgba(40,40,40,.07); }
.ai-reservation-preview__label { margin: 0 0 14px; color: #71857a; font-size: .72rem; font-weight: 700; letter-spacing: .14em; }
.ai-reservation-preview h2 { margin: 0; color: #292929; font-size: clamp(1.55rem,3vw,2.3rem); font-weight: 400; line-height: 1.45; }
.ai-reservation-preview__text { margin: 17px 0 0; color: #6b6b68; line-height: 1.85; }
.ai-reservation-preview .tk-button { margin-top: 24px; border-color: #222222; background: #222222; color: #fff; }
@media (hover: hover) and (pointer: fine) { .ai-reservation-preview .tk-button:hover { border-color: #333333; background: #333333; color: #fff; } }
.ai-reservation-preview__points { display: grid; align-self: stretch; align-content: center; gap: 12px; padding: 25px; border-left: 2px solid #9aa99f; background: #f5f2f1; color: #4a4a48; }
.ai-reservation-preview__points span { font-size: .9rem; }
.ai-reservation-preview__desktop-only { display: block; }

/* AI home: use the same clean blue-white surface rhythm as the consultation page. */
.site-ai.ai-home .ai-reservation-preview {
  background: #eaf2f5;
}

.site-ai.ai-home .ai-reservation-preview__card {
  border-color: #d3e1e6;
  background: #fff;
}

.site-ai.ai-home .ai-reservation-preview__points {
  border-left-color: #8fb8bc;
  background: #f8fcfd;
  color: #30475f;
}

@media (min-width: 760px) {
  .reservation-hero__inner { width: min(100% - 40px, 840px); }
  .reservation-hero__copy { width: min(100%, 760px); }
  .reservation-hero h1 { font-size: clamp(2.45rem, 3.15vw, 2.7rem); line-height: 1.25; }
}

@media (min-width: 760px) and (max-width: 1023px) {
  .reservation-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reservation-features article { grid-column: auto; }
  .reservation-features article:nth-child(4) { grid-column: auto; }
  .reservation-features article:nth-child(5) { grid-column: 1 / -1; width: calc((100% - 14px) / 2); justify-self: center; }
  .reservation-screens--phone { grid-template-columns: repeat(2, minmax(0, 240px)); }
}

@media (min-width: 1024px) and (max-width: 1071px) {
  .reservation-screens--phone { grid-template-columns: repeat(3, minmax(0, 240px)); }
  .reservation-screens--phone .reservation-slot:last-child { grid-column: 2; }
}

@media (max-width: 759px) {
  .reservation-section--contact h2 { font-size: clamp(1.48rem, 6.1vw, 1.58rem); }
  .reservation-shell { width: min(100% - 40px, 560px); }
  .reservation-hero__inner, .ai-reservation-preview__card { grid-template-columns: 1fr; }
  .reservation-hero { padding: 48px 0 54px; }
  .reservation-hero h1 { font-size: clamp(1.65rem, 6.9vw, 1.85rem); }
  .reservation-hero__mobile-break { display: inline; }
  .reservation-hero__copy > p:not(.reservation-eyebrow) { font-size: .91rem; }
  .reservation-section--issues h2 { font-size: clamp(1.43rem, 6.1vw, 1.52rem); letter-spacing: .01em; }
  .reservation-hero__copy > p br { display: none; }
  .reservation-section { padding: 61px 0 72px; }
  .reservation-issues, .reservation-features { grid-template-columns: 1fr; }
  .reservation-features article,
  .reservation-features article:nth-child(4),
  .reservation-features article:nth-child(5) { grid-column: auto; width: auto; }
  .reservation-features article { min-height: 0; }
  .reservation-screens--phone { grid-template-columns: 1fr; gap: 32px; width: min(100%, 360px); max-width: none; margin-right: auto; margin-left: auto; }
  .reservation-slot img { border-width: 4px; }
  .reservation-slot figcaption { font-size: .9rem; }
  .reservation-flow article { grid-template-columns: 40px 1fr; gap: 14px; }
  .reservation-faq { margin-top: 32px; }
  .reservation-faq summary { grid-template-columns: 6px 20px minmax(0, 1fr); column-gap: 4px; font-size: .8125rem; letter-spacing: -.03em; white-space: nowrap; }
  .reservation-faq p { font-size: .875rem; }
  .reservation-contact__mobile-break { display: inline; }
  .ai-reservation-preview__card { gap: 24px; padding: 28px 24px 24px; }
  .ai-reservation-preview h2 { font-size: clamp(1.02rem, 4.55vw, 1.18rem); letter-spacing: -0.045em; white-space: nowrap; }
  .ai-reservation-preview__points { padding: 22px 16px; }
  .ai-reservation-preview__points span { font-size: .78rem; letter-spacing: -0.03em; }
  .ai-reservation-preview__desktop-only { display: none; }
  .ai-reservation-preview__card > div:first-child { display: contents; }
  .ai-reservation-preview__label { order: 1; }
  .ai-reservation-preview h2 { order: 2; }
  .ai-reservation-preview__text { order: 3; }
  .ai-reservation-preview__points { order: 4; }
  .ai-reservation-preview .tk-button { order: 5; justify-self: start; margin-top: 0; }
}

@media (min-width: 760px) and (max-width: 1023px) {
  .reservation-hero { padding: 64px 0 68px; }
}
