/* 2026 redesign: shared header and footer, the light page theme, and the pieces the mockup's
   inline styles cannot express (hover, focus, checked, and animation states). */

/* Header */
.tdv-header { background: #111111; color: #ededed; border-bottom: 1px solid #2a2a2a; }
.tdv-nav { position: static; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; max-width: 1200px; margin: 0 auto; padding: 20px 24px; background: transparent; border: 0; backdrop-filter: none; }
.tdv-logo { display: flex; align-items: center; gap: 10px; color: #ededed; font-size: 22px; font-weight: 600; text-decoration: none; }
.tdv-logo img { width: 32px; height: 32px; object-fit: contain; display: block; }
.tdv-navlinks { display: flex; flex-wrap: wrap; gap: 8px 28px; flex: 1 1 auto; list-style: none; margin: 0; padding: 0; font-size: 17px; }
.tdv-navlinks a { color: #ededed; text-decoration: none; padding: 4px 0; }
.tdv-navlinks a:hover { color: #ffffff; }
.tdv-navlinks a[aria-current="page"] { color: #ffffff; text-decoration: underline; text-underline-offset: 6px; }
.tdv-navcta { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-left: auto; }
.tdv-signin { color: #b2b3b2; text-decoration: none; font-size: 17px; padding: 10px 8px; }
.tdv-signin:hover { color: #ededed; }
.tdv-btn { display: inline-block; font-size: 17px; font-weight: 600; padding: 12px 20px; border-radius: 8px; text-decoration: none; transition: background-color 0.2s ease; }
.tdv-btn-primary { background: #1338bf; color: #ffffff; }
.tdv-btn-primary:hover { background: #0d2a96; color: #ffffff; }
@media (max-width: 860px) {
  .tdv-nav { gap: 12px 20px; padding: 16px 20px; }
  .tdv-navlinks { order: 3; flex-basis: 100%; gap: 4px 20px; font-size: 16px; }
  .tdv-navlinks a { display: inline-block; min-height: 44px; line-height: 44px; padding: 0; }
  .tdv-signin { display: none; }
}
@media (max-width: 480px) {
  .tdv-nav { padding: 14px 16px; }
  .tdv-btn { font-size: 15px; padding: 10px 14px; }
  .tdv-navlinks { gap: 0 16px; }
}

/* Footer */
.tdv-footer { background: #111111; color: #b2b3b2; font-size: 16px; }
.tdv-footer-grid { max-width: 1200px; margin: 0 auto; padding: 64px 24px 40px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); gap: 32px; }
.tdv-footer-brand { display: flex; flex-direction: column; gap: 12px; }
.tdv-footer-brand p { margin: 0; line-height: 1.5; }
.tdv-footer-logo { display: flex; align-items: center; gap: 10px; font-size: 20px; font-weight: 600; color: #ededed; }
.tdv-footer-logo img { width: 28px; height: 28px; object-fit: contain; }
.tdv-footer-links { display: flex; flex-direction: column; gap: 10px; }
.tdv-footer-links p { margin: 0; color: #ededed; font-weight: 600; }
.tdv-footer a, .tdv-footer-button { color: #b2b3b2; text-decoration: none; }
.tdv-footer a:hover, .tdv-footer-button:hover { color: #ededed; }
.tdv-footer-button { background: none; border: 0; padding: 0; font: inherit; text-align: left; cursor: pointer; }
.tdv-footer-base { max-width: 1200px; margin: 0 auto; padding: 24px; border-top: 1px solid #2a2a2a; display: flex; flex-wrap: wrap; gap: 16px 24px; font-size: 14px; }
.tdv-footer-base a:last-child { margin-left: auto; }
@media (max-width: 480px) {
  .tdv-footer-grid { padding: 48px 16px 32px; }
  .tdv-footer-base { padding: 20px 16px; }
}

/* Light page theme. The legacy stylesheets assume a dark page; redesigned pages opt in with data-theme. */
html[data-theme="light"] body { background: #f7f7f5; color: #111111; }
html[data-theme="light"] main h1, html[data-theme="light"] main h2, html[data-theme="light"] main h3, html[data-theme="light"] main h4 { color: inherit; max-width: none; }
html[data-theme="light"] main a { color: #1338bf; text-decoration: underline; text-underline-offset: 3px; }
html[data-theme="light"] main a:hover { color: #0d2a96; }
html[data-theme="light"] :focus-visible { outline: 2px solid #1338bf; outline-offset: 3px; }
html[data-theme="light"] .skip-link { background: #111111; color: #ffffff; }
html[data-theme="light"] main details > summary { list-style: none; position: relative; padding-right: 32px; }
html[data-theme="light"] main details > summary::-webkit-details-marker { display: none; }
html[data-theme="light"] main details > summary::after { content: "+"; position: absolute; right: 0; top: 0; color: #1338bf; font-weight: 600; }
html[data-theme="light"] main details[open] > summary::after { content: "−"; }
.tdv img { max-width: 100%; }

/* Home: the frameworks marquee. */
@keyframes tdv-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.tdv-marquee { animation: tdv-marquee 40s linear infinite; }
@media (prefers-reduced-motion: reduce) { .tdv-marquee { animation: none; } }

/* Offerings: the "What it covers" tabs. */
.tdv-tab { font: inherit; font-size: 17px; padding: 12px 22px; border-radius: 999px; cursor: pointer; background: #ffffff; color: #111111; border: 1px solid #b8b8b8; min-height: 44px; }
.tdv-tab:hover { border-color: #111111; }
.tdv-tab[aria-selected="true"] { background: #111111; color: #ffffff; border-color: #111111; }

/* Contact: the lead form in the redesign's card layout. */
.tdv-contact { max-width: 1200px; margin: 0 auto; padding: 80px 24px 96px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); gap: 48px 64px; align-items: start; }
.tdv-contact-intro { display: flex; flex-direction: column; gap: 20px; }
.tdv-contact-aside { display: flex; flex-direction: column; gap: 10px; padding-top: 12px; }
.tdv-contact-aside p { margin: 0; font-size: 17px; font-weight: 600; }
.tdv-contact-aside p + p { margin-top: 12px; }
.tdv-contact-aside a, .tdv-link-button { font-size: 17px; }
.tdv-link-button { background: none; border: 0; padding: 0; font: inherit; font-size: 17px; color: #1338bf; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; text-align: left; }
.tdv-link-button:hover { color: #0d2a96; }
.tdv-form { background: #ffffff; border: 1px solid #d8d8d8; border-radius: 16px; padding: 32px; display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.tdv-form fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.tdv-form legend { font-size: 17px; font-weight: 600; margin-bottom: 10px; padding: 0; }
.tdv-intents label { position: relative; display: block; padding: 16px 18px; border-radius: 10px; background: #ffffff; border: 1px solid #d8d8d8; cursor: pointer; }
.tdv-intents label:hover { border-color: #8e8e8e; }
.tdv-intents label:has(input:checked) { background: #eef1fd; border: 2px solid #1338bf; padding: 15px 17px; }
.tdv-intents label:has(input:focus-visible) { outline: 2px solid #1338bf; outline-offset: 2px; }
.tdv-intents input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.tdv-intents b { display: block; font-size: 17px; font-weight: 600; }
.tdv-intents span { display: block; margin-top: 4px; font-size: 15px; color: #5a5a5a; }
.tdv-form .row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: 16px; }
.tdv-form .field { display: flex; flex-direction: column; gap: 6px; font-size: 15px; font-weight: 600; min-width: 0; }
.tdv-form .optional { font-weight: 400; color: #5a5a5a; }
.tdv-form input[type="text"], .tdv-form input[type="email"], .tdv-form select, .tdv-form textarea { width: 100%; min-height: 44px; font: inherit; font-weight: 400; font-size: 17px; padding: 12px; border: 1px solid #b8b8b8; border-radius: 8px; background: #ffffff; color: #111111; }
.tdv-form textarea { min-height: 120px; resize: vertical; }
.tdv-form input:focus-visible, .tdv-form select:focus-visible, .tdv-form textarea:focus-visible { outline: 2px solid #1338bf; outline-offset: 1px; border-color: #1338bf; }
.tdv-form [aria-invalid="true"] { border-color: #c0392b; }
.tdv-form .hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.tdv-form .form-note { font-size: 14px; color: #5a5a5a; }
.tdv-form button[type="submit"] { align-self: flex-start; background: #1338bf; color: #ffffff; border: 0; font: inherit; font-size: 18px; font-weight: 600; padding: 16px 24px; border-radius: 8px; cursor: pointer; min-height: 44px; }
.tdv-form button[type="submit"]:hover { background: #0d2a96; }
.tdv-form button[type="submit"]:disabled { opacity: 0.7; cursor: wait; }
.form-status { padding: 16px; border: 1px solid #d8d8d8; border-radius: 10px; background: #f7f7f5; }
.form-status[data-state="error"] { border-color: #c0392b; }
.form-status[data-state="success"] { border-color: #1338bf; }
.form-status h2 { font-size: 22px; margin: 0 0 8px; }
.booking-frame { width: 100%; min-height: 700px; border: 1px solid #d8d8d8; border-radius: 12px; background: #ffffff; margin-top: 12px; }
@media (max-width: 600px) {
  .tdv-contact { padding: 56px 16px 72px; gap: 40px; }
  .tdv-form { padding: 20px; }
}
