/* Shared campamentos styles. Palette, typography and panels follow the approved course fichas. */
body.tlk-campamentos-page .top_panel_title, body.tlk-campamentos-page .page_title_wrap { display:none; }
body.tlk-campamentos-page .page_content_wrap { padding:32px 0 72px; background:#fff; }
body.tlk-campamentos-page .page_content_wrap > .content_wrap { width:calc(100% - 64px); max-width:1200px; }
body.tlk-campamentos-page .page_content_wrap .content { width:100%; float:none; }
body.tlk-campamentos-page .page_content_wrap .sidebar { display:none; }
.tlk-camp { --tlk-navy:#17234d; --tlk-orange:#f57819; --tlk-green:#0bbf75; --tlk-ink:#505b70; color:var(--tlk-ink); font-family:Lato,sans-serif; font-size:16px; line-height:1.7; }
.tlk-camp *, .tlk-camp *::before, .tlk-camp *::after { box-sizing:border-box; }
.tlk-camp .woocommerce-breadcrumb { margin:0 0 32px; font-size:14px; line-height:1.6; color:#627083; }
.tlk-camp h1, .tlk-camp h2, .tlk-camp h3 { color:var(--tlk-navy); font-family:Lato,sans-serif; font-weight:700; text-transform:none; hyphens:none; word-break:normal; overflow-wrap:normal; }
.tlk-camp h1 { font-size:44px; line-height:1.12; letter-spacing:-.025em; margin:0 0 24px; }
.tlk-camp h2 { font-size:32px; line-height:1.2; letter-spacing:-.015em; margin:0 0 20px; }
.tlk-camp h3 { font-size:22px; line-height:1.35; margin:0 0 12px; }
.tlk-camp p { margin:0 0 20px; }
.tlk-camp a:not(.sc_button) { color:#08758b; text-decoration:underline; text-underline-offset:3px; }
.tlk-camp a:focus-visible, .tlk-camp input:focus-visible, .tlk-camp select:focus-visible { outline:3px solid #0a8da7; outline-offset:4px; }
.tlk-camp .tlk-camp-eyebrow { color:#b34b00; font-size:14px; line-height:1.5; font-weight:700; margin:0 0 14px; }
.tlk-camp-hero { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); align-items:center; gap:52px; padding-bottom:44px; }
.tlk-camp-hero-image { margin:0; padding:0; width:100%; max-width:390px; justify-self:center; border-radius:20px; overflow:hidden; }
.tlk-camp-hero-image img { display:block; width:100%; height:auto; max-height:none; border-radius:20px; }
.tlk-camp-summary p { font-size:18px; line-height:1.65; }
.tlk-camp-summary ul { display:flex; flex-wrap:wrap; gap:10px 26px; list-style:none; margin:0 0 28px; padding:18px 22px; background:#f4f8fb; border:1px solid #e6edf3; border-radius:16px; font-size:15px; }
.tlk-camp-summary li { padding:0; margin:0; }
.tlk-camp .tlk-camp-native-cta .sc_button_default { background-color:var(--tlk-green); color:#fff; }
.tlk-camp .tlk-camp-native-cta .sc_button_default:hover { background-color:#087b4d; color:#fff; }
.tlk-camp-body > section { margin-bottom:48px; }
.tlk-camp-panel { padding:32px; background:#f4f8fb; border:1px solid #e6edf3; border-radius:20px; }
.tlk-camp-intro-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:28px; }
.tlk-camp-intro-grid .tlk-camp-panel:nth-child(2) { background:#fff7ec; border-color:#f1e5d5; }
.tlk-camp ul { padding-left:22px; }
.tlk-camp li { margin-bottom:10px; }
.tlk-camp .tlk-camp-age-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; list-style:none; margin:24px 0; padding:0; }
.tlk-camp-age-grid li { margin:0; padding:28px; background:#f4f8fc; border:1px solid #e5eaf0; border-radius:18px; }
.tlk-camp-age-grid li:nth-child(2) { background:#fff7ed; border-color:#f1e5d5; }
.tlk-camp-age-grid li:nth-child(3) { background:#f3f9ee; border-color:#e1ecd8; }
.tlk-camp-age-grid strong { display:block; color:var(--tlk-navy); font-size:24px; line-height:1.3; margin-bottom:12px; }
.tlk-camp-edition { background:#eff8f1; border-color:#dfece2; scroll-margin-top:24px; }
.tlk-camp-edition p:last-child, .tlk-camp-panel p:last-child { margin-bottom:0; }
.tlk-camp-history-note { max-width:850px; }
.tlk-camp .tlk-camp-history-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(max(250px,calc((100% - 72px)/4)),1fr)); gap:24px; align-items:stretch; list-style:none; margin:24px 0 0; padding:0; }
.tlk-camp-history-list > li { min-width:0; padding:24px; border:1px solid #dce5ef; background:#f4f8fb; border-radius:18px; margin:0; }

.tlk-camp-history-image { width:100%; max-width:200px; margin:0 auto 24px; }
.tlk-camp-history-image img { display:block; width:100%; height:200px; object-fit:contain; border-radius:12px; }
.tlk-camp-history-image figcaption { padding-top:8px; color:#627083; font-size:13px; line-height:1.5; }
.tlk-camp-history-list ul { margin-bottom:0; }
.tlk-camp-faq-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 32px; margin-top:26px; }
.tlk-camp-faq-grid > div { padding-top:20px; border-top:3px solid var(--tlk-orange); }
.tlk-camp-faq-grid h3 { font-size:20px; }
.tlk-camp-faq-grid p { margin-bottom:0; }
.tlk-camp-contact { padding:42px; background:var(--tlk-navy); border-radius:22px; text-align:center; }
.tlk-camp .tlk-camp-contact h2 { color:#fff; }
.tlk-camp-contact p { color:#dce5f3; max-width:780px; margin:0 auto 26px; }
.tlk-camp-enrolment { margin-top:28px; padding:26px; background:#f2f7fb; border:1px solid #e0e9f0; border-radius:20px; }
.tlk-camp-enrolment form.cart { margin:0 !important; }
.tlk-camp-enrolment .tm-extra-product-options, .tlk-camp-enrolment .tc-row, .tlk-camp-enrolment .tc-cell, .tlk-camp-enrolment .tc-container, .tlk-camp-enrolment .tc-section-inner-wrap, .tlk-camp-enrolment .tc-element-inner-wrap { max-width:100% !important; }
.tlk-camp-enrolment .cpf-section, .tlk-camp-enrolment .cpf-element { flex-basis:100% !important; }
.tlk-camp-enrolment input.tmcp-field:not([type=radio]):not([type=checkbox]), .tlk-camp-enrolment select { width:100%; max-width:none; min-height:46px; padding:10px 13px; color:var(--tlk-navy); background:#fff; border:1px solid #ccd9e3; border-radius:9px; font-size:16px; }
.tlk-camp-enrolment .single_add_to_cart_button { background-color:var(--tlk-green) !important; color:#fff !important; }
.tlk-camp-edition-copy table { width:100%; height:auto !important; table-layout:fixed; }
.tlk-camp-edition-copy td, .tlk-camp-edition-copy th { padding:12px; overflow-wrap:anywhere; }
@media(max-width:1024px) { .tlk-camp-hero { gap:30px; } .tlk-camp h1 { font-size:38px; } .tlk-camp-age-grid li { padding:22px; } }
@media(max-width:767px) {
 body.tlk-campamentos-page .page_content_wrap { padding:24px 0 48px; }
 body.tlk-campamentos-page .page_content_wrap > .content_wrap { width:calc(100% - 36px); }
 .tlk-camp .woocommerce-breadcrumb { margin-bottom:24px; }
 .tlk-camp-hero { grid-template-columns:1fr; gap:24px; padding-bottom:30px; }
 .tlk-camp-hero-image { width:100%; max-width:none; grid-row:1; }
 .tlk-camp h1 { font-size:34px; }
 .tlk-camp h2 { font-size:28px; }
 .tlk-camp h3 { font-size:21px; }
 .tlk-camp-summary p { font-size:17px; }
 .tlk-camp-body > section { margin-bottom:32px; }
 .tlk-camp-intro-grid, .tlk-camp .tlk-camp-age-grid, .tlk-camp-faq-grid { grid-template-columns:1fr; gap:18px; }
 .tlk-camp-panel, .tlk-camp-age-grid li, .tlk-camp-history-list > li { padding:24px; }
 .tlk-camp-contact { padding:32px 24px; border-radius:18px; }
 .tlk-camp-enrolment { padding:18px; }
 .tlk-camp .tlk-camp-history-list { grid-template-columns:1fr; gap:18px; }
}

.tlk-camp-intro-grid { align-items:start; }


.tlk-camp-edition-slot { min-width:0; }
.tlk-camp-edition-copy { overflow-wrap:anywhere; }


.tlk-camp-enrolment .single_add_to_cart_button::before { margin-right:.5em; }


/* Preserve the previously approved summer enrolment layout. */
body.postid-160349 .tlk-camp-enrolment .single_add_to_cart_button { width:100%; }
