/* Tennis Center Südtirol — readable, responsive presentation. */
body { color: #263e38; font-size: 16px; line-height: 1.65; background: #f4f7f4; }
.main_warper { background: #fff; border-radius: 0; box-shadow: 0 6px 28px rgba(22, 54, 39, .1); }
body a { color: #276139; }
body a:hover { color: #183e2a; }
body a:focus-visible, body button:focus-visible, body input:focus-visible, body textarea:focus-visible { outline: 3px solid #d59420; outline-offset: 4px; }
body h1, body h2, body h3, body h4 { color: #173d2e; line-height: 1.25; }
body #wpm_header { background: #214d35; box-shadow: none; }
body .wpm_header_top_menu_bg { background: #173b29; }
body .wpm_header_top_menu_bg, body .wpm_header_top_menu_bg a, body .wpm_header_top_menu_bg .widget { color: #fff; }
body .wpm_header_top_menu_bg .widget a { color: #fff; }
body .top_nav > ul > li > a { color: #fff; text-transform: none; font-size: 15px; }
body .top_nav > ul > li:hover > a, body .top_nav > ul > li.current-menu-item > a, body .top_nav > ul > li.current_page_item > a { color: #e8f3b1; }
body .top_nav ul ul li a { background: #214d35; color: #fff; }
body .top_nav ul ul li:hover > a { background: #173b29; }
body .top_nav li:focus-within > ul { left: auto; opacity: 1; }
body .home_featured_excerpt { text-align: left; }
body .heading_container { background: #eef4ed; }
body .heading_h1 { font-size: clamp(28px, 4vw, 42px); }
body .call_to_action_content { background-attachment: scroll; padding: 56px 0; }
body input[type=submit], body .wpm_inner_button a, body .wpm_btn { background: #276139; color: #fff; border-radius: 6px; padding: 12px 20px; }
body input[type=text], body input[type=email], body input[type=tel], body textarea, body select { max-width: 100%; font-size: 16px; }
body .copyright_container { background: #eef4ed; }
.tcp-intro { background: #f1f5e9; border-bottom: 1px solid #dce5d5; }
.tcp-content { max-width: 1100px; margin: 0 auto; padding: 62px 30px; }
.tcp-eyebrow { color: #386146; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 18px; }
.tcp-intro h1 { max-width: 780px; font-family: Arial, Helvetica, sans-serif; font-size: clamp(32px, 4.5vw, 54px); line-height: 1.08; letter-spacing: -.035em; margin: 0 0 22px; }
.tcp-lead { max-width: 740px; font-size: 18px; line-height: 1.7; margin: 0 0 26px; }
.tcp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
body .tcp-button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 12px 20px; border: 1px solid #276139; border-radius: 6px; font-size: 15px; font-weight: 700; text-decoration: none; line-height: 1.4; box-sizing: border-box; }
body .tcp-button-primary { background: #276139; color: #fff; }
body .tcp-button-primary:hover { background: #183e2a; color: #fff; }
body .tcp-button-outline { color: #214d35; background: transparent; }
body .tcp-button-outline:hover { background: #e2ecd8; color: #173b29; }
body .tcp-text-link { font-size: 15px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.tcp-courses { margin: 0 0 40px; padding: 32px; background: #f1f5e9; border: 1px solid #dce5d5; border-radius: 12px; }
.tcp-courses h2 { font-size: clamp(24px, 3vw, 34px); margin: 0 0 16px; }
.tcp-teachers { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 20px 0; list-style: none; }
.tcp-teachers li { margin: 0; padding: 8px 14px; border: 1px solid #ccd9c6; background: #fff; border-radius: 6px; font-weight: 700; list-style: none; }
@media (min-width: 769px) {
    body .top_nav > ul { height: auto; display: flex; flex-wrap: wrap; justify-content: flex-end; }
    body .top_nav > ul > li { float: none; }
}
@media (max-width: 768px) {
    body .row { min-width: 0; padding-left: 18px; padding-right: 18px; }
    body .wpm_header_row { padding: 16px 18px; }
    body .top_nav > ul > #menu-button { margin-left: auto; width: 44px; }
    body .top_nav ul li a, body .top_nav ul.open ul li a { color: #173b29 !important; background: #fff !important; font-size: 16px; min-height: 44px; box-sizing: border-box; box-shadow: none; }
    body .top_nav > ul > li > a:hover, body .top_nav ul ul li a:hover { color: #173b29 !important; background: #e8f0e2 !important; }
    body .top_nav ul #menu-button::after, body .top_nav ul #menu-button::before { border-color: #173b29; }
    .tcp-content { padding: 38px 20px; }
    .tcp-lead { font-size: 17px; }
    .tcp-courses { padding: 24px 20px; }
    body .call_to_action_content { padding: 38px 0; }
}
@media (max-width: 480px) {
    .tcp-actions { align-items: stretch; }
    body .tcp-button { width: 100%; }
    .tcp-text-link { padding: 6px 0; }
    /* Keep captions visible below the image, away from the small photo area. */
    body .slides .flex-caption { display: block !important; position: relative; top: auto; bottom: auto; left: auto; width: 100%; height: auto; padding: 18px 20px; opacity: 1; color: #173d2e; background: #eef4ed; text-shadow: none; box-sizing: border-box; transition: none; }
    body .slides .flex-caption h2 { color: #173d2e; font-size: 21px; text-transform: none; }
    body .flex-caption-div { margin: 0; padding: 0; transition: none; }
}
@media (prefers-reduced-motion: reduce) {
    body .flex-caption, body .flex-caption-div, body .top_nav a { transition: none; }
    body .uk-animation-scale-up, body .uk-animation-slide-bottom, body .uk-animation-slide-top { animation: none; }
}

.tcp-intro { display: grid; grid-template-columns: 1.15fr 1fr; }
.tcp-intro .tcp-content { width: 100%; padding: 54px 36px; }
.tcp-intro h1 { font-size: clamp(32px, 4vw, 48px); }
.tcp-hero-photo { width: 100%; height: 100%; max-height: 540px; object-fit: cover; }
.tcp-note { font-size: 14px; margin-top: 16px; color: #476050; line-height: 1.6; }
.tcp-main { background: #fff; }
.tcp-section { max-width: 1160px; margin: 0 auto; padding: 56px 30px; }
.tcp-section h2 { font-size: clamp(28px, 3.5vw, 38px); margin-bottom: 18px; letter-spacing: -.025em; }
.tcp-section-lead { max-width: 720px; margin-bottom: 26px; }
.tcp-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.tcp-trainer { border: 1px solid #dce5d5; border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; background: #fff; }
.tcp-portrait-link { display: block; background: #f1f5e9; }
.tcp-trainer img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; }
.tcp-trainer-body { padding: 24px; display: flex; flex: 1; flex-direction: column; align-items: flex-start; }
.tcp-trainer-body h3 { font-size: 23px; margin-bottom: 12px; }
.tcp-trainer-body p { margin-bottom: 22px; flex: 1; }
body .tcp-trainer-body .tcp-button { font-size: 14px; padding-left: 14px; padding-right: 14px; }
.tcp-phone { display: inline-block; margin-top: 12px; font-weight: 700; }
.tcp-gallery { background: #f5f8f2; border-radius: 12px; }
.tcp-photo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 24px 0; }
.tcp-photo-grid a, .tcp-photo-grid img { display: block; width: 100%; }
.tcp-photo-grid img { height: auto; border-radius: 6px; }
.tcp-booking { display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; }
.tcp-booking p { margin-bottom: 20px; }
.tcp-location { padding: 28px; background: #eef4ed; border-radius: 12px; }
.tcp-location h3 { font-size: 22px; margin-bottom: 16px; }
@media (max-width: 900px) {
    .tcp-intro { grid-template-columns: 1fr; }
    .tcp-hero-photo { max-height: 320px; }
    .tcp-card-grid { grid-template-columns: 1fr; }
    .tcp-trainer { display: grid; grid-template-columns: minmax(180px, .8fr) 1.2fr; }
}
@media (max-width: 600px) {
    .tcp-intro .tcp-content { padding: 36px 20px; }
    .tcp-section { padding: 36px 20px; }
    .tcp-trainer { display: flex; }
    .tcp-trainer img { max-height: 360px; }
    .tcp-booking, .tcp-photo-grid { grid-template-columns: 1fr; gap: 20px; }
}

/* No loading overlay: show content as soon as it is available. */
#wpm_loader-wrapper { display: none !important; }
.tcp-main, .tcp-intro, .tcp-section, .tcp-section h2, .tcp-section h3 { font-family: Arial, Helvetica, sans-serif; }
.tcp-trainer img { aspect-ratio: 2 / 3; object-fit: cover; }
.tcp-photo-grid figure { margin: 0; background: #fff; border-radius: 8px; overflow: hidden; }
.tcp-photo-grid img { width: 100%; height: 290px; object-fit: contain; background: #e8eee2; }
.tcp-photo-grid figcaption { padding: 12px 16px; font-size: 15px; font-weight: 700; }
.tcp-sponsor-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 28px; }
.tcp-sponsor-card { background: #fff; border: 1px solid #dce5d5; border-radius: 10px; padding: 20px 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 190px; text-align: center; }
.tcp-sponsor-card img { display: block; width: 100%; height: 110px; object-fit: contain; }
.tcp-sponsor-card a { display: block; width: 100%; }
.tcp-sponsor-card span { display: block; margin-top: 12px; font-size: 14px; font-weight: 700; line-height: 1.4; }
@media (max-width: 900px) { .tcp-sponsor-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) {
    .tcp-sponsor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .tcp-sponsor-card { padding: 16px 10px; min-height: 164px; }
    .tcp-sponsor-card img { height: 90px; }
    .tcp-trainer img { max-height: none; }
    .tcp-hero-photo { height: auto; max-height: none; }
    .tcp-photo-grid img { height: 260px; }
}

/* Shared reading rhythm and contact panels on existing information pages. */
body .wpm_inner_main { color: #263e38; line-height: 1.75; }
body .wpm_inner_main p { margin: 0 0 20px; }
body .wpm_inner_main h2 { font-size: clamp(24px, 3vw, 32px); margin: 32px 0 16px; }
body .wpm_inner_main h3 { font-size: 22px; margin: 28px 0 14px; }
body .wpm_inner_main ul, body .wpm_inner_main ol { margin: 16px 0 24px; padding-left: 24px; }
body .wpm_inner_main li { margin-bottom: 8px; }
body .wpm_inner_main img, body .wpm_layout_builder img { max-width: 100%; }
body .wpm_inner_main p img, body .wpm_inner_main td img { height: auto; }
body .wpm_inner_main a { overflow-wrap: anywhere; }
body .wpm_inner_main .tcp-actions, body .tcp-section .tcp-actions { margin-top: 22px; }
body .tcp-page-contact { padding: 30px; margin: 40px 0 12px; background: #eef4ed; border: 1px solid #dce5d5; border-radius: 12px; }
body .tcp-page-contact h2 { margin-top: 0; }
body .tcp-page-contact p { max-width: 700px; }
body .wpm_inner_main table { width: 100%; border-collapse: collapse; }
body .wpm_inner_main td, body .wpm_inner_main th { padding: 12px; vertical-align: top; }
body .widget input[type=text], body .widget input[type=email], body .widget textarea { width: 100%; box-sizing: border-box; border: 1px solid #b8cbb8; border-radius: 6px; padding: 12px; }
body .footer_container { background: #f5f8f2; border-top: 1px solid #dce5d5; }
@media (max-width: 600px) {
    body .wpm_inner_main table { display: block; max-width: 100%; overflow-x: auto; }
    body .wpm_inner_main th, body .wpm_inner_main td { min-width: 100px; }
    body .tcp-page-contact { padding: 24px 20px; }
    body .tcp-actions .tcp-button { width: 100%; }
    body .wpm_inner_main, body .wpm_inner_sidebar { width: 100% !important; }
    body .footer_row .columns { margin-bottom: 24px; }
}
