/* Felles hovedkolonne og tjenestemeny. */
#DisplayUnderside .tm-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); gap: 40px; align-items: start; }
#DisplayUnderside .tm-main { min-width: 0; margin-bottom: 50px; }
.tm-sidebar { min-width: 0; padding-bottom: 40px; }
.tm-panel { padding: 24px; border: 1px solid #dce9e6; border-radius: 16px; background: #f3f8f6; }
.tm-panel h2 { display: flex; align-items: center; gap: 12px; margin: 0 0 10px; font-size: 21px; color: #263f42; }
.tm-panel h2 .fa { color: #337a80; }
.tm-panel > p { margin: 0 0 18px; font-size: 13px; line-height: 1.6; color: #4c6264; }
.tm-panel ul { padding: 0; margin: 0; list-style: none; }
.tm-panel li + li { border-top: 1px solid #dce9e6; }
.tm-panel li a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 8px; border-radius: 6px; color: #294f53; text-decoration: none; font-size: 14px; line-height: 1.5; transition: background .2s ease, color .2s ease; }
.tm-panel li a span { min-width: 0; overflow-wrap: anywhere; }
.tm-panel li a .fa { flex-shrink: 0; color: #337a80; }
.tm-panel li a:hover, .tm-panel li a.tm-active { background: #e0eee8; color: #20575e; }
.tm-panel li a.tm-active { font-weight: 700; }
.tm-panel a:focus-visible { outline: 3px solid #337a80; outline-offset: 3px; }
.tm-panel .tm-booking { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 22px; padding: 13px; border-radius: 8px; background: #337a80; color: #fff; text-decoration: none; font-weight: 600; }
.tm-panel .tm-booking:hover { background: #28656b; }
.tm-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 24px; }
.tm-service-card { min-width: 0; }
.tm-service-card img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.tm-service-card h2 { font-size: 20px; line-height: 1.4; margin: 18px 0 12px; }
.tm-service-card h2 a { color: #214f51; }
.tm-service-card h2 a:hover { color: #173d3f; }
.tm-service-card .IntroText { margin-bottom: 12px; }
@media (max-width: 991px) { #DisplayUnderside .tm-layout { grid-template-columns: minmax(0, 1fr); gap: 0; } .tm-sidebar { width: 100%; } }
@media (max-width: 575px) { .tm-service-grid { grid-template-columns: minmax(0, 1fr); } .tm-panel { padding: 20px; } }
@media (prefers-reduced-motion: reduce) { .tm-panel a { transition: none; } }
