/* Physiotutors landing pages. Everything is scoped under .pt-landing so nothing leaks into the theme.
   Tokens follow the About page (projecten/about-page/styles.css) and kennis/huisstijl.md. */
.pt-landing {
  --purple: #7973FF;
  --purple-tint: #554FCC;
  --navy: #110D4A;
  --purple-dark: #322E7A;
  --lavender: #E1E4FF;
  --lavender-light: #F5F6FF;
  --ink: #0B0930;
  --text: #4B4B5C;
  --muted: #6B6B7B;
  --line: #E6E6F0;
  --white: #fff;
  --green: #1F9D6B;
  --radius: 14px;
  --container: 1120px;
  --font-display: 'Fira Sans Condensed', 'Arial Narrow', sans-serif;
  --font-body: 'Inter', system-ui, -apple-system, sans-serif;
  font-family: var(--font-body); font-size: 17px; line-height: 1.55; color: var(--ink); background: var(--white);
  overflow-x: clip; text-align: left; -webkit-font-smoothing: antialiased;
}
.pt-landing, .pt-landing *, .pt-landing *::before, .pt-landing *::after { box-sizing: border-box; }
/* Reset the theme's global element rules (specificity 0,1,0; component rules below are 0,2,0) */
.pt-landing :where(h1, h2, h3, h4) { font-family: inherit; color: inherit; font-weight: 700; font-size: inherit; line-height: inherit; margin: 0; text-transform: none; letter-spacing: normal; }
.pt-landing :where(p) { color: inherit; margin: 0; font-size: inherit; line-height: inherit; }
.pt-landing :where(a) { color: inherit; font-weight: inherit; text-decoration: none; }
.pt-landing :where(ul, ol) { margin: 0; padding: 0; list-style: none; }
.pt-landing :where(li) { margin: 0; padding: 0; }
.pt-landing :where(li)::before { content: none; }
.pt-landing :where(img) { max-width: 100%; height: auto; border: 0; display: block; }
.pt-landing :where(details, summary) { margin: 0; padding: 0; }

.pt-landing .container { width: min(var(--container), 100% - 32px); max-width: none; padding-inline: 0; margin-inline: auto; }
.pt-landing .display { font-family: var(--font-display); font-weight: 800; text-transform: uppercase; line-height: 1.02; letter-spacing: .005em; }
.pt-landing .accent { color: var(--purple); }
.pt-landing .eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--purple-tint); background: var(--white); border-radius: 999px; padding: 6px 14px; }
.pt-landing .eyebrow .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--purple); }
.pt-landing .section { padding: 96px 0; }
.pt-landing .section-head { max-width: 720px; margin: 0 auto 48px; text-align: center; }
.pt-landing .section-head h2 { font-size: clamp(32px, 4.2vw, 52px); }
.pt-landing .section-head p { color: var(--text); margin-top: 14px; }
.pt-landing .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: var(--purple); color: var(--white); font-weight: 600; font-size: 17px; border-radius: 10px; padding: 16px 28px; transition: background .15s ease, transform .15s ease; }
.pt-landing .btn:hover { background: var(--purple-tint); color: var(--white); transform: translateY(-1px); }
.pt-landing .btn svg { width: 18px; height: 18px; }
.pt-landing .ico { width: 22px; height: 22px; flex: none; }

/* Hero */
.pt-landing .hero { background: var(--lavender); padding: 72px 0 88px; position: relative; overflow: hidden; }
.pt-landing .hero::after { content: ""; position: absolute; width: 720px; height: 720px; right: -220px; top: -160px; border-radius: 50%; background: radial-gradient(closest-side, rgb(121 115 255 / .22), transparent); pointer-events: none; }
.pt-landing .hero-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 56px; align-items: center; position: relative; z-index: 1; }
.pt-landing .hero h1 { font-size: clamp(42px, 5.6vw, 76px); margin: 20px 0 18px; color: var(--navy); }
.pt-landing .hero .sub { font-size: 19px; color: var(--text); max-width: 560px; }
.pt-landing .checks { display: grid; gap: 10px; margin: 26px 0 30px; }
.pt-landing .checks li { display: flex; gap: 12px; align-items: flex-start; font-weight: 500; }
.pt-landing .checks .ico { color: var(--purple); margin-top: 1px; }
.pt-landing .form-card { background: var(--white); border-radius: 18px; padding: 26px 26px 22px; box-shadow: 0 24px 60px -24px rgb(17 13 74 / .35); max-width: 560px; scroll-margin-top: 120px; }
.pt-landing .form-card h2 { font-size: 20px; font-weight: 700; margin-bottom: 4px; }
.pt-landing .form-card .fine { font-size: 13.5px; color: var(--muted); margin-top: 12px; }
.pt-landing .cover-wrap { position: relative; display: flex; justify-content: center; }
.pt-landing .cover-wrap img { width: min(440px, 100%); filter: drop-shadow(0 30px 40px rgb(17 13 74 / .28)); transform: rotate(-2deg); }
.pt-landing .cover-badge { position: absolute; left: 4%; bottom: 10%; background: var(--white); border-radius: 12px; padding: 12px 16px; box-shadow: 0 12px 30px -12px rgb(17 13 74 / .35); font-size: 14px; line-height: 1.35; }
.pt-landing .cover-badge strong { display: block; font-family: var(--font-display); font-weight: 800; font-size: 26px; color: var(--purple); line-height: 1; }

/* Proof strip */
.pt-landing .proof { border-bottom: 1px solid var(--line); }
.pt-landing .proof-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.pt-landing .proof-item { padding: 28px 16px; text-align: center; }
.pt-landing .proof-item + .proof-item { border-left: 1px solid var(--line); }
.pt-landing .proof-item strong { display: block; font-family: var(--font-display); font-weight: 800; font-size: 34px; color: var(--navy); line-height: 1.1; }
.pt-landing .proof-item span { color: var(--muted); font-size: 15px; }

/* Inside */
.pt-landing .inside-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.pt-landing .spread { position: relative; height: 520px; }
.pt-landing .spread img { position: absolute; width: 62%; border-radius: 10px; border: 1px solid var(--line); box-shadow: 0 24px 50px -24px rgb(17 13 74 / .35); background: var(--white); }
.pt-landing .spread img:first-child { left: 0; top: 0; transform: rotate(-3deg); }
.pt-landing .spread img:last-child { right: 0; bottom: 0; transform: rotate(2.5deg); }
.pt-landing .features { display: grid; gap: 26px; }
.pt-landing .feature { display: flex; gap: 16px; }
.pt-landing .feature .badge { width: 44px; height: 44px; border-radius: 12px; background: var(--lavender); color: var(--purple-tint); display: flex; align-items: center; justify-content: center; flex: none; }
.pt-landing .feature h3 { font-size: 18px; margin-bottom: 2px; }
.pt-landing .feature p { color: var(--text); font-size: 16px; }

/* Test list */
.pt-landing .tests { background: var(--lavender-light); }
.pt-landing .region-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.pt-landing .region { background: var(--white); border-radius: var(--radius); padding: 24px; border: 1px solid var(--line); }
.pt-landing .region h3 { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--purple-tint); margin-bottom: 14px; }
.pt-landing .region li { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--line); font-weight: 500; font-size: 16px; }
.pt-landing .region li:first-child { border-top: 0; padding-top: 0; }
.pt-landing .region li span { color: var(--muted); font-weight: 400; font-size: 14px; text-align: right; }
.pt-landing .tests-cta { text-align: center; margin-top: 40px; }

/* Honest ratings */
.pt-landing .honest { background: var(--navy); color: var(--white); border-radius: 22px; padding: 64px; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 56px; align-items: center; }
.pt-landing .honest h2 { font-size: clamp(32px, 4vw, 48px); }
.pt-landing .honest p { color: rgb(255 255 255 / .8); margin-top: 16px; }
.pt-landing .ratings { display: grid; gap: 12px; }
.pt-landing .rating { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; background: rgb(255 255 255 / .06); border: 1px solid rgb(255 255 255 / .12); border-radius: 12px; padding: 14px 18px; }
.pt-landing .rating .dots { display: flex; gap: 5px; }
.pt-landing .rating .lamp { width: 16px; height: 16px; border-radius: 50%; box-shadow: 0 0 0 4px rgb(255 255 255 / .08); }
.pt-landing .rating .lamp--strong { background: #22B573; }
.pt-landing .rating .lamp--moderate { background: #F5A623; }
.pt-landing .rating .lamp--weak { background: #E5484D; }
.pt-landing .rating .lamp--questionable { background: #A1A1AA; }
.pt-landing .rating .dots i { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--purple); }
.pt-landing .rating .dots i.on { background: var(--purple); }
.pt-landing .rating strong { font-weight: 600; }
.pt-landing .rating .ex { color: rgb(255 255 255 / .65); font-size: 14px; white-space: nowrap; }
.pt-landing .rating strong { white-space: nowrap; }

/* Authors */
.pt-landing .authors { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 40px; align-items: center; max-width: 900px; margin: 0 auto; }
.pt-landing .faces { display: flex; }
.pt-landing .faces img { width: 112px; height: 112px; border-radius: 50%; object-fit: cover; object-position: top; background: var(--purple); border: 4px solid var(--white); box-shadow: 0 10px 24px -12px rgb(17 13 74 / .4); }
.pt-landing .faces img + img { margin-left: -22px; }
.pt-landing .authors h2 { font-size: clamp(28px, 3.4vw, 40px); }
.pt-landing .authors p { color: var(--text); margin-top: 12px; }
.pt-landing .authors a { color: var(--purple-tint); font-weight: 600; }
.pt-landing .authors a:hover { text-decoration: underline; }

/* FAQ */
.pt-landing .faq { max-width: 780px; margin: 0 auto; }
.pt-landing .faq details { border-bottom: 1px solid var(--line); }
.pt-landing .faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 0; font-weight: 600; font-size: 18px; }
.pt-landing .faq summary::-webkit-details-marker { display: none; }
.pt-landing .faq summary::after { content: "+"; font-size: 26px; font-weight: 400; color: var(--purple); line-height: 1; transition: transform .2s ease; }
.pt-landing .faq details[open] summary::after { transform: rotate(45deg); }
.pt-landing .faq details p { color: var(--text); padding: 0 0 22px; max-width: 680px; }

/* Final CTA */
.pt-landing .final { background: var(--purple); color: var(--white); text-align: center; padding: 80px 0; }
.pt-landing .final h2 { font-size: clamp(34px, 4.6vw, 56px); }
.pt-landing .final p { color: rgb(255 255 255 / .85); margin: 12px auto 28px; max-width: 560px; }
.pt-landing .final .btn { background: var(--white); color: var(--navy); }
.pt-landing .final .btn:hover { background: var(--lavender); color: var(--navy); }

/* Gravity Forms (legacy markup, form 39 has Name + Email in two columns, Turnstile, submit) */
.pt-landing .gform_wrapper { margin: 14px 0 0 !important; max-width: none !important; }
.pt-landing .gform_wrapper ul.gform_fields { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0 !important; padding: 0 !important; }
.pt-landing .gform_wrapper ul.gform_fields > li { margin: 0 !important; padding: 0 !important; width: auto !important; max-width: none !important; }
.pt-landing .gform_wrapper .gfmc-column,
.pt-landing .gform_wrapper .gfmc-column ul { width: auto !important; float: none !important; display: block !important; padding: 0 !important; margin: 0 !important; }
.pt-landing .gform_wrapper .gfield--type-turnstile { grid-column: 1 / -1; }
/* Never display:none here: the Turnstile add-on only renders the widget into a VISIBLE container
   (gform.tools.visible), so hiding the empty container meant no token and "Invalid Turnstile captcha response"
   on every submit (bug 9 to 11 Nov 2026). Only cancel the grid gap while the widget is invisible (interaction-only). */
.pt-landing .gform_wrapper .gfield--type-turnstile:has(.cf-turnstile:empty) { margin-top: -12px !important; }
.pt-landing .gform_wrapper .gfield_label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.pt-landing .gform_wrapper .ginput_container { margin: 0 !important; }
.pt-landing .gform_wrapper input[type=text],
.pt-landing .gform_wrapper input[type=email] { width: 100% !important; height: 54px; border: 1.5px solid #D5D5E3 !important; border-radius: 10px !important; background: var(--white) !important; padding: 0 16px !important; font: 500 16px/1 var(--font-body) !important; color: var(--ink) !important; box-shadow: none !important; margin: 0 !important; }
.pt-landing .gform_wrapper input::placeholder { color: #8B8B9B; font-weight: 400; font-size: 16px !important; font-family: var(--font-body) !important; opacity: 1; }
.pt-landing .gform_wrapper input:focus { outline: none; border-color: var(--purple) !important; box-shadow: 0 0 0 4px rgb(121 115 255 / .18) !important; }
.pt-landing .gform_wrapper .gform_footer { margin: 12px 0 0 !important; padding: 0 !important; }
.pt-landing .gform_wrapper .gform_footer .submit-wrap { width: 100%; }
.pt-landing .gform_wrapper .gform_footer button,
.pt-landing .gform_wrapper .gform_footer input[type=submit] { width: 100% !important; height: 56px; margin: 0 !important; border: 0 !important; border-radius: 10px !important; background: var(--purple) !important; color: var(--white) !important; font: 600 17px/1 var(--font-body) !important; text-transform: none !important; letter-spacing: 0 !important; cursor: pointer; transition: background .15s ease; padding: 0 20px !important; display: flex !important; align-items: center; justify-content: center; }
.pt-landing .gform_wrapper .gform_footer button > * { margin: 0 !important; padding: 0 !important; line-height: 1 !important; }
.pt-landing .gform_wrapper .gform_footer button:hover { background: var(--purple-tint) !important; }
.pt-landing .gform_wrapper .gform_footer button::before,
.pt-landing .gform_wrapper .gform_footer button::after { display: none !important; }
.pt-landing .gform_wrapper .gform_ajax_spinner { margin-left: 10px; }
.pt-landing .gform_wrapper .validation_error,
.pt-landing .gform_wrapper .gform_validation_errors { grid-column: 1 / -1; border-radius: 10px !important; font-size: 14px !important; margin: 0 0 12px !important; }
.pt-landing .gform_wrapper .gfield_error input { border-color: #D1283E !important; }
.pt-landing .gform_wrapper .validation_message { font-size: 13px !important; padding: 4px 0 0 !important; color: #D1283E !important; background: none !important; border: 0 !important; }
.pt-landing .gform_confirmation_message { background: #EAF7F1; color: #135E41; border-radius: 12px; padding: 18px 20px; font-weight: 500; margin-top: 14px; }
.pt-landing .gform_confirmation_message a { color: #135E41; font-weight: 700; text-decoration: underline; }

/* Masterclass pages: video card in the hero, player after signup, frames, speaker bio */
.pt-landing .video-card { display: block; position: relative; border-radius: 18px; overflow: hidden; background: var(--navy); box-shadow: 0 30px 60px -28px rgb(17 13 74 / .5); transform: rotate(1.2deg); transition: transform .2s ease; }
.pt-landing .video-card[hidden] { display: none; }
.pt-landing .video-card:hover { transform: rotate(0deg) translateY(-2px); }
.pt-landing .video-card > img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.pt-landing .video-card .play { position: absolute; left: 50%; top: 38%; transform: translate(-50%, -50%); width: 76px; height: 76px; border-radius: 50%; background: var(--purple); color: var(--white); display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 10px rgb(121 115 255 / .25); }
.pt-landing .video-card .play svg { width: 30px; height: 30px; margin-left: 4px; }
.pt-landing .video-meta { display: flex; align-items: center; gap: 14px; padding: 16px 18px; background: var(--navy); color: var(--white); font-size: 14px; line-height: 1.35; }
.pt-landing .video-meta img { width: 48px; height: 48px; border-radius: 50%; flex: none; background: var(--lavender); }
.pt-landing .video-meta strong { display: block; font-size: 15px; font-weight: 600; margin-bottom: 2px; }
.pt-landing .video-meta span { color: rgb(255 255 255 / .75); }
.pt-landing .video-meta strong { color: var(--white); }
.pt-landing .watch { background: var(--navy); color: var(--white); padding: 80px 0 88px; scroll-margin-top: 90px; }
.pt-landing .watch[hidden] { display: none; }
.pt-landing .watch .section-head { margin-bottom: 32px; }
.pt-landing .watch .section-head h2 { color: var(--white); margin-top: 16px; }
.pt-landing .watch .section-head p { color: rgb(255 255 255 / .8); }
.pt-landing .eyebrow--ok { color: #135E41; background: #EAF7F1; }
.pt-landing .eyebrow--ok .dot { background: var(--green); }
.pt-landing .player { position: relative; max-width: 960px; margin: 0 auto; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: #000; box-shadow: 0 30px 60px -20px rgb(0 0 0 / .5); }
.pt-landing .player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.pt-landing .next { max-width: 960px; margin: 28px auto 0; display: flex; align-items: center; justify-content: space-between; gap: 28px; background: rgb(255 255 255 / .06); border: 1px solid rgb(255 255 255 / .12); border-radius: 16px; padding: 24px 28px; }
.pt-landing .next h3 { font-size: 19px; color: var(--white); }
.pt-landing .next p { color: rgb(255 255 255 / .75); font-size: 15.5px; margin-top: 4px; }
.pt-landing .next .btn { flex: none; }
.pt-landing .frames { position: relative; height: 440px; }
.pt-landing .frames img { position: absolute; width: 78%; border-radius: 12px; border: 1px solid var(--line); box-shadow: 0 24px 50px -24px rgb(17 13 74 / .4); background: var(--white); }
.pt-landing .frames img:first-child { left: 0; top: 0; transform: rotate(-2deg); }
.pt-landing .frames img:last-child { right: 0; bottom: 0; transform: rotate(2deg); }
.pt-landing .feature .badge { font-family: var(--font-display); font-weight: 800; font-size: 22px; }
.pt-landing .bio-section { background: var(--lavender-light); }
.pt-landing .bio { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 48px; align-items: center; max-width: 960px; margin: 0 auto; }
.pt-landing .bio > img { width: 220px; height: 220px; border-radius: 50%; object-fit: cover; box-shadow: 0 20px 40px -20px rgb(17 13 74 / .45); }
.pt-landing .bio h2 { font-size: clamp(30px, 3.6vw, 44px); }
.pt-landing .bio .role { color: var(--purple-tint); font-weight: 600; margin: 8px 0 14px; }
.pt-landing .bio p + p { margin-top: 12px; }
.pt-landing .bio p:not(.role) { color: var(--text); }
.pt-landing .hero .sub + .form-card { margin-top: 30px; }
.pt-landing .form-card .fine a { color: var(--muted); text-decoration: underline; }

/* Responsive */
@media (max-width: 960px) {
  .pt-landing .video-card { transform: none; max-width: 560px; }
  .pt-landing .frames { height: 380px; max-width: 560px; margin: 0 auto; width: 100%; }
  .pt-landing .next { flex-direction: column; align-items: flex-start; }
  .pt-landing .hero-grid, .pt-landing .inside-grid, .pt-landing .honest { grid-template-columns: 1fr; }
  .pt-landing .hero { padding: 40px 0 56px; }
  .pt-landing .hero-grid { gap: 36px; }
  .pt-landing .cover-wrap img { width: min(320px, 80%); }
  .pt-landing .region-grid { grid-template-columns: 1fr 1fr; }
  .pt-landing .spread { height: 440px; max-width: 520px; margin: 0 auto; width: 100%; }
  .pt-landing .honest { padding: 44px 28px; gap: 32px; }
  .pt-landing .section { padding: 72px 0; }
}
@media (max-width: 640px) {
  .pt-landing { font-size: 16px; }
  .pt-landing .hero h1 { font-size: 44px; }
  .pt-landing .hero .sub { font-size: 17px; }
  .pt-landing .form-card { padding: 20px 18px 18px; }
  .pt-landing .gform_wrapper ul.gform_fields { grid-template-columns: 1fr; }
  .pt-landing .proof-grid { grid-template-columns: 1fr; }
  .pt-landing .proof-item { padding: 18px 8px; }
  .pt-landing .proof-item + .proof-item { border-left: 0; border-top: 1px solid var(--line); }
  .pt-landing .region-grid { grid-template-columns: 1fr; }
  .pt-landing .spread { height: 340px; }
  .pt-landing .authors { grid-template-columns: 1fr; text-align: center; gap: 20px; }
  .pt-landing .faces { justify-content: center; }
  .pt-landing .section-head { margin-bottom: 32px; }
  .pt-landing .cover-badge { left: 0; bottom: 4%; }
  .pt-landing .rating { grid-template-columns: auto 1fr; row-gap: 2px; }
  .pt-landing .rating .ex { grid-column: 2; white-space: normal; }
  .pt-landing .rating strong { white-space: normal; }
  .pt-landing .frames { height: 260px; }
  .pt-landing .bio { grid-template-columns: 1fr; text-align: center; gap: 24px; }
  .pt-landing .bio > img { width: 160px; height: 160px; margin: 0 auto; }
  .pt-landing .watch { padding: 56px 0 64px; }
  .pt-landing .next { padding: 20px; }
  .pt-landing .next .btn { width: 100%; }
  .pt-landing .video-card .play { width: 60px; height: 60px; }
}
@media (prefers-reduced-motion: reduce) {
  .pt-landing * { transition: none !important; }
}
.pt-landing .gform_wrapper .button-flair { display: none !important; }
/* The theme's floating 'Start 14-day free trial' button competes with the page's one goal and covers the form on mobile.
   landing.css only loads on landing pages, so this rule never reaches the rest of the site. */
body.pt-landing-page .smartcta { display: none !important; }
